From 90e8f0ca63e72956d45f3fec38f6a6819f6caf6e Mon Sep 17 00:00:00 2001 From: mmagian Date: Thu, 22 Oct 2020 20:08:52 +0000 Subject: [PATCH 001/231] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (600 of 600 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 550f20e8b..408e2aa5f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -89,7 +89,8 @@ O site não pôde ser analisado totalmente Capa de visualização do vídeo Transmissões ao vivo ainda não são suportadas - Toque em \"Buscar\" para iniciar + Toque em \"Buscar\" para iniciar +\n Arquivo já existe Threads Link inválido ou internet indisponível From 17576d223a5e229fadddc5e921125e829a174286 Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Thu, 22 Oct 2020 18:51:38 +0000 Subject: [PATCH 002/231] Translated using Weblate (Santali) Currently translated at 6.1% (37 of 600 strings) --- app/src/main/res/values-sat/strings.xml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index a6b3daec9..d56946343 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -1,2 +1,16 @@ - \ No newline at end of file + + ᱟᱹᱪᱩᱨ + ᱵᱨᱟᱣᱡᱚᱨ ᱪᱚᱭᱚᱱ ᱢᱮ + ᱥᱟᱞᱟᱜ ᱦᱟᱹᱴᱤᱧ ᱢᱮ + ᱥᱟᱡᱟᱣᱠᱚ + ᱥᱮᱸᱫᱽᱨᱟ + ᱰᱟᱩᱱᱞᱚᱰ + ᱦᱟᱹᱴᱤᱧ + ᱵᱨᱟᱣᱡᱟᱚᱨ ᱨᱮ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ + ᱵᱟᱹᱰᱨᱟᱹ + ᱵᱚᱦᱟᱞ + %1$s ᱧᱮᱞᱠᱚ + ᱮᱦᱲᱵ ᱞᱟᱹᱜᱤᱫ \"ᱥᱮᱸᱫᱽᱨᱟ\" ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ +\n + \ No newline at end of file From a5879a44074f4ce11ecb28a92921e8cdc291f67c Mon Sep 17 00:00:00 2001 From: nautilusx Date: Fri, 23 Oct 2020 17:48:52 +0000 Subject: [PATCH 003/231] Translated using Weblate (German) Currently translated at 99.8% (602 of 603 strings) --- app/src/main/res/values-de/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6bbcfffed..24ea72dbd 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -600,7 +600,7 @@ Gesehene Videos entfernen\? Originalzeit vor Elementen anzeigen Originaltexte von Diensten werden in Stream-Elementen sichtbar sein - Eingeschränkter YouTube-Modus + Aktivieren des \"Eingeschränkten Modus\" von YouTube Avatarbild des Kanals Erstellt von %s Von %s @@ -633,4 +633,6 @@ Den Player zu wechseln könnte deine Warteschlange überschreiben Bestätige das Leeren der Warteschlange Die aktive Wiedergabeliste wird ersetzt werden + Eingereiht + YouTube bietet einen \"Eingeschränkten Modus\", der potenzielle Inhalte für Erwachsene ausblendet. \ No newline at end of file From b7aea96ca006f1c017f7f6a7f4c1ee925120d5ad Mon Sep 17 00:00:00 2001 From: TobiGr Date: Fri, 23 Oct 2020 14:34:24 +0000 Subject: [PATCH 004/231] Translated using Weblate (German) Currently translated at 99.8% (602 of 603 strings) --- app/src/main/res/values-de/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 24ea72dbd..d0ec6dabf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -56,7 +56,7 @@ Konnte Webseite nicht analysieren Inhalt nicht verfügbar Inhalt - Altersbeschränkte Inhalte + Altersbeschränkte Inhalte anzeigen Altersbeschränktes Video anzeigen. Spätere Änderungen sind in den Einstellungen möglich. Konnte Download-Menü nicht einrichten Live-Streams werden noch nicht unterstützt @@ -592,7 +592,7 @@ \nEs wird hoffentlich in einer zukünftigen Version unterstützt. Dieses Video ist altersbeschränkt. \n -\nAktiviere in den Einstellungen „Altersbeschränkte Inhalte“, falls du diese sehen möchtest. +\nAktiviere in den Einstellungen „%1$s“, falls du diese sehen möchtest. Videos, die vor und nach dem Hinzufügen zur Wiedergabeliste angeschaut wurden, werden entfernt. \nBist du sicher\? Dies kann nicht rückgängig gemacht werden! Ja, und teilweise gesehene Videos @@ -635,4 +635,9 @@ Die aktive Wiedergabeliste wird ersetzt werden Eingereiht YouTube bietet einen \"Eingeschränkten Modus\", der potenzielle Inhalte für Erwachsene ausblendet. + Zeige Speicherlecks + Lösche Cookies, die NewPipe speichert, wenn du ein reCAPTCHA löst + reCAPTCHA-Cookies wurden gelöscht + reCAPTCHA-Cookies löschen + Zeige Inhalt, der möglicherweise unpassend für Kinder ist, da er eine Altersbeschränkung (wie z.B. 18+) hat. \ No newline at end of file From d47c9a2e298447bb51bf46d02b67ad206ab01a8d Mon Sep 17 00:00:00 2001 From: Viktor K Date: Fri, 23 Oct 2020 11:44:16 +0000 Subject: [PATCH 005/231] Translated using Weblate (German) Currently translated at 99.8% (602 of 603 strings) --- app/src/main/res/values-de/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index d0ec6dabf..e4e1e86e4 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -640,4 +640,5 @@ reCAPTCHA-Cookies wurden gelöscht reCAPTCHA-Cookies löschen Zeige Inhalt, der möglicherweise unpassend für Kinder ist, da er eine Altersbeschränkung (wie z.B. 18+) hat. + Wiedergabe einreihen \ No newline at end of file From 85190b16cb47ad2fab0470c7084a8aba9971a572 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 24 Oct 2020 05:01:01 +0200 Subject: [PATCH 006/231] Added translation using Weblate (Kashmiri) --- app/src/main/res/values-ks/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-ks/strings.xml diff --git a/app/src/main/res/values-ks/strings.xml b/app/src/main/res/values-ks/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-ks/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 76f2338c3dfa37e46c3a5cfc55a5f1625ac28b2c Mon Sep 17 00:00:00 2001 From: nautilusx Date: Fri, 23 Oct 2020 17:49:48 +0000 Subject: [PATCH 007/231] Translated using Weblate (German) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e4e1e86e4..81403afcd 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -635,7 +635,7 @@ Die aktive Wiedergabeliste wird ersetzt werden Eingereiht YouTube bietet einen \"Eingeschränkten Modus\", der potenzielle Inhalte für Erwachsene ausblendet. - Zeige Speicherlecks + Speicherlecks anzeigen Lösche Cookies, die NewPipe speichert, wenn du ein reCAPTCHA löst reCAPTCHA-Cookies wurden gelöscht reCAPTCHA-Cookies löschen From ada7e628da2092c27b008753637ebc36351d012b Mon Sep 17 00:00:00 2001 From: Edoardo Regni Date: Sun, 25 Oct 2020 13:36:45 +0000 Subject: [PATCH 008/231] Translated using Weblate (Dutch) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-nl/strings.xml | 65 +++++++++++++++----------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index af097a4ca..6d5beb53f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -30,7 +30,7 @@ Standaardtaal voor inhoud Externe videospeler gebruiken Externe audiospeler gebruiken - Audio en video + Video en audio Videovoorbeeldminiatuur Speel video, tijd: Gebruikersafbeelding van uploader @@ -45,7 +45,7 @@ Overig Speelt af op achtergrond Inhoud - Inhoud met leeftijdsbeperking + Toon inhoud met leeftijdsbeperking Toon video met leeftijdsbeperking. Toestaan van dit soort video’s kan worden ingeschakeld in de Instellingen. Fout Netwerkfout @@ -73,7 +73,8 @@ Video Geluid Opnieuw proberen - Druk op \"zoeken\" om te beginnen + Druk op \"zoeken\" om te beginnen +\n Automatisch afspelen Speelt video’s af als NewPipe vanuit een andere app wordt geopend Live @@ -85,7 +86,7 @@ Wat:\\nVerzoek:\\nTaal van inhoud:\\nTaal van land:\\nTaal van Applicatie:\\nDienst:\\nTijd in GMT:\\nPakket:\\nVersie:\\nVersie van besturingssysteem: Meld een probleem Gebruikersrapport - Geef eerst toegang tot de opslag + Geef eerst toegang tot opslag Begin Pauzeren Afspelen @@ -103,7 +104,7 @@ Druk voor meer informatie Even geduld… Gekopieerd naar klembord - Selecteer een downloadmap in de Instellingen + Selecteer een download map in de Instellingen Zwart reCAPTCHA-uitdaging reCAPTCHA-uitdaging gevraagd @@ -230,7 +231,7 @@ Verwijderen Details Audio-instellingen - Houd ingedrukt om toe te voegen aan de wachtrij + Houd ingedrukt om toe te voegen aan wachtrij [Onbekend] Begin hier met afspelen Begin hier met afspelen in de achtergrond @@ -359,7 +360,7 @@ Bijschriftgrootte en -achtergrondstijlen wijzigen. Vereist een herstart van de app. Er is geen app geïnstalleerd die dit bestand kan afspelen Kijkgeschiedenis wissen - Verwijdert de geschiedenis van afgespeelde streams en afspeelposities + Verwijdert de geschiedenis van bekeken video\'s en afspeelposities De gehele kijkgeschiedenis wissen\? Kijkgeschiedenis gewist. Zoekgeschiedenis wissen @@ -403,7 +404,7 @@ Appupdatemelding Meldingen voor nieuwe versies van NewPipe Externe opslag niet beschikbaar - Downloaden naar externe SD-kaart is niet mogelijk. Downloadmap opnieuw instellen\? + Downloaden naar externe SD-kaart is niet mogelijk. Download map opnieuw instellen\? Fout bij het lezen van de opgeslagen tabbladen, waardoor standaardtabbladen worden gebruikt Standaardinstellingen herstellen Wil je de standaardinstellingen herstellen\? @@ -448,7 +449,7 @@ Stop Maximum aantal keer proberen Maximum aantal pogingen voordat de download wordt geannuleerd - Pauzeren bij overschakelen naar mobiele data + Pauzeren bij mobiele data verbinding Handig voor wanneer u naar mobiel internet overschakelt, hoewel sommige downloads niet gepauzeerd kunnen worden Gebeurtenissen Conferenties @@ -464,23 +465,23 @@ Wis data Verander de downloadmappen om effect te bekomen Afspelen hervatten - Herstel vorige afspeelpositie - Posities in afspeellijsten + Verder afspelen vanaf laatste positie + Posities in lijst Laat afspeeltijd in afspeellijst zien Afspeelposities verwijderd. Bestand verplaatst of verwijderd Een bestand met dezelfde naam bestaat al Kan bestand niet overschrijven Er is al een download met deze naam bezig - Geen ruimte meer op het apparaat + Geen vrije ruimte meer op het apparaat Voortgang verloren, omdat bestand was verwijderd Wilt u de downloadgeschiedenis of alle gedownloade bestanden verwijderen\? Limiteer de download wachtrij Er zal maximaal 1 bestand tegelijk worden gedownload - Download starten + Downloads starten Downloads pauzeren - Vraag waar bestanden geplaatst moeten worden - U zal worden gevraagd waar u bestanden wilt opslaan + Vraag waar bestanden gedownload worden + U wordt gevraagd waar het bestand wordt opgeslagen Je zal gevraagd worden waar elke download op te slaan. \nKies SAF als je wilt downloaden naar een externe SD-kaart Gebruik SAF @@ -498,10 +499,10 @@ %s luisteraars De taal zal veranderen zodra de app opnieuw is opgestart. - Standaardkiosk - Duur van snel voor-/achteruit zoeken - PeerTube instanties - Favoriete PeerTube instanties instellen + Standaard kiosk + Duur voor-/achteruit spoelen + PeerTube kanaal + Selecteer je favorite PeerTube kanaal Vind het kanaal dat je leuk vind op %s Kanaal toevoegen Kanaal URL invoeren @@ -518,7 +519,7 @@ Verwijder gedownloade bestanden %1$d downloads verwijderd Geef toestemming voor weergave over andere apps - Applicatie taal + App taal Systeem taal gebruiken Druk op \"Klaar\" zodra opgelost Klaar @@ -544,7 +545,7 @@ %d dagen Kanaalgroepen - Nieuws­feed laatste update: %s + Laatste update nieuws­feed: %s Niet geladen: %d Feed aan het laden… Feed aan het verwerken… @@ -586,21 +587,21 @@ \n \nHopelijk zal dit bij een toekomstige versie ondersteund worden. Ja, en deels bekeken video\'s - Video\'s die zijn bekeken voor, en na, dat ze werden toegevoegd aan de playlist worden verwijderd. -\nWeet u het zeker\? Dit kan niet ongedaan gemaakt worden! + Video\'s die zijn bekeken voor, en na, ze werden toegevoegd aan de afspeellijst worden verwijderd. +\nBent u zeker\? Dit kan niet ongedaan gemaakt worden! Verwijder bekeken video\'s\? ∞ video\'s 100+ video\'s Deze video heeft een leeftijdsbeperking. \n -\nSchakel \"leeftijdsbeperkende inhoud\" in bij de instellingen als u die wilt zien. +\nSchakel \"%1$s\" in bij de instellingen als u die wilt zien. Verwijder bekeken Originele teksten van services zijn zichtbaar in stream-items - YouTube beperkte modus - Laat orginele tijd geleden zien - De avatar-miniatuur van het kanaal + YouTube \"beperkte modus\" aanzetten + Laat originele tijd geleden zien + Kanaal avatar afbeelding Door %s - Gecreëerd door %s + Gemaakt door %s Afspeellijst pagina Toon enkel ongegroepeerde abonnementen Geen afspeellijst bookmarks @@ -632,4 +633,12 @@ Schaal de miniatuurafbeelding van de video die getoond wordt in de notificatie van verhouding 16:9 naar 1:1 (dit kan vervorming creëren) Schaal de miniatuurafbeelding tot verhouding 1:1 Auto-wachtrij + Toon memory leaks + In de wachtrij geplaatst + In de wachtrij plaatsen + Verwijder cookies die NewPipe opslaat wanneer u een reCAPTCHA oplost + reCAPTCHA cookies zijn verwijderd + Verwijder reCAPTCHA cookies + YouTube biedt een \"beperkte modes\" aan, dit verbergt mogelijk materiaal voor volwassenen. + Toon inhoud die mogelijk niet geschikt is voor kinderen omwille van een leeftijdslimiet (zoals 18+). \ No newline at end of file From 25f7b44d48d0ebe6fb7be54293ca291a9a64fccb Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Sun, 25 Oct 2020 09:55:58 +0000 Subject: [PATCH 009/231] Translated using Weblate (Russian) Currently translated at 99.1% (598 of 603 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 19c9868fb..e64efaaa2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -65,7 +65,7 @@ Подробнее Скопировано в буфер обмена Выберите папку для загрузки позже в настройках - Контент 18+ + Показать контент с возрастным ограничением Ошибка Ваш комментарий (English): Не удалось создать папку для загрузки \"%1$s\" @@ -592,7 +592,7 @@ Период актуальности подписок после обновления — %s Это видео имеет возрастное ограничение. \n -\nВключите \"Контент с возрастным ограничением\" в настройках, если хотите его видеть. +\nВключите \"%1$s\" в настройках, если хотите его видеть. NewPipe не поддерживает этот контент. \n \nВозможно, поддержка появится в следующих версиях. @@ -644,4 +644,8 @@ Кнопка первого действия Масштабировать эскиз видео, отображаемый в уведомлении, с соотношением сторон 16:9 до 1:1 (может привести к искажениям) Масштабировать эскиз до соотношения сторон 1: 1 + Показать утечки памяти + Файлы cookie reCAPTCHA были удалены + Очистить файлы cookie reCAPTCHA + Показывать контент, который, возможно, не подходит для детей, потому что он имеет возрастное ограничение (например, 18+). \ No newline at end of file From 64d79ceb307751ae689970694e8a5df50ad0036b Mon Sep 17 00:00:00 2001 From: Mitosagi Date: Sun, 25 Oct 2020 04:09:43 +0000 Subject: [PATCH 010/231] Translated using Weblate (Japanese) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-ja/strings.xml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b64d86590..5cae54c4f 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -322,11 +322,11 @@ すべての検索履歴を削除しますか? このファイル/コンテンツはありません - %s が登録しています + %s人が登録しています 視聴なし - 視聴回数 %s 回 + 視聴回数 %s回 1 つのアイテムが削除されました。 支援する @@ -414,7 +414,7 @@ 操作がシステムによって拒否されました ダウンロードに失敗しました ダウンロードが完了しました - %s 件のダウンロード終了 + %s件のダウンロード終了 一意の名前を生成します 上書き この名前のファイルは既に存在します @@ -484,12 +484,12 @@ ダウンロードフォルダーを変更して有効にします サービスの切り替え、現在の選択: - %s つの動画 + %s本の動画 デフォルトのキオスク 誰も見ていません - %s 視聴中 + %s人が視聴中 誰も聞いていません @@ -622,4 +622,6 @@ シャッフル バッファリング 通知 + YouTube は、成人向けの可能性があるコンテンツを除外する「制限付きモード」を提供しています。 + 年齢制限(18歳以上など)があるため、子供には不適切な可能性のあるコンテンツを表示します。 \ No newline at end of file From b8b00604406a7241328dc87bd82eaac61987e96a Mon Sep 17 00:00:00 2001 From: AioiLight Date: Fri, 23 Oct 2020 09:49:40 +0000 Subject: [PATCH 011/231] Translated using Weblate (Japanese) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-ja/strings.xml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 5cae54c4f..1dca536ae 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -79,7 +79,8 @@ 不具合を報告 利用者レポートを送る 生放送 - 開始するには \"検索\" をタップ + 開始するには \"検索\" をタップ +\n 開始 一時停止 再生 @@ -579,7 +580,7 @@ アルバム この動画には年齢制限があります。 \n -\n閲覧したい場合、設定から \"年齢制限のあるコンテンツを表示する\" を有効化してください。 +\n閲覧したい場合、設定から \"%1$s\" を有効化してください。 プレイリストに追加される前も追加された後も視聴した動画はプレイリストから削除されます。 \nよろしいですか?この操作は元に戻せません! はい、部分的に視聴した動画も削除します @@ -587,7 +588,7 @@ 視聴済みを削除 サービスのオリジナルのテキストが生放送に表示されます アイテムに元の時間を表示 - YouTube 制限付きモード + YouTube 制限付きモードを有効化 %s による %s により作成 チャンネルのサムネイル @@ -624,4 +625,10 @@ 通知 YouTube は、成人向けの可能性があるコンテンツを除外する「制限付きモード」を提供しています。 年齢制限(18歳以上など)があるため、子供には不適切な可能性のあるコンテンツを表示します。 + キューに追加 + キューに追加しました + reCAPTCHA を解いたときに NewPipe が保存した Cookie を消去します + reCAPTCHA の Cookie を消去 + reCAPTCHA の Cookie が消去されました + メモリリークを表示 \ No newline at end of file From 43d54db4dd430233e267f9bdb0608a32e184dd09 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 25 Oct 2020 07:28:30 +0000 Subject: [PATCH 012/231] Translated using Weblate (Portuguese) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-pt/strings.xml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index f4fa5df19..fd74dea9f 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -56,7 +56,7 @@ Não foi possível processar o site Conteúdo indisponível Conteúdo - Conteúdo com restrição de idade + Mostrar conteúdo com restrição de idade Mostrar vídeo com restrição de idade. Alterações serão possíveis nas definições. Não foi possível processar totalmente o site Não foi possível configurar o menu de descargas @@ -588,9 +588,9 @@ Artistas Álbuns Músicas - Este vídeo é de idade restrita. + Este vídeo é de restrita à idade. \n -\nPara o poder ver, tem que ativar \"Conteúdo com restrição de idade\" nas definições. +\nPara o poder ver, tem que ativar \"%1$s\" nas definições. Os vídeos que tenham sido vistos antes e depois de serem adicionados à lista de reprodução serão removidos. \nTem a certeza\? Esta ação não pode ser revertida! Sim e também os vídeos parcialmente vistos @@ -598,7 +598,7 @@ Remover visualizados Os textos originais dos serviços serão visíveis nos itens de fluxo Mostrar antiguidade nos itens - Modo restrito do YouTube + Ligar o \"Modo Restringido\" do YouTube Por %s Criado por %s Miniatura do avatar do canal @@ -633,4 +633,12 @@ Pode selecionar, no máximo, três ações para mostrar na notificação compacta! Repetir Quinto botão de ação + Mostrar vazamentos de memória + Enfileirado + Pôr na fila + Limpar cookies que NewPipe armazena quando resolve um reCAPTCHA + Os cookies reCAPTCHA foram limpos + Limpar cookies reCAPTCHA + O YouTube fornece um \"Modo Restrito\" que oculta conteúdo potencialmente para adultos. + Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+). \ No newline at end of file From 23862419eb8935ca697bc72fdfcf1fbe2976e34b Mon Sep 17 00:00:00 2001 From: Josu Date: Fri, 23 Oct 2020 16:04:04 +0000 Subject: [PATCH 013/231] Translated using Weblate (Basque) Currently translated at 97.8% (590 of 603 strings) --- app/src/main/res/values-eu/strings.xml | 64 ++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 57be1e4cc..23257371d 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -26,7 +26,7 @@ Erakutsi \'hurrengo\' eta \'antzeko\' bideoak URLak ez du euskarririk Edukiaren hizkuntz lehenetsia - Bideoa eta Audioa + Bideoa eta audioa Bideoaren aurreikuspen argazkitxoa Erreproduzitu bideoa, iraupena: Igotzailearen abatarraren iruditxoa @@ -39,7 +39,8 @@ Erabili kanpo bideo-erreproduzigailua Erabili kanpo audio-erreproduzigailua Atzeko planoan erreproduzitzen - Sakatu \"Bilatu\" hasteko + \"Bilatu\" sakatu hasteko +\n Audioa deskargatzeko karpeta Aukeratu audio fitxategiak deskargatzeko karpeta Deskargatutako audio fitxategiak hemen gordetzen dira @@ -67,7 +68,7 @@ Besteak Laster-leiho moduan erreproduzitzen Edukia - Adinez mugatutako edukia + Adinez mugatutako edukia erakutsi Erakutsi adinez mugatutako bideoa. Ezarpenetan aldaketak egin daitezke gero. Zuzenean Deskargak @@ -97,11 +98,11 @@ Aplikazioa/interfazea kraskatu da Hori ez litzateke gertatu behar. Eman errore honen berri e-posta bidez - Erroreak gertatu dira. + Barkatu, zerbait gaizki atera da. Salatu Informazioa: Zer gertatu da: - Zer:\\nEskaria:\\nEdukiaren hizkuntza:\\nZerbitzua:\\nGMT Ordua:\\nPaketea:\\nBertsioa:\\nSE bertsioa: + Zer:\\nEskaria:\\nEdukiaren hizkuntza:\\nEdukiaren herrialdea:\\nAplikazioaren hizkuntza:\\nZerbitzua:\\nGMT Ordua:\\nPaketea:\\nBertsioa:\\nSE bertsioa: Zure iruzkina (Ingelesez): Xehetasunak: Salatu errorea @@ -176,7 +177,7 @@ NewPipe jakinarazpena Erreproduzigailua Portaera - Historia eta cachea + Historia eta cache-a Erreprodukzio-zerrenda Desegin Atzeko planoko eta laster-leihoko NewPipe erreproduzigailuen jakinarazpenak @@ -245,7 +246,7 @@ Mantendu ilaran jartzeko Hasi hemen erreproduzitzen Hasi erreproduzitzen bigarren planoan - Hasi erreproduzitzen laster-leihoan + Laster-leihoan erreproduzitzen hasi Ireki tiradera Itxi tiradera Ez da jarioen erreproduzigailurik aurkitu (VLC instalatu dezakezu). @@ -419,7 +420,7 @@ Sareta Automatikoa Aldatu ikuspegia - NewPipe eguneraketa eskuragarri! + NewPipe-ren eguneraketa eskuragarri dago! Sakatu deskargatzeko Amaituta Zain @@ -589,5 +590,50 @@ Abestiak Bideo hau adinez mugatua dago. \n -\nIkusi nahi baduzu, gaitu ezazu \"Adinez mugatutako edukia\" ezarpenetan. +\nIkusi nahi baduzu, piztu ezazu \"%1$s\" ezarpenetan. + Egilea: %s + Erreprodukzio zerrendaren orria + %s-k sortua + Kanalaren avatar-earen miniatura + Erakutsi agrupatuta ez dauden harpidetzak bakarrik + Bai, partzialki ikusitako bideoak ere bai + Erreprodukzio zerrendara gehitu baino lehen eta gero ikusten diren bideoak ezabatuak izango dira. +\nJarraitu nahi duzu\? Ekintza hau ezin da desegin! + Ikusitako bideoak ezabatu\? + Ikusitako bideoak ezabatu + Inoiz ez + Bakarrik WiFi-arekin + Erreprodukzioa automatikoki hasi — %s + Erakutsi memoria galerak + Ilara erreproduzitu + Oraindik ez dago playlist-en laster markarik + Playlist bat aukeratu + Mesedez, egiaztatu jada zure arazoarekin diskusiorik sortuta badagoen. Sarrera duplikatuak daudenean, arazoa ebazteko erabili dezakegun denbora galtzen ari gara. + Formatodun erreportea kopiatu + GitHub-en erreportatu + reCAPTCHA bat egiten duzunean NewPipe-k gordetzen dituen kookiak ezabatu + reCAPTCHA kookiak garbitu dira + Ezabatu reCAPTCHA-ren kookiak + Adinez mugatuta dagoen eta haurrentzako desegokia izan daitezkeen edukia erakutsi (+18 adibidez). + YouTube-ren \"Modu Murriztua\" helduentzako edukia izan daitekeen edukia ezkutatzen du. + Piztu YouTube-ren \"Modu Murriztua\" + Jakinarazpena + Ezin izan da URL-a ezagutu. Beste aplikazio batekin ireki\? + Auto-ilara hasi + Erreprodukzio ilara aktiboa ordezkatuko da + Erreproduzitzaile batetik beste batera aldatzeak ilara ordezkatu ahal luke + Konfirmazioa eskatu ilaratik ezabatu baino lehenago + Ezer ez + Buffering + Aleatorio + Gehienez hiru ekintza aukera ditzakezu jakinarazpenean erakusteko! + Errepikatu + Bostgarren ekintzaren botoia + Laugarren ekintzaren botoia + Hirugarren ekintzaren botoia + Bigarren ekintzaren botoia + Lehenego ekintzaren botoia + Jakinarazpenetan erakusten den bideo miniaturaren formatu-ratioa 16:9tik 1:1era eskalatu (distortsioak sor ditzake) + Miniatura 1:1 formatu-ratiora eskalatu + %s-ren erantzunak erakusten \ No newline at end of file From 8b14c7a2cb81300a78d54e09aaf497f12a8cab3b Mon Sep 17 00:00:00 2001 From: simo Date: Sat, 24 Oct 2020 07:21:08 +0000 Subject: [PATCH 014/231] Translated using Weblate (Arabic) Currently translated at 99.0% (597 of 603 strings) --- app/src/main/res/values-ar/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index aa5d91336..0888ac3c1 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -673,4 +673,9 @@ زر الإجراء الأول قياس الصورة المصغرة للفيديو المعروض في الإشعار من 16: 9 إلى 1: 1 نسبة العرض إلى الارتفاع (قد يؤدي إلى تشوهات) مقياس الصورة المصغرة إلى نسبة عرض إلى ارتفاع 1: 1 + امسح ملفات تعريف الارتباط التي يخزنها NewPipe عند حل reCAPTCHA + تم مسح ملفات تعريف الارتباط reCAPTCHA + امسح ملفات تعريف الارتباط reCAPTCHA + يوفر YouTube \"وضع تقييد المحتوى\" الذي يخفي المحتوى المحتمل للكبار. + عرض المحتوى الذي يُحتمل أن يكون غير مناسب للأطفال لأن له حدًا عمريًا (مثل 18+). \ No newline at end of file From 671c593db136025e97967bf84ffddb3e1d3dd231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emin=20Tufan=20=C3=87etin?= Date: Sat, 24 Oct 2020 12:40:48 +0000 Subject: [PATCH 015/231] Translated using Weblate (Turkish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-tr/strings.xml | 30 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 37d22375f..30d846568 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -45,7 +45,7 @@ Diğer Arka planda oynatılıyor İçerik - Yaş kısıtlamalı içerik + Yaş kısıtlı içeriği göster Yaş kısıtlamalı videoyu göster. Daha sonra ayarlardan değiştirilebilir. Canlı İndirilenler @@ -133,8 +133,8 @@ Açılır pencere Yeniden boyutlandırılıyor Bazı çözünürlüklerde sesi kaldırır - Oynatıcının parlaklığını ve sesini kontrol etmek için hareketleri kullanın - Hareketli oynatıcı kontrolü + Oynatıcının parlaklığını ve sesini denetlemek için hareketleri kullan + Hareketli oynatıcı denetimi Arama önerileri Arama yaparken önerileri göster En iyi çözünürlük @@ -391,10 +391,10 @@ Abonelikten çık Yeni Sekme Sekmeyi Seçin - Hareketli ses kontrolü - Oynatıcının sesini kontrol etmek için hareketleri kullanın - Hareketli parlaklık kontrolü - Oynatıcının parlaklığını kontrol etmek için hareketleri kullanın + Hareketli ses denetimi + Oynatıcının sesini denetlemek için hareketleri kullan + Hareketli parlaklık denetimi + Oynatıcının parlaklığını denetlemek için hareketleri kullan Güncellemeler Dosya silindi Uygulama Güncelleme Bildirimi @@ -588,9 +588,9 @@ Sanatçılar Albümler Şarkılar - Bu video yaş kısıtlamalı. + Bu video yaş kısıtlıdır. \n -\nGörmek istiyorsanız ayarlarda \"Yaş kısıtlamalı içerik\" seçeneğini açın. +\nGörmek istiyorsanız ayarlarda \"%1$s\" seçeneğini açın. Oynatma listesine eklendikten önce ve sonra izlenen videolar kaldırılacak. \nEmin misiniz\? Bu geri döndürülemez! Evet ve kısmen izlenmiş videolar @@ -598,7 +598,7 @@ İzleneni kaldır Akış ögelerinde hizmetlerden alınan özgün metinler görünecektir Ögelerde özgün \'… önce\'yi göster - YouTube kısıtlı kip + YouTube\'un \"Kısıtlı Kip\"ini aç %s tarafından %s tarafından oluşturuldu Kanalın avatar küçük resmi @@ -608,7 +608,7 @@ GitHub\'da bildir Biçimlendirilmiş raporu kopyala Sonuçlar gösteriliyor: %s - Lütfen kilitlenmenizi tartışan bir sorunun zaten var olup olmadığını kontrol edin. Yinelenen talepler oluştururken, bizden asıl hatayı düzeltmek için harcayabileceğimiz zamanı alırsınız. + Lütfen hatanızı tartışan bildirimin var olup olmadığını denetleyin. Yinelenen istekler oluştururken, bizden asıl hatayı düzeltmek için harcayabileceğimiz zamanı alırsınız. Henüz oynatma listesi yer imleri yok Asla Yalnızca Wi-Fi\'de @@ -633,4 +633,12 @@ Birinci eylem düğmesi Bildirimde gösterilen video küçük resmini 16:9\'dan 1:1 en/boy oranına ölçeklendir (bozulmalara neden olabilir) Küçük resmi 1:1 en/boy oranına ölçeklendir + Bellek sızıntılarını göster + Sıraya eklendi + Kuyruğa ekle + reCAPTCHA çözdüğünüzde NewPipe\'ın sakladığı çerezleri temizle + reCAPTCHA çerezleri temizlendi + reCAPTCHA çerezlerini temizle + YouTube, olası yetişkin içeriği gizleyen \"Kısıtlı Kip\" sağlamaktadır. + Yaş kısıtı (18+ gibi) nedeniyle çocuklara uygun olmayabilecek içeriği göster. \ No newline at end of file From 85d56091447524280ecf6f908e5cbe436d28df8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Carvalho=20de=20Ara=C3=BAjo?= Date: Fri, 23 Oct 2020 19:39:33 +0000 Subject: [PATCH 016/231] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 8f8f357a1..ae3129b01 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -61,7 +61,7 @@ Vídeo e áudio Compartilhar Compartilhar com - Conteúdo com restrição de idade + Mostrar conteúdo com restrição de idade Mostrar \'Próximo\' e \'Similares\' Desculpe, isto não devia ter ocorrido. Iniciar @@ -588,9 +588,9 @@ Artistas Álbuns Músicas - Este vídeo tem restrisão de idade. + Este vídeo tem restrição de idade. \n -\nAtive o \"Conteúdo com restrição de idade\" nas configurações se quiser vê-lo. +\nAtive \"%1$s\" nas configurações se quiser vê-lo. Sim, e vídeos parcialmente vistos Vídeos vistos antes e depois de adicionar à lista de reprodução serão removidos. \nTem certeza\? Isto não pode ser desfeito! @@ -598,7 +598,7 @@ Remover vistos Textos originais dos serviços serão visíveis nos itens de transmissão Mostrar tempo original nos itens - Modo restrito do YouTube + Ativar o \"Modo Restrito\" do YouTube Por %s Criado por %s Capa do avatar do canal @@ -633,4 +633,12 @@ Primeiro botão de ação Dimensione a miniatura do vídeo mostrada na notificação de proporção 16:9 para 1:1 (pode apresentar distorções) Dimensione a miniatura para a proporção de 1:1 + Mostrar vazamentos de memória + Na fila + Pôr na fila + Apaga os cookies que o NewPipe armazena quando você resolve um reCAPTCHA + Apagar cookies de reCAPTCHA + Os cookies de reCAPTCHA foram apagados + O YouTube oferece um \"Modo Restrito\" que oculta conteúdo potencialmente adulto. + Mostrar conteúdo possivelmente inadequado para crianças porque tem um limite de idade (como +18). \ No newline at end of file From e269c073acae4ab37e8e551fccc2f509cd208fc8 Mon Sep 17 00:00:00 2001 From: Eric Date: Sat, 24 Oct 2020 05:15:51 +0000 Subject: [PATCH 017/231] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-b+zh+HANS+CN/strings.xml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index eefc61a57..43bbba96e 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -167,7 +167,7 @@ 视频和音频 在后台播放 内容 - 受年龄限制的内容 + 展示年龄限制的内容 显示受年龄限制的视频。可从设置允许此类内容。 直播 下载 @@ -581,7 +581,7 @@ 歌曲 该视频有年龄限制。 \n -\n如果您想要观看,请在设置中启用“年龄限制内容”。 +\n如果您想要观看,请在设置中启用\"%1$s\"。 由 %s 由%s创建 频道的头像缩略图 @@ -592,7 +592,7 @@ 移除看过的视频 来自服务的原始文本将在流项目中可见 在项目上显示原始时间 - YouTube受限模式 + 打开YouTube\"受限模式\" 仅显示未分组订阅 播放列表页 尚无播放列表书签 @@ -624,4 +624,12 @@ 将通知中显示的视频缩略图长宽比从16:9缩放到1:1(可能会导致失真) 缩放缩略图到1:1的长宽比 通知 + 显示内存泄漏 + 已加入队列 + 加入队列 + 清理你在解决验证码时 NewPipe 存储的cookies + reCAPTCHA cookies 已被清理 + 清理 reCAPTCHA cookies + YouTube提供了一个“受限模式”,会隐藏潜在的成人内容。 + 展示可能不适合儿童观看的内容,因为它有年龄限制(比如18岁以上)。 \ No newline at end of file From f0d459d490da4129774ca90f3959fef69a2dccc0 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 23 Oct 2020 13:27:32 +0000 Subject: [PATCH 018/231] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 6e5c3a08b..52b49dd7f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -70,7 +70,7 @@ 懸浮視窗 以懸浮視窗播放中 內容 - 年齡限制內容 + 顯示年齡限制內容 顯示有年齡限制的影片。未來仍可從設定中變更。 下載 下載 @@ -580,7 +580,7 @@ 歌曲 此影片有年鈴限制。 \n -\n如果您想要觀看,請在設定中開啟「年齡限制的內容」。 +\n如果您想要觀看,請在設定中開啟「%1$s」。 是的,以及部份觀看的影片 在新增到播放清單前後的影片將被移除。 \n您確定嗎?此動作無法復原! @@ -588,7 +588,7 @@ 移除已觀看 來自服務的原始文字將在串流項目中可見 在項目上顯示原始時間 - YouTube 受限模式 + 開啟 YouTube 的「受限模式」 由 %s 由 %s 建立 頻道大頭貼縮圖 @@ -623,4 +623,12 @@ 第一動作按鈕 將通知中顯示的影片縮圖從 16:9 縮放到 1:1(可能會導致失真) 把縮圖縮放到 1:1 的長寬比 + 顯示記憶體洩漏 + 已加入佇列 + 加入佇列 + 清除 NewPipe 在您解決 reCAPTCHA 時儲存的 cookie + reCAPTCHA cookies 已被清除 + 清除 reCAPTCHA cookies + YouTube 提供了「受限模式」,可以隱藏潛在的成人內容。 + 顯示可能不適於兒童的內容(因為其有年齡限制,如18歲以上等)。 \ No newline at end of file From d79f77f7e05f856a81aec9b4fa5d6cb5a922a682 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 23 Oct 2020 19:43:18 +0000 Subject: [PATCH 019/231] Translated using Weblate (Hebrew) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-he/strings.xml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 9b78ef32b..57f2e3465 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -61,7 +61,7 @@ מתנגן ברקע מתנגן בחלון צף תוכן - תוכן עם הגבלת גיל + הצגת תוכן עם הגבלת גיל הצגת סרטונים עם הגבלת גיל. ניתן לשנות את זה בעתיד דרך ההגדרות. חי הורדות @@ -610,7 +610,7 @@ שירים סרטון זה מוגבל לצפייה מגיל מסוים. \n -\nיש להפעיל את „תוכן עם הגבלת גיל” בהגדרות כדי לצפות בו. +\nיש להפעיל את „%1$s” בהגדרות כדי לצפות בו. כן, לרבות סרטונים שהפסקתי באמצע סרטונים שלאחר שצפית בהם מופיע לרשימת הנגינה יוסרו. \nלהמשיך\? זאת פעולה בלתי הפיכה! @@ -618,7 +618,7 @@ להסיר סרטונים שנצפו\? הטקסט המקורי משירותים יופיע בפריטי התזרים הצגת לפני כמה זמן מקורי על פריטים - מצב מוגבל של YouTube + הפעלת „מצב מוגבל” של YouTube מאת %s נוצר ע״י %s תמונה ממוזערת של הערוץ @@ -653,4 +653,12 @@ כפתור פעולה שני לשנות את יחס התצוגה הממוזערת שמופיעה בהתראות מיחס תצוגה של 16:9 ל־1:1 (עשוי לעוות את התמונה) שינוי גודל התצוגה הממוזערת ליחס תצוגה 1:1 + הצגת דליפות זיכרון + נוסף לתור + הוספה לתור + לנקות עוגיות שנשמרות על ידי NewPipe בעת פתרון reCAPTCHA + העוגיות של ה־reCAPTCHA נמחקו + פינוי עוגיות reCAPTCHA + פלטפורמת YouTube מספקת „מצב מוגבל” שמסתיר תוכן שעשוי להתאים למבוגרים בלבד. + הצגת תוכן שעלול להיות בלתי הולם לילדים עקב מגבלת גיל (כגון 18+). \ No newline at end of file From efab05dcfcea93a071389d7683a0d45f545e312b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 25 Oct 2020 09:19:50 +0000 Subject: [PATCH 020/231] Translated using Weblate (Swedish) Currently translated at 93.2% (562 of 603 strings) --- app/src/main/res/values-sv/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 8bc782d94..4730e0238 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -144,9 +144,9 @@ Ljud Försök igen Bevilja åtkomst till lagringsutrymme först - K + T. mn - B + Mrd. Inga prenumeranter %s prenumerant From eaea60e0cb210f1e10d653f0b8ecaeecbccb0613 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Sun, 25 Oct 2020 13:48:52 +0000 Subject: [PATCH 021/231] Translated using Weblate (Croatian) Currently translated at 90.5% (546 of 603 strings) --- app/src/main/res/values-hr/strings.xml | 67 ++++++++++++++++---------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index a34b61ca1..32ceff403 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -4,7 +4,7 @@ \n %1$s pregleda Objavljeno %1$s - Reproduktor za stream nije pronađen. Želite li instalirati VLC? + Reproduktor za stream nije pronađen. Instalirati VLC\? Instaliraj Poništi Otvori u pregledniku @@ -13,7 +13,7 @@ Preuzimanje Pretraživanje Postavke - Jeste li mislili: %1$s\? + Jeste li mislili „%1$s”\? Podijeli putem Izaberi pretraživač rotacija @@ -68,14 +68,14 @@ Prikaži \'Sljedeće\' i \'Slične\' videozapise URL nije podržan Zadani jezik sadržaja - Video i zvuk + Video i audio Skočni prozor Izgled Drugo Reprodukcija u pozadini Reproduciram u skočnom prozoru Sadržaj - Prikaži eksplicitni sadržaj + Prikaži dobno ograničeni sadržaj Prikaži dobno ograničeni videozapis. Buduće promjene moguće je postaviti u postavkama. Uživo Preuzimanja @@ -105,7 +105,7 @@ Aplikacija/UI se srušio Oprostite, ovo se nije trebalo dogoditi. Prijavi pogrešku putem e-maila - Oprostite, neke greške su se dogodile. + Žao nam je, došlo je do neke greške. Prijavi Informacije: Što se dogodilo: @@ -168,7 +168,7 @@ O Doprinositelji Licence - Besplatna i lagana YouTube aplikacija za Android. + Besplatna i mala YouTube aplikacija za Android. Pogledaj na GitHubu Licenca za NewPipe Ako imate ideja za prijevod, promjene u dizajnu, čišćenje koda ili neke veće promjene u kodu, pomoć je uvijek dobro došla. Što više radimo, to bolji postajemo! @@ -185,7 +185,7 @@ Obavijesti za NewPipe pozadinske i skočne reproduktore Reproduktor Ponašanje - Povijest & predmemorija + Povijest i predmemorija Popis naslova Poništi Nema rezultata @@ -209,14 +209,14 @@ %s videa Stavka je izbrisana - U redu čekanja za reprod. u pozadini + Stavljeno u popis izvođenja playera u pozadini Reproduciraj sve Nije moguće reproducirati ovaj stream Dogodila se neoporavljiva pogreška reproduktora Oporavljanje od pogreške reproduktora Prikaži savjet za držanje Prikažite savjet kada je pritisnut gumb za pozadinsku ili skočnu reprodukciju na stranici detalja videozapisa - U redu čekanja za skočnu reprodukciju + Stavljeno u popis izvođenja playera u skočnom prozoru Želite li izbrisati ovu stavku iz povijesti pretraživanja? Sadržaj Prazna stranica @@ -234,13 +234,13 @@ Ukloni Detalji Postavke zvuka - Zadržite za dodavanje u red čekanja + Drži pritisnuto za dodavanje u popis izvođenja [Nepoznato] Doniraj Web stranica Ovdje započni reprodukciju Započni reprodukciju u pozadini - Započni reprodukciju u skočnom prozoru + Reproduciraj u skočnom prozoru Otvori ladicu Zatvori ladicu Nešto će se uskoro pojaviti :D @@ -353,7 +353,7 @@ Ograniči rezoluciju tijekom korištenja mobilnih podataka Nijedan Reproduktor za stream nije pronađen (možete instalirati VLC za reprodukciju). - Preuzmite datoteku za stream + Preuzmi datoteku streama Koristi brzo netočno premotavanje Netočno premotavanje omogućava reproduktoru da premota na mjesto brže uz manju preciznost. Premotavanje od 5, 15 ili 25 sekundi s ovime nije moguće. Otkaži pretplatu @@ -370,7 +370,7 @@ Lista Rešetka Promijeni prikaz - NewPipe dostupno ažuriranje! + Dostupna je nova verzija za NewPipe! Dodirnite za preuzimanje Preuzimanje nije uspjelo Preuzimanje gotovo @@ -378,8 +378,8 @@ Isključite kako biste spriječili učitavanje sličica, spremanje podataka i korištenja memorije. Promjene čiste predmemoriju i predmemoriju slika. Uklonite sve podatke iz privremenih web-stranica Metapodaci su izbrisani - Automatski dodaj u red sljedeće strujanje - Automatsko dodavanje povezanog videozapisa tijekom reprodukcije posljednjeg videozapisa u neponavljajućem redu + Automatski dodaj sljedeći stream u popisa izvođenja + Nastavi završavati (ne ponavljajući) popis izvođenja dodavanjem povezanog streama Kontrola glasnoće pomoću gesti Koristi gesture za kontrolu glasnoće Kontrola svjetline pomoću gesti @@ -391,10 +391,10 @@ Preuzimanje na vanjsku SD karticu nije moguće. Ponovo postaviti lokaciju mape za preuzimanje\? Vanjski playeri ne podržavaju ove vrste veza Nije pronađen nijedan videozapis - Nije pronađen nijedan zvuk + Nije pronađen nijedan audio zapis Nema takve datoteke/izvora sadržaja Datoteka ne postoji ili joj nedostaje dopuštenje za čitanje ili pisanje - Nema dostupnih videozapisa za preuzimanje + Nema dostupnih zapisa za preuzimanje Neuspjelo čitanje spremljenih kartica, stoga se koriste zadane Vratiti zadane Želite li vratiti zadane postavke\? @@ -416,7 +416,7 @@ \n4. Kopirajte URL profila na koji ste preusmjereni. brzina Visina tona - Prekini vezu (može uzrokovati izobličenje) + Odspoji (može prouzročiti izobličenje) Minimiziraj prilikom mjenjanje aplikacija Radnja prilikom prebacivanja na drugu aplikaciju iz glavnog videoplayer-a — %s Minimiziraj na pozadinski player @@ -426,9 +426,9 @@ Gotovo Na čekanju pauzirano - Na redu za čekanje + stavljeno u popis izvođenja naknadna obrada - Red + Popis izvođenja Sustav je odbio radnju %s preuzimanja dovršeno Generirajte jedinstveni naziv @@ -451,7 +451,7 @@ Maksimalnih ponovnih pokušaja Maksimalni broj pokušaja prije poništavanja preuzimanja Prekini na mrežama s ograničenim prometom - Preuzimanja koja se ne mogu zaustaviti ponovno će se pokrenuti + Korisno pri prelasku na mobilne podatke, iako se neka preuzimanja ne mogu obustaviti Prikaži komentare Onemogućite da biste prestali prikazivati komentare Automatska reprodukcija @@ -461,7 +461,8 @@ NewPipe je copyleft libre software: možete ga koristiti, proučavati i poboljšavati po volji. Konkretno, možete ga redistribuirati i / ili modificirati pod uvjetima GNU opće javne licence koju je objavila Free Software Foundation, bilo verzije 3 Licence, ili (po vašem izboru) bilo koje kasnije verzije. Projekt NewPipe ozbiljno shvaća vašu privatnost. Stoga aplikacija ne prikuplja nikakve podatke bez vašeg pristanka. \nNewPipe pravila o privatnosti detaljno objašnjavaju koji se podaci šalju i pohranjuju kada šaljete izvješće o padu aplikacije. - Kako bismo se uskladili s Europskom općom uredbom o zaštiti podataka (GDPR), upozoravamo vas na politiku privatnosti tvrtke NewPipe. Pažljivo ga pročitajte. Morate ga prihvatiti da nam pošaljete izvješća o pogreškama. + Kako bismo se uskladili s Europskom općom uredbom o zaštiti podataka (GDPR), upozoravamo vas na politiku privatnosti tvrtke NewPipe. Pažljivo ga pročitajte. +\nZa slanje izvješća o pogreškama potrebno je prihvatiti politiku privatnosti. Nastavi reprodukciju Vrati zadnji položaj reprodukcije Pozicije na popisima @@ -479,7 +480,7 @@ Obriši sve pozicije reprodukcije Obriši sve pozicije reprodukcije\? Nitko ne gleda - NItko ne sluša + Nitko ne sluša Jezik će se promjeniti nakon ponovnog pokretanja aplikacije. Zadani Kiosk Podržani su samo HTTP URL-ovi @@ -515,7 +516,7 @@ Napravio %s Obavijest Nikad - Ograniči red preuzimanja + Ograniči popis preuzimanja Koristi SAF Ukloni pregledano Ukloni pogledane videozapise\? @@ -550,6 +551,22 @@ Promijenite mape za preuzimanje kako bi stupile na snagu Prikazuju se rezultati za: %s Nije moguće prepoznati URL. Želite li otvoriti u drugoj aplikaciji\? - + Promijeni omjer minijature na 1:1 Učitavam + Istovremeno se pokreće jedno preuzimanje + Dodano u popis izvođenja + Dodaj u popis izvođenja + Popis izvođenja + Automatski popis izvođenja + Popis izvođenja aktivnog playera će se zamijeniti + Prebacivanje s jednog playera na drugi može zamijeniti popisa izvođenja + Pitaj prije pražnjenja popisa izvođenja + + %s slušatelj + %s slušatelja + %s slušatelja + + nije moguće prepisati datoteku + Promijeni omjer prikazane minijature videa u obavijesti iz 16:9 na 1:1 (može prouzročiti izobličenja) + U kompaktnom prikazu obavijesti mogu se odabrati najviše 3 radnje! \ No newline at end of file From 7c1028df5d48d6d97ffecbac955510644a2ba030 Mon Sep 17 00:00:00 2001 From: Azizov Aga <895238489@e2t.link> Date: Sat, 24 Oct 2020 12:23:04 +0000 Subject: [PATCH 022/231] Translated using Weblate (Azerbaijani) Currently translated at 26.5% (160 of 603 strings) --- app/src/main/res/values-az/strings.xml | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index d586d0980..0ce733267 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -110,4 +110,32 @@ Abunəlik yenilənmədi Abunəlik dəyişdirilmədi Nəticələr göstərilir: %s + Kanallar + Kanal + %s tərəfindən + \"Youtube\"un \"Məhdudiyyətli Rejimi\"ni aktivləşdir + Yaş limiti olduğuna görə (məs. 18+) böyük ehtimal uşaqlar üçün uyğun olmayan məzmunu göstər. + Yaş məhdudiyyətli məzmunu göstər + Məzmun + Ani pəncərə növbəyə salındı + Fon pleyeri növbəyə salındı + Ani pəncərədə oxudulur + Fonda oxudulur + Bildiriş + Yeniləmələr + Sazlama + Digər + Görünüş + Ani pəncərə + Tarix və keş + Video və səs + Davranış + Pleyer + İlkin məzmun dili + Xidmət + Məzmun üçün ilkin ölkə + URL tanınmadı. Başqa bir tətbiq ilə açılsın\? + Dəstəklənməyən URL + \"Əlavə etmək üçün basılı tutun\" məsləhətini göstər + \"Növbəti\" və \"Bənzər\" videoları göstər \ No newline at end of file From 9b0996fade61ec30f558c1a0b790144d8774d94d Mon Sep 17 00:00:00 2001 From: Edoardo Regni Date: Sun, 25 Oct 2020 14:08:09 +0000 Subject: [PATCH 023/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 99.8% (602 of 603 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 256 ++++++++++++++++++--- 1 file changed, 219 insertions(+), 37 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index d684f6ca8..57b3dd7d4 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -1,6 +1,7 @@ - Tik op zoeken voor te beginnen + Tik op \"Zoeken\" om te beginnen +\n %1$s keer bekeken Gepubliceerd op %1$s Er is geen videospeler met streamondersteuning gevonden. Wilt u VLC installeren\? @@ -14,7 +15,7 @@ Streambestand downloaden Zoeken Instellingen - Bedoelde je: %1$s\? + Bedoelde je \"%1$s\"\? Delen met Kies browser rotatie @@ -35,7 +36,7 @@ Achtergrond Pop-up Toevoegen aan - Downloadlocatie voor video’s + Download locatie voor video’s Gedownloade videobestanden worden hier opgeslaan Kies de downloadlocatie voor videobestanden Downloadmap voor audio @@ -59,7 +60,7 @@ Donker Zwart Snel, minder exact spoelen gebruiken - Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie + Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie. 5, 15 en 25 seconden werken niet. Miniatuurvoorbeelden laden Schakel dit uit voor het laden van miniatuurvoorbeelden te verhinderen; dit bespaart mobiele gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache. Afbeeldingscache gewist @@ -67,29 +68,29 @@ Alle gecachete webpagina-gegevens wissen Metagegevens-cache gewist Volgende stream automatisch in wachtrij plaatsen - Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst + Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst Veegbesturing - Gebruikt vegen voor de helderheid en het volume van de speler aan te passen + Gebruik gebaren om de helderheid en het volume van de speler aan te passen Zoeksuggesties Toon suggesties bij zoeken Zoekgeschiedenis Sla zoekopdrachten lokaal op - Geschiedenis & cache + Geschiedenis bekijken Kijkgeschiedenis bijhouden - Hervat bij focus - Ga verder met afspelen na onderbrekingen (zoals telefoongesprekken) + Hervat afspelen + Ga verder met afspelen na onderbrekingen (b.v. telefoongesprekken) Downloaden Toont ‘Volgende’ en ‘Vergelijkbare’ video’s Toont tip ‘Ingedrukt houden voor toe te voegen’ - Toont tip wanneer dat den achtergrond- of pop-upknop wordt ingedrukt op de videogegevenspagina + Toon tip als de achtergrond- of pop-up knop wordt ingedrukt in de video \"Details:\" URL wordt niet ondersteund Standaardinhoudsland Dienst Standaardtaal voor inhoud Speler Gedrag - Video & audio - Geschiedenis & cache + Video en audio + Geschiedenis en cache Pop-up Uiterlijk Overige @@ -99,9 +100,9 @@ Toegevoegd aan wachtrij voor achtergrondspeler Toegevoegd aan wachtrij voor pop-upspeler Inhoud - Inhoud met leeftijdsbeperking + Toon inhoud met leeftijdsbeperking Toont video met leeftijdsbeperking. Toelaten van deze soort video’s kan ingeschakeld worden in de Instellingen. - LIVE + Live Downloads Downloads Foutrapport @@ -158,22 +159,22 @@ 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 + Meldt deze fout via e-mail + Sorry, er is iets fout gegaan. + Melden Info: Wat is der gebeurd: - Wat:\\nVerzoek:\\nTaal van inhoud:\\nDienst:\\nTijd in GMT:\\nPakket:\\nVersie:\\nVersie van besturingssysteem: + Wat:\\nVerzoek:\\nTaal van inhoud:\\nLand:\\nTaal van Applicatie:\\nDienst:\\nGMT tijd:\\nPakket:\\nVersie:\\nVersie:\\OS versie: Uw opmerking (in het Engels): Details: Videovoorbeeldminiatuur - Videovoorbeeldminiatuur + Speel video, tijd: 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 + Foutrapport Gebruikersrapport Geen resultaten Niks te zien @@ -183,8 +184,8 @@ Video Geluid Opnieuw proberen - Toegang tot opslag geweigerd - K + Geef eerst toegang tot opslag + k M B Geen abonnees @@ -224,8 +225,9 @@ Tik voor meer informatie Efkens geduld… Gekopieerd naar klembord - Kies een beschikbare downloadmap - Deze toestemming is vereist voor te openen in pop-upmodus + Kies een beschikbare download map + Deze toestemming is vereist om +\nte openen in pop-up modus reCAPTCHA-uitdaging reCAPTCHA-uitdaging gevraagd Download @@ -250,7 +252,7 @@ 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 word door vrijwilligers in hunne vrijen tijd ontwikkeld voor u de beste ervaring te brengen. Geefd iets terug zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl da’ ze van hun taske koffie genieten. + NewPipe wordt door vrijwilligers in hun vrije tijd ontwikkeld om jou de beste ervaring te brengen. Geef wat terug zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl ze van hun kopje koffie genieten. Teruggeven Website Bezoekt de website van NewPipe voor meer informatie en ’t laatste nieuws. @@ -290,10 +292,10 @@ Verwijderen Details Audio-instellingen - Houdt ingedrukt voor toe te voegen aan wachtrij + Houd ingedrukt om toe te voegen aan wachtrij Begint hier met afspelen Begint met afspelen in de achtergrond - Begint met afspelen in nieuwe pop-up + Afspelen in pop-up Menu openen Menu sluiten Hier zal der binnenkort iets verschijnen ;D @@ -358,7 +360,7 @@ Toon Ontkoppelen (kan ruis veroorzaken) Kijkgeschiedenis wissen - Verwijdert de geschiedenis van afgespeelde streams + Verwijdert de geschiedenis van bekeken video\'s en afspeelposities De ganse kijkgeschiedenis verwijderen\? Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen @@ -394,19 +396,19 @@ Nieuw tabblad Kiest een tabblad Veegbesturing voor volume - Gebruikt vegen voor het volume van de speler aan te passen + Gebruik gebaren om het volume van de speler aan te passen Veegbesturing voor helderheid - Gebruikt vegen voor de helderheid van de speler aan te passen + Gebruik gebaren om de helderheid van de speler aan te passen Updates Gebeurtenissen Bestand verwijderd Appupdatemelding Meldingen voor nieuwe versies van NewPipe Externe opslag niet beschikbaar - Downloaden naar externe SD-kaart is nog niet mogelijk. Downloadmap terug instellen\? - Standaardtabbladen worden gebruikt, fout bij het lezen van de opgeslagen tabbladen + Downloaden naar externe SD-kaart is niet mogelijk. Download map opnieuw instellen\? + Fout bij het lezen van de opgeslagen tabbladen, waardoor standaardtabbladen worden gebruikt Standaardinstellingen herstellen - Wilt ge de standaardinstellingen herstellen\? + Wil je de standaardinstellingen herstellen\? Aantal abonnees niet beschikbaar Welke tabbladen er worden weergegeven op de hoofdpagina Selectie @@ -418,7 +420,7 @@ Raster Auto Weergave wisselen - NewPipe-update beschikbaar! + NewPipe update is beschikbaar! Tikt voor te downloaden Voltooid gepauzeerd @@ -438,7 +440,7 @@ Het bestand kan niet aangemaakt worden De doelmap kan niet aangemaakt worden Toelating geweigerd door het systeem - Beveiligde verbinding is mislukt + Kon geen beveiligde verbinding opzetten Kon de server niet vinden Kan geen verbinding maken met de server De server verzendt geen gegevens @@ -448,14 +450,194 @@ Stoppen Maximaal aantal pogingen Maximaal aantal pogingen vooraleer dat de download wordt geannuleerd - Pauzeren bij overschakelen naar mobiele gegevens + Pauzeren bij mobiele data verbinding Nuttig bij het gebruik van mobiele data, hoewel sommige downloads niet uitgesteld kunnen worden Commentaren weergeven - Schakelt dit uit voor reacties niet meer weer te geven + Schakel dit uit om reacties te verbergen Automatisch afspelen Geen commentaren Kan commentaren niet laden Sluiten Vooruitgang verloren, omdat het bestand gedeletet werd Resultaten aan het tonen voor: %s + Afspeellijst pagina + Door %s + Gemaakt door %s + Kanaal avatar afbeelding + Deze inhoud wordt nog niet ondersteund door NewPipe. +\n +\nHopelijk zal dit bij een toekomstige versie ondersteund worden. + Denk je dat het laden van de feed te sloom is\? Zo ja, probeer snel laden in te schakelen (in de instellingen of door op onderstaande knop te drukken). +\n +\nNewPipe biedt twee strategieën aan voor het laden van de feed: +\n• Het hele abonnementskanaal ophalen, wat sloom maar compleet is. +\n• Een speciale feed ophalen, wat snel maar meestal incompleet is. +\n +\nHet verschil tussen de twee is dat de snelle meestal wat informatie mist, zoals de duur of type (live of een normale video) van het item en dat er mogelijk minder items zijn. +\n +\nYouTube is een voorbeeld van een service die deze snelle methode aanbiedt door zijn RSS-feed. +\n +\nDe keuze komt dus neer op wat je liever hebt: snelheid of precieze informatie. + Snelle modus uitschakelen + Snelle modus inschakelen + Beschikbaar in sommige services, het is meestal veel sneller, maar kan een beperkte hoeveelheid items en vaak onvolledige informatie (bijv. geen duur, item type, of live status) bevatten. + Uit speciale feed ophalen indien beschikbaar + Altijd updaten + Tijd na de laatste update voordat een abonnement als verouderd wordt beschouwd — %s + Drempel voor feed update + Feed + Toon enkel niet gegroepeerden abonnementen + Nieuw + Wilt u deze groep verwijderen\? + Lege groepsnaam + + %d geselecteerd + %d geselecteerd + + Geen abonnement geselecteerd + Selecteer abonnementen + Feed aan het verwerken… + Feed aan het laden… + Niet geladen: %d + Laatste update nieuws­feed: %s + Kanaalgroepen + + %d dag + %d dagen + + + %d uur + %d uren + + + %d minuut + %d minuten + + + %d seconde + %d seconden + + Door beperkingen van ExoPlayer is de zoekduur ingesteld op %d seconden + Ja, en deels bekeken video\'s + Video\'s die zijn bekeken voor, en na, ze werden toegevoegd aan de afspeellijst worden verwijderd. +\nBent u zeker\? Dit kan niet ongedaan gemaakt worden! + Verwijder bekeken video\'s\? + Verwijder bekeken + Systeem standaard + App taal + Kies een instantie + Het \'Storage Access Framework\' laat downloads naar een externe SD kaart toe. +\nNiet alle toestellen zijn compatibel + Gebruik SAF + Je zal gevraagd worden waar elke download op te slaan. +\nKies SAF als je wilt downloaden naar een externe SD-kaart + Vraag waar te downloaden + U wordt gevraagd waar elk bestand wordt opgeslagen + Pauzeer downloads + Downloads starten + Maximaal 1 bestand tegelijk zal worden gedownload + Limiteer de download wachtrij + %1$d downloads verwijderd + Verwijder gedownloade bestanden + Wilt u de downloadgeschiedenis of alle gedownloade bestanden verwijderen\? + Download geschiedenis verwijderen + Kan deze download niet herstellen + Verbinding time-out + Geen vrije ruimte meer op het apparaat + NewPipe werd gesloten terwijl het bezig was met het bestand + Er is al een download met deze naam bezig + Kan bestand niet overschrijven + Er bestaat al een bestand met deze naam + aan het herstellen + In afwachting + Nooit + Enkel via Wi-Fi + Automatisch afspelen — %s + Originele teksten van services zijn zichtbaar in stream items + Toon memory leaks + Automatisch gegenereerd (geen uploader gevonden) + Geluid aanzetten + Dempen + In wachtrij geplaatst + In wachtrij plaatsen + Speel wachtrij af + Meest geliked + Recent toegevoegd + Lokaal + De taal zal veranderen zodra de app opnieuw is opgestart. + Geen afspeellijst bladwijzers + Selecteer een afspeellijst + Standaard kiosk + Klaar + Tik op \"Klaar\" zodra opgelost + ∞ video\'s + 100+ video\'s + + %s luisteraar + %s luisteraars + + Niemand is aan het luisteren + + %s kijker + %s kijkers + + Niemand is aan het kijken + Toggle service, momenteel geselecteerd: + Controleer aub of er al een probleem bestaat dat uw crash beschrijft. Wanneer u dubbele tickets aanmaakt, neemt dit tijd van ons in beslag die we beter kunnen besteden aan het oplossen van het daadwerkelijke probleem. + In GitHub rapporteren + Kopieer opgemaakt rapport + Geef toestemming voor weergave over andere apps + Stream bestand downloaden + Hulp + Afspeelposities verwijderd. + Alle afspeelposities verwijderen\? + Verwijdert alle geschiedenis van afspeelposities + Verwijdert de geschiedenis van afspeelposities + Verwijder cookies die NewPipe opslaat wanneer u een reCAPTCHA oplost + reCAPTCHA cookies zijn verwijderd + Verwijder reCAPTCHA cookies + Artiesten + Albums + Nummers + Video\'s + Deze video heeft een leeftijdsbeperking. +\n +\nSchakel \"%1$s\" in bij de instellingen als u die wilt zien. + YouTube biedt een \"beperkte modes\" aan, dit verbergt mogelijk materiaal voor volwassenen. + YouTube \"beperkte modus\" aanzetten + Toon inhoud die mogelijk niet geschikt is voor kinderen omwille van een leeftijdslimiet (zoals 18+). + Notificatie + Kanaal bestaat al + Alleen HTTPS URL\'s worden ondersteund + Kon kanaal niet valideren + Kanaal URL invoeren + Kanaal toevoegen + Vind het kanaal dat je leuk vind op %s + Selecteer je favoriete PeerTube kanaal + PeerTube kanaal + Kon de URL niet herkennen. In een andere app openen\? + Wis data + Laat afspeeltijd in afspeellijst zien + Posities in lijst + Verder afspelen vanaf laatste positie + Afspelen hervatten + Volgende stream automatisch in wachtrij plaatsen + De actieve wachtrij wordt vervangen + Veranderen van één speler naar een andere kan jouw wachtrij vervangen + Vraag bevestiging alvorens de wachtrij te wissen + Duur voor-/achteruit spoelen + Niets + Aan het bufferen + Shuffle + Herhaal + Je kan maximaal drie acties selecteren om te tonen in de compacte notificatie! + Pas elke notificatie actie hieronder aan door er op te tikken. Selecteer tot drie acties die getoond worden in de compacte notificatie door gebruik te maken van de selectie vakjes aan de rechterkant. + Vijfde actie knop + Vierde actie knop + Derde actie knop + Tweede actie knop + Eerste actie knop + Schaal de miniatuurafbeelding van de video die getoond wordt in de notificatie van 16:9 naar 1:1 verhouding (kan vervorming creëren) + Schaal de miniatuurafbeelding naar verhouding 1:1 + Wijzig de download mappen \ No newline at end of file From 34bed47a525f5726b12ea545b05cdf6c50626aa3 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 25 Oct 2020 07:27:05 +0000 Subject: [PATCH 024/231] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-pt-rPT/strings.xml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 4d137a714..bdeec9a42 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -83,9 +83,9 @@ Descargas A processar… Gestos para controlo de volume - Este vídeo é de idade restrita. + Este vídeo é de restrita à idade. \n -\nPara o poder ver, tem que ativar \"Conteúdo com restrição de idade\" nas definições. +\nPara o poder ver, tem que ativar \"%1$s\" nas definições. Ver licença Ajuda Apenas pode usar URL no formato HTTPS @@ -95,7 +95,7 @@ Remover todas as posições de reprodução\? Trocar de vista Limitar fila de descargas - Conteúdo com restrição de idade + Mostrar conteúdo com restrição de idade O projeto NewPipe leva a sua privacidade muito a sério. Sendo assim, não recolhe quaisquer dados sem o seu consentimento. \nA polícia de privacidade do NewPipe explica, em detalhe, os tipos de dados enviados sempre que submete um relatório de erro. Ficheiro @@ -142,7 +142,7 @@ Partilhar Ver política de privacidade Ocorreu um erro compulsivo do reprodutor - Modo restrito do YouTube + Ligar o \"Modo Restringido\" do YouTube Pasta inexistente Tudo Bolas, isto não deveria ter acontecido. @@ -635,4 +635,12 @@ Primeiro botão de ação Ajustar miniatura de vídeo mostrada na notificação de 16:9 para 1:1 (pode introduzir distorções) Ajustar miniatura à proporção de 1:1 + Mostrar vazamentos de memória + Enfileirado + Pôr na fila + Limpar cookies que NewPipe armazena quando resolve um reCAPTCHA + Os cookies reCAPTCHA foram limpos + Limpar cookies reCAPTCHA + O YouTube fornece um \"Modo Restrito\" que oculta conteúdo potencialmente para adultos. + Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+). \ No newline at end of file From 256568d9666c8b6ff0c4b76d6112cd15abe2e3eb Mon Sep 17 00:00:00 2001 From: nautilusx Date: Fri, 23 Oct 2020 17:52:28 +0000 Subject: [PATCH 025/231] Translated using Weblate (German) Currently translated at 16.6% (6 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ --- fastlane/metadata/android/de/changelogs/955.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/de/changelogs/955.txt diff --git a/fastlane/metadata/android/de/changelogs/955.txt b/fastlane/metadata/android/de/changelogs/955.txt new file mode 100644 index 000000000..28817e77c --- /dev/null +++ b/fastlane/metadata/android/de/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Suche für einige Benutzer korrigiert +[YouTube] Zufällige Entschlüsselungsausnahmen korrigiert +[SoundCloud] URLs, die mit einem Schrägstrich enden, werden jetzt korrekt geparst From e8c0163153ac63695df59f20f899e2eb2e3a8879 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 23 Oct 2020 19:50:48 +0000 Subject: [PATCH 026/231] Translated using Weblate (Hebrew) Currently translated at 13.8% (5 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/ --- fastlane/metadata/android/he/changelogs/63.txt | 8 ++++++++ fastlane/metadata/android/he/changelogs/953.txt | 1 + fastlane/metadata/android/he/changelogs/955.txt | 3 +++ fastlane/metadata/android/he/full_description.txt | 1 + 4 files changed, 13 insertions(+) create mode 100644 fastlane/metadata/android/he/changelogs/63.txt create mode 100644 fastlane/metadata/android/he/changelogs/953.txt create mode 100644 fastlane/metadata/android/he/changelogs/955.txt create mode 100644 fastlane/metadata/android/he/full_description.txt diff --git a/fastlane/metadata/android/he/changelogs/63.txt b/fastlane/metadata/android/he/changelogs/63.txt new file mode 100644 index 000000000..29d11dc97 --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/63.txt @@ -0,0 +1,8 @@ +### שיפורים +- ייבוא/ייצוא הגדרות #1333 +- הפחתת ציור יתר (שיפור בביצועים) #1371 +- שיפורי קוד קטנים #1375 +- נוספו כל מיני עניינים על GDPR‏ #1420 + +### תיקונים +- מנגנון ההורדה: תוקנה קריסה בעת טעינת הורדות שלא הסתיימו מקובצי ‎.giga‏ #1407 diff --git a/fastlane/metadata/android/he/changelogs/953.txt b/fastlane/metadata/android/he/changelogs/953.txt new file mode 100644 index 000000000..32b969fbc --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/953.txt @@ -0,0 +1 @@ +תוקן החילוץ של פונקציית הפענוח של YouTube. diff --git a/fastlane/metadata/android/he/changelogs/955.txt b/fastlane/metadata/android/he/changelogs/955.txt new file mode 100644 index 000000000..7d129f052 --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] תוקן החיפוש אצל חלק מהמשתמשים +[YouTube] תוקנו חריגות פענוח הצפנה אקראיות +[SoundCloud] כתובות שמסתיימות בלוכסן מפוענחות כראוי diff --git a/fastlane/metadata/android/he/full_description.txt b/fastlane/metadata/android/he/full_description.txt new file mode 100644 index 000000000..7d3b02757 --- /dev/null +++ b/fastlane/metadata/android/he/full_description.txt @@ -0,0 +1 @@ +ב־NewPipe לא נעשה שימוש באף ספרייה מסביבת הריצה של Google או ב־API של YouTube. היישומון מנתח את האתר כדי לקבל את המידע הנדרש. לכן ניתן להשתמש ביישומון הזה במכשירים בלי התקנה של שירותי Google‏ (Services). כמו כן, אין לך צורך בחשבון YouTube כדי להשתמש ב־NewPipe וזה יישומון חופשי ובקוד פתוח. From 9b893d841d0feaa1fbf6870c45b3eb835f6f6df7 Mon Sep 17 00:00:00 2001 From: SeungCheol Han Date: Sat, 24 Oct 2020 03:55:01 +0000 Subject: [PATCH 027/231] Translated using Weblate (Korean) Currently translated at 5.5% (2 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ko/ --- fastlane/metadata/android/ko/full_description.txt | 1 + fastlane/metadata/android/ko/short_description.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/ko/full_description.txt create mode 100644 fastlane/metadata/android/ko/short_description.txt diff --git a/fastlane/metadata/android/ko/full_description.txt b/fastlane/metadata/android/ko/full_description.txt new file mode 100644 index 000000000..7b6a6ae65 --- /dev/null +++ b/fastlane/metadata/android/ko/full_description.txt @@ -0,0 +1 @@ +NewPipe는 구글 프레임워크 러이브러리나 유튜브 API를 전혀 사용하지 않습니다. 대신에 NewPipe가 필요한 정보를 위해 웹싸이트를 파싱만 합니다. 따라서 구글 서비스가 설치되지 않은 어떤 디바이스에서도 이 앱을 사용할 수 있습니다. 또한, NewPipe 사용을 위해 유튜브 계정도 필요없는, 완벽한 오픈소스입니다. diff --git a/fastlane/metadata/android/ko/short_description.txt b/fastlane/metadata/android/ko/short_description.txt new file mode 100644 index 000000000..158bf774a --- /dev/null +++ b/fastlane/metadata/android/ko/short_description.txt @@ -0,0 +1 @@ +무료이면서 가볍게 동작하는 안드로이드용 유튜브 앱. From 8c29760d93b3e1b172cdd9494b081b9a9c752b97 Mon Sep 17 00:00:00 2001 From: Eric Date: Sat, 24 Oct 2020 05:17:33 +0000 Subject: [PATCH 028/231] Translated using Weblate (Chinese (Simplified)) Currently translated at 63.8% (23 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/ --- fastlane/metadata/android/zh_Hans/changelogs/955.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/zh_Hans/changelogs/955.txt diff --git a/fastlane/metadata/android/zh_Hans/changelogs/955.txt b/fastlane/metadata/android/zh_Hans/changelogs/955.txt new file mode 100644 index 000000000..591e35711 --- /dev/null +++ b/fastlane/metadata/android/zh_Hans/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] 修复了一些用户遇到的搜索问题 +[YouTube] 修复随机出现的解密错误 +[SoundCloud] 以斜杠结尾的url现在可以正确解析了 From 9d7d08927932c28a7be20dc3d36192f83564f84e Mon Sep 17 00:00:00 2001 From: Gontzal Manuel Pujana Onaindia Date: Sun, 25 Oct 2020 16:12:15 +0000 Subject: [PATCH 029/231] Translated using Weblate (Basque) Currently translated at 99.3% (599 of 603 strings) --- app/src/main/res/values-eu/strings.xml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 23257371d..ea88abf09 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -606,7 +606,7 @@ Erreprodukzioa automatikoki hasi — %s Erakutsi memoria galerak Ilara erreproduzitu - Oraindik ez dago playlist-en laster markarik + Oraindik ez dago erreprodukzio-zerrenda laster-markarik Playlist bat aukeratu Mesedez, egiaztatu jada zure arazoarekin diskusiorik sortuta badagoen. Sarrera duplikatuak daudenean, arazoa ebazteko erabili dezakegun denbora galtzen ari gara. Formatodun erreportea kopiatu @@ -619,9 +619,9 @@ Piztu YouTube-ren \"Modu Murriztua\" Jakinarazpena Ezin izan da URL-a ezagutu. Beste aplikazio batekin ireki\? - Auto-ilara hasi + Auto-ilara Erreprodukzio ilara aktiboa ordezkatuko da - Erreproduzitzaile batetik beste batera aldatzeak ilara ordezkatu ahal luke + Erreproduzitzaile batetik beste batera aldatzeak ilara ordezkatu dezake Konfirmazioa eskatu ilaratik ezabatu baino lehenago Ezer ez Buffering @@ -633,7 +633,9 @@ Hirugarren ekintzaren botoia Bigarren ekintzaren botoia Lehenego ekintzaren botoia - Jakinarazpenetan erakusten den bideo miniaturaren formatu-ratioa 16:9tik 1:1era eskalatu (distortsioak sor ditzake) + Eskalatu jakinarazpenetan erakusten den bideo miniaturaren formatu-ratioa 16:9tik 1:1era (distortsioak sor ditzake) Miniatura 1:1 formatu-ratiora eskalatu - %s-ren erantzunak erakusten + %s bilaketaren erantzunak erakusten + Ilaran jarri da + Jarri ilaran \ No newline at end of file From 886f6c721c94a34e70ab459921ef75381b310586 Mon Sep 17 00:00:00 2001 From: zmni Date: Sun, 25 Oct 2020 18:42:54 +0000 Subject: [PATCH 030/231] Translated using Weblate (Indonesian) Currently translated at 99.8% (602 of 603 strings) --- app/src/main/res/values-in/strings.xml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 8a24b4d75..68eaa80dc 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -41,7 +41,7 @@ Lainnya Memutar di latar belakang Konten - Konten yang dibatasi usia + Tampilkan konten yang dibatasi usia Tampilkan video yang dibatasi usia. Bisa diubah nanti dari pengaturan. Galat jaringan Tidak bisa memuat semua thumbnail @@ -566,7 +566,7 @@ Buang ditonton Video ini dibatasi usia. \n -\nAktifkan \"Konten yang dibatasi usia\" di dalam pengaturan jika anda ingin melihatnya. +\nAktifkan \"%1$s\" di dalam pengaturan jika anda ingin melihatnya. Konten ini belum didukung oleh NewPipe. \n \nSemoga akan didukung pada versi berikutnya. @@ -588,7 +588,7 @@ \nJadi pilihlah yang sesuai yang kamu inginkan: kecepatan atau kelengkapan informasi. Teks asli dari layanan akan tampil pada item stream Tampilkan waktu yang lalu sebenarnya pada item - Mode terbatas Youtube + Tampilkan \"Mode Terbatas\" Youtube Oleh %s Dibuat oleh %s Thumbnail avatar kanal @@ -623,4 +623,11 @@ Tombol tindakan pertama Ubah ukuran thumbnail yang ditampilkan di notifikasi dari rasio aspek 16:9 ke 1:1 (mungkin terdistorsi) Ubah ukuran thumbnail ke rasio aspek 1:1 + Tampilkan kebocoran memori + Ditambahkan + Tambahkan + Hapus kuki yang disimpan oleh NewPipe saat anda memecahkan reCAPTCHA + Kuki reCAPTCHA telah dihapus + Hapus kuki reCAPTCHA + YouTube menyediakan \"Mode Terbatas\" yang menyembunyikan video konten dewasa. \ No newline at end of file From 0ce6d4fe926785d2cd5b6cbb3a9c848dc75a3ba4 Mon Sep 17 00:00:00 2001 From: Edoardo Regni Date: Sun, 25 Oct 2020 16:11:31 +0000 Subject: [PATCH 031/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 99.8% (602 of 603 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 62 +++++++++++----------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 57b3dd7d4..6d4bb913c 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -39,22 +39,22 @@ Download locatie voor video’s Gedownloade videobestanden worden hier opgeslaan Kies de downloadlocatie voor videobestanden - Downloadmap voor audio + Audio download map Gedownloade audiobestanden worden hier opgeslaan Kies de downloadlocatie voor audiobestanden Automatisch afspelen - Speelt video’s af wanneer dat NewPipe vanuit een anderen app word geopend - Standaardresolutie - Standaardresolutie voor pop-up + Speelt video’s af wanneer NewPipe vanuit een andere app word geopend + Standaard resolutie + Standaard resolutie voor pop-up Hogere resoluties weergeven Slechts enkele toestellen kunnen 2K- en 4K-video\'s afspelen Afspelen met Kodi Wilt u de missende Kore-app installeren\? Toon “Afspelen met Kodi”-optie - Toont een optie voor ne video op een Kodi media center af te spelen + Toont een optie om video af te spelen op een Kodi media center Audio - Standaardaudioformaat - Standaardvideoformaat + Standaard audio formaat + Standaard video formaat Thema Licht Donker @@ -76,17 +76,17 @@ Zoekgeschiedenis Sla zoekopdrachten lokaal op Geschiedenis bekijken - Kijkgeschiedenis bijhouden + Geschiedenis bekeken video\'s bijhouden Hervat afspelen Ga verder met afspelen na onderbrekingen (b.v. telefoongesprekken) Downloaden Toont ‘Volgende’ en ‘Vergelijkbare’ video’s - Toont tip ‘Ingedrukt houden voor toe te voegen’ + Toon tip ‘Ingedrukt houden om toe te voegen’ Toon tip als de achtergrond- of pop-up knop wordt ingedrukt in de video \"Details:\" URL wordt niet ondersteund - Standaardinhoudsland + Standaard land Dienst - Standaardtaal voor inhoud + Standaard taal voor inhoud Speler Gedrag Video en audio @@ -179,8 +179,8 @@ Geen resultaten Niks te zien Versleep voor de volgorde te wijzigen - Kan downloadmap ‘%1$s’ niet aanmaken - Downloadmap ‘%1$s’ aangemaakt + Kan download map ‘%1$s’ niet aanmaken + Download map ‘%1$s’ aangemaakt Video Geluid Opnieuw proberen @@ -267,7 +267,7 @@ Geschiedenis gewist Item verwijderd Wilt ge dit item uit uw zoekgeschiedenis verwijderen? - Wilt ge dit item uit uw kijkgeschiedenis verwijderen? + Wil je dit item uit afspeel geschiedenis verwijderen\? Wilt ge alle items uit uw geschiedenis verwijderen? Laatst afgespeeld Meest afgespeeld @@ -300,7 +300,7 @@ Menu sluiten Hier zal der binnenkort iets verschijnen ;D Voorkeursactie voor openen - Standaardactie bij openen van inhoud — %s + Standaard actie bij openen van inhoud — %s Videospeler Achtergrondspeler Pop-upspeler @@ -326,7 +326,7 @@ Inzoomen Automatisch gegenereerd Bijschriften - Bijschriftgrootte en achtergrondstijlen wijzigen. Vereist nen herstart van den app. + Bijschrift grootte en achtergrond stijlen wijzigen. Vereist herstart van de app. Het monitoren van geheugenlekken kan dervoor zorgen da’ den app nie’ goe meer reageerd Out-of-lifecycle-fouten melden Forceerd het melden van nie-bezorgbare Rx-uitzonderingen die gebeuren buiten fragments- of activiteitscyclus @@ -359,13 +359,13 @@ Tempo Toon Ontkoppelen (kan ruis veroorzaken) - Kijkgeschiedenis wissen + Wissen afspeel geschiedenis Verwijdert de geschiedenis van bekeken video\'s en afspeelposities - De ganse kijkgeschiedenis verwijderen\? - Kijkgeschiedenis verwijderd. + Alle afspeel geschiedenis verwijderen\? + Afspeel geschiedenis verwijderd. Zoekgeschiedenis wissen Verwijdert de gebruikte zoektermen - De ganse zoekgeschiedenis verwijderen\? + De hele zoekgeschiedenis verwijderen\? Zoekgeschiedenis verwijderd. 1 item verwijderd. NewPipe is vrije software: ge kunt het gebruiken, bestuderen, delen en verbeteren zoveel als dat ge maar wilt. Ge kunt het terug uitgeven en/of aanpassen volgens de voorwaarden van de GNU General Public License, gepubliceerd door de Free Software Foundation, versie 3 van de licentie, of (indien gewenst) eender welke latere versie. @@ -380,14 +380,14 @@ Weigeren Onbeperkt Resolutie beperken bij gebruik van mobiele gegevens - Minimaliseren bij overschakelen naar anderen app - Actie bij overschakelen van videospeler naar anderen app — %s + Minimaliseren bij overschakelen naar andere app + Actie bij overschakelen van videospeler naar andere app — %s Geen Afspelen in achtergrond Afspelen in pop-up Doorspoelen tijdens stilte Stap - Standaardwaarden herstellen + Resetten Kanalen Afspeellijsten Nummers @@ -406,16 +406,16 @@ Meldingen voor nieuwe versies van NewPipe Externe opslag niet beschikbaar Downloaden naar externe SD-kaart is niet mogelijk. Download map opnieuw instellen\? - Fout bij het lezen van de opgeslagen tabbladen, waardoor standaardtabbladen worden gebruikt - Standaardinstellingen herstellen - Wil je de standaardinstellingen herstellen\? + Fout bij het lezen van de opgeslagen tabbladen, waardoor standaard tabbladen worden gebruikt + Standaard instellingen herstellen + Wil je de standaard instellingen herstellen\? Aantal abonnees niet beschikbaar Welke tabbladen er worden weergegeven op de hoofdpagina Selectie Conferenties Updates - Toont een melding voor den app bij te werken wanneer dat er een nieuwe versie beschikbaar is - Lijstweergavemodus + Toon een melding om de app bij te werken indien er een nieuwe versie beschikbaar is + Lijstweergave modus Lijst Raster Auto @@ -592,7 +592,7 @@ Afspeelposities verwijderd. Alle afspeelposities verwijderen\? Verwijdert alle geschiedenis van afspeelposities - Verwijdert de geschiedenis van afspeelposities + Verwijder geschiedenis afspeelposities Verwijder cookies die NewPipe opslaat wanneer u een reCAPTCHA oplost reCAPTCHA cookies zijn verwijderd Verwijder reCAPTCHA cookies @@ -624,7 +624,7 @@ Volgende stream automatisch in wachtrij plaatsen De actieve wachtrij wordt vervangen Veranderen van één speler naar een andere kan jouw wachtrij vervangen - Vraag bevestiging alvorens de wachtrij te wissen + Vraag bevestiging om wachtrij te wissen Duur voor-/achteruit spoelen Niets Aan het bufferen @@ -638,6 +638,6 @@ Tweede actie knop Eerste actie knop Schaal de miniatuurafbeelding van de video die getoond wordt in de notificatie van 16:9 naar 1:1 verhouding (kan vervorming creëren) - Schaal de miniatuurafbeelding naar verhouding 1:1 + Schaal miniatuurafbeelding naar verhouding 1:1 Wijzig de download mappen \ No newline at end of file From e406b6f780131875d80218eb214d736af3196f87 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 18 Oct 2020 09:50:42 +0200 Subject: [PATCH 032/231] Fix NullPointerException in queue handling --- .../fragments/detail/VideoDetailFragment.java | 45 ++++++++++--------- .../newpipe/player/playqueue/PlayQueue.java | 9 ++-- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 536c3b35c..f41fbbb72 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1728,32 +1728,34 @@ public class VideoDetailFragment @Override public void onQueueUpdate(final PlayQueue queue) { playQueue = queue; - // This should be the only place where we push data to stack. - // It will allow to have live instance of PlayQueue with actual information about - // deleted/added items inside Channel/Playlist queue and makes possible to have - // a history of played items - if ((stack.isEmpty() || !stack.peek().getPlayQueue().equals(queue) - && queue.getItem() != null)) { - stack.push(new StackItem(queue.getItem().getServiceId(), - queue.getItem().getUrl(), - queue.getItem().getTitle(), - queue)); - } else { - final StackItem stackWithQueue = findQueueInStack(queue); - if (stackWithQueue != null) { - // On every MainPlayer service's destroy() playQueue gets disposed and - // no longer able to track progress. That's why we update our cached disposed - // queue with the new one that is active and have the same history. - // Without that the cached playQueue will have an old recovery position - stackWithQueue.setPlayQueue(queue); - } - } - if (DEBUG) { Log.d(TAG, "onQueueUpdate() called with: serviceId = [" + serviceId + "], videoUrl = [" + url + "], name = [" + name + "], playQueue = [" + playQueue + "]"); } + + // This should be the only place where we push data to stack. + // It will allow to have live instance of PlayQueue with actual information about + // deleted/added items inside Channel/Playlist queue and makes possible to have + // a history of played items + @Nullable final StackItem stackPeek = stack.peek(); + if (stackPeek != null && stackPeek.getPlayQueue().equals(queue)) { + @Nullable final PlayQueueItem playQueueItem = queue.getItem(); + if (playQueueItem != null) { + stack.push(new StackItem(playQueueItem.getServiceId(), playQueueItem.getUrl(), + playQueueItem.getTitle(), queue)); + return; + } // else continue below + } + + @Nullable final StackItem stackWithQueue = findQueueInStack(queue); + if (stackWithQueue != null) { + // On every MainPlayer service's destroy() playQueue gets disposed and + // no longer able to track progress. That's why we update our cached disposed + // queue with the new one that is active and have the same history. + // Without that the cached playQueue will have an old recovery position + stackWithQueue.setPlayQueue(queue); + } } @Override @@ -2055,6 +2057,7 @@ public class VideoDetailFragment return url == null; } + @Nullable private StackItem findQueueInStack(final PlayQueue queue) { StackItem item = null; final Iterator iterator = stack.descendingIterator(); diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java index 8bef0b2e0..4f35f98f5 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java @@ -167,19 +167,20 @@ public abstract class PlayQueue implements Serializable { } /** - * @return the current item that should be played + * @return the current item that should be played, or null if the queue is empty */ + @Nullable public PlayQueueItem getItem() { return getItem(getIndex()); } /** * @param index the index of the item to return - * @return the item at the given index - * @throws IndexOutOfBoundsException + * @return the item at the given index, or null if the index is out of bounds */ + @Nullable public PlayQueueItem getItem(final int index) { - if (index < 0 || index >= streams.size() || streams.get(index) == null) { + if (index < 0 || index >= streams.size()) { return null; } return streams.get(index); From 0db44f6e3384b94eb56e4f8e899c0c9ecbc7afcf Mon Sep 17 00:00:00 2001 From: Bjorn Roesbeke Date: Mon, 26 Oct 2020 02:35:26 +0000 Subject: [PATCH 033/231] Translated using Weblate (Dutch) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-nl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6d5beb53f..97aa64efd 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -486,7 +486,7 @@ \nKies SAF als je wilt downloaden naar een externe SD-kaart Gebruik SAF Verwijder afspeelposities - Verwijder alle afspeelposities + Verwijdert alle afspeelposities Alle afspeelposities verwijderen\? Niemand is aan het kijken @@ -503,7 +503,7 @@ Duur voor-/achteruit spoelen PeerTube kanaal Selecteer je favorite PeerTube kanaal - Vind het kanaal dat je leuk vind op %s + Vind het kanaal dat je leuk vindt op %s Kanaal toevoegen Kanaal URL invoeren Kon kanaal niet valideren From 18bd910bf0250538aa9848dcdddb84a1f67558ba Mon Sep 17 00:00:00 2001 From: pjammo Date: Mon, 26 Oct 2020 10:43:44 +0000 Subject: [PATCH 034/231] Translated using Weblate (Italian) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-it/strings.xml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b58e9321b..a6ef35419 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -58,7 +58,7 @@ Impossibile impostare il menu di download I contenuti in diretta non sono ancora supportati Contenuti - Contenuti con Restrizioni di Età + Mostra Contenuti con Restrizioni di Età Mostra video con restrizioni di età. È possibile modificare questa opzione nelle Impostazioni. Tocca \"Cerca\" per iniziare \n @@ -305,7 +305,7 @@ A breve qualcosa apparirà qui ;D Debug Generato automaticamente - Il monitoraggio delle perdite di memoria potrebbe causare la mancata risposta dell\'applicazione durante il dumping dell\'heap + Il monitoraggio di memory leak potrebbe causare la mancata risposta dell\'applicazione durante il dumping dell\'heap Segnala Errori \"Out-of-lifecycle\" Forza la segnalazione di eccezioni Rx non consegnabili al di fuori del ciclo di vita dell\'attività dopo la chiusura Usa Ricerca Rapida (Imprecisa) @@ -590,13 +590,13 @@ Canzoni Questo video ha restrizioni di età. \n -\nAttivare \"Contenuti con Restrizioni di Età\" nelle Impostazioni per poterlo vedere. +\nAttivare \"%1$s\" nelle Impostazioni per poterlo vedere. Sì, anche quelli visaualizzati parzialmente Saranno rimossi gli elementi della playlist già visualizzati, sia precedenti che successivi. \nSei sicuro\? L\'azione è irreversibile! Rimuovere i gli elementi già visti\? Rimuovi Elementi Visti - Modalità con Restrizioni (YouTube) + Attiva la \"Modalità con Restrizioni\" di YouTube I testi originali dei servizi saranno visibili negli elementi video Mostra i tempi originali degli elementi Immagine del Canale @@ -633,4 +633,12 @@ Ripeti Ridimensiona Copertina alla Proporzione 1:1 Modifica la proporzione della copertina del video mostrata nella notifica da 16:9 a 1:1 (può introdurre distorsioni) + Mostra Memory Leak + Aggiunto alla coda + Accoda + Cancella i cookie che NewPipe memorizza quando si risolve un reCAPTCHA + Cookie reCAPTCHA puliti + Pulisci Cookie reCAPTCHA + Consente di usufruire della \"Modalità con Restrizioni\" di YouTube, che esclude contenuti potenzialmente inappropriati per i minori. + Mostra contenuti che hanno un limite di età (es. 18+). Potrebbero essere inadatti ai bambini. \ No newline at end of file From 1ddef06bd2d6f628817aa4fc69843573d87fcf75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20=C5=A0amla?= Date: Mon, 26 Oct 2020 23:12:15 +0000 Subject: [PATCH 035/231] Translated using Weblate (Czech) Currently translated at 98.6% (595 of 603 strings) --- app/src/main/res/values-cs/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 3faaa2b87..c0b064d37 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -58,7 +58,7 @@ Automaticky přehrávat Přehrává video, když je NewPipe otevřen z jiné aplikace Obsah - Věkově omezený obsah + Zobrazit věkově omezený obsah Zobrazit video s věkovým omezením. Změnit tuto volbu v budoucnu lze v \"Nastavení\". Živě Nebylo možné kompletně analyzovat stránku @@ -600,7 +600,7 @@ Písně Toto je video s věkovým omezením. \n -\nPokud ho chcete vidět, povolte \"Věkově omezený obsah\" v Nastavení. +\nPokud ho chcete vidět, povolte \"%1$s\" v Nastavení. Ano, i zčásti shlédnutá videa Odstranit shlédnutá videa\? Odstranit shlédnutá @@ -608,7 +608,7 @@ \nJste se jisti\? Nelze zvrátit! Původní texty služeb budou viditelné u položek streamů U položek ukázat původní čas \"před\" - Omezený režim YouTube + Zapnout \"Omezený režim YouTube\" Od %s Vytvořil %s Miniatura avatara kanálu From df7e2b7734c1e160eeb44c4660acae0235e9df5e Mon Sep 17 00:00:00 2001 From: Edoardo Regni Date: Mon, 26 Oct 2020 10:18:33 +0000 Subject: [PATCH 036/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 6d4bb913c..0a31d0249 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -4,15 +4,15 @@ \n %1$s keer bekeken Gepubliceerd op %1$s - Er is geen videospeler met streamondersteuning gevonden. Wilt u VLC installeren\? - Geen speler met streamondersteuning gevonden (je kan VLC installeren om af te spelen). + Er is geen stream videospeler gevonden. Wilt u VLC installeren\? + Geen speler met stream ondersteuning gevonden (je kan VLC installeren om af te spelen). Installeren Annuleren In browser openen - Openen in pop-upmodus + Openen in pop-up modus Delen Downloaden - Streambestand downloaden + Stream bestand downloaden Zoeken Instellingen Bedoelde je \"%1$s\"\? @@ -22,7 +22,7 @@ Externe videospeler gebruiken Verwijdert het geluid bij sommige resoluties Externe audiospeler gebruiken - Pop-up-modus + Pop-up modus Abonneer Geabonneerd Abonnement opgezegd @@ -174,7 +174,7 @@ Duimen omlaag Gebruik Tor (Experimenteel) Dwing downloadverkeer door Tor voor verhoogde privacy (streamen van video’s wordt nog niet ondersteund). - Foutrapport + Meld een probleem Gebruikersrapport Geen resultaten Niks te zien @@ -187,7 +187,7 @@ Geef eerst toegang tot opslag k M - B + mld. Geen abonnees %s abonnee From 17e24bb0389155cd2a3c91e26e4888555142976f Mon Sep 17 00:00:00 2001 From: Bjorn Roesbeke Date: Mon, 26 Oct 2020 08:53:17 +0000 Subject: [PATCH 037/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 115 +++++++++++---------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 0a31d0249..7342f9cbb 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -37,13 +37,13 @@ Pop-up Toevoegen aan Download locatie voor video’s - Gedownloade videobestanden worden hier opgeslaan + Gedownloade videobestanden worden hier opgeslagen Kies de downloadlocatie voor videobestanden Audio download map - Gedownloade audiobestanden worden hier opgeslaan + Gedownloade audiobestanden worden hier opgeslagen Kies de downloadlocatie voor audiobestanden Automatisch afspelen - Speelt video’s af wanneer NewPipe vanuit een andere app word geopend + Speelt video’s af wanneer NewPipe vanuit een andere app wordt geopend Standaard resolutie Standaard resolutie voor pop-up Hogere resoluties weergeven @@ -145,7 +145,7 @@ Kon geen streams vinden Kon afbeelding niet laden App/UI gecrasht - Kon deze stream nie afspelen + Kon deze stream niet afspelen Onherstelbare spelerfout opgetreden Bezig met herstellen van spelerfout Externe spelers ondersteunen deze soorten koppelingen niet @@ -154,17 +154,17 @@ Geen audiostreams gevonden Deze map bestaat niet Bestand/inhoudsbron bestaat niet - Het bestand bestaat niet of ge zijt onvoldoende gemachtigd voor het te lezen/dernaar te schrijven - Den bestandsnaam mag niet blanco zijn - Der is een fout opgetreden: %1$s + Het bestand bestaat niet of u bent onvoldoende gemachtigd om het te lezen of ernaar te schrijven + De bestandsnaam mag niet blanco zijn + Er is een fout opgetreden: %1$s Geen streams beschikbaar voor downloaden Sorry, dit zou niet mogen gebeuren. - Meldt deze fout via e-mail + Meld deze fout via e-mail Sorry, er is iets fout gegaan. Melden Info: - Wat is der gebeurd: - Wat:\\nVerzoek:\\nTaal van inhoud:\\nLand:\\nTaal van Applicatie:\\nDienst:\\nGMT tijd:\\nPakket:\\nVersie:\\nVersie:\\OS versie: + Wat er is gebeurd: + Wat:\\nVerzoek:\\nTaal van inhoud:\\nLand:\\nTaal van applicatie:\\nDienst:\\nGMT tijd:\\nPakket:\\nVersie:\\nVersie van besturingssysteem: Uw opmerking (in het Engels): Details: Videovoorbeeldminiatuur @@ -177,8 +177,8 @@ Meld een probleem Gebruikersrapport Geen resultaten - Niks te zien - Versleep voor de volgorde te wijzigen + Helemaal niets hier te zien + Versleep om de volgorde te wijzigen Kan download map ‘%1$s’ niet aanmaken Download map ‘%1$s’ aangemaakt Video @@ -220,10 +220,10 @@ Fout Server wordt niet ondersteund Bestand bestaat al - Verkeerden URL of internet niet beschikbaar + Verkeerde URL of internet niet beschikbaar NewPipe is aan het downloaden Tik voor meer informatie - Efkens geduld… + Even geduld… Gekopieerd naar klembord Kies een beschikbare download map Deze toestemming is vereist om @@ -236,7 +236,7 @@ Vervangend teken Letters en cijfers Meeste speciale tekens - Genen app gevonden voor dit bestand mee af te spelen + Er is geen app geïnstalleerd die dit bestand kan afspelen Over NewPipe Instellingen Over @@ -249,13 +249,13 @@ Licenties Vrij en licht streamen 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! + Hulp is altijd welkom, of u nu nieuwe ideeën hebt, vertalingen kunt bijdragen, wijzigingen hebt voor het ontwerp, de code kunt opkuisen of er zelfs grote wijzigingen in wilt maken. Hoe meer hulp, hoe beter dat het wordt! Bekijken op GitHub Doneren NewPipe wordt door vrijwilligers in hun vrije tijd ontwikkeld om jou de beste ervaring te brengen. Geef wat terug zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl ze van hun kopje koffie genieten. Teruggeven Website - Bezoekt de website van NewPipe voor meer informatie en ’t laatste nieuws. + Bezoek de website van NewPipe voor meer informatie en het laatste nieuws. Licentie van NewPipe Licentie lezen Geschiedenis @@ -266,12 +266,12 @@ De geschiedenis is leeg Geschiedenis gewist Item verwijderd - Wilt ge dit item uit uw zoekgeschiedenis verwijderen? + Wilt u dit item verwijderen uit uw zoekgeschiedenis\? Wil je dit item uit afspeel geschiedenis verwijderen\? - Wilt ge alle items uit uw geschiedenis verwijderen? + Wilt u alle items uit uw geschiedenis verwijderen\? Laatst afgespeeld Meest afgespeeld - Content van hoofdpagina + Inhoud van hoofdpagina Blanco pagina Kioskpagina Abonnementenpagina @@ -279,7 +279,7 @@ Kanaalpagina Selecteer een kanaal Nog niet geabonneerd op een kanaal - Selecteer ne kiosk + Selecteer een kiosk Geëxporteerd Geïmporteerd Geen geldig ZIP-bestand @@ -298,7 +298,7 @@ Afspelen in pop-up Menu openen Menu sluiten - Hier zal der binnenkort iets verschijnen ;D + Hier zal binnenkort iets verschijnen ;D Voorkeursactie voor openen Standaard actie bij openen van inhoud — %s Videospeler @@ -306,8 +306,8 @@ Pop-upspeler Altijd vragen Info ophalen… - Bezig me laden van gevraagden inhoud - Nieuwen afspeellijst + Bezig met laden van gevraagde inhoud + Nieuwe afspeellijst Verwijderen Hernoemen Naam @@ -315,21 +315,21 @@ Instellen als miniatuur voor afspeellijst Afspeellijst toevoegen aan bladwijzers Bladwijzer verwijderen - Dezen afspeellijst verwijderen\? + Deze afspeellijst verwijderen\? Afspeellijst aangemaakt Toegevoegd aan afspeellijst Miniatuur voor afspeellijst gewijzigd. - Den afspeellijst kon niet verwijderd worden. + De afspeellijst kon niet verwijderd worden. Geen bijschriften - Passen + Passend Opvullen Inzoomen Automatisch gegenereerd Bijschriften Bijschrift grootte en achtergrond stijlen wijzigen. Vereist herstart van de app. - Het monitoren van geheugenlekken kan dervoor zorgen da’ den app nie’ goe meer reageerd + Het monitoren van geheugenlekken kan ervoor zorgen dat de app niet goed meer reageert Out-of-lifecycle-fouten melden - Forceerd het melden van nie-bezorgbare Rx-uitzonderingen die gebeuren buiten fragments- of activiteitscyclus + Forceer het melden van niet-bezorgbare Rx-uitzonderingen buiten fragment of activiteitscyclus Importeren/exporteren Importeren Importeren uit @@ -338,23 +338,23 @@ Bezig met exporteren… Bestand importeren Vorige exportering - Kon abonnementen nie importeren - Kon abonnementen nie exporteren - Importeerd uw YouTube-abonnementen door het exportbestand te downloaden: + Kon abonnementen niet importeren + Kon abonnementen niet exporteren + Importeer uw YouTube-abonnementen door het exportbestand te downloaden: \n \n1. Ga naar dit adres: %1$s -\n2. Logd in op uwen account -\n3. Den download me het exportbestand zou nu moeten starten - Importeerd een SoundButt-profiel door den URL of ID dervan in te voeren: +\n2. Log in op uw account +\n3. De download met het exportbestand zou nu moeten starten + Importeer een SoundCloud-profiel door de URL of het ID ervan in te voeren: \n -\n1. Kiesd ne webbrowser en schakeld bureaubladmodus in (de website is nie beschikbaar voor mobiele apparaten) +\n1. Kies een webbrowser en schakel bureaubladmodus in (de website is niet beschikbaar voor mobiele apparaten) \n2. Ga naar dit adres: %1$s -\n3. Logd in op uwen account -\n4. Kopieerd de koppeling van de pagina waarop da’ ge terechtkomd (da’s uwe profiel-URL). - uwenID, soundbutt.com/uwenid - Let op: deze actie kan veel MB’s van uw netwerk gebruiken. -\n -\nWild ge doorgaan? +\n3. Log in op uw account +\n4. Kopieer de koppeling van de pagina waar u op terechtkomt (dat is uw profiel-URL). + uwID, soundbutt.com/uwid + Let op: deze actie kan veel MB’s van uw netwerk gebruiken. +\n +\nWilt u doorgaan\? Afspeelsnelheidsbesturing Tempo Toon @@ -368,14 +368,14 @@ De hele zoekgeschiedenis verwijderen\? Zoekgeschiedenis verwijderd. 1 item verwijderd. - NewPipe is vrije software: ge kunt het gebruiken, bestuderen, delen en verbeteren zoveel als dat ge maar wilt. Ge kunt het terug uitgeven en/of aanpassen volgens de voorwaarden van de GNU General Public License, gepubliceerd door de Free Software Foundation, versie 3 van de licentie, of (indien gewenst) eender welke latere versie. - Wild ge d’instellingen ook importeren? + NewPipe is vrije software: u kan het gebruiken, bestuderen, delen en verbeteren zoveel u maar wil. U kan het opnieuw uitgeven en/of aanpassen volgens de voorwaarden van de GNU General Public License, gepubliceerd door de Free Software Foundation, versie 3 van de licentie, of (indien gewenst) om het even welke latere versie. + Wilt u ook de instellingen importeren\? Privacybeleid van NewPipe - ’t NewPipe-project neemt uw privacy ter harte. Daarom verzameld den app geen gegevens zonder uw toestemming. -\n’t Privacybeleid van NewPipe legd in detail uit welke gegevens da’ der worden verzonden en opgeslagen wanneer da’ g’een crashrappor indiend. + Het NewPipe-project neemt privacy serieus. Daarom verzamelt de app geen gegevens zonder uw toestemming. +\nNewPipe\'s privacybeleid legt gedetailleerd uit welke gegevens verstuurd en opgeslagen worden als u een crashrapport verstuurt. Privacybeleid lezen - Voor d’Europese privacywet (ook wel GDPR genoemd) na te leven, wijzen w’u op ’t nieuw privacybeleid van NewPipe. Leesd ’t aandachtig. -\nGe moet ’t aanvaarden voor ons ’t bugrapport te sturen. + Om de Europese Algemene Verordening Gegevensbescherming (ook wel: AVG of GDPR) na te leven, wijzen we u op het nieuwe privacybeleid van NewPipe. Lees dit zorgvuldig. +\nU moet het beleid aanvaarden om ons het foutrapport te kunnen opsturen. Aanvaarden Weigeren Onbeperkt @@ -421,7 +421,7 @@ Auto Weergave wisselen NewPipe update is beschikbaar! - Tikt voor te downloaden + Tik om te downloaden Voltooid gepauzeerd toegevoegd aan wachtrij @@ -433,8 +433,8 @@ %s downloads voltooid Unieke naam genereren Overschrijven - Der bestaat al een gedownload bestand met deze naam - Der is al een download met deze naam bezig + Er bestaat al een gedownload bestand met deze naam + Er is al een download met deze naam bezig Foutmelding weergeven Code Het bestand kan niet aangemaakt worden @@ -444,7 +444,7 @@ Kon de server niet vinden Kan geen verbinding maken met de server De server verzendt geen gegevens - De server aanvaardt geen meerdradige downloads, probeert het opnieuw met @string/msg_threads = 1 + De server aanvaardt geen multi-threaded downloads, probeer het opnieuw met @string/msg_threads = 1 Niet gevonden Nabewerking mislukt Stoppen @@ -486,7 +486,7 @@ Tijd na de laatste update voordat een abonnement als verouderd wordt beschouwd — %s Drempel voor feed update Feed - Toon enkel niet gegroepeerden abonnementen + Toon enkel niet gegroepeerde abonnementen Nieuw Wilt u deze groep verwijderen\? Lege groepsnaam @@ -545,7 +545,7 @@ Verbinding time-out Geen vrije ruimte meer op het apparaat NewPipe werd gesloten terwijl het bezig was met het bestand - Er is al een download met deze naam bezig + Er staat al een download met deze naam in wacht Kan bestand niet overschrijven Er bestaat al een bestand met deze naam aan het herstellen @@ -561,7 +561,7 @@ In wachtrij geplaatst In wachtrij plaatsen Speel wachtrij af - Meest geliked + Meest leuk gevonden Recent toegevoegd Lokaal De taal zal veranderen zodra de app opnieuw is opgestart. @@ -606,13 +606,13 @@ YouTube biedt een \"beperkte modes\" aan, dit verbergt mogelijk materiaal voor volwassenen. YouTube \"beperkte modus\" aanzetten Toon inhoud die mogelijk niet geschikt is voor kinderen omwille van een leeftijdslimiet (zoals 18+). - Notificatie + Melding Kanaal bestaat al Alleen HTTPS URL\'s worden ondersteund Kon kanaal niet valideren Kanaal URL invoeren Kanaal toevoegen - Vind het kanaal dat je leuk vind op %s + Vind het kanaal dat u leuk vindt op %s Selecteer je favoriete PeerTube kanaal PeerTube kanaal Kon de URL niet herkennen. In een andere app openen\? @@ -640,4 +640,5 @@ Schaal de miniatuurafbeelding van de video die getoond wordt in de notificatie van 16:9 naar 1:1 verhouding (kan vervorming creëren) Schaal miniatuurafbeelding naar verhouding 1:1 Wijzig de download mappen + Toon oorspronkelijke tijd geleden op items \ No newline at end of file From 34f18fbdb3d3dac0996cd8206b6d1920f7ba76d3 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Mon, 26 Oct 2020 14:08:04 +0000 Subject: [PATCH 038/231] Translated using Weblate (Sardinian) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-sc/strings.xml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 8c480cc8e..e1f4f4623 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -269,7 +269,7 @@ Cronologia de chirca iscantzellada. Custu vìdeu tenet unu lìmite de edade. \n -\nAllughe \"Cuntenutos limitados pro edade\" in sas impostatziones si lu cheres pompiare. +\nAllughe \"%1$s\" in sas impostatziones si lu cheres pompiare. Perunu riproduidore de flussos agatadu (pro lu riproduire podes installare VLC). Pàgina de s\'iscalita Ammustra petzi sas iscritziones no agrupadas @@ -483,9 +483,9 @@ Iscarrigamentos Iscarrigamentos In direta - Modalidade limitada de YouTube + Allughe sa modalidade cun restritziones de YouTube Ammustra su vìdeu limitadu pro edade. Podes mudare custa optzione dae sas impostatziones. - Cuntenutu limitadu pro edade + Ammustra sos cuntenutos limitados pro edade Cuntenutos Postu in lista in su riproduidore a ventanedda Pone in lista in s\'isfundu @@ -608,7 +608,8 @@ Perunu riproduidore de flussos agatadu. Cheres installare VLC\? Publicadu su %1$s %1$s visualizatziones - Toca \"Chirca\" pro incumintzare + Toca \"Chirca\" pro incumintzare +\n Mai Cun su Wi-Fi ebbia Incumintza cun sa riprodutzione automaticamente — %s @@ -632,4 +633,12 @@ Su de duos butones de atzione Su de unu butone de atzione Pone in iscala sa miniadura in formadu 1:1 + Ammustra sas pèrdidas de memòria + Annànghidu a sa lista + Pone in lista + Iscantzella sos testimòngios chi NewPipe sarvat cando risolves unu reCAPTCHA + As isboidadu sos testimòngios reCAPTCHA + Isbòida sos testimòngios reCAPTCHA + YouTube frunit una \"Modalidade cun restritziones\" chi cuat sos cuntenudos chi diant pòdere èssere pro adultos. + Ammustra sos cuntenutos chi diant pòdere no èssere adatos pro sos pitzinnos ca tenent unu lìmite de edade (che a 18+). \ No newline at end of file From 990164802d6a9d049824d1bebf5d3a96ab03d1f0 Mon Sep 17 00:00:00 2001 From: Edoardo Regni Date: Mon, 26 Oct 2020 09:12:25 +0000 Subject: [PATCH 039/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 2.7% (1 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl_BE/ --- fastlane/metadata/android/nl_BE/short_description.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/nl_BE/short_description.txt diff --git a/fastlane/metadata/android/nl_BE/short_description.txt b/fastlane/metadata/android/nl_BE/short_description.txt new file mode 100644 index 000000000..46f9fae1d --- /dev/null +++ b/fastlane/metadata/android/nl_BE/short_description.txt @@ -0,0 +1 @@ +Een vrije en lichte Youtube frontend voor Android. From a6d4000d24d30d58d8b71db8bd2a25ae6a9e4ce3 Mon Sep 17 00:00:00 2001 From: nalinalini Date: Tue, 27 Oct 2020 15:17:40 +0100 Subject: [PATCH 040/231] Added translation using Weblate (Odia) --- fastlane/metadata/android/sc/changelogs/955.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/sc/changelogs/955.txt diff --git a/fastlane/metadata/android/sc/changelogs/955.txt b/fastlane/metadata/android/sc/changelogs/955.txt new file mode 100644 index 000000000..6c084a430 --- /dev/null +++ b/fastlane/metadata/android/sc/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Chirca acontzada pto unos cantos impreadores +[YouTube] Etzetziones casulaes de detzifradura acontzadas +[SoundCloud] Sos URL chi acabant cun una barra como benint analizados comente si tocat From fdc961f2debc4d508629ab48663e368b24938c60 Mon Sep 17 00:00:00 2001 From: Weblate Date: Tue, 27 Oct 2020 15:17:51 +0100 Subject: [PATCH 041/231] Added translation using Weblate (Odia) --- app/src/main/res/values-or/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-or/strings.xml diff --git a/app/src/main/res/values-or/strings.xml b/app/src/main/res/values-or/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-or/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 1266a755499e76b2012a5f25ad6a920c07af1399 Mon Sep 17 00:00:00 2001 From: Boris Petrov Date: Wed, 28 Oct 2020 11:39:37 +0000 Subject: [PATCH 042/231] Translated using Weblate (French) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-fr/strings.xml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index fb9c24175..4a6c39b77 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -55,7 +55,7 @@ Contenu indisponible Désolé, quelque chose s\'est mal passé. Contenu - Contenu avec limite d’âge + Afficher le contenu avec limite d’âge En direct Impossible de charger toutes les miniatures Impossible de déchiffrer la signature URL de la vidéo @@ -73,7 +73,8 @@ Audio Réessayer Veuillez d’abord accorder l’accès au stockage - Appuyer sur \"Rechercher\" pour commencer + Appuyer sur \"Rechercher\" pour commencer +\n Lecture automatique Affiche les vidéos soumises à une limite d’âge. Modifier cette option est possible depuis les paramètres. Rapport utilisateur @@ -587,9 +588,9 @@ 100+ vidéos Artistes Chansons - Cette vidéo est bloquée à cause de la limite d\'âge. + Cette vidéo dispose d\'une limite d\'âge. \n -\nActivez « Contenu avec limite d\'âge » dans les paramètres, rubrique « Contenu » si vous voulez la voir. +\nActivez « %1$s » dans les paramètres si vous voulez la voir. Supprimer les vidéos vues Oui, et des vidéos partiellement regardées Les vidéos qui ont été regardées avant et après avoir été ajoutées à la liste de lecture seront supprimées. @@ -600,7 +601,7 @@ Créé par %s Les textes originaux des services vont être visibles dans les items Afficher la date originelle sur les items - Mode restreint de YouTube + Activer le « Mode restreint » de YouTube Afficher les abonnements sans groupes uniquement Page des listes de lecture Aucune liste de lecture encore enregistrée @@ -632,4 +633,12 @@ Premier bouton d\'action Mettre à l\'échelle la miniature de la vidéo affichée dans la notification du format 16:9 au format 1:1 (peut provoquer des déformations) Dimensionner la miniature au format 1:1 + Afficher les fuites de mémoire + Ajouté à la file d\'attente + Ajouter à la file d\'attente + Effacer les cookies que NewPipe garde lorsque vous résolvez un reCAPTCHA + Les cookies reCAPTCHA ont été effacés + Effacer les cookies reCAPTCHA + YouTube dispose d\'un « Mode restreint » qui cache le contenu potentiellement mature. + Le contenu de cette émission n\'est peut-être pas approprié aux enfants à cause d\'une limite d\'âge (18 +). \ No newline at end of file From 8c684bca22e1e7a412d648746c0c572c6a167c39 Mon Sep 17 00:00:00 2001 From: simo Date: Wed, 28 Oct 2020 05:30:37 +0000 Subject: [PATCH 043/231] Translated using Weblate (Arabic) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-ar/strings.xml | 41 ++++++++++++++------------ 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 0888ac3c1..638c33cbd 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -49,7 +49,7 @@ استخدام مشغل فيديو خارجي (إختبارية) إجراء التنزيلات من خلال استخدام بروكسي Tor لزيادة الخصوصية ( تشغيل الفيديو المباشر غير مدعوم حتى الأن ). استخدام تور - %1$s مشاهدات + %1$s مشاهدة محتوى غير متوفر تعذرت عملية تحميل كافة صور المعاينة خطأ @@ -98,16 +98,16 @@ تخزين طلبات البحث محليا تتبع مقاطع الفيديو التي تمت مشاهدتها استئناف التشغيل - مواصلة التشغيل بعد المقاطعات (مثل المكالمات الهاتفية) + متابعة التشغيل بعد المقاطعات (مثل المكالمات الهاتفية) إظهار التلميحات \"اضغط للتجاهل\" - إظهار تلميح عندما الضغط على الخلفية أو الزر المنبثق في الفيديو \"تفاصيل:\" + عرض تلميح عند الضغط على الخلفية أو الزر المنبثق في الفيديو \"التفاصيل:\" المشغل السلوك الوضع المنبثق تشغيل في وضع منبثق تم وضعه على قائمة الانتظار في مشغل الخلفية تم وضعه على قائمة الانتظار في مشغل النافذة المنبثقة - محتوى مقيد بحسب العمر + إظهار محتوى مقيد حسب العمر إظهار الفيديو المقيد بحسب العمر. التغييرات المستقبلية ممكنة من \"الإعدادات\". بث مباشر تقرير خطأ @@ -155,9 +155,9 @@ بليون ليس هناك مشترِكون - %s لا مشترِك - %s مشترِك - مشتركين + %s مشترك + %s مشترك + %s مشتركين %s مشتركين %s مشتركين %s مشتركين @@ -232,12 +232,12 @@ تحدي الكابتشا ضغط مطول للإدراج الى قائمة الانتظار - %s بدون مشاهد - %s مشاهدة - %s مشاهدات - %s مشاهدات - %s مشاهدات - %s مشاهدات + %s مشاهدة + %s مشاهد + %s مشاهدة + %s مشاهدة + %s مشاهدة + %s مشاهدة %s فيديو @@ -302,7 +302,7 @@ تنزيل ملف البث الإشارات المرجعية استعمال التقديم السريع الغير دقيق - الطلب غير الدقيق يسمح للمشغل بالبحث عن مواقع أسرع بدقة أقل. البحث عن 5 ,15 أو 25 ثانية لا يعمل مع هذا. + يسمح البحث غير الدقيق للمشغل بالبحث عن مواضع بشكل أسرع وبدقة منخفضة. البحث عن 5 ,15 أو 25 ثانية لا يعمل مع هذا. تحميل الصور المصغرة تم إفراغ مساحة ذاكرة التخزين المؤقتة الخاصة بالصور الملف @@ -326,7 +326,7 @@ إزالة جميع بيانات صفحات الويب المخزنة مؤقتًا تم محو ذاكرة التخزين المؤقت للبيانات الوصفية وضع البث القادم تلقائيا في قائمة الإنتظار - متابعة إنهاء قائمة انتظار التشغيل (غير المتكررة) من خلال إلحاق تدفق ذي صلة + استمر في إنهاء قائمة انتظار التشغيل (غير-المتكررة) من خلال إلحاق تدفق ذي صلة إضافة صورة مصغرة إلى قائمة التشغيل تفضيل قائمة التشغيل تم تغيير الصورة المصغرة لقائمة التشغيل. @@ -409,7 +409,7 @@ اختر علامة التبويب استخدم إيماءات التحكم في صوت المشغل التحكم بالإيماءات السطوع - استخدم الإيماءات للتحكم في سطوع المشغل + استخدام الإيماءات للتحكم في سطوع المشغل التحديثات تم حذف الملف تتبيه تحديث التطبيق @@ -503,7 +503,7 @@ تغيير مجلدات التنزيل إلى حيز التنفيذ‮‮‮ تبديل الخدمة ، المحدد حاليًا: الكشك الافتراضي - لاتوجد مشاهدة + لا توجد مشاهدة لا أحد يستمع ستتغير اللغة بمجرد إعادة تشغيل التطبيق. @@ -630,7 +630,7 @@ الأغاني هذا الفيديو مقيد بالفئة العمرية. \n -\nقم بتشغيل \"المحتوى المقيد بالفئة العمرية\" في الإعدادات إذا كنت تريد مشاهدته. +\nقم بتشغيل \"%1$s\" في الإعدادات إذا كنت تريد رؤيته. نعم، ومقاطع الفيديو التي تمت مشاهدتها جزئيًا ستتم إزالة مقاطع الفيديو التي تمت مشاهدتها قبل وبعد إضافتها إلى قائمة التشغيل. \nهل أنت واثق؟ هذا لا يمكن التراجع عنها! @@ -638,7 +638,7 @@ إزالة ماتمت مشاهدته ستكون النصوص الأصلية من الخدمات مرئية في عناصر البث عرض الوقت الأصلي على العناصر - وضع مقيد يوتيوب + شغيل \"وضع تقييد المحتوى\" في يوتيوب لـ %s أنشأها %s الصورة الرمزية للقناة @@ -678,4 +678,7 @@ امسح ملفات تعريف الارتباط reCAPTCHA يوفر YouTube \"وضع تقييد المحتوى\" الذي يخفي المحتوى المحتمل للكبار. عرض المحتوى الذي يُحتمل أن يكون غير مناسب للأطفال لأن له حدًا عمريًا (مثل 18+). + إظهار تسرب الذاكرة + قائمة الانتظار + قائمة الانتظار \ No newline at end of file From ba0fdb9478ec7330de0761beed377bf90f2295a0 Mon Sep 17 00:00:00 2001 From: Michal L Date: Tue, 27 Oct 2020 20:03:36 +0000 Subject: [PATCH 044/231] Translated using Weblate (Polish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-pl/strings.xml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 19bf3debf..83fdfe96c 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,6 +1,7 @@ - Naciśnij „Szukaj”, aby zacząć + Naciśnij „Szukaj”, aby zacząć +\n Zainstaluj Anuluj Otwórz w przeglądarce @@ -44,7 +45,7 @@ Inne Odtwarzanie w tle Zawartość - Treści z ograniczeniem wiekowym + Pokaż treści z ograniczeniem wiekowym Pokaż wideo z ograniczeniami wiekowymi. Przyszłe zmiany są możliwe z poziomu ustawień. Na żywo Pobrane @@ -599,7 +600,7 @@ Piosenki Ten film ma ograniczenia wiekowe. \n -\nWłącz „Treści z ograniczeniami wiekowymi” w ustawieniach, jeśli chcesz je zobaczyć. +\nWłącz „%1$s” w ustawieniach, jeśli chcesz je zobaczyć. Tak, i częściowo oglądane filmy Filmy, które zostały obejrzane przed i po dodaniu do playlisty, zostaną usunięte. \nJesteś pewien\? Tego nie da się cofnąć! @@ -607,7 +608,7 @@ Usuń oglądane Oryginalne teksty z usług będą widoczne w elementach strumienia Pokaż oryginalny czas - Tryb ograniczony YouTube + Włącz tryb ograniczonego dostępu YouTube\'a Przez %s Utworzone przez %s Miniatura awatara kanału @@ -642,4 +643,12 @@ Przycisk pierwszej akcji Skaluj miniaturę wideo wyświetlaną w powiadomieniu z proporcji 16: 9 do 1: 1 (może powodować zniekształcenia) Skaluj miniatury do proporcji 1:1 + Dodane do kolejki + Dodaj do kolejki + Pokaż wycieki pamięci + Wyczyść ciasteczka, które NewPipe przechowuje po rozwiązaniu reCAPTCHA + Ciasteczka reCAPTCHA zostały wyczyszczone + Wyczyść ciasteczka reCAPTCHA + YouTube udostępnia \"Tryb ograniczonego dostępu\", który ukrywa treści potencjalnie dla dorosłych. + Pokaż treści nieodpowiednie dla dzieci, ponieważ mają ograniczenia wiekowe (np. 18+). \ No newline at end of file From f9f0da18e12f79a39ab5aca4097583c009811bc0 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Tue, 27 Oct 2020 21:21:18 +0000 Subject: [PATCH 045/231] Translated using Weblate (Croatian) Currently translated at 98.5% (594 of 603 strings) --- app/src/main/res/values-hr/strings.xml | 124 ++++++++++++++++++------- 1 file changed, 92 insertions(+), 32 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 32ceff403..fde6a14c8 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -122,11 +122,11 @@ Prijavi grešku Korisničke prijave Nije moguće napraviti direktorij za preuzimanje \'%1$s\' - Napravljen direktorij za preuzimanje \'%1$s\' + Stvorena je mapa za preuzimanje „%1$s” Videozapis Zvuk - Ponovno pokušaj - Omogućite pristup pohrani prvo + Pokušaj ponovo + Najprije odobri pristup spremištu tis. mil mlrd. @@ -186,7 +186,7 @@ Reproduktor Ponašanje Povijest i predmemorija - Popis naslova + Playlista Poništi Nema rezultata Ovdje nema ništa osim cvrčaka @@ -250,28 +250,28 @@ Uvjek pitaj Dohvaćam informacije… Odabrani sadržaj se učitava - Nova reprodukcijska lista + Nova playlista Izbriši Preimenuj Ime - Dodaj na reprodukcijsku listu - Postavi kao sliku na listu - Markirajte reprodukcijsku listu - Odmarkirajte - Želite li izbrisati listu? - Reprodukcijska lista je kreirana - Dodano na listu - Slika liste se promjenila. - Greška prilikom brisanja liste. + Dodaj u playlistu + Postavi kao minijaturu playliste + Zabilježi playlistu + Ukloni zabilješku + Izbrisati ovu playlistu\? + Playlista je stvorena + Dodano kao playlistu + Minijatura playliste se promijenila. + Greška prilikom brisanja playliste. Bez naslova Podesno Ispuniti Povećaj Auto generirano Monitoring curenja memorije može uzrokovati greške u radu aplikacije prilikom odlaganje gomile - Izvijestite o pogreškama izvan životnog ciklusa + Izvijesti o krajevima životnog ciklusa Prikaži informacije - Označene Liste za reprodukciju + Zabilježene playliste Dodaj u Učitaj slike Slikovna predmemorija obrisana @@ -290,7 +290,7 @@ Uvoz baze podataka Izvoz baze podataka Poništava vašu trenutnu povijest i pretplate - Izvoz povijesti, pretplata i playlisti + Izvezi povijest, pretplate i playliste Očisti povijest gledanja Briše povijest reproduciranih streamova i pozicije reprodukcije Obriši cijelu povijest gledanja\? @@ -355,7 +355,7 @@ Reproduktor za stream nije pronađen (možete instalirati VLC za reprodukciju). Preuzmi datoteku streama Koristi brzo netočno premotavanje - Netočno premotavanje omogućava reproduktoru da premota na mjesto brže uz manju preciznost. Premotavanje od 5, 15 ili 25 sekundi s ovime nije moguće. + Netočno premotavanje omogućava reproduktoru da premota brže uz manju točnost. Premotavanje od 5, 15 ili 25 sekundi s ovime nije moguće. Otkaži pretplatu Nova kartica Odaberi karticu @@ -367,15 +367,15 @@ Vanjska pohrana nije dostupna Ažuriranja Prikažite obavijest kada je dostupna nova verzija aplikacije - Lista - Rešetka + Popis + Popločeno Promijeni prikaz Dostupna je nova verzija za NewPipe! Dodirnite za preuzimanje Preuzimanje nije uspjelo - Preuzimanje gotovo + Preuzimanje je gotovo Prikaži pogrešku - Isključite kako biste spriječili učitavanje sličica, spremanje podataka i korištenja memorije. Promjene čiste predmemoriju i predmemoriju slika. + Isključite kako biste spriječili učitavanje sličica, spremanje podataka i korištenja memorije. Promjene čiste radnu i trajnu predmemoriju slika. Uklonite sve podatke iz privremenih web-stranica Metapodaci su izbrisani Automatski dodaj sljedeći stream u popisa izvođenja @@ -417,10 +417,10 @@ brzina Visina tona Odspoji (može prouzročiti izobličenje) - Minimiziraj prilikom mjenjanje aplikacija - Radnja prilikom prebacivanja na drugu aplikaciju iz glavnog videoplayer-a — %s - Minimiziraj na pozadinski player - Minimiziraj na skočni player + Smanji prilikom mijenjanje aplikacije + Radnja prilikom prebacivanja na drugu aplikaciju iz glavnog videoplayera – %s + Smanji na pozadinski player + Smanji na skočni player Način prikaza popisa Automatski Gotovo @@ -432,10 +432,10 @@ Sustav je odbio radnju %s preuzimanja dovršeno Generirajte jedinstveni naziv - Piši preko + Prepiši Datoteka s tim nazivom već postoji Preuzeta datoteka s tim nazivom već postoji - U tijeku je preuzimanje s ovim nazivom + Datoteka s ovim nazivom se već preuzima Kod Odredišnu mapu nije moguće stvoriti Datoteku nije moguće stvoriti @@ -470,7 +470,7 @@ Obriši podatke Pozicije reprodukcije su izbrisane. Datoteka je premještena ili izbrisana - U tijeku je preuzimanje s ovim nazivom + Datoteka s ovim nazivom već čeka na preuzimanje Vrijeme povezanosti je isteklo Želite li očistiti povijest preuzimanja ili izbrisati sve preuzete datoteke\? Započni preuzimanja @@ -486,7 +486,7 @@ Podržani su samo HTTP URL-ovi Lokalno Nedavno dodano - Automatski generirano (nije pronađen nijedan autor) + Automatski generirana (nije pronađen nijedan autor) Očisti povijest preuzimanja Izbriši preuzete datoteke Obrisano %1$d preuzimanja @@ -515,7 +515,7 @@ Pjesme Napravio %s Obavijest - Nikad + Nikada Ograniči popis preuzimanja Koristi SAF Ukloni pregledano @@ -552,7 +552,7 @@ Prikazuju se rezultati za: %s Nije moguće prepoznati URL. Želite li otvoriti u drugoj aplikaciji\? Promijeni omjer minijature na 1:1 - Učitavam + Učitavanje u predmemoriju Istovremeno se pokreće jedno preuzimanje Dodano u popis izvođenja Dodaj u popis izvođenja @@ -569,4 +569,64 @@ nije moguće prepisati datoteku Promijeni omjer prikazane minijature videa u obavijesti iz 16:9 na 1:1 (može prouzročiti izobličenja) U kompaktnom prikazu obavijesti mogu se odabrati najviše 3 radnje! + Od %s + Minijatura avatara kanala + Dohvati iz određenog feeda kad je dostupno + Vrijeme nakon zadnjeg aktualiziranja prije nego što se pretplata smatra zastarjelom – %s + Prag aktualiziranja feedova + Feed + Prikaži samo negrupirane pretplate + Prazno ime grupe + + %d odabrani + %d odabrana + %d odabranih + + Obrada feeda … + Zadnje aktualiziranje feeda: %s + Grupe kanala + Da, i djelomično pogledane videa + Odaberi primjerak + Program će te pitati kamo spremati preuzimanja. +\nOdaberi SAF, ako želiš preuzeti na vanjsku SD karticu + Program će te pitati kamo spremati preuzimanja + Nije moguće obnoviti ovo preuzimanje + Napredak je izgubljen, jer je datoteka izbrisana + NewPipe se zatvorio tijekom rada s datotekom + Stranica playliste + Videa koji su gledani prije i nakon dodavanja u playlistu će se ukloniti. +\nStvarno ih želiš ukloniti\? Ovo je nepovratna radnja! + Još nema zabilježenih playlista + Odaberi playlistu + obnavljanje + Samo na Wi-Fi mreži + Pokreni automatski – %s + Prikaži curenje memorije + + %s gledatelj + %s gledatelja + %s gledatelja + + Uklj/Isklj uslugu, trenutačno odabrana: + Kopiraj formatirani izveštaj + Izbriši riješene reCAPTCHA kolačiće koje NewPipe sprema + reCAPTCHA kolačići su izbrisani + Izbriši reCAPTCHA kolačiće + Ovaj video je dobno ograničen. +\n +\nZa prikaz sadržaja uključi „%1$s” u postavkama. + YouTube nudi postavku „Ograničeni način rada”, čime se skriva sadržaj za odrasle. + Uključi YouTube postavku „Ograničeni način rada” + Prikaži sadržaj koji nije prikladan za određenu dob (kategorija 18). + Primjerak već postoji + Neuspjela provjera primjerka + Upiši URL primjerka + Dodaj primjerak + Pronađi omiljene primjerke na %s + Odaberi tvoje omiljene PeerTube primjerke + PeerTube primjerci + Vrijeme premotavanja prema naprijed ili natrag + Ništa + Promiješaj + Ponovi \ No newline at end of file From 7b09de99ea2ec82ad49e3ba2cd51b38542b49621 Mon Sep 17 00:00:00 2001 From: nalinalini Date: Tue, 27 Oct 2020 14:18:19 +0000 Subject: [PATCH 046/231] Translated using Weblate (Hindi) Currently translated at 77.9% (470 of 603 strings) --- app/src/main/res/values-hi/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 9a8456e41..fb66890d3 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -51,7 +51,8 @@ Item हटा दिया गया है फ़िलहाल चर्चा में है ऑडियो सेटिंग - शुरू करने के लिए खोज चिह्न दबाएं + शुरू करने के लिए \"खोज\" चिह्न दबाएं +\n रद्द करें क्या आप का मतलब %1$s है? शेयर करें From 4f3dd4b662ffeab3318ff2af103613e4d38409d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Wed, 28 Oct 2020 17:45:03 +0000 Subject: [PATCH 047/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 93.3% (563 of 603 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 11713e478..a3c86eeea 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -634,4 +634,12 @@ Første handlingstast Skaler miniatyrbilde til 1:1-aspekt Ingenting + Vis minnelekkasjer + Satt i kø + Sett i kø + Tøm reCAPTCHA-kaker + reCAPTCHA-kaker har blitt slettet + Tøm kaker som NewPipe lagrer når du løser en reCAPTCHA + YouTube tilbyr et «Begrenset modus» som skjuler mulig innhold kun for voksne. + Vis innhold som muligens er upassende for barn, siden det har aldersgrense (som 18+). \ No newline at end of file From 181fc4fa0a2c223ff9b9eed1f5174b6c7a8b16de Mon Sep 17 00:00:00 2001 From: Paulo Almeida Date: Wed, 28 Oct 2020 12:56:39 +0000 Subject: [PATCH 048/231] Translated using Weblate (Portuguese (Brazil)) Currently translated at 16.6% (6 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_BR/ --- fastlane/metadata/android/pt_BR/changelogs/954.txt | 7 +++++++ fastlane/metadata/android/pt_BR/short_description.txt | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/pt_BR/changelogs/954.txt diff --git a/fastlane/metadata/android/pt_BR/changelogs/954.txt b/fastlane/metadata/android/pt_BR/changelogs/954.txt new file mode 100644 index 000000000..449fde5dc --- /dev/null +++ b/fastlane/metadata/android/pt_BR/changelogs/954.txt @@ -0,0 +1,7 @@ +fluxo de trabalho do novo aplicativo: reproduza vídeos na página de detalhes, deslize para baixo para minimizar o player +• Notificações MediaStyle: ações personalizáveis em notificações, melhorias de desempenho +• redimensionamento básico ao usar NewPipe como app de desktop +• mostrar diálogo com opções abertas em caso de URL não suportado +• Melhorada a experiência de sugestão de pesquisa +• Qualidade de vídeo padrão aumentada para 720p60 (player do app) e 480p (pop-up) +• correções de bugs diff --git a/fastlane/metadata/android/pt_BR/short_description.txt b/fastlane/metadata/android/pt_BR/short_description.txt index 1f2c45723..8ea5b74c3 100644 --- a/fastlane/metadata/android/pt_BR/short_description.txt +++ b/fastlane/metadata/android/pt_BR/short_description.txt @@ -1 +1 @@ -Um frontend gratuito e leve do YouTube para Android. +Um app open-source gratuito e leve do YouTube para Android. From 9320507e2625ba42d0715e5d4b12c9fafe618e1e Mon Sep 17 00:00:00 2001 From: nalinalini Date: Tue, 27 Oct 2020 14:25:19 +0000 Subject: [PATCH 049/231] Translated using Weblate (Hindi) Currently translated at 0.0% (0 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ --- fastlane/metadata/android/hi/changelogs/955.txt | 3 +++ fastlane/metadata/android/hi/full_description.txt | 1 + fastlane/metadata/android/hi/short_description.txt | 1 + 3 files changed, 5 insertions(+) create mode 100644 fastlane/metadata/android/hi/changelogs/955.txt create mode 100644 fastlane/metadata/android/hi/full_description.txt create mode 100644 fastlane/metadata/android/hi/short_description.txt diff --git a/fastlane/metadata/android/hi/changelogs/955.txt b/fastlane/metadata/android/hi/changelogs/955.txt new file mode 100644 index 000000000..2c38a9f32 --- /dev/null +++ b/fastlane/metadata/android/hi/changelogs/955.txt @@ -0,0 +1,3 @@ +[यूट्यूब] कुछ उपयोगकर्ताओं के लिए खोज को ठीक करें +[यूट्यूब] यादृच्छिक डिक्रिप्शन अपवादों को ठीक करें +[साउंडक्लाउड] एक स्लैश के साथ समाप्त होने वाले यूआरएल अब सही ढंग से पार्स किए गए हैं diff --git a/fastlane/metadata/android/hi/full_description.txt b/fastlane/metadata/android/hi/full_description.txt new file mode 100644 index 000000000..9ab5b312b --- /dev/null +++ b/fastlane/metadata/android/hi/full_description.txt @@ -0,0 +1 @@ +न्यूपाइप किसी भी गुगल फ्रेमवर्क लाइब्रेरी, या यूट्यूब एपीआई का उपयोग नहीं करता है। यह केवल वेबसाइट को पार्स करता है ताकि इसकी आवश्यकता वाली जानकारी हासिल की जा सके। इसलिए इस ऐप का उपयोग गुगल सेवाओं के स्थापित किए बिना उपकरणों पर किया जा सकता है। इसके अलावा, आपको न्यूपाइप का उपयोग करने के लिए युट्युब खाते की आवश्यकता नहीं है, और यह मुक्त और खुला है। diff --git a/fastlane/metadata/android/hi/short_description.txt b/fastlane/metadata/android/hi/short_description.txt new file mode 100644 index 000000000..5db7140ad --- /dev/null +++ b/fastlane/metadata/android/hi/short_description.txt @@ -0,0 +1 @@ +एंड्रॉयड के लिए एक मुफ्त हल्के यूट्यूब फ्रंटएंड। From 29bb999a32b792d97b53418c7ef3af92d7e7d2e5 Mon Sep 17 00:00:00 2001 From: Michal L Date: Tue, 27 Oct 2020 16:02:09 +0000 Subject: [PATCH 050/231] Translated using Weblate (Polish) Currently translated at 36.1% (13 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ --- fastlane/metadata/android/pl/changelogs/730.txt | 4 ++-- fastlane/metadata/android/pl/changelogs/860.txt | 4 ++-- fastlane/metadata/android/pl/changelogs/955.txt | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 fastlane/metadata/android/pl/changelogs/955.txt diff --git a/fastlane/metadata/android/pl/changelogs/730.txt b/fastlane/metadata/android/pl/changelogs/730.txt index c87dbc226..aa9b07165 100644 --- a/fastlane/metadata/android/pl/changelogs/730.txt +++ b/fastlane/metadata/android/pl/changelogs/730.txt @@ -1,2 +1,2 @@ -# Naprawiony -- Ponownie błąd funkcji odszyfrowywania poprawki hot fix. +# Naprawiono +- Ponownie naprawiono błąd funkcji odszyfrowywania. diff --git a/fastlane/metadata/android/pl/changelogs/860.txt b/fastlane/metadata/android/pl/changelogs/860.txt index 26e9f8440..513be7980 100644 --- a/fastlane/metadata/android/pl/changelogs/860.txt +++ b/fastlane/metadata/android/pl/changelogs/860.txt @@ -1,7 +1,7 @@ -Ulepszony +Ulepszono • Zapisz i przywróć, czy wysokość i tempo są odłączone, czy nie • Obsługa wycięcia wyświetlacza w odtwarzaczu • Widok okrągły i liczba subskrybentów -• Zoptymalizowany YouTube, aby zużywał mniej danych +• YouTube został zoptymalizowany, aby zużywał mniej danych W tej wersji naprawiono ponad 15 błędów związanych z YouTube. diff --git a/fastlane/metadata/android/pl/changelogs/955.txt b/fastlane/metadata/android/pl/changelogs/955.txt new file mode 100644 index 000000000..367a1e05d --- /dev/null +++ b/fastlane/metadata/android/pl/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Wyszukiwanie zostało naprawione dla niektórych użytkowników +[YouTube] Naprawiono losowe wyjątki deszyfrowania +[SoundCloud] Adresy URL kończące się ukośnikiem są teraz parsowane poprawnie From ff6d2b30e446f88dfc2b9c96d40ed104cf217b97 Mon Sep 17 00:00:00 2001 From: simo Date: Wed, 28 Oct 2020 06:06:15 +0000 Subject: [PATCH 051/231] Translated using Weblate (Arabic) Currently translated at 52.7% (19 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ --- fastlane/metadata/android/ar/changelogs/730.txt | 2 ++ fastlane/metadata/android/ar/changelogs/770.txt | 4 ++++ fastlane/metadata/android/ar/changelogs/820.txt | 1 + fastlane/metadata/android/ar/changelogs/830.txt | 1 + fastlane/metadata/android/ar/changelogs/850.txt | 1 + fastlane/metadata/android/ar/changelogs/860.txt | 7 +++++++ fastlane/metadata/android/ar/changelogs/870.txt | 2 ++ fastlane/metadata/android/ar/changelogs/900.txt | 14 ++++++++++++++ fastlane/metadata/android/ar/changelogs/910.txt | 1 + fastlane/metadata/android/ar/changelogs/920.txt | 9 +++++++++ fastlane/metadata/android/ar/changelogs/930.txt | 15 +++++++++++++++ fastlane/metadata/android/ar/changelogs/940.txt | 3 ++- fastlane/metadata/android/ar/changelogs/955.txt | 3 +++ 13 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/ar/changelogs/730.txt create mode 100644 fastlane/metadata/android/ar/changelogs/770.txt create mode 100644 fastlane/metadata/android/ar/changelogs/820.txt create mode 100644 fastlane/metadata/android/ar/changelogs/830.txt create mode 100644 fastlane/metadata/android/ar/changelogs/850.txt create mode 100644 fastlane/metadata/android/ar/changelogs/860.txt create mode 100644 fastlane/metadata/android/ar/changelogs/870.txt create mode 100644 fastlane/metadata/android/ar/changelogs/900.txt create mode 100644 fastlane/metadata/android/ar/changelogs/910.txt create mode 100644 fastlane/metadata/android/ar/changelogs/920.txt create mode 100644 fastlane/metadata/android/ar/changelogs/930.txt create mode 100644 fastlane/metadata/android/ar/changelogs/955.txt diff --git a/fastlane/metadata/android/ar/changelogs/730.txt b/fastlane/metadata/android/ar/changelogs/730.txt new file mode 100644 index 000000000..0c057a9ac --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/730.txt @@ -0,0 +1,2 @@ +# ثابت +- إصلاح خطأ وظيفة فك التشفير مرة أخرى. diff --git a/fastlane/metadata/android/ar/changelogs/770.txt b/fastlane/metadata/android/ar/changelogs/770.txt new file mode 100644 index 000000000..8604f92d7 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/770.txt @@ -0,0 +1,4 @@ +التغييرات في 0.17.2 + +الإصلاح +• إصلاح عدم توفر فيديو diff --git a/fastlane/metadata/android/ar/changelogs/820.txt b/fastlane/metadata/android/ar/changelogs/820.txt new file mode 100644 index 000000000..44c8bc6ca --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/820.txt @@ -0,0 +1 @@ +تم إصلاح اسم وظيفة فك تشفير regex مما يجعل YouTube غير قابل للاستخدام. diff --git a/fastlane/metadata/android/ar/changelogs/830.txt b/fastlane/metadata/android/ar/changelogs/830.txt new file mode 100644 index 000000000..f653ef2b6 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/830.txt @@ -0,0 +1 @@ +تم تحديث Client_id SoundCloud لإصلاح مشكلات SoundCloud. diff --git a/fastlane/metadata/android/ar/changelogs/850.txt b/fastlane/metadata/android/ar/changelogs/850.txt new file mode 100644 index 000000000..62e092336 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/850.txt @@ -0,0 +1 @@ +هذا الإصدار تم تحديث نسخة موقع يوتيوب. سيتم إيقاف إصدار موقع الويب القديم في مارس ، وبالتالي يتعين عليك ترقية NewPipe. diff --git a/fastlane/metadata/android/ar/changelogs/860.txt b/fastlane/metadata/android/ar/changelogs/860.txt new file mode 100644 index 000000000..da92230f6 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/860.txt @@ -0,0 +1,7 @@ +محسّن +• حفظ واستعادة ما إذا كان الملعب والإيقاع غير منزعج أم لا +• دعم انقطاع العرض في المشغل +• جولة الرأي وعدد المشتركين +• تحسين يوتيوب لاستخدام بيانات أقل + +تم إصلاح أكثر من 15 خطأً متعلقًا ب YouTube في هذا الإصدار. diff --git a/fastlane/metadata/android/ar/changelogs/870.txt b/fastlane/metadata/android/ar/changelogs/870.txt new file mode 100644 index 000000000..b35d68f90 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/870.txt @@ -0,0 +1,2 @@ +هذا إصدار الإصلاح العاجل يقوم بتحديث NewPipe للسماح باستخدام SoundCloud دون متاعب كبيرة مرة أخرى. +يتم استخدام v2 API الخاص ب SoundCloud في المستخرج الآن وتم تحسين الكشف عن معرفات العملاء غير الصالحة. diff --git a/fastlane/metadata/android/ar/changelogs/900.txt b/fastlane/metadata/android/ar/changelogs/900.txt new file mode 100644 index 000000000..d6a870048 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/900.txt @@ -0,0 +1,14 @@ +جديد +• مجموعات الاشتراك والأعلاف المصنفة +• زر كتم الصوت في اللاعبين + +محسّن +• السماح بفتح روابط music.youtube.com و media.ccc.de في NewPipe +• قم بنقل إعدادين من المظهر إلى المحتوى +• إخفاء خيارات البحث 5 ، 15 ، 25 ثانية إذا تم تمكين البحث غير الدقيق + +ثابت +• بعض مقاطع فيديو WebM لا يمكن البحث عنها +• النسخ الاحتياطي لقاعدة البيانات على Android P. +• تعطل عند مشاركة ملف تم تنزيله +• طن من قضية استخراج يوتيوب وأكثر ... diff --git a/fastlane/metadata/android/ar/changelogs/910.txt b/fastlane/metadata/android/ar/changelogs/910.txt new file mode 100644 index 000000000..b3427a8c0 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/910.txt @@ -0,0 +1 @@ +تم إصلاح ترحيل قاعدة البيانات الذي منع NewPipe من البدء في بعض الحالات النادرة. diff --git a/fastlane/metadata/android/ar/changelogs/920.txt b/fastlane/metadata/android/ar/changelogs/920.txt new file mode 100644 index 000000000..bf15dba59 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/920.txt @@ -0,0 +1,9 @@ +محسّن + +• تمت إضافة تاريخ التحميل وعدد المشاهدات على عناصر شبكة الدفق +• تحسينات على تخطيط رأس الدرج + +ثابت + +• زر كتم الصوت الثابت الذي تسبب في حدوث أعطال في API 19 +• تنزيل ثابت لمقاطع الفيديو الطويلة 1080p 60fps diff --git a/fastlane/metadata/android/ar/changelogs/930.txt b/fastlane/metadata/android/ar/changelogs/930.txt new file mode 100644 index 000000000..807db804b --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/930.txt @@ -0,0 +1,15 @@ +جديد +• البحث على يوتيوب الموسيقى +• دعم Android TV الأساسي + +محسّن +• تمت إضافة القدرة على إزالة جميع مقاطع الفيديو التي تمت مشاهدتها من قائمة التشغيل المحلية +• إظهار الرسالة عندما لا يتم دعم المحتوى حتى الآن بدلاً من التعطل +• تحسين مشغل النوافذ المنبثقة مع إيماءات القرص +• قائمة تيارات على الضغط لفترة طويلة على الخلفية والأزرار المنبثقة في القناة +• معالجة حجم محسّن لعنوان رأس الدرج + +ثابت +• إعداد المحتوى المقيّد بالعمر الثابت لا يعمل +• إصلاح أنواع معينة من reCAPTCHAs +• تم إصلاح الانهيار عند فتح الإش diff --git a/fastlane/metadata/android/ar/changelogs/940.txt b/fastlane/metadata/android/ar/changelogs/940.txt index 55be122b9..987aad832 100644 --- a/fastlane/metadata/android/ar/changelogs/940.txt +++ b/fastlane/metadata/android/ar/changelogs/940.txt @@ -1,6 +1,7 @@ +جديد • إضافة دعم لتعليقات ساوند كلاود • إضافة وضع تقييد وضع يوتيوب -• عرض تفاصيل القناة الأصل بيرتوب +• إظهار تفاصيل القناة الأصل بيرتوب محسّن • إظهار زر كوري للخدمات المدعومة فقط diff --git a/fastlane/metadata/android/ar/changelogs/955.txt b/fastlane/metadata/android/ar/changelogs/955.txt new file mode 100644 index 000000000..a477777bf --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] إصلاح البحث عن بعض المستخدمين +[YouTube] إصلاح استثناءات فك التشفير العشوائي +[SoundCloud] عناوين URL التي تنتهي بشرطة مائلة يتم تحليلها الآن بشكل صحيح From 9398dfb7cf3b2155d23808d7462c0d8ab2fb4d55 Mon Sep 17 00:00:00 2001 From: Franco Date: Wed, 28 Oct 2020 21:56:01 +0000 Subject: [PATCH 052/231] Translated using Weblate (Spanish) Currently translated at 16.6% (6 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/ --- fastlane/metadata/android/es/changelogs/955.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/es/changelogs/955.txt diff --git a/fastlane/metadata/android/es/changelogs/955.txt b/fastlane/metadata/android/es/changelogs/955.txt new file mode 100644 index 000000000..5786d8756 --- /dev/null +++ b/fastlane/metadata/android/es/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Corrección de la búsqueda para algunos usuarios +[YouTube] Corrección de excepciones en el descifrado aleatorio +[SoundCloud] Las URL que terminan con una barra, ahora se analizan correctamente From be5aa59f611d5ff355470f5c309f5192bec2708c Mon Sep 17 00:00:00 2001 From: Boris Petrov Date: Wed, 28 Oct 2020 11:52:24 +0000 Subject: [PATCH 053/231] Translated using Weblate (French) Currently translated at 19.4% (7 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/950.txt | 4 ++++ fastlane/metadata/android/fr/changelogs/955.txt | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 fastlane/metadata/android/fr/changelogs/950.txt create mode 100644 fastlane/metadata/android/fr/changelogs/955.txt diff --git a/fastlane/metadata/android/fr/changelogs/950.txt b/fastlane/metadata/android/fr/changelogs/950.txt new file mode 100644 index 000000000..fc78fbfc4 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/950.txt @@ -0,0 +1,4 @@ +Cette sortie apporte trois petites corrections : +- Correction de l'accès aux fichiers pour Android 10 + +- Correction de l'ouverture des kiosques +- Correction de la lecture de durée pour les longues vidéos diff --git a/fastlane/metadata/android/fr/changelogs/955.txt b/fastlane/metadata/android/fr/changelogs/955.txt new file mode 100644 index 000000000..50275339d --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Correction de la recherche pour certains utilisateurs +[YouTube] Correction des exceptions de décryptage aléatoires +[SoundCloud] Les URLs qui finissent par un slash sont désormais lus correctement From 268304376226457e99aea640aedfa3ccc22c59bb Mon Sep 17 00:00:00 2001 From: vkay94 Date: Wed, 21 Oct 2020 16:40:22 +0200 Subject: [PATCH 054/231] Player gestures: separate logic and UI --- .../player/event/BasePlayerGestureListener.kt | 434 ++++++++++++ .../newpipe/player/event/DisplayPortion.kt | 5 + .../player/event/PlayerGestureListener.java | 618 ++++-------------- 3 files changed, 569 insertions(+), 488 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt create mode 100644 app/src/main/java/org/schabi/newpipe/player/event/DisplayPortion.kt diff --git a/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt new file mode 100644 index 000000000..8ce140443 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt @@ -0,0 +1,434 @@ +package org.schabi.newpipe.player.event + +import android.content.Context +import android.util.Log +import android.view.GestureDetector +import android.view.MotionEvent +import android.view.View +import android.view.ViewConfiguration +import org.schabi.newpipe.player.BasePlayer +import org.schabi.newpipe.player.MainPlayer +import org.schabi.newpipe.player.VideoPlayerImpl +import org.schabi.newpipe.player.helper.PlayerHelper +import org.schabi.newpipe.util.AnimationUtils +import kotlin.math.abs +import kotlin.math.hypot +import kotlin.math.max + +/** + * Base gesture handling for [VideoPlayerImpl] + * + * This class contains the logic for the player gestures like View preparations + * and provides some abstract methods to make it easier separating the logic from the UI. + */ +abstract class BasePlayerGestureListener( + @JvmField + protected val playerImpl: VideoPlayerImpl, + @JvmField + protected val service: MainPlayer +) : GestureDetector.SimpleOnGestureListener(), View.OnTouchListener { + + // /////////////////////////////////////////////////////////////////// + // Abstract methods for VIDEO and POPUP + // /////////////////////////////////////////////////////////////////// + + abstract fun onDoubleTap(event: MotionEvent, portion: DisplayPortion) + + abstract fun onSingleTap(playerType: MainPlayer.PlayerType) + + abstract fun onScroll( + playerType: MainPlayer.PlayerType, + portion: DisplayPortion, + initialEvent: MotionEvent, + movingEvent: MotionEvent, + distanceX: Float, + distanceY: Float + ) + + abstract fun onScrollEnd(playerType: MainPlayer.PlayerType, event: MotionEvent) + + // /////////////////////////////////////////////////////////////////// + // Abstract methods for POPUP (exclusive) + // /////////////////////////////////////////////////////////////////// + + abstract fun onPopupResizingStart() + + abstract fun onPopupResizingEnd() + + private var initialPopupX: Int = -1 + private var initialPopupY: Int = -1 + + private var isMovingInMain = false + private var isMovingInPopup = false + private var isResizing = false + + private val tossFlingVelocity = PlayerHelper.getTossFlingVelocity(service) + + // [popup] initial coordinates and distance between fingers + private var initPointerDistance = -1.0 + private var initFirstPointerX = -1f + private var initFirstPointerY = -1f + private var initSecPointerX = -1f + private var initSecPointerY = -1f + + // /////////////////////////////////////////////////////////////////// + // onTouch implementation + // /////////////////////////////////////////////////////////////////// + + override fun onTouch(v: View, event: MotionEvent): Boolean { + return if (playerImpl.popupPlayerSelected()) { + onTouchInPopup(v, event) + } else { + onTouchInMain(v, event) + } + } + + private fun onTouchInMain(v: View, event: MotionEvent): Boolean { + playerImpl.gestureDetector.onTouchEvent(event) + if (event.action == MotionEvent.ACTION_UP && isMovingInMain) { + isMovingInMain = false + onScrollEnd(MainPlayer.PlayerType.VIDEO, event) + } + return when (event.action) { + MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE -> { + v.parent.requestDisallowInterceptTouchEvent(playerImpl.isFullscreen) + true + } + MotionEvent.ACTION_UP -> { + v.parent.requestDisallowInterceptTouchEvent(false) + false + } + else -> true + } + } + + private fun onTouchInPopup(v: View, event: MotionEvent): Boolean { + if (playerImpl == null) { + return false + } + playerImpl.gestureDetector.onTouchEvent(event) + if (event.pointerCount == 2 && !isMovingInPopup && !isResizing) { + if (DEBUG) { + Log.d(TAG, "onTouch() 2 finger pointer detected, enabling resizing.") + } + onPopupResizingStart() + + // record coordinates of fingers + initFirstPointerX = event.getX(0) + initFirstPointerY = event.getY(0) + initSecPointerX = event.getX(1) + initSecPointerY = event.getY(1) + // record distance between fingers + initPointerDistance = Math.hypot(initFirstPointerX - initSecPointerX.toDouble(), + initFirstPointerY - initSecPointerY.toDouble()) + + isResizing = true + } + if (event.action == MotionEvent.ACTION_MOVE && !isMovingInPopup && isResizing) { + if (DEBUG) { + Log.d(TAG, "onTouch() ACTION_MOVE > v = [$v], e1.getRaw = [${event.rawX}" + + ", ${event.rawY}]") + } + return handleMultiDrag(event) + } + if (event.action == MotionEvent.ACTION_UP) { + if (DEBUG) { + Log.d(TAG, "onTouch() ACTION_UP > v = [$v], e1.getRaw = [${event.rawX}" + + ", ${event.rawY}]") + } + if (isMovingInPopup) { + isMovingInPopup = false + onScrollEnd(MainPlayer.PlayerType.POPUP, event) + } + if (isResizing) { + isResizing = false + + initPointerDistance = (-1).toDouble() + initFirstPointerX = (-1).toFloat() + initFirstPointerY = (-1).toFloat() + initSecPointerX = (-1).toFloat() + initSecPointerY = (-1).toFloat() + + onPopupResizingEnd() + playerImpl.changeState(playerImpl.currentState) + } + if (!playerImpl.isPopupClosing) { + playerImpl.savePositionAndSize() + } + } + + v.performClick() + return true + } + + private fun handleMultiDrag(event: MotionEvent): Boolean { + if (initPointerDistance != -1.0 && event.pointerCount == 2) { + // get the movements of the fingers + val firstPointerMove = hypot(event.getX(0) - initFirstPointerX.toDouble(), + event.getY(0) - initFirstPointerY.toDouble()) + val secPointerMove = hypot(event.getX(1) - initSecPointerX.toDouble(), + event.getY(1) - initSecPointerY.toDouble()) + + // minimum threshold beyond which pinch gesture will work + val minimumMove = ViewConfiguration.get(service).scaledTouchSlop + + if (max(firstPointerMove, secPointerMove) > minimumMove) { + // calculate current distance between the pointers + val currentPointerDistance = hypot(event.getX(0) - event.getX(1).toDouble(), + event.getY(0) - event.getY(1).toDouble()) + + val popupWidth = playerImpl.popupWidth.toDouble() + // change co-ordinates of popup so the center stays at the same position + val newWidth = popupWidth * currentPointerDistance / initPointerDistance + initPointerDistance = currentPointerDistance + playerImpl.popupLayoutParams.x += ((popupWidth - newWidth) / 2.0).toInt() + + playerImpl.checkPopupPositionBounds() + playerImpl.updateScreenSize() + + playerImpl.updatePopupSize( + Math.min(playerImpl.screenWidth.toDouble(), newWidth).toInt(), + -1) + return true + } + } + return false + } + + // /////////////////////////////////////////////////////////////////// + // Simple gestures + // /////////////////////////////////////////////////////////////////// + + override fun onDown(e: MotionEvent): Boolean { + if (DEBUG) + Log.d(TAG, "onDown called with e = [$e]") + + return if (playerImpl.popupPlayerSelected()) + onDownInPopup(e) + else + true + } + + private fun onDownInPopup(e: MotionEvent): Boolean { + // Fix popup position when the user touch it, it may have the wrong one + // because the soft input is visible (the draggable area is currently resized). + playerImpl.updateScreenSize() + playerImpl.checkPopupPositionBounds() + initialPopupX = playerImpl.popupLayoutParams.x + initialPopupY = playerImpl.popupLayoutParams.y + playerImpl.popupWidth = playerImpl.popupLayoutParams.width.toFloat() + playerImpl.popupHeight = playerImpl.popupLayoutParams.height.toFloat() + return super.onDown(e) + } + + override fun onDoubleTap(e: MotionEvent): Boolean { + if (DEBUG) + Log.d(TAG, "onDoubleTap called with e = [$e]") + + onDoubleTap(e, getDisplayPortion(e)) + return true + } + + override fun onSingleTapConfirmed(e: MotionEvent): Boolean { + if (DEBUG) + Log.d(TAG, "onSingleTapConfirmed() called with: e = [$e]") + + if (playerImpl.popupPlayerSelected()) { + if (playerImpl.player == null) + return false + + onSingleTap(MainPlayer.PlayerType.POPUP) + return true + } else { + super.onSingleTapConfirmed(e) + if (playerImpl.currentState == BasePlayer.STATE_BLOCKED) + return true + + onSingleTap(MainPlayer.PlayerType.VIDEO) + } + return true + } + + override fun onLongPress(e: MotionEvent?) { + if (playerImpl.popupPlayerSelected()) { + playerImpl.updateScreenSize() + playerImpl.checkPopupPositionBounds() + playerImpl.updatePopupSize(playerImpl.screenWidth.toInt(), -1) + } + } + + override fun onScroll( + initialEvent: MotionEvent, + movingEvent: MotionEvent, + distanceX: Float, + distanceY: Float + ): Boolean { + return if (playerImpl.popupPlayerSelected()) { + onScrollInPopup(initialEvent, movingEvent, distanceX, distanceY) + } else { + onScrollInMain(initialEvent, movingEvent, distanceX, distanceY) + } + } + + override fun onFling( + e1: MotionEvent?, + e2: MotionEvent?, + velocityX: Float, + velocityY: Float + ): Boolean { + return if (playerImpl.popupPlayerSelected()) { + val absVelocityX = abs(velocityX) + val absVelocityY = abs(velocityY) + if (absVelocityX.coerceAtLeast(absVelocityY) > tossFlingVelocity) { + if (absVelocityX > tossFlingVelocity) { + playerImpl.popupLayoutParams.x = velocityX.toInt() + } + if (absVelocityY > tossFlingVelocity) { + playerImpl.popupLayoutParams.y = velocityY.toInt() + } + playerImpl.checkPopupPositionBounds() + playerImpl.windowManager + .updateViewLayout(playerImpl.rootView, playerImpl.popupLayoutParams) + return true + } + return false + } else { + true + } + } + + private fun onScrollInMain( + initialEvent: MotionEvent, + movingEvent: MotionEvent, + distanceX: Float, + distanceY: Float + ): Boolean { + + if (!playerImpl.isFullscreen) { + return false + } + + val isTouchingStatusBar: Boolean = initialEvent.y < getStatusBarHeight(service) + val isTouchingNavigationBar: Boolean = (initialEvent.y + > playerImpl.rootView.height - getNavigationBarHeight(service)) + if (isTouchingStatusBar || isTouchingNavigationBar) { + return false + } + + val insideThreshold = abs(movingEvent.y - initialEvent.y) <= MOVEMENT_THRESHOLD + if (!isMovingInMain && (insideThreshold || abs(distanceX) > abs(distanceY)) || + playerImpl.currentState == BasePlayer.STATE_COMPLETED) { + return false + } + + isMovingInMain = true + + onScroll(MainPlayer.PlayerType.VIDEO, getDisplayHalfPortion(initialEvent), + initialEvent, movingEvent, distanceX, distanceY) + + return true + } + + private fun onScrollInPopup( + initialEvent: MotionEvent, + movingEvent: MotionEvent, + distanceX: Float, + distanceY: Float + ): Boolean { + + if (isResizing) { + return super.onScroll(initialEvent, movingEvent, distanceX, distanceY) + } + + if (!isMovingInPopup) { + AnimationUtils.animateView(playerImpl.closeOverlayButton, true, 200) + } + + isMovingInPopup = true + + val diffX: Float = (movingEvent.rawX - initialEvent.rawX) + var posX: Float = (initialPopupX + diffX) + val diffY: Float = (movingEvent.rawY - initialEvent.rawY) + var posY: Float = (initialPopupY + diffY) + + if (posX > playerImpl.screenWidth - playerImpl.popupWidth) { + posX = (playerImpl.screenWidth - playerImpl.popupWidth) + } else if (posX < 0) { + posX = 0f + } + + if (posY > playerImpl.screenHeight - playerImpl.popupHeight) { + posY = (playerImpl.screenHeight - playerImpl.popupHeight) + } else if (posY < 0) { + posY = 0f + } + + playerImpl.popupLayoutParams.x = posX.toInt() + playerImpl.popupLayoutParams.y = posY.toInt() + + onScroll(MainPlayer.PlayerType.POPUP, getDisplayHalfPortion(initialEvent), + initialEvent, movingEvent, distanceX, distanceY) + + playerImpl.windowManager + .updateViewLayout(playerImpl.rootView, playerImpl.popupLayoutParams) + return true + } + + // /////////////////////////////////////////////////////////////////// + // Utils + // /////////////////////////////////////////////////////////////////// + + private fun getDisplayPortion(e: MotionEvent): DisplayPortion { + return if (playerImpl.playerType == MainPlayer.PlayerType.POPUP) { + when { + e.x < playerImpl.popupWidth / 3.0 -> DisplayPortion.LEFT + e.x > playerImpl.popupWidth * 2.0 / 3.0 -> DisplayPortion.RIGHT + else -> DisplayPortion.MIDDLE + } + } else /* MainPlayer.PlayerType.VIDEO */ { + when { + e.x < playerImpl.rootView.width / 3.0 -> DisplayPortion.LEFT + e.x > playerImpl.rootView.width * 2.0 / 3.0 -> DisplayPortion.RIGHT + else -> DisplayPortion.MIDDLE + } + } + } + + // Currently needed for scrolling since there is no action more the middle portion + private fun getDisplayHalfPortion(e: MotionEvent): DisplayPortion { + return if (playerImpl.playerType == MainPlayer.PlayerType.POPUP) { + when { + e.x < playerImpl.popupWidth / 2.0 -> DisplayPortion.LEFT_HALF + else -> DisplayPortion.RIGHT_HALF + } + } else /* MainPlayer.PlayerType.VIDEO */ { + when { + e.x < playerImpl.rootView.width / 2.0 -> DisplayPortion.LEFT_HALF + else -> DisplayPortion.RIGHT_HALF + } + } + } + + private fun getNavigationBarHeight(context: Context): Int { + val resId = context.resources + .getIdentifier("navigation_bar_height", "dimen", "android") + return if (resId > 0) { + context.resources.getDimensionPixelSize(resId) + } else 0 + } + + private fun getStatusBarHeight(context: Context): Int { + val resId = context.resources + .getIdentifier("status_bar_height", "dimen", "android") + return if (resId > 0) { + context.resources.getDimensionPixelSize(resId) + } else 0 + } + + companion object { + private const val TAG = "BasePlayerGestListener" + private val DEBUG = BasePlayer.DEBUG + + private const val MOVEMENT_THRESHOLD = 40 + } +} diff --git a/app/src/main/java/org/schabi/newpipe/player/event/DisplayPortion.kt b/app/src/main/java/org/schabi/newpipe/player/event/DisplayPortion.kt new file mode 100644 index 000000000..f15e42897 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/player/event/DisplayPortion.kt @@ -0,0 +1,5 @@ +package org.schabi.newpipe.player.event + +enum class DisplayPortion { + LEFT, MIDDLE, RIGHT, LEFT_HALF, RIGHT_HALF +} diff --git a/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java b/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java index a2def2a64..003b9ff9d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java +++ b/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java @@ -1,16 +1,16 @@ package org.schabi.newpipe.player.event; import android.app.Activity; -import android.content.Context; import android.util.Log; -import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; -import android.view.ViewConfiguration; import android.view.Window; import android.view.WindowManager; import android.widget.ProgressBar; + import androidx.appcompat.content.res.AppCompatResources; + +import org.jetbrains.annotations.NotNull; import org.schabi.newpipe.R; import org.schabi.newpipe.player.BasePlayer; import org.schabi.newpipe.player.MainPlayer; @@ -23,217 +23,114 @@ import static org.schabi.newpipe.player.VideoPlayer.DEFAULT_CONTROLS_HIDE_TIME; import static org.schabi.newpipe.util.AnimationUtils.Type.SCALE_AND_ALPHA; import static org.schabi.newpipe.util.AnimationUtils.animateView; +/** + * GestureListener for the player + * + * While {@link BasePlayerGestureListener} contains the logic behind the single gestures + * this class focuses on the visual aspect like hiding and showing the controls or changing + * volume/brightness during scrolling for specific events. + */ public class PlayerGestureListener - extends GestureDetector.SimpleOnGestureListener + extends BasePlayerGestureListener implements View.OnTouchListener { private static final String TAG = ".PlayerGestureListener"; private static final boolean DEBUG = BasePlayer.DEBUG; - private final VideoPlayerImpl playerImpl; - private final MainPlayer service; - - private int initialPopupX; - private int initialPopupY; - - private boolean isMovingInMain; - private boolean isMovingInPopup; - - private boolean isResizing; - - private final int tossFlingVelocity; - private final boolean isVolumeGestureEnabled; private final boolean isBrightnessGestureEnabled; private final int maxVolume; - private static final int MOVEMENT_THRESHOLD = 40; - - // [popup] initial coordinates and distance between fingers - private double initPointerDistance = -1; - private float initFirstPointerX = -1; - private float initFirstPointerY = -1; - private float initSecPointerX = -1; - private float initSecPointerY = -1; - public PlayerGestureListener(final VideoPlayerImpl playerImpl, final MainPlayer service) { - this.playerImpl = playerImpl; - this.service = service; - this.tossFlingVelocity = PlayerHelper.getTossFlingVelocity(service); + super(playerImpl, service); isVolumeGestureEnabled = PlayerHelper.isVolumeGestureEnabled(service); isBrightnessGestureEnabled = PlayerHelper.isBrightnessGestureEnabled(service); maxVolume = playerImpl.getAudioReactor().getMaxVolume(); } - /*////////////////////////////////////////////////////////////////////////// - // Helpers - //////////////////////////////////////////////////////////////////////////*/ - - /* - * Main and popup players' gesture listeners is too different. - * So it will be better to have different implementations of them - * */ @Override - public boolean onDoubleTap(final MotionEvent e) { + public void onDoubleTap(@NotNull final MotionEvent event, + @NotNull final DisplayPortion portion) { if (DEBUG) { - Log.d(TAG, "onDoubleTap() called with: e = [" + e + "]" + "rawXy = " - + e.getRawX() + ", " + e.getRawY() + ", xy = " + e.getX() + ", " + e.getY()); + Log.d(TAG, "onDoubleTap called with playerType = [" + + playerImpl.getPlayerType() + "], portion = [" + + portion + "]"); + } + if (playerImpl.isSomePopupMenuVisible()) { + playerImpl.hideControls(0, 0); } - if (playerImpl.popupPlayerSelected()) { - return onDoubleTapInPopup(e); - } else { - return onDoubleTapInMain(e); - } - } - - @Override - public boolean onSingleTapConfirmed(final MotionEvent e) { - if (DEBUG) { - Log.d(TAG, "onSingleTapConfirmed() called with: e = [" + e + "]"); - } - - if (playerImpl.popupPlayerSelected()) { - return onSingleTapConfirmedInPopup(e); - } else { - return onSingleTapConfirmedInMain(e); - } - } - - @Override - public boolean onDown(final MotionEvent e) { - if (DEBUG) { - Log.d(TAG, "onDown() called with: e = [" + e + "]"); - } - - if (playerImpl.popupPlayerSelected()) { - return onDownInPopup(e); - } else { - return true; - } - } - - @Override - public void onLongPress(final MotionEvent e) { - if (DEBUG) { - Log.d(TAG, "onLongPress() called with: e = [" + e + "]"); - } - - if (playerImpl.popupPlayerSelected()) { - onLongPressInPopup(e); - } - } - - @Override - public boolean onScroll(final MotionEvent initialEvent, final MotionEvent movingEvent, - final float distanceX, final float distanceY) { - if (playerImpl.popupPlayerSelected()) { - return onScrollInPopup(initialEvent, movingEvent, distanceX, distanceY); - } else { - return onScrollInMain(initialEvent, movingEvent, distanceX, distanceY); - } - } - - @Override - public boolean onFling(final MotionEvent e1, final MotionEvent e2, - final float velocityX, final float velocityY) { - if (DEBUG) { - Log.d(TAG, "onFling() called with velocity: dX=[" - + velocityX + "], dY=[" + velocityY + "]"); - } - - if (playerImpl.popupPlayerSelected()) { - return onFlingInPopup(e1, e2, velocityX, velocityY); - } else { - return true; - } - } - - @Override - public boolean onTouch(final View v, final MotionEvent event) { - /*if (DEBUG && false) { - Log.d(TAG, "onTouch() called with: v = [" + v + "], event = [" + event + "]"); - }*/ - - if (playerImpl.popupPlayerSelected()) { - return onTouchInPopup(v, event); - } else { - return onTouchInMain(v, event); - } - } - - - /*////////////////////////////////////////////////////////////////////////// - // Main player listener - //////////////////////////////////////////////////////////////////////////*/ - - private boolean onDoubleTapInMain(final MotionEvent e) { - if (e.getX() > playerImpl.getRootView().getWidth() * 2.0 / 3.0) { - playerImpl.onFastForward(); - } else if (e.getX() < playerImpl.getRootView().getWidth() / 3.0) { + if (portion == DisplayPortion.LEFT) { playerImpl.onFastRewind(); - } else { - playerImpl.getPlayPauseButton().performClick(); + } else if (portion == DisplayPortion.RIGHT) { + playerImpl.onFastForward(); } - - return true; } - - private boolean onSingleTapConfirmedInMain(final MotionEvent e) { + @Override + public void onSingleTap(@NotNull final MainPlayer.PlayerType playerType) { if (DEBUG) { - Log.d(TAG, "onSingleTapConfirmed() called with: e = [" + e + "]"); + Log.d(TAG, "onSingleTap called with playerType = [" + + playerImpl.getPlayerType() + "]"); } + if (playerType == MainPlayer.PlayerType.POPUP) { - if (playerImpl.getCurrentState() == BasePlayer.STATE_BLOCKED) { - return true; - } - - if (playerImpl.isControlsVisible()) { - playerImpl.hideControls(150, 0); - } else { - if (playerImpl.getCurrentState() == BasePlayer.STATE_COMPLETED) { - playerImpl.showControls(0); + if (playerImpl.isControlsVisible()) { + playerImpl.hideControls(100, 100); } else { + playerImpl.getPlayPauseButton().requestFocus(); playerImpl.showControlsThenHide(); } + + } else /* playerType == MainPlayer.PlayerType.VIDEO */ { + + if (playerImpl.isControlsVisible()) { + playerImpl.hideControls(150, 0); + } else { + if (playerImpl.getCurrentState() == BasePlayer.STATE_COMPLETED) { + playerImpl.showControls(0); + } else { + playerImpl.showControlsThenHide(); + } + } } - return true; } - private boolean onScrollInMain(final MotionEvent initialEvent, final MotionEvent movingEvent, - final float distanceX, final float distanceY) { - if ((!isVolumeGestureEnabled && !isBrightnessGestureEnabled) - || !playerImpl.isFullscreen()) { - return false; + @Override + public void onScroll(@NotNull final MainPlayer.PlayerType playerType, + @NotNull final DisplayPortion portion, + @NotNull final MotionEvent initialEvent, + @NotNull final MotionEvent movingEvent, + final float distanceX, final float distanceY) { + if (DEBUG) { + Log.d(TAG, "onScroll called with playerType = [" + + playerImpl.getPlayerType() + "], portion = [" + + portion + "]"); } + if (playerType == MainPlayer.PlayerType.VIDEO) { + if (portion == DisplayPortion.LEFT_HALF) { + onScrollMainVolume(distanceX, distanceY); - final boolean isTouchingStatusBar = initialEvent.getY() < getStatusBarHeight(service); - final boolean isTouchingNavigationBar = initialEvent.getY() - > playerImpl.getRootView().getHeight() - getNavigationBarHeight(service); - if (isTouchingStatusBar || isTouchingNavigationBar) { - return false; + } else /* DisplayPortion.RIGHT_HALF */ { + onScrollMainBrightness(distanceX, distanceY); + } + + } else /* MainPlayer.PlayerType.POPUP */ { + final View closingOverlayView = playerImpl.getClosingOverlayView(); + if (playerImpl.isInsideClosingRadius(movingEvent)) { + if (closingOverlayView.getVisibility() == View.GONE) { + animateView(closingOverlayView, true, 250); + } + } else { + if (closingOverlayView.getVisibility() == View.VISIBLE) { + animateView(closingOverlayView, false, 0); + } + } } + } - /*if (DEBUG && false) Log.d(TAG, "onScrollInMain = " + - ", e1.getRaw = [" + initialEvent.getRawX() + ", " + initialEvent.getRawY() + "]" + - ", e2.getRaw = [" + movingEvent.getRawX() + ", " + movingEvent.getRawY() + "]" + - ", distanceXy = [" + distanceX + ", " + distanceY + "]");*/ - - final boolean insideThreshold = - Math.abs(movingEvent.getY() - initialEvent.getY()) <= MOVEMENT_THRESHOLD; - if (!isMovingInMain && (insideThreshold || Math.abs(distanceX) > Math.abs(distanceY)) - || playerImpl.getCurrentState() == BasePlayer.STATE_COMPLETED) { - return false; - } - - isMovingInMain = true; - - final boolean acceptAnyArea = isVolumeGestureEnabled != isBrightnessGestureEnabled; - final boolean acceptVolumeArea = acceptAnyArea - || initialEvent.getX() > playerImpl.getRootView().getWidth() / 2.0; - - if (isVolumeGestureEnabled && acceptVolumeArea) { + private void onScrollMainVolume(final float distanceX, final float distanceY) { + if (isVolumeGestureEnabled) { playerImpl.getVolumeProgressBar().incrementProgressBy((int) distanceY); final float currentProgressPercent = (float) playerImpl .getVolumeProgressBar().getProgress() / playerImpl.getMaxGestureLength(); @@ -258,10 +155,14 @@ public class PlayerGestureListener if (playerImpl.getBrightnessRelativeLayout().getVisibility() == View.VISIBLE) { playerImpl.getBrightnessRelativeLayout().setVisibility(View.GONE); } - } else { + } + } + + private void onScrollMainBrightness(final float distanceX, final float distanceY) { + if (isBrightnessGestureEnabled) { final Activity parent = playerImpl.getParentActivity(); if (parent == null) { - return true; + return; } final Window window = parent.getWindow(); @@ -299,330 +200,71 @@ public class PlayerGestureListener playerImpl.getVolumeRelativeLayout().setVisibility(View.GONE); } } - return true; } - private void onScrollEndInMain() { + @Override + public void onScrollEnd(@NotNull final MainPlayer.PlayerType playerType, + @NotNull final MotionEvent event) { if (DEBUG) { - Log.d(TAG, "onScrollEnd() called"); + Log.d(TAG, "onScrollEnd called with playerType = [" + + playerImpl.getPlayerType() + "]"); } + if (playerType == MainPlayer.PlayerType.VIDEO) { + if (DEBUG) { + Log.d(TAG, "onScrollEnd() called"); + } - if (playerImpl.getVolumeRelativeLayout().getVisibility() == View.VISIBLE) { - animateView(playerImpl.getVolumeRelativeLayout(), SCALE_AND_ALPHA, false, 200, 200); - } - if (playerImpl.getBrightnessRelativeLayout().getVisibility() == View.VISIBLE) { - animateView(playerImpl.getBrightnessRelativeLayout(), SCALE_AND_ALPHA, false, 200, 200); - } + if (playerImpl.getVolumeRelativeLayout().getVisibility() == View.VISIBLE) { + animateView(playerImpl.getVolumeRelativeLayout(), SCALE_AND_ALPHA, + false, 200, 200); + } + if (playerImpl.getBrightnessRelativeLayout().getVisibility() == View.VISIBLE) { + animateView(playerImpl.getBrightnessRelativeLayout(), SCALE_AND_ALPHA, + false, 200, 200); + } - if (playerImpl.isControlsVisible() && playerImpl.getCurrentState() == STATE_PLAYING) { - playerImpl.hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME); + if (playerImpl.isControlsVisible() && playerImpl.getCurrentState() == STATE_PLAYING) { + playerImpl.hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME); + } + } else { + if (playerImpl == null) { + return; + } + if (playerImpl.isControlsVisible() && playerImpl.getCurrentState() == STATE_PLAYING) { + playerImpl.hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME); + } + + if (playerImpl.isInsideClosingRadius(event)) { + playerImpl.closePopup(); + } else { + animateView(playerImpl.getClosingOverlayView(), false, 0); + + if (!playerImpl.isPopupClosing) { + animateView(playerImpl.getCloseOverlayButton(), false, 200); + } + } } } - private boolean onTouchInMain(final View v, final MotionEvent event) { - playerImpl.getGestureDetector().onTouchEvent(event); - if (event.getAction() == MotionEvent.ACTION_UP && isMovingInMain) { - isMovingInMain = false; - onScrollEndInMain(); - } - // This hack allows to stop receiving touch events on appbar - // while touching video player's view - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: - case MotionEvent.ACTION_MOVE: - v.getParent().requestDisallowInterceptTouchEvent(playerImpl.isFullscreen()); - return true; - case MotionEvent.ACTION_UP: - v.getParent().requestDisallowInterceptTouchEvent(false); - return false; - default: - return true; - } - } - - /*////////////////////////////////////////////////////////////////////////// - // Popup player listener - //////////////////////////////////////////////////////////////////////////*/ - - private boolean onDoubleTapInPopup(final MotionEvent e) { - if (playerImpl == null || !playerImpl.isPlaying()) { - return false; + @Override + public void onPopupResizingStart() { + if (DEBUG) { + Log.d(TAG, "onPopupResizingStart called"); } + playerImpl.showAndAnimateControl(-1, true); + playerImpl.getLoadingPanel().setVisibility(View.GONE); playerImpl.hideControls(0, 0); - - if (e.getX() > playerImpl.getPopupWidth() / 2) { - playerImpl.onFastForward(); - } else { - playerImpl.onFastRewind(); - } - - return true; + animateView(playerImpl.getCurrentDisplaySeek(), false, 0, 0); + animateView(playerImpl.getResizingIndicator(), true, 200, 0); } - private boolean onSingleTapConfirmedInPopup(final MotionEvent e) { - if (playerImpl == null || playerImpl.getPlayer() == null) { - return false; + @Override + public void onPopupResizingEnd() { + if (DEBUG) { + Log.d(TAG, "onPopupResizingEnd called"); } - if (playerImpl.isControlsVisible()) { - playerImpl.hideControls(100, 100); - } else { - playerImpl.getPlayPauseButton().requestFocus(); - playerImpl.showControlsThenHide(); - } - return true; - } - - private boolean onDownInPopup(final MotionEvent e) { - // Fix popup position when the user touch it, it may have the wrong one - // because the soft input is visible (the draggable area is currently resized). - playerImpl.updateScreenSize(); - playerImpl.checkPopupPositionBounds(); - - initialPopupX = playerImpl.getPopupLayoutParams().x; - initialPopupY = playerImpl.getPopupLayoutParams().y; - playerImpl.setPopupWidth(playerImpl.getPopupLayoutParams().width); - playerImpl.setPopupHeight(playerImpl.getPopupLayoutParams().height); - return super.onDown(e); - } - - private void onLongPressInPopup(final MotionEvent e) { - playerImpl.updateScreenSize(); - playerImpl.checkPopupPositionBounds(); - playerImpl.updatePopupSize((int) playerImpl.getScreenWidth(), -1); - } - - private boolean onScrollInPopup(final MotionEvent initialEvent, - final MotionEvent movingEvent, - final float distanceX, - final float distanceY) { - if (isResizing || playerImpl == null) { - return super.onScroll(initialEvent, movingEvent, distanceX, distanceY); - } - - if (!isMovingInPopup) { - animateView(playerImpl.getCloseOverlayButton(), true, 200); - } - - isMovingInPopup = true; - - final float diffX = (int) (movingEvent.getRawX() - initialEvent.getRawX()); - float posX = (int) (initialPopupX + diffX); - final float diffY = (int) (movingEvent.getRawY() - initialEvent.getRawY()); - float posY = (int) (initialPopupY + diffY); - - if (posX > (playerImpl.getScreenWidth() - playerImpl.getPopupWidth())) { - posX = (int) (playerImpl.getScreenWidth() - playerImpl.getPopupWidth()); - } else if (posX < 0) { - posX = 0; - } - - if (posY > (playerImpl.getScreenHeight() - playerImpl.getPopupHeight())) { - posY = (int) (playerImpl.getScreenHeight() - playerImpl.getPopupHeight()); - } else if (posY < 0) { - posY = 0; - } - - playerImpl.getPopupLayoutParams().x = (int) posX; - playerImpl.getPopupLayoutParams().y = (int) posY; - - final View closingOverlayView = playerImpl.getClosingOverlayView(); - if (playerImpl.isInsideClosingRadius(movingEvent)) { - if (closingOverlayView.getVisibility() == View.GONE) { - animateView(closingOverlayView, true, 250); - } - } else { - if (closingOverlayView.getVisibility() == View.VISIBLE) { - animateView(closingOverlayView, false, 0); - } - } - -// if (DEBUG) { -// Log.d(TAG, "onScrollInPopup = " -// + "e1.getRaw = [" + initialEvent.getRawX() + ", " -// + initialEvent.getRawY() + "], " -// + "e1.getX,Y = [" + initialEvent.getX() + ", " -// + initialEvent.getY() + "], " -// + "e2.getRaw = [" + movingEvent.getRawX() + ", " -// + movingEvent.getRawY() + "], " -// + "e2.getX,Y = [" + movingEvent.getX() + ", " + movingEvent.getY() + "], " -// + "distanceX,Y = [" + distanceX + ", " + distanceY + "], " -// + "posX,Y = [" + posX + ", " + posY + "], " -// + "popupW,H = [" + popupWidth + " x " + popupHeight + "]"); -// } - playerImpl.windowManager - .updateViewLayout(playerImpl.getRootView(), playerImpl.getPopupLayoutParams()); - return true; - } - - private void onScrollEndInPopup(final MotionEvent event) { - if (playerImpl == null) { - return; - } - if (playerImpl.isControlsVisible() && playerImpl.getCurrentState() == STATE_PLAYING) { - playerImpl.hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME); - } - - if (playerImpl.isInsideClosingRadius(event)) { - playerImpl.closePopup(); - } else { - animateView(playerImpl.getClosingOverlayView(), false, 0); - - if (!playerImpl.isPopupClosing) { - animateView(playerImpl.getCloseOverlayButton(), false, 200); - } - } - } - - private boolean onFlingInPopup(final MotionEvent e1, - final MotionEvent e2, - final float velocityX, - final float velocityY) { - if (playerImpl == null) { - return false; - } - - final float absVelocityX = Math.abs(velocityX); - final float absVelocityY = Math.abs(velocityY); - if (Math.max(absVelocityX, absVelocityY) > tossFlingVelocity) { - if (absVelocityX > tossFlingVelocity) { - playerImpl.getPopupLayoutParams().x = (int) velocityX; - } - if (absVelocityY > tossFlingVelocity) { - playerImpl.getPopupLayoutParams().y = (int) velocityY; - } - playerImpl.checkPopupPositionBounds(); - playerImpl.windowManager - .updateViewLayout(playerImpl.getRootView(), playerImpl.getPopupLayoutParams()); - return true; - } - return false; - } - - private boolean onTouchInPopup(final View v, final MotionEvent event) { - if (playerImpl == null) { - return false; - } - playerImpl.getGestureDetector().onTouchEvent(event); - - if (event.getPointerCount() == 2 && !isMovingInPopup && !isResizing) { - if (DEBUG) { - Log.d(TAG, "onTouch() 2 finger pointer detected, enabling resizing."); - } - playerImpl.showAndAnimateControl(-1, true); - playerImpl.getLoadingPanel().setVisibility(View.GONE); - - playerImpl.hideControls(0, 0); - animateView(playerImpl.getCurrentDisplaySeek(), false, 0, 0); - animateView(playerImpl.getResizingIndicator(), true, 200, 0); - //record coordinates of fingers - initFirstPointerX = event.getX(0); - initFirstPointerY = event.getY(0); - initSecPointerX = event.getX(1); - initSecPointerY = event.getY(1); - //record distance between fingers - initPointerDistance = Math.hypot(initFirstPointerX - initSecPointerX, - initFirstPointerY - initSecPointerY); - - isResizing = true; - } - - if (event.getAction() == MotionEvent.ACTION_MOVE && !isMovingInPopup && isResizing) { - if (DEBUG) { - Log.d(TAG, "onTouch() ACTION_MOVE > v = [" + v + "], " - + "e1.getRaw = [" + event.getRawX() + ", " + event.getRawY() + "]"); - } - return handleMultiDrag(event); - } - - if (event.getAction() == MotionEvent.ACTION_UP) { - if (DEBUG) { - Log.d(TAG, "onTouch() ACTION_UP > v = [" + v + "], " - + "e1.getRaw = [" + event.getRawX() + ", " + event.getRawY() + "]"); - } - if (isMovingInPopup) { - isMovingInPopup = false; - onScrollEndInPopup(event); - } - - if (isResizing) { - isResizing = false; - - initPointerDistance = -1; - initFirstPointerX = -1; - initFirstPointerY = -1; - initSecPointerX = -1; - initSecPointerY = -1; - - animateView(playerImpl.getResizingIndicator(), false, 100, 0); - playerImpl.changeState(playerImpl.getCurrentState()); - } - - if (!playerImpl.isPopupClosing) { - playerImpl.savePositionAndSize(); - } - } - - v.performClick(); - return true; - } - - private boolean handleMultiDrag(final MotionEvent event) { - if (initPointerDistance != -1 && event.getPointerCount() == 2) { - // get the movements of the fingers - final double firstPointerMove = Math.hypot(event.getX(0) - initFirstPointerX, - event.getY(0) - initFirstPointerY); - final double secPointerMove = Math.hypot(event.getX(1) - initSecPointerX, - event.getY(1) - initSecPointerY); - - // minimum threshold beyond which pinch gesture will work - final int minimumMove = ViewConfiguration.get(service).getScaledTouchSlop(); - - if (Math.max(firstPointerMove, secPointerMove) > minimumMove) { - // calculate current distance between the pointers - final double currentPointerDistance = - Math.hypot(event.getX(0) - event.getX(1), - event.getY(0) - event.getY(1)); - - final double popupWidth = playerImpl.getPopupWidth(); - // change co-ordinates of popup so the center stays at the same position - final double newWidth = (popupWidth * currentPointerDistance / initPointerDistance); - initPointerDistance = currentPointerDistance; - playerImpl.getPopupLayoutParams().x += (popupWidth - newWidth) / 2; - - playerImpl.checkPopupPositionBounds(); - playerImpl.updateScreenSize(); - - playerImpl.updatePopupSize( - (int) Math.min(playerImpl.getScreenWidth(), newWidth), - -1); - return true; - } - } - return false; - } - - - /* - * Utils - * */ - - private int getNavigationBarHeight(final Context context) { - final int resId = context.getResources() - .getIdentifier("navigation_bar_height", "dimen", "android"); - if (resId > 0) { - return context.getResources().getDimensionPixelSize(resId); - } - return 0; - } - - private int getStatusBarHeight(final Context context) { - final int resId = context.getResources() - .getIdentifier("status_bar_height", "dimen", "android"); - if (resId > 0) { - return context.getResources().getDimensionPixelSize(resId); - } - return 0; + animateView(playerImpl.getResizingIndicator(), false, 100, 0); } } From 8691e035a07ae99e91a20f838e3897007c0320c1 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 29 Oct 2020 13:06:34 +0100 Subject: [PATCH 055/231] Added translation using Weblate (English (United Kingdom)) --- app/src/main/res/values-en-rGB/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-en-rGB/strings.xml diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From b12d5681473da43e7f555162437e0260b13dea59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=2E=20R=C3=BCdinger?= Date: Fri, 30 Oct 2020 13:20:30 +0000 Subject: [PATCH 056/231] Translated using Weblate (German) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 81403afcd..47a0160a2 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -481,7 +481,7 @@ Downloads starten Downloads anhalten Download-Ziel abfragen - Du wirst gefragt, wohin du jeden Download speichern willst + Du wirst gefragt, wo jeder Download gespeichert werden soll Du wirst gefragt, wohin du jeden Download speichern willst. \nAktiviere diese Option, wenn du auf die externe SD-Karte herunterladen möchtest SAF verwenden From 3df9433baf4c806f107b3d4e4d0400277f20b65f Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:20:12 +0000 Subject: [PATCH 057/231] Translated using Weblate (German) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-de/strings.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 47a0160a2..754030991 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -2,7 +2,7 @@ %1$s Aufrufe Veröffentlicht am %1$s - Keinen Stream-Player gefunden. VLC installieren\? + Kein Stream-Player gefunden. VLC installieren\? Installieren Abbrechen Im Browser öffnen @@ -348,11 +348,11 @@ \n1. Gehe zu dieser URL: %1$s \n2. Melde dich an, falls du dazu aufgefordert wirst. \n3. Der Ladevorgang sollte beginnen (das ist die Exportdatei) - Importiere ein SoundCloud-Profil, indem du entweder die URL oder deine ID eingibst: -\n -\n1. Aktiviere den Desktop-Modus in einem Web-Browser (die Seite ist für mobile Geräte nicht verfügbar) -\n2. Gehe zu dieser URL: %1$s -\n3. Melde dich an, falls du dazu aufgefordert wirst + Importiere ein SoundCloud-Profil, indem die URL oder deine ID eingegeben wird: +\n +\n1. Aktiviere den Desktop-Modus in einem Web-Browser (die Seite ist für mobile Geräte nicht verfügbar) +\n2. Gehe zu dieser URL: %1$s +\n3. Melde dich an, falls du dazu aufgefordert wirst \n4. Kopiere die Profil-URL, zu der du weitergeleitet wurdest. yourID, soundcloud.com/yourid Keine Streams zum Download verfügbar @@ -398,7 +398,7 @@ Neuer Tab Tab wählen Gestensteuerung für Lautstärke - Player-Lautstärke über Gesten steuern + Verwende Gesten um die Abspielerlautstärke einzustellen Gestensteuerung für Helligkeit Player-Helligkeit über Gesten steuern Aktualisierungen @@ -420,7 +420,7 @@ Gitter Auto Ansicht wechseln - NewPipe-Update ist verfügbar! + Eine NewPipe-Aktualisierung ist verfügbar! Zum Herunterladen antippen Fertig Ausstehend @@ -490,7 +490,7 @@ Wiedergabepositionen löschen Alle Wiedergabepositionen löschen Alle Wiedergabepositionen löschen\? - Ändere die Downloadordner, damit sie wirksam werden + Wähle einen neuen Heruntergeladen-Ordner Dienst umschalten, aktuell ausgewählt: Standard-Kiosk Niemand schaut zu From 67d1a4f64382e311809028c1bbdbe9d32c971619 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:33:33 +0000 Subject: [PATCH 058/231] Translated using Weblate (Finnish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-fi/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 13e2ae17d..811a4f52a 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -12,7 +12,7 @@ Lataus Haku Asetukset - Tarkoititko \"%1$s\"\? + Tarkoititko ”%1$s”\? Jaa Valitse selain kierto @@ -44,7 +44,7 @@ Vain jotkin laitteet voivat toistaa 2K/4K-videota Toista Kodissa Asennetaanko puuttuva Kore-sovellus\? - Näytä \"Toista Kodissa\"-vaihtoehto + Näytä ”Toista Kodissa”-vaihtoehto Näyttää vaihtoehdon videon toistamiseen Kodi-mediasoittimessa Ääni Oletusääniformaatti From 6fcf989c62dd41a81f3f9e6b573b16b03e0846bf Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Thu, 29 Oct 2020 09:27:01 +0000 Subject: [PATCH 059/231] Translated using Weblate (Finnish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-fi/strings.xml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 811a4f52a..a78bc1a7f 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1,6 +1,7 @@ - Napauta hakua aloittaaksesi + Napauta hakua aloittaaksesi +\n %1$s näyttökertaa Julkaistu %1$s Ei löytynyt suoratoistosoitinta. Asennetaanko VLC\? @@ -76,7 +77,7 @@ Toistaa taustalla Toistetaan ponnahdusikkunatilassa Sisältö - Ikärajoitettu sisältö + Näytä ikärajoitettu sisältö Ikärajoitettu video. Muuttaminen on mahdollista asetuksissa. Suora Lataukset @@ -438,8 +439,8 @@ Videot Tämä video on ikärajoitettu. \n -\nSalli ikärajoitettu sisältö asetuksissa katsoaksesi. - YouTuben rajoitettu tila +\nSalli \"%1$s\" asetuksissa katsoaksesi. + Ota käyttöön YouTuben \"Rajoitettu tila\" Päivitykset Instanssi on jo olemassa Vain HTTPS-URL:t ovat tuettuja @@ -632,4 +633,12 @@ Ensimmäinen toimintopainike Skaalaa ilmoituksessa näytettävä videon esikatselukuva kuvasuhteesta 16:9 kuvasuhteeseen 1:1 (saattaa aiheuttaa vääristymiä) Skaalaa esikatselukuva 1:1-kuvasuhteeseen + Näytä muistivuodot + Lisätty jonoon + Lisää jonoon + Poista evästeet, jotka NewPipe tallentaa, kun ratkaiset reCAPTCHA:n + reCAPTCHA-evästeet on poistettu + Poista reCAPTCHA-evästeet + YouTube tarjoaa \"Rajoitetun tilan\", joka piilottaa aikuisviihdesisällön. + Näytä mahdollisesti lapsille sopimaton sisältö, jolla on ikäraja (esim. 18+). \ No newline at end of file From 1dd2423a0b596007eb06b0ebf4de0c7c9693d542 Mon Sep 17 00:00:00 2001 From: mimi89999 Date: Fri, 30 Oct 2020 17:26:11 +0100 Subject: [PATCH 060/231] Add missing screenshots --- README.md | 12 ++++++------ .../en-US/images/phoneScreenshots/shot_02.png | Bin 0 -> 74850 bytes .../en-US/images/phoneScreenshots/shot_03.png | Bin 0 -> 127530 bytes .../en-US/images/phoneScreenshots/shot_05.png | Bin 0 -> 206839 bytes .../en-US/images/phoneScreenshots/shot_06.png | Bin 174272 -> 163193 bytes .../en-US/images/phoneScreenshots/shot_07.png | Bin 0 -> 301563 bytes .../en-US/images/phoneScreenshots/shot_08.png | Bin 0 -> 157988 bytes .../en-US/images/phoneScreenshots/shot_09.png | Bin 0 -> 59168 bytes .../en-US/images/phoneScreenshots/shot_10.png | Bin 0 -> 59211 bytes 9 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png diff --git a/README.md b/README.md index e2ef680d8..6eea7de01 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,16 @@ ## Screenshots -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png) [](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png) [](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png) diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png new file mode 100644 index 0000000000000000000000000000000000000000..434e1894bcb7fd69092e30f4dcacb40600a0727d GIT binary patch literal 74850 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

gBhNn3`ImmB9$lRu?+Fi;4CO~^G9JBBq@m+ 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 {i{O)Td{Ow97i%AKo@++{H5bpoP;A?Ye_${! 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≶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 On1MEhHUYIZ0z-Y<1kUIH diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png new file mode 100644 index 0000000000000000000000000000000000000000..6976dcc2d12a9538218a225d2d42dfbf66abf7c8 GIT binary patch literal 301563 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 SlmC{~SI9 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�RjX+uCEUweubE<}swzEy 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�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

?=KoM-1%306ndkYaRjV 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

T&q081e8*fb-PQy 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 K^zwDCKKKtYcJ}@N literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png new file mode 100644 index 0000000000000000000000000000000000000000..87947bce8380ea3429fdbbac6373b70a1de6c230 GIT binary patch literal 59211 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 literal 0 HcmV?d00001 From 4954dfe10758b1c3bbb96aafc6cbcf9148a4f139 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:22:30 +0000 Subject: [PATCH 061/231] Translated using Weblate (German) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-de/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 754030991..5eebbb65f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -10,7 +10,7 @@ Herunterladen Suchen Einstellungen - Meintest du: \"%1$s\"\? + Meintest du „%1$s“\? Teilen mit Browser auswählen Bildschirm drehen @@ -229,7 +229,7 @@ Kiosk-Seite Kiosk auswählen Kiosk - Tipp anzeigen, wenn der Hintergrundwiedergabe- oder Pop-up-Button „Details:“ im Video gedrückt wird + Tipp anzeigen, wenn der Hintergrundwiedergabe- oder Pop-up-Knopf „Details:“ im Video gedrückt wird In der Warteschlange der Hintergrundwiedergabe Neu und Heiß Halten, um zur Wiedergabeliste hinzuzufügen @@ -481,7 +481,7 @@ Downloads starten Downloads anhalten Download-Ziel abfragen - Du wirst gefragt, wo jeder Download gespeichert werden soll + Du wirst gefragt, wo jede heruntergeladene Datei gespeichert werden soll Du wirst gefragt, wohin du jeden Download speichern willst. \nAktiviere diese Option, wenn du auf die externe SD-Karte herunterladen möchtest SAF verwenden @@ -600,7 +600,7 @@ Gesehene Videos entfernen\? Originalzeit vor Elementen anzeigen Originaltexte von Diensten werden in Stream-Elementen sichtbar sein - Aktivieren des \"Eingeschränkten Modus\" von YouTube + Aktivieren des „Eingeschränkten Modus“ von YouTube Avatarbild des Kanals Erstellt von %s Von %s @@ -634,7 +634,7 @@ Bestätige das Leeren der Warteschlange Die aktive Wiedergabeliste wird ersetzt werden Eingereiht - YouTube bietet einen \"Eingeschränkten Modus\", der potenzielle Inhalte für Erwachsene ausblendet. + YouTube bietet einen „Eingeschränkten Modus“, der potenzielle Inhalte für Erwachsene ausblendet. Speicherlecks anzeigen Lösche Cookies, die NewPipe speichert, wenn du ein reCAPTCHA löst reCAPTCHA-Cookies wurden gelöscht From 5c8f8869d46eef41052af6904edffc5c1a31f049 Mon Sep 17 00:00:00 2001 From: SiD ViCiO Date: Fri, 30 Oct 2020 13:32:14 +0000 Subject: [PATCH 062/231] Translated using Weblate (Spanish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-es/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c0464ca8d..50e99cfb2 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -158,7 +158,7 @@ Suscribirse Suscrito Canal no suscrito - No se pudo cambiar la suscripción + No se puede cambiar la suscripción No se pudo actualizar la suscripción Principal Suscripciones From eab4fd80d7b2910c2a54a832916de867f7df7bb7 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:31:44 +0000 Subject: [PATCH 063/231] Translated using Weblate (Spanish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-es/strings.xml | 32 ++++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 50e99cfb2..44f1ecd2d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -10,7 +10,7 @@ Descargar Buscar Ajustes - ¿Quiso decir \"%1$s\"\? + ¿Quiso decir «%1$s»\? Compartir con Elegir navegador giro @@ -58,7 +58,7 @@ Miniatura del avatar del usuario Las transmisiones en vivo no son soportadas aún Contenido - Contenido restringido por edad + Mostrar contenido con restricción de edad Mostrar vídeo restringido por edad. Se pueden realizar cambios futuros desde los ajustes. Toque «Buscar» para empezar \n @@ -72,7 +72,7 @@ No se pudo configurar el menú de descarga No se pudo obtener ninguna transmisión Lo siento, esto no debería haber ocurrido. - Informar de este error vía email + Informar de este error vía correo electrónico Lo siento, algo salió mal. Informar Información: @@ -220,7 +220,7 @@ Quiosco Tendencias 50 mejores - Mostrar sugerencia cuando se presiona el botón de segundo plano o emergente en la página \"Detalles:\" del vídeo + Mostrar sugerencia cuando se presiona el botón de segundo plano o emergente en la página «Detalles:» del vídeo En cola en el reproductor de 2.º plano En cola en el reproductor emergente Reproducir todo @@ -234,7 +234,7 @@ Comenzar a reproducir aquí Comenzar a reproducir en segundo plano Reproducir en modo emergente - Mostrar consejo \"Mantener presionado para añadir\" + Mostrar consejo «Mantener presionado para añadir» Nuevo y lo mejor Mantener presionado para agregar a la cola Donar @@ -335,11 +335,11 @@ \n1. Vaya a esta URL: %1$s \n2. Inicie sesión cuando se le pida \n3. Una descarga debería empezar (ese es el archivo de exportación) - Importe un perfil de SoundCloud escribiendo la URL o su ID: -\n -\n1. Active el \"modo escritorio\" en un navegador web (el sitio no está disponible para dispositivos móviles) -\n2. Vaya a esta URL: %1$s -\n3. Inicie sesión cuando se le pida + Importe un perfil de SoundCloud escribiendo la URL o su ID: +\n +\n1. Active el «modo escritorio» en un navegador web (el sitio no está disponible para dispositivos móviles) +\n2. Vaya a esta URL: %1$s +\n3. Inicie sesión cuando se le pida \n4. Copie la URL del perfil a la que fue redireccionado. suID, soundcloud.com/suID Observe que esta operación puede causar un uso intensivo de la red. @@ -593,7 +593,7 @@ Canciones Este video tiene restricción por edades. \n -\nHabilita \"Contenido restringido por edades\" en los ajustes si quieres verlo. +\nHabilita «%1$s» en los ajustes si quieres verlo. Sí, y también videos vistos parcialmente Los videos que ya se hayan visto luego de agregados a la lista de reproducción, serán eliminados. \n¿Estás seguro\? ¡Esta acción no se puede deshacer! @@ -604,7 +604,7 @@ Miniatura de avatar del canal Los textos originales de los servicios serán visibles en los ítems de transmisiones Mostrar tiempo atrás original en ítems - Modo restringido de YouTube + Activar el «Modo restringido» de YouTube Página de lista de reproducción Mostrar sólo suscripciones desagrupadas Sin marcadores de lista de reproducción aún @@ -636,4 +636,12 @@ Botón de segunda acción Botón de primera acción Escalar la miniatura del vídeo mostrada en la notificación de relación de aspecto 16:9 a 1:1 (puede ocasionar distorsiones) + Limpiar las cookies que NewPipe guarda cuando resuelves un reCAPTCHA + Mostrar contenido inapropiado para niños porque tiene un limite de edad (como 18+). + Mostrar pérdidas de memoria + Añadido a la cola + Añadir a la cola + Las cookies reCAPTCHA han sido limpiadas + Limpiar las cookies reCAPTCHA + YouTube provee un «Modo restringido», el cual oculta contenido potencialmente sólo apto para adultos. \ No newline at end of file From c287813e00cbab6726510f32b1e21eb9b4117552 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:13:26 +0000 Subject: [PATCH 064/231] Translated using Weblate (French) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-fr/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 4a6c39b77..05178080b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -73,7 +73,7 @@ Audio Réessayer Veuillez d’abord accorder l’accès au stockage - Appuyer sur \"Rechercher\" pour commencer + Appuyez sur « Rechercher » pour commencer \n Lecture automatique Affiche les vidéos soumises à une limite d’âge. Modifier cette option est possible depuis les paramètres. @@ -639,6 +639,6 @@ Effacer les cookies que NewPipe garde lorsque vous résolvez un reCAPTCHA Les cookies reCAPTCHA ont été effacés Effacer les cookies reCAPTCHA - YouTube dispose d\'un « Mode restreint » qui cache le contenu potentiellement mature. - Le contenu de cette émission n\'est peut-être pas approprié aux enfants à cause d\'une limite d\'âge (18 +). + YouTube dispose d\'un « Mode restreint » qui cache le contenu potentiellement inapproprié. + Le contenu de cette émission n\'est peut-être pas approprié pour les enfants à cause d\'une limite d\'âge (18 +). \ No newline at end of file From 952bb1a2ebc71cbc8639f0a232f8d48602e1378d Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:26:00 +0000 Subject: [PATCH 065/231] Translated using Weblate (Italian) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-it/strings.xml | 34 +++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a6ef35419..e7a25f122 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -10,7 +10,7 @@ Scarica Cerca Impostazioni - Forse cercavi \"%1$s\"\? + Forse cercavi «%1$s»\? Condividi con Scegli Browser rotazione @@ -20,12 +20,12 @@ Risoluzione Predefinita Riproduci con Kodi Installare l\'app Kore\? - Mostra \"Riproduci con Kodi\" + Mostra «Riproduci con Kodi» Mostra l\'opzione per riprodurre video tramite Kodi Audio Formato Audio Predefinito Scarica - Mostra video \"Prossimo\" e \"Simili\" + Mostra video «Prossimo» e «Simili» URL non supportato Lingua Predefinita per Contenuti Video e Audio @@ -60,7 +60,7 @@ Contenuti Mostra Contenuti con Restrizioni di Età Mostra video con restrizioni di età. È possibile modificare questa opzione nelle Impostazioni. - Tocca \"Cerca\" per iniziare + Tocca «Cerca» per iniziare \n Riproduzione Automatica Riproduci i video quando NewPipe viene aperto da un\'altra app @@ -220,8 +220,8 @@ Tendenze Top 50 Nuovi e Popolari - Mostra suggerimento \"Tieni premuto per accodare\" - Nei \"Dettagli\" dei video, mostra suggerimento alla pressione dei pulsanti per la riproduzione Popup o in Sottofondo + Mostra suggerimento «Tieni premuto per accodare» + Nei «Dettagli» dei video, mostra suggerimento alla pressione dei pulsanti per la riproduzione Popup o in Sottofondo Accoda in Sottofondo Accodato in Popup Riproduci Tutto @@ -306,7 +306,7 @@ Debug Generato automaticamente Il monitoraggio di memory leak potrebbe causare la mancata risposta dell\'applicazione durante il dumping dell\'heap - Segnala Errori \"Out-of-lifecycle\" + Segnala errori «fuori del ciclo di vita» Forza la segnalazione di eccezioni Rx non consegnabili al di fuori del ciclo di vita dell\'attività dopo la chiusura Usa Ricerca Rapida (Imprecisa) Consente al lettore multimediale di spostarsi più velocemente, ma con precisione ridotta. Spostamenti di 5, 15 o 25 secondi non funzionano con questo. @@ -333,11 +333,11 @@ \n1. Vai a questo URL: %1$s \n2. Accedi quando richiesto \n3. Il download del file d\'esportazione dovrebbe partire in automatico - Importa un profilo SoundCloud inserendo l\'URL o il tuo ID: -\n -\n1. Abilitare la \"modalità desktop\" del browser (il sito non è disponibile per i dispositivi mobili) -\n2. Aprire questo URL: %1$s -\n3. Accedere quando richiesto + Importa un profilo SoundCloud inserendo l\'URL o il tuo ID: +\n +\n1. Abilitare la «modalità desktop» del browser (il sito non è disponibile per i dispositivi mobili) +\n2. Aprire questo URL: %1$s +\n3. Accedere quando richiesto \n4. Copiare l\'URL del profilo a cui si viene indirizzati. iltuoID, soundcloud.com/iltuoid Tieni presente che questa operazione può consumare una grande quantità di traffico dati. @@ -483,7 +483,7 @@ Limita Coda Download Ogni volta verrà chiesta la destinazione dei file. \nScegli SAF se vuoi scaricare su una scheda SD esterna - \"Storage Access Framework\" consente di salvare file su una memoria esterna. + Lo Storage Access Framework consente di salvare file su una memoria esterna. \nAlcuni dispositivi non sono compatibili Elimina posizioni di riproduzione Elimina tutte le posizioni di riproduzione @@ -524,7 +524,7 @@ Consentire la visualizzazione sopra altre applicazioni Lingua Applicazione Predefinita di Sistema - Premere \"Fatto\" quando risolto + Premere «Fatto» quando risolto Fatto Video @@ -590,13 +590,13 @@ Canzoni Questo video ha restrizioni di età. \n -\nAttivare \"%1$s\" nelle Impostazioni per poterlo vedere. +\nAttivare «%1$s» nelle Impostazioni per poterlo vedere. Sì, anche quelli visaualizzati parzialmente Saranno rimossi gli elementi della playlist già visualizzati, sia precedenti che successivi. \nSei sicuro\? L\'azione è irreversibile! Rimuovere i gli elementi già visti\? Rimuovi Elementi Visti - Attiva la \"Modalità con Restrizioni\" di YouTube + Attiva la «Modalità con restrizioni» di YouTube I testi originali dei servizi saranno visibili negli elementi video Mostra i tempi originali degli elementi Immagine del Canale @@ -639,6 +639,6 @@ Cancella i cookie che NewPipe memorizza quando si risolve un reCAPTCHA Cookie reCAPTCHA puliti Pulisci Cookie reCAPTCHA - Consente di usufruire della \"Modalità con Restrizioni\" di YouTube, che esclude contenuti potenzialmente inappropriati per i minori. + Consente di usufruire della «Modalità con restrizioni» di YouTube, che esclude contenuti potenzialmente inappropriati per i minori. Mostra contenuti che hanno un limite di età (es. 18+). Potrebbero essere inadatti ai bambini. \ No newline at end of file From ee17abff92d1101599b92efd28962e8e921e48f3 Mon Sep 17 00:00:00 2001 From: JohnFai Date: Thu, 29 Oct 2020 09:28:30 +0000 Subject: [PATCH 066/231] Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 27.1% (164 of 603 strings) --- app/src/main/res/values-zh-rHK/strings.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index b48a8daad..6af386700 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -42,7 +42,7 @@ 使用 Tor (測試中)為加強私隱,要求通過 Tor 傳送下載流量(暫時不支援串流影片)。 觀看次數:%1$s - 找不到任何串流播放器,您要安裝 VLC 嗎? + 找不到任何串流播放器,要安裝 VLC 嗎? 使用瀏覽器開啟 分享影片 聲音下載路徑 @@ -50,7 +50,8 @@ 選擇聲音檔案的下載路徑 未能建立下載路徑「%1$s」 已建立下載路徑「%1$s」 - 點擊 \"搜索\" 以開始使用 + 點擊 \"搜索\" 以開始使用 +\n 自動撥放 當 NewPipe 被其他程式調用時播放視頻 內容 From 56d721651a0c09307c2cb7da07876ffa33ea1b05 Mon Sep 17 00:00:00 2001 From: zmni Date: Thu, 29 Oct 2020 16:01:18 +0000 Subject: [PATCH 067/231] Translated using Weblate (Indonesian) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-in/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 68eaa80dc..16922c8cf 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -630,4 +630,5 @@ Kuki reCAPTCHA telah dihapus Hapus kuki reCAPTCHA YouTube menyediakan \"Mode Terbatas\" yang menyembunyikan video konten dewasa. + Menampilkan konten yang mungkin tidak cocok untuk anak-anak karena memiliki batasan umur (seperti 18+). \ No newline at end of file From d773279de8c631d007878ad821d943ba69bbf48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berkay=20G=C3=BCnd=C3=BCz?= Date: Thu, 29 Oct 2020 06:10:50 +0000 Subject: [PATCH 068/231] Translated using Weblate (Turkish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-tr/strings.xml | 98 +++++++++++++------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 30d846568..c9a1ca47a 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -26,19 +26,19 @@ Ses dosyaları için indirme dizinini seçin Kendiliğinden oynat NewPipe başka uygulamadan çağrıldığında video oynatır - Öntanımlı çözünürlük + Varsayılan çözünürlük Kodi ile oynat Eksik Kore uygulaması yüklensin mi\? \"Kodi ile oynat\" seçeneğini göster Kodi ortam merkezi üzerinden video oynatmak için bir seçenek göster - Öntanımlı ses biçimi + Varsayılan ses biçimi Tema Koyu Açık İndir \'Sonraki\' ve \'Benzer\' videoları göster Desteklenmeyen URL - Öntanımlı içerik dili + Varsayılan içerik dili Ses Video ve ses Görünüm @@ -87,7 +87,7 @@ Duraklat Oynat Sil - Sağlama + Doğrulama Yeni görev Tamam Dosya adı @@ -102,14 +102,14 @@ Panoya kopyalandı Lütfen daha sonra ayarlardan uygun bir indirme dizini belirleyin İndirme menüsü ayarlanamadı - Açılır pencere kipinde aç + Açılır pencere modunda aç Açılır pencere modu - Öntanımlı açılır pencere çözünürlüğü + Varsayılan açılır pencere çözünürlüğü Yüksek çözünürlükleri göster Yalnızca bazı aygıtlar 2K/4K videoları oynatabilir - Öntanımlı video biçimi + Varsayılan video biçimi Siyah - Açılır pencere kipinde oynatılıyor + Açılır pencere modunda oynatılıyor Tümü Kanal Evet @@ -121,7 +121,7 @@ b M B - Bu izin, açılır pencere kipinde + Bu izin, açılır pencere modunda \naçmak için gereklidir reCAPTCHA formu reCAPTCHA formu istendi @@ -175,7 +175,7 @@ Oynatmaya devam et Kesintilerden sonra (örneğin telefon çağrısı) oynatmaya devam et Oynatıcı - Davranış + Tercihler Geçmiş ve önbellek Oynatma Listesi Geri al @@ -237,7 +237,7 @@ Bağışta bulunun Web sitesi Daha çok bilgi ve haber için NewPipe web sitesini ziyaret edin. - Öntanımlı içerik ülkesi + Varsayılan içerik ülkesi Hizmet Yönlendirmeyi Değiştir Arka Plana Geç @@ -285,7 +285,7 @@ Sil Yeniden adlandır Ad - Oynatma Listesine Ekle + Oynatma listesine ekle Oynatma listesi küçük resmi olarak ayarla Oynatma listesini yer imlerine ekle Yer imini kaldır @@ -294,7 +294,7 @@ Oynatma listesine eklendi Oynatma listesinin küçük resmi değiştirildi. Oynatma listesi silinemedi. - Altyazı yok + Alt yazı yok Sığdır Doldur Yakınlaştır @@ -329,11 +329,11 @@ \n1. Şu adrese gidin: %1$s \n2. Sorulduğunda hesabınıza giriş yapın \n3. İndirme başlamalı (bu, dışa aktarma dosyasıdır) - URL\'yi veya ID\'nizi yazarak SoundCloud profilini içe aktarın: -\n -\n1. Web tarayıcısında \"masaüstü kipi\" etkinleştirin (site, mobil aygıtlar için uygun değildir) -\n2. Şu adrese gidin: %1$s -\n3. Sorulduğunda giriş yapın + URL\'yi veya ID\'nizi yazarak SoundCloud profilini içe aktarın: +\n +\n1. Web tarayıcısında \"masaüstü modu\" etkinleştirin (site, mobil aygıtlar için uygun değildir) +\n2. Şu adrese gidin: %1$s +\n3. Sorulduğunda giriş yapın \n4. Yönlendirildiğiniz profil URL\'sini kopyalayın. kimliginiz, soundcloud.com/kimliginiz Bu sürecin ağa yük olabileceğini unutmayın. @@ -350,10 +350,10 @@ Ses yüksekliği Ayır (bozulmaya neden olabilir) İndirilebilecek akış yok - Yeğlenen \'aç\' eylemi - İçerik açılırken öntanımlı eylem — %s - Altyazılar - Oynatıcı altyazı metin ölçeğini ve arka plan biçimini değiştirin. Etkili olması için uygulamayı yeniden başlatma gerektirir. + Tercih edilen \'aç\' eylemi + İçerik açılırken varsayılan eylem — %s + Alt yazılar + Oynatıcı alt yazı metin ölçeğini ve arka plan biçimini değiştirin. Etkili olması için uygulamayı yeniden başlatma gerektirir. Bu dosyayı oynatmak için herhangi bir uygulama yüklü değil İzleme geçmişini temizle Oynatılan akışların geçmişini ve kalınan oynatım konumlarını siler @@ -380,7 +380,7 @@ Ana video oynatıcıdan diğer uygulamaya geçiş yaparken eylem — %s Yok Arka plan oynatıcısını küçült - Açılır pencere oynatıcına küçült + Açılır pencere oynatıcısına küçült Sessizlik sırasında hızlı ileri Adım Sıfırla @@ -401,15 +401,15 @@ Yeni NewPipe sürümü için bildirimler Harici depolama kullanılamıyor Harici SD karta indirmek mümkün değil. İndirme dizini konumu sıfırlansın mı\? - Kayıtlı sekmeler okunamadı, bu nedenle öntanımlılar kullanılıyor - Öntanımlıları geri yükle - Öntanımlıları geri yüklemek istiyor musunuz\? + Kayıtlı sekmeler okunamadı, bu nedenle varsayılanlar kullanılıyor + Varsayılanları geri yükle + Varsayılanları geri yüklemek istiyor musunuz\? Abone sayısı mevcut değil Ana sayfada hangi sekmeler gösterilir Seçim Güncellemeler Yeni bir sürüm mevcut olduğunda uygulama güncellemesi için bir bildirim göster - Liste görünümü kipi + Liste görünümü modu Liste Izgara Otomatik @@ -490,7 +490,7 @@ %s video %s video - Öntanımlı Kiosk + Varsayılan Kiosk Kimse izlemiyor %s izliyor @@ -523,7 +523,7 @@ %1$d indirme silindi Diğer uygulamaların üzerinde görüntüleme izni ver Uygulama dili - Sistem öntanımlısı + Sistem varsayılanı Çözüldüğünde \"Bitti\" düğmesine basın Bitti Videolar @@ -547,37 +547,37 @@ %d gün %d gün - Kanal kümeleri - Besleme en son güncellendi: %s + Kanal grupları + Akış en son güncellendi: %s Yüklenmedi: %d - Besleme yükleniyor… - Besleme işleniyor… + Akış yükleniyor… + Akış işleniyor… Abonelikleri seç Abonelik seçilmedi %d seçildi %d seçildi - Boş küme adı - Bu kümeyi silmek istiyor musunuz\? + Boş grup adı + Bu grubu silmek istiyor musunuz\? Yeni - Besleme - Besleme güncelleme eşiği + Akış + Akış güncelleme eşiği Bir aboneliğin eski sayılmadan önce son güncellemeden sonra geçen zaman — %s Her zaman güncelle - Uygunken adanmış beslemeden edin + Uygunken özel akıştan edinin Bazı servislerde kullanılabilir, genellikle daha hızlıdır ancak kısıtlı sayıda öge ve eksik bilgi (örn. süre, öge türü, canlı durumu olmaksızın) getirilebilir. - Hızlı kipi etkinleştir - Hızlı kipi devre dışı bırak - Beslemenin çok yavaş yüklendiğini mi düşünüyorsunuz\? Öyleyse, hızlı yüklemeyi etkinleştirin (ayarlardan değiştirebilir veya aşağıdaki düğmeye dokunabilirsiniz). + Hızlı modu etkinleştir + Hızlı modu devre dışı bırak + Akışın çok yavaş yüklendiğini mi düşünüyorsunuz\? Öyleyse, hızlı yüklemeyi etkinleştirin (ayarlardan değiştirebilir veya aşağıdaki düğmeye dokunabilirsiniz). \n -\nNewPipe iki besleme yükleme yordamı sunar: +\nNewPipe iki akış yükleme yordamı sunar: \n• Tüm abonelik kanalını edinme, bu yavaş ancak tamdır. \n• Adanmış hizmet son noktası kullanır, bu hızlıdır ancak genellikle tam değildir. \n \nİkisinin arasındaki fark, hızlı olanın genellikle ögenin süresi veya türü (canlı ve sıradan videoları ayrımsayamaz) gibi bazı bilgilerden yoksunluğu ve daha az öge getirmesidir. \n -\nYouTube, RSS beslemesiyle bu hızlı yöntemi sunan servislerden biridir. +\nYouTube, RSS akışıyla bu hızlı yöntemi sunan servislerden biridir. \n \nSeçim, sizin neyi yeğlediğinize kalmış: hız veya kusursuz bilgi. Bu içerik henüz NewPipe tarafından desteklenmiyor. @@ -598,17 +598,17 @@ İzleneni kaldır Akış ögelerinde hizmetlerden alınan özgün metinler görünecektir Ögelerde özgün \'… önce\'yi göster - YouTube\'un \"Kısıtlı Kip\"ini aç + YouTube\'un \"Kısıtlı Mod\"unu aç %s tarafından %s tarafından oluşturuldu Kanalın avatar küçük resmi - Yalnızca kümelenmemiş abonelikleri göster + Yalnızca gruplanmamış abonelikleri göster Oynatma listesi sayfası Oynatma listesi seç GitHub\'da bildir Biçimlendirilmiş raporu kopyala Sonuçlar gösteriliyor: %s - Lütfen hatanızı tartışan bildirimin var olup olmadığını denetleyin. Yinelenen istekler oluştururken, bizden asıl hatayı düzeltmek için harcayabileceğimiz zamanı alırsınız. + Lütfen hatanızı tartışan sorunun var olup olmadığını kontrol edin. Yinelenen istekler oluştururken, bizden asıl hatayı düzeltmek için harcayabileceğimiz zamanı alırsınız. Henüz oynatma listesi yer imleri yok Asla Yalnızca Wi-Fi\'de @@ -624,8 +624,8 @@ Ara belleğe alınıyor Karıştır Tekrarla - Sıkı bildirimde gösterilecek en fazla üç eylem seçebilirsiniz! - Aşağıdaki her bildirim eylemini üzerine dokunarak düzenleyin. Sağdaki onay kutularını kullanarak sıkı bildirimde gösterilmek üzere en fazla üç tanesini seçin. + Bildirim sekmesinde gösterilecek en fazla üç eylem seçebilirsiniz! + Aşağıdaki her bildirim eylemini üzerine dokunarak düzenleyin. Sağdaki onay kutularını kullanarak bildirim sekmesinde gösterilmek üzere en fazla üç tanesini seçin. Beşinci eylem düğmesi Dördüncü eylem düğmesi Üçüncü eylem düğmesi @@ -639,6 +639,6 @@ reCAPTCHA çözdüğünüzde NewPipe\'ın sakladığı çerezleri temizle reCAPTCHA çerezleri temizlendi reCAPTCHA çerezlerini temizle - YouTube, olası yetişkin içeriği gizleyen \"Kısıtlı Kip\" sağlamaktadır. + YouTube, olası yetişkin içeriği gizleyen \"Kısıtlı Mod\" sağlamaktadır. Yaş kısıtı (18+ gibi) nedeniyle çocuklara uygun olmayabilecek içeriği göster. \ No newline at end of file From b615ef5810a03d1cd46e58c79187b560dc45b93c Mon Sep 17 00:00:00 2001 From: Davit Mayilyan Date: Thu, 29 Oct 2020 05:38:07 +0000 Subject: [PATCH 069/231] Translated using Weblate (Armenian) Currently translated at 16.7% (101 of 603 strings) --- app/src/main/res/values-hy/strings.xml | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/app/src/main/res/values-hy/strings.xml b/app/src/main/res/values-hy/strings.xml index 421f1f74d..f53cfccc1 100644 --- a/app/src/main/res/values-hy/strings.xml +++ b/app/src/main/res/values-hy/strings.xml @@ -54,4 +54,44 @@ Օգտագործել արտաքին աուդիո նվագարկիչ Օգտագործել արտաքին դերակատար Լողացող ռեժիմ NewPipe + Թարմացումներ + Միշտ թարմացնել + + %d նշված + %d նշված + + Նոր + Կայք + Մասին + Մասին + Ալիքներ + Ալիք + Ամենը + Ծանուցում + Տեսք + Թարմացումներ + Այլ + Դիտման պատմություն + Ֆայլը ջնջվեց + Ֆայլ + Երգեր + Այո + Որոնման պատմություն + Փակել + + %d օր + %d օր + + + %d ժամ + %d ժամ + + + %d վրկ + %d վրկ + + + %d րոպե + %d րոպե + \ No newline at end of file From f46e0acc896e1eb2ef30b59b79d80243a21b7b46 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Fri, 30 Oct 2020 13:35:18 +0000 Subject: [PATCH 070/231] Translated using Weblate (Finnish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-fi/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index a78bc1a7f..ef374194d 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -406,7 +406,7 @@ Valinta Mitkä välilehdet näytetään pääsivulla Valmis - Paina \"Valmis\", kun ratkaistu + Paina ”Valmis”, kun ratkaistu ∞ videota 100+ videota @@ -439,8 +439,8 @@ Videot Tämä video on ikärajoitettu. \n -\nSalli \"%1$s\" asetuksissa katsoaksesi. - Ota käyttöön YouTuben \"Rajoitettu tila\" +\nSalli ”%1$s” asetuksissa katsoaksesi. + Ota käyttöön YouTuben ”Rajoitettu tila” Päivitykset Instanssi on jo olemassa Vain HTTPS-URL:t ovat tuettuja @@ -639,6 +639,6 @@ Poista evästeet, jotka NewPipe tallentaa, kun ratkaiset reCAPTCHA:n reCAPTCHA-evästeet on poistettu Poista reCAPTCHA-evästeet - YouTube tarjoaa \"Rajoitetun tilan\", joka piilottaa aikuisviihdesisällön. + YouTube tarjoaa ”Rajoitetun tilan”, joka piilottaa aikuisviihdesisällön. Näytä mahdollisesti lapsille sopimaton sisältö, jolla on ikäraja (esim. 18+). \ No newline at end of file From 008eb5ba4a3d578726dbeaf89f56630863955cf8 Mon Sep 17 00:00:00 2001 From: XiangRongLin <41164160+XiangRongLin@users.noreply.github.com> Date: Sat, 31 Oct 2020 11:58:33 +0100 Subject: [PATCH 071/231] Convert notification actions to a custom preference (#4652) --- .../settings/NotificationSettingsFragment.kt | 10 ++ .../NotificationActionsPreference.java} | 102 +++++++----------- .../main/res/layout/settings_notification.xml | 78 ++------------ .../main/res/xml/notification_settings.xml | 18 ++++ 4 files changed, 72 insertions(+), 136 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt rename app/src/main/java/org/schabi/newpipe/settings/{NotificationSettingsFragment.java => custom/NotificationActionsPreference.java} (74%) create mode 100644 app/src/main/res/xml/notification_settings.xml diff --git a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt new file mode 100644 index 000000000..860968626 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt @@ -0,0 +1,10 @@ +package org.schabi.newpipe.settings + +import android.os.Bundle +import org.schabi.newpipe.R + +class NotificationSettingsFragment : BasePreferenceFragment() { + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + addPreferencesFromResource(R.xml.notification_settings) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/custom/NotificationActionsPreference.java similarity index 74% rename from app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.java rename to app/src/main/java/org/schabi/newpipe/settings/custom/NotificationActionsPreference.java index 13e500e12..1fe405552 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/custom/NotificationActionsPreference.java @@ -1,10 +1,10 @@ -package org.schabi.newpipe.settings; +package org.schabi.newpipe.settings.custom; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.preference.PreferenceManager; +import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -13,18 +13,16 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; -import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; - import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.content.res.AppCompatResources; import androidx.core.graphics.drawable.DrawableCompat; import androidx.core.widget.TextViewCompat; -import androidx.fragment.app.Fragment; - +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; +import java.util.List; import org.schabi.newpipe.R; import org.schabi.newpipe.player.MainPlayer; import org.schabi.newpipe.player.NotificationConstants; @@ -32,56 +30,35 @@ import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.views.FocusOverlayView; -import java.util.List; +public class NotificationActionsPreference extends Preference { + + public NotificationActionsPreference(final Context context, final AttributeSet attrs) { + super(context, attrs); + setLayoutResource(R.layout.settings_notification); + } -public class NotificationSettingsFragment extends Fragment { - private Switch scaleSwitch; private NotificationSlot[] notificationSlots; - private SharedPreferences pref; private List compactSlots; - private String scaleKey; //////////////////////////////////////////////////////////////////////////// // Lifecycle //////////////////////////////////////////////////////////////////////////// @Override - public void onCreate(@Nullable final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - pref = PreferenceManager.getDefaultSharedPreferences(requireContext()); - scaleKey = getString(R.string.scale_to_square_image_in_notifications_key); + public void onBindViewHolder(final PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + + holder.itemView.setClickable(false); + setupActions(holder.itemView); } @Override - public View onCreateView(@NonNull final LayoutInflater inflater, - final ViewGroup container, - @Nullable final Bundle savedInstanceState) { - return inflater.inflate(R.layout.settings_notification, container, false); - } - - @Override - public void onViewCreated(@NonNull final View rootView, - @Nullable final Bundle savedInstanceState) { - super.onViewCreated(rootView, savedInstanceState); - - setupScaleSwitch(rootView); - setupActions(rootView); - } - - @Override - public void onResume() { - super.onResume(); - ThemeHelper.setTitleToAppCompatActivity(getActivity(), - getString(R.string.settings_category_notification_title)); - } - - @Override - public void onPause() { - super.onPause(); + public void onDetached() { + super.onDetached(); saveChanges(); - requireContext().sendBroadcast(new Intent(MainPlayer.ACTION_RECREATE_NOTIFICATION)); + getContext().sendBroadcast(new Intent(MainPlayer.ACTION_RECREATE_NOTIFICATION)); } @@ -89,17 +66,10 @@ public class NotificationSettingsFragment extends Fragment { // Setup //////////////////////////////////////////////////////////////////////////// - private void setupScaleSwitch(@NonNull final View view) { - scaleSwitch = view.findViewById(R.id.notificationScaleSwitch); - scaleSwitch.setChecked(pref.getBoolean(scaleKey, false)); - - view.findViewById(R.id.notificationScaleSwitchClickableArea) - .setOnClickListener(v -> scaleSwitch.toggle()); - } - private void setupActions(@NonNull final View view) { compactSlots = - NotificationConstants.getCompactSlotsFromPreferences(requireContext(), pref, 5); + NotificationConstants.getCompactSlotsFromPreferences( + getContext(), getSharedPreferences(), 5); notificationSlots = new NotificationSlot[5]; for (int i = 0; i < 5; i++) { notificationSlots[i] = new NotificationSlot(i, view); @@ -112,16 +82,15 @@ public class NotificationSettingsFragment extends Fragment { //////////////////////////////////////////////////////////////////////////// private void saveChanges() { - final SharedPreferences.Editor editor = pref.edit(); - editor.putBoolean(scaleKey, scaleSwitch.isChecked()); + final SharedPreferences.Editor editor = getSharedPreferences().edit(); for (int i = 0; i < 3; i++) { - editor.putInt(getString(NotificationConstants.SLOT_COMPACT_PREF_KEYS[i]), + editor.putInt(getContext().getString(NotificationConstants.SLOT_COMPACT_PREF_KEYS[i]), (i < compactSlots.size() ? compactSlots.get(i) : -1)); } for (int i = 0; i < 5; i++) { - editor.putInt(getString(NotificationConstants.SLOT_PREF_KEYS[i]), + editor.putInt(getContext().getString(NotificationConstants.SLOT_PREF_KEYS[i]), notificationSlots[i].selectedAction); } @@ -183,7 +152,7 @@ public class NotificationSettingsFragment extends Fragment { } else if (compactSlots.size() < 3) { compactSlots.add(i); } else { - Toast.makeText(requireContext(), + Toast.makeText(getContext(), R.string.notification_actions_at_most_three, Toast.LENGTH_SHORT).show(); return; @@ -196,7 +165,8 @@ public class NotificationSettingsFragment extends Fragment { void setupSelectedAction(final View view) { icon = view.findViewById(R.id.notificationActionIcon); summary = view.findViewById(R.id.notificationActionSummary); - selectedAction = pref.getInt(getString(NotificationConstants.SLOT_PREF_KEYS[i]), + selectedAction = getSharedPreferences().getInt( + getContext().getString(NotificationConstants.SLOT_PREF_KEYS[i]), NotificationConstants.SLOT_DEFAULTS[i]); updateInfo(); } @@ -205,20 +175,20 @@ public class NotificationSettingsFragment extends Fragment { if (NotificationConstants.ACTION_ICONS[selectedAction] == 0) { icon.setImageDrawable(null); } else { - icon.setImageDrawable(AppCompatResources.getDrawable(requireContext(), + icon.setImageDrawable(AppCompatResources.getDrawable(getContext(), NotificationConstants.ACTION_ICONS[selectedAction])); } - summary.setText(NotificationConstants.getActionName(requireContext(), selectedAction)); + summary.setText(NotificationConstants.getActionName(getContext(), selectedAction)); } void openActionChooserDialog() { - final LayoutInflater inflater = LayoutInflater.from(requireContext()); + final LayoutInflater inflater = LayoutInflater.from(getContext()); final LinearLayout rootLayout = (LinearLayout) inflater.inflate( R.layout.single_choice_dialog_view, null, false); final RadioGroup radioGroup = rootLayout.findViewById(android.R.id.list); - final AlertDialog alertDialog = new AlertDialog.Builder(requireContext()) + final AlertDialog alertDialog = new AlertDialog.Builder(getContext()) .setTitle(SLOT_TITLES[i]) .setView(radioGroup) .setCancelable(true) @@ -237,10 +207,10 @@ public class NotificationSettingsFragment extends Fragment { // if present set action icon with correct color if (NotificationConstants.ACTION_ICONS[action] != 0) { - Drawable drawable = AppCompatResources.getDrawable(requireContext(), + Drawable drawable = AppCompatResources.getDrawable(getContext(), NotificationConstants.ACTION_ICONS[action]); if (drawable != null) { - final int color = ThemeHelper.resolveColorFromAttr(requireContext(), + final int color = ThemeHelper.resolveColorFromAttr(getContext(), android.R.attr.textColorPrimary); drawable = DrawableCompat.wrap(drawable).mutate(); DrawableCompat.setTint(drawable, color); @@ -249,7 +219,7 @@ public class NotificationSettingsFragment extends Fragment { } } - radioButton.setText(NotificationConstants.getActionName(requireContext(), action)); + radioButton.setText(NotificationConstants.getActionName(getContext(), action)); radioButton.setChecked(action == selectedAction); radioButton.setId(id); radioButton.setLayoutParams(new RadioGroup.LayoutParams( @@ -259,7 +229,7 @@ public class NotificationSettingsFragment extends Fragment { } alertDialog.show(); - if (DeviceUtils.isTv(requireContext())) { + if (DeviceUtils.isTv(getContext())) { FocusOverlayView.setupFocusObserver(alertDialog); } } diff --git a/app/src/main/res/layout/settings_notification.xml b/app/src/main/res/layout/settings_notification.xml index dc329a78a..2ade057d1 100644 --- a/app/src/main/res/layout/settings_notification.xml +++ b/app/src/main/res/layout/settings_notification.xml @@ -1,78 +1,17 @@ - - + android:layout_height="wrap_content" + android:paddingTop="16dp"> - - - - - - - - - - - + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toBottomOf="@+id/textView" /> - diff --git a/app/src/main/res/xml/notification_settings.xml b/app/src/main/res/xml/notification_settings.xml new file mode 100644 index 000000000..41659e7a3 --- /dev/null +++ b/app/src/main/res/xml/notification_settings.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + From 1e1fb32558f93f617584b3d3296a27e8ea0e3912 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 31 Oct 2020 15:54:02 -0400 Subject: [PATCH 072/231] Fix some version checks to use android.os.Build --- app/src/main/java/org/schabi/newpipe/util/Localization.java | 2 +- .../org/schabi/newpipe/views/ExpandableSurfaceView.java | 6 +++--- .../java/org/schabi/newpipe/views/FocusOverlayView.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/Localization.java b/app/src/main/java/org/schabi/newpipe/util/Localization.java index 700d7b63d..96ba2808d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/Localization.java +++ b/app/src/main/java/org/schabi/newpipe/util/Localization.java @@ -186,7 +186,7 @@ public final class Localization { } public static String shortCount(final Context context, final long count) { - if (Build.VERSION.SDK_INT >= 24) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return CompactDecimalFormat.getInstance(getAppLocale(context), CompactDecimalFormat.CompactStyle.SHORT).format(count); } diff --git a/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java b/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java index a23172bd3..e7a028d50 100644 --- a/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java +++ b/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java @@ -1,8 +1,7 @@ package org.schabi.newpipe.views; import android.content.Context; -import android.os.Build.VERSION; -import android.os.Build.VERSION_CODES; +import android.os.Build; import android.util.AttributeSet; import android.view.SurfaceView; import com.google.android.exoplayer2.ui.AspectRatioFrameLayout; @@ -47,7 +46,8 @@ public class ExpandableSurfaceView extends SurfaceView { if (resizeMode == RESIZE_MODE_FIT // KitKat doesn't work well when a view has a scale like needed for ZOOM - || (resizeMode == RESIZE_MODE_ZOOM && VERSION.SDK_INT < VERSION_CODES.LOLLIPOP)) { + || (resizeMode == RESIZE_MODE_ZOOM + && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) { if (aspectDeformation > 0) { height = (int) (width / videoAspectRatio); } else { diff --git a/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java b/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java index dc5bf7133..29c38511c 100644 --- a/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java +++ b/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java @@ -270,7 +270,7 @@ public final class FocusOverlayView extends Drawable implements clearFocusObstacles((ViewGroup) decor); } - @RequiresApi(api = 26) + @RequiresApi(api = Build.VERSION_CODES.O) private static void clearFocusObstacles(final ViewGroup viewGroup) { viewGroup.setTouchscreenBlocksFocus(false); From 1a64d8aec99f5c3305e8834507812d2133b14241 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 31 Oct 2020 15:54:19 -0400 Subject: [PATCH 073/231] Replace a ContextCompat with LayoutInflater.from --- .../main/java/us/shandian/giga/ui/adapter/MissionAdapter.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java index ca590a892..eb0fec596 100644 --- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java +++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java @@ -29,7 +29,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.DiffUtil; @@ -121,7 +120,7 @@ public class MissionAdapter extends Adapter implements Handler.Callb mContext = context; mDownloadManager = downloadManager; - mInflater = ContextCompat.getSystemService(mContext, LayoutInflater.class); + mInflater = LayoutInflater.from(mContext); mLayout = R.layout.mission_item; mHandler = new Handler(context.getMainLooper()); From 6db560fd2c996b8a26f7df5f459924d2ac9645d2 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 31 Oct 2020 15:54:39 -0400 Subject: [PATCH 074/231] Use FragmentActivity for AboutActivity's viewpager2 --- .../java/org/schabi/newpipe/about/AboutActivity.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java index c24636cf0..9d3aea546 100644 --- a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java +++ b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java @@ -12,8 +12,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.lifecycle.Lifecycle; +import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; @@ -95,8 +94,7 @@ public class AboutActivity extends AppCompatActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); // Create the adapter that will return a fragment for each of the three // primary sections of the activity. - mSectionsPagerAdapter = - new SectionsPagerAdapter(getSupportFragmentManager(), getLifecycle()); + mSectionsPagerAdapter = new SectionsPagerAdapter(this); // Set up the ViewPager with the sections adapter. mViewPager = findViewById(R.id.container); @@ -179,8 +177,8 @@ public class AboutActivity extends AppCompatActivity { * one of the sections/tabs/pages. */ public static class SectionsPagerAdapter extends FragmentStateAdapter { - public SectionsPagerAdapter(final FragmentManager fm, final Lifecycle lifecycle) { - super(fm, lifecycle); + public SectionsPagerAdapter(final FragmentActivity fa) { + super(fa); } @NonNull From 972235bfba3c082dfe3e6d2b48e6f33df42ab504 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 31 Oct 2020 15:56:46 -0400 Subject: [PATCH 075/231] Add missing app:iconSpaceReserved --- app/src/main/res/xml/content_settings.xml | 3 ++- .../main/res/xml/notification_settings.xml | 20 ++++++++++--------- app/src/main/res/xml/video_audio_settings.xml | 3 ++- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/xml/content_settings.xml b/app/src/main/res/xml/content_settings.xml index c36e7f0e2..c885366ec 100644 --- a/app/src/main/res/xml/content_settings.xml +++ b/app/src/main/res/xml/content_settings.xml @@ -105,7 +105,8 @@ + android:title="@string/settings_category_feed_title" + app:iconSpaceReserved="false"> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:title="@string/settings_category_notification_title"> + android:defaultValue="false" + android:key="@string/scale_to_square_image_in_notifications_key" + android:summary="@string/notification_scale_to_square_image_summary" + android:title="@string/notification_scale_to_square_image_title" + app:iconSpaceReserved="false" /> + + - - diff --git a/app/src/main/res/xml/video_audio_settings.xml b/app/src/main/res/xml/video_audio_settings.xml index b0d9070a3..0b79d6d1c 100644 --- a/app/src/main/res/xml/video_audio_settings.xml +++ b/app/src/main/res/xml/video_audio_settings.xml @@ -84,7 +84,8 @@ + android:title="@string/settings_category_player_behavior_title" + app:iconSpaceReserved="false"> Date: Sat, 31 Oct 2020 15:57:01 -0400 Subject: [PATCH 076/231] Simplify an if else --- .../org/schabi/newpipe/fragments/list/BaseListFragment.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java index 6a8611d0e..79e1854e9 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java @@ -378,11 +378,7 @@ public abstract class BaseListFragment extends BaseStateFragment final ActionBar supportActionBar = activity.getSupportActionBar(); if (supportActionBar != null) { supportActionBar.setDisplayShowTitleEnabled(true); - if (useAsFrontPage) { - supportActionBar.setDisplayHomeAsUpEnabled(false); - } else { - supportActionBar.setDisplayHomeAsUpEnabled(true); - } + supportActionBar.setDisplayHomeAsUpEnabled(!useAsFrontPage); } } From 31cffa68c5cef83726543e23e05e3837b2388cf0 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 31 Oct 2020 15:57:26 -0400 Subject: [PATCH 077/231] Push conditionals inside branch expressions --- .../newpipe/download/DownloadDialog.java | 2 +- .../fragments/detail/VideoDetailFragment.java | 18 +++++++++--------- .../org/schabi/newpipe/player/MainPlayer.java | 6 +++--- .../newpipe/player/ServicePlayerActivity.java | 9 ++++----- .../newpipe/player/helper/PlayerHelper.java | 8 ++++---- .../giga/io/StoredDirectoryHelper.java | 2 +- .../giga/ui/fragment/MissionsFragment.java | 7 ++++--- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 17d079d50..93398d990 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -646,7 +646,7 @@ public class DownloadDialog extends DialogFragment mainStorage = mainStorageVideo; // subtitle & video files go together format = subtitleStreamsAdapter.getItem(selectedSubtitleIndex).getFormat(); mime = format.mimeType; - filename += format == MediaFormat.TTML ? MediaFormat.SRT.suffix : format.suffix; + filename += (format == MediaFormat.TTML ? MediaFormat.SRT : format).suffix; break; default: throw new RuntimeException("No stream selected"); diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index e71e7f19c..cd4a3a083 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1246,9 +1246,9 @@ public class VideoDetailFragment final DisplayMetrics metrics = getResources().getDisplayMetrics(); if (getView() != null) { - final int height = isInMultiWindow() - ? requireView().getHeight() - : activity.getWindow().getDecorView().getHeight(); + final int height = (isInMultiWindow() + ? requireView() + : activity.getWindow().getDecorView()).getHeight(); setHeightThumbnail(height, metrics); getView().getViewTreeObserver().removeOnPreDrawListener(preDrawListener); } @@ -1269,9 +1269,9 @@ public class VideoDetailFragment requireView().getViewTreeObserver().removeOnPreDrawListener(preDrawListener); if (player != null && player.isFullscreen()) { - final int height = isInMultiWindow() - ? requireView().getHeight() - : activity.getWindow().getDecorView().getHeight(); + final int height = (isInMultiWindow() + ? requireView() + : activity.getWindow().getDecorView()).getHeight(); // Height is zero when the view is not yet displayed like after orientation change if (height != 0) { setHeightThumbnail(height, metrics); @@ -1279,9 +1279,9 @@ public class VideoDetailFragment requireView().getViewTreeObserver().addOnPreDrawListener(preDrawListener); } } else { - final int height = isPortrait - ? (int) (metrics.widthPixels / (16.0f / 9.0f)) - : (int) (metrics.heightPixels / 2.0f); + final int height = (int) (isPortrait + ? metrics.widthPixels / (16.0f / 9.0f) + : metrics.heightPixels / 2.0f); setHeightThumbnail(height, metrics); } } diff --git a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java index e8554e5ac..ea205bbdf 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java @@ -225,9 +225,9 @@ public final class MainPlayer extends Service { // DisplayMetrics from activity context knows about MultiWindow feature // while DisplayMetrics from app context doesn't final DisplayMetrics metrics = (playerImpl != null - && playerImpl.getParentActivity() != null) - ? playerImpl.getParentActivity().getResources().getDisplayMetrics() - : getResources().getDisplayMetrics(); + && playerImpl.getParentActivity() != null + ? playerImpl.getParentActivity().getResources() + : getResources()).getDisplayMetrics(); return metrics.heightPixels < metrics.widthPixels; } diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 72f56cb1b..8b606260a 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -748,11 +748,10 @@ public abstract class ServicePlayerActivity extends AppCompatActivity //2) Icon change accordingly to current App Theme // using rootView.getContext() because getApplicationContext() didn't work - item.setIcon(player.isMuted() - ? ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), - R.attr.ic_volume_off) - : ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), - R.attr.ic_volume_up)); + item.setIcon(ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), + player.isMuted() + ? R.attr.ic_volume_off + : R.attr.ic_volume_up)); } } } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java index 1d1d056a8..4b52aa27d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java @@ -84,12 +84,12 @@ public final class PlayerHelper { final int days = (milliSeconds % (86400000 * 7)) / 86400000; STRING_BUILDER.setLength(0); - return days > 0 + return (days > 0 ? STRING_FORMATTER.format("%d:%02d:%02d:%02d", days, hours, minutes, seconds) - .toString() : hours > 0 - ? STRING_FORMATTER.format("%d:%02d:%02d", hours, minutes, seconds).toString() - : STRING_FORMATTER.format("%02d:%02d", minutes, seconds).toString(); + ? STRING_FORMATTER.format("%d:%02d:%02d", hours, minutes, seconds) + : STRING_FORMATTER.format("%02d:%02d", minutes, seconds) + ).toString(); } public static String formatSpeed(final double speed) { diff --git a/app/src/main/java/us/shandian/giga/io/StoredDirectoryHelper.java b/app/src/main/java/us/shandian/giga/io/StoredDirectoryHelper.java index 8f6070ff4..8f7e18a31 100644 --- a/app/src/main/java/us/shandian/giga/io/StoredDirectoryHelper.java +++ b/app/src/main/java/us/shandian/giga/io/StoredDirectoryHelper.java @@ -212,7 +212,7 @@ public class StoredDirectoryHelper { @NonNull @Override public String toString() { - return docTree == null ? Uri.fromFile(ioTree).toString() : docTree.getUri().toString(); + return (docTree == null ? Uri.fromFile(ioTree) : docTree.getUri()).toString(); } diff --git a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java index 35f40aa82..265491b8a 100644 --- a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java +++ b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java @@ -224,9 +224,10 @@ public class MissionsFragment extends Fragment { mList.setAdapter(mAdapter); if (mSwitch != null) { - mSwitch.setIcon(mLinear - ? ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_grid) - : ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_list)); + mSwitch.setIcon(ThemeHelper.resolveResourceIdFromAttr( + requireContext(), mLinear + ? R.attr.ic_grid + : R.attr.ic_list)); mSwitch.setTitle(mLinear ? R.string.grid : R.string.list); mPrefs.edit().putBoolean("linear", mLinear).apply(); } From a48529872d2166775c412058db25fdde9e2c4566 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sat, 31 Oct 2020 15:57:49 -0400 Subject: [PATCH 078/231] Fix a few Kotlin style issues --- .../java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt | 2 +- .../org/schabi/newpipe/local/feed/service/FeedLoadService.kt | 4 ++-- .../local/subscription/dialog/FeedGroupDialogViewModel.kt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt index d319c9fa3..f77e13f69 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt @@ -50,7 +50,7 @@ class FeedDatabaseManager(context: Context) { return streams.map> { val items = ArrayList(it.size) - for (streamEntity in it) items.add(streamEntity.toStreamInfoItem()) + it.mapTo(items) { it.toStreamInfoItem() } return@map items } } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt index 0181f2711..556c215d9 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt @@ -161,8 +161,8 @@ class FeedLoadService : Service() { companion object { fun wrapList(subscriptionId: Long, info: ListInfo): List { val toReturn = ArrayList(info.errors.size) - for (error in info.errors) { - toReturn.add(RequestException(subscriptionId, info.serviceId.toString() + ":" + info.url, error)) + info.errors.mapTo(toReturn) { + RequestException(subscriptionId, info.serviceId.toString() + ":" + info.url, it) } return toReturn } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt index e9a7e4eb7..4b1a4df5e 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt @@ -37,8 +37,8 @@ class FeedGroupDialogViewModel( BiFunction { t1: String, t2: Boolean -> Filter(t1, t2) } ) .distinctUntilChanged() - .switchMap { filter -> - subscriptionManager.getSubscriptions(groupId, filter.query, filter.showOnlyUngrouped) + .switchMap { (query, showOnlyUngrouped) -> + subscriptionManager.getSubscriptions(groupId, query, showOnlyUngrouped) }.map { list -> list.map { PickerSubscriptionItem(it) } } private val mutableGroupLiveData = MutableLiveData() From 37d1541d6bd69bb622d6dbfac145a40ed5c41c83 Mon Sep 17 00:00:00 2001 From: Prasanta Hembram Date: Sun, 1 Nov 2020 13:46:51 +0530 Subject: [PATCH 079/231] Added Santali language --- app/src/main/res/values/settings_keys.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index ba40ab931..814090c79 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -1060,6 +1060,7 @@ pt-pt ro ru + sat sc sk sl @@ -1135,6 +1136,7 @@ Português (PT) Română русский язык + ᱥᱟᱱᱛᱟᱲᱤ sardu Slovenčina Slovenščina From 290428b981cc32842f382d7c1a7fc69940928701 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Thu, 25 Jun 2020 16:42:59 +0530 Subject: [PATCH 080/231] Enable support for core library desugaring. --- app/build.gradle | 5 +++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f45722de8..cfda114c2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -65,6 +65,9 @@ android { } compileOptions { + // Flag to enable support for the new language APIs + coreLibraryDesugaringEnabled true + sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 encoding 'utf-8' @@ -144,6 +147,8 @@ afterEvaluate { } dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "frankiesardo:icepick:${icepickVersion}" diff --git a/build.gradle b/build.gradle index f15900bc6..de8691749 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.3' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5f9210e27..ca28934d5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri May 01 19:39:41 CEST 2020 +#Sat Oct 17 06:10:46 IST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip From abcacf8c74790474d2d3b42845eb9fa257f57d31 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Thu, 25 Jun 2020 17:07:13 +0530 Subject: [PATCH 081/231] Use Comparator's comparing(), nullsLast() and reversed() methods. --- .../org/schabi/newpipe/about/LicenseFragment.java | 3 ++- .../database/playlist/PlaylistLocalItem.java | 12 +++--------- .../local/history/StatisticsPlaylistFragment.java | 14 ++++++++------ .../java/org/schabi/newpipe/util/ListHelper.java | 7 +++---- .../main/java/us/shandian/giga/get/Mission.java | 4 ++++ .../us/shandian/giga/service/DownloadManager.java | 3 ++- checkstyle-suppressions.xml | 2 +- 7 files changed, 23 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java index e869dbb14..a6e64616d 100644 --- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java +++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java @@ -19,6 +19,7 @@ import org.schabi.newpipe.util.ShareUtils; import java.io.Serializable; import java.util.Arrays; +import java.util.Comparator; /** * Fragment containing the software licenses. @@ -64,7 +65,7 @@ public class LicenseFragment extends Fragment { } } // Sort components by name - Arrays.sort(softwareComponents, (o1, o2) -> o1.getName().compareTo(o2.getName())); + Arrays.sort(softwareComponents, Comparator.comparing(SoftwareComponent::getName)); } @Nullable diff --git a/app/src/main/java/org/schabi/newpipe/database/playlist/PlaylistLocalItem.java b/app/src/main/java/org/schabi/newpipe/database/playlist/PlaylistLocalItem.java index 3ce95631c..43dbd89ea 100644 --- a/app/src/main/java/org/schabi/newpipe/database/playlist/PlaylistLocalItem.java +++ b/app/src/main/java/org/schabi/newpipe/database/playlist/PlaylistLocalItem.java @@ -5,6 +5,7 @@ import org.schabi.newpipe.database.playlist.model.PlaylistRemoteEntity; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.List; public interface PlaylistLocalItem extends LocalItem { @@ -18,15 +19,8 @@ public interface PlaylistLocalItem extends LocalItem { items.addAll(localPlaylists); items.addAll(remotePlaylists); - Collections.sort(items, (left, right) -> { - final String on1 = left.getOrderingName(); - final String on2 = right.getOrderingName(); - if (on1 == null) { - return on2 == null ? 0 : 1; - } else { - return on2 == null ? -1 : on1.compareToIgnoreCase(on2); - } - }); + Collections.sort(items, Comparator.comparing(PlaylistLocalItem::getOrderingName, + Comparator.nullsLast(String.CASE_INSENSITIVE_ORDER))); return items; } diff --git a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java index 48a0e3430..b4398d873 100644 --- a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java @@ -43,6 +43,7 @@ import org.schabi.newpipe.util.ThemeHelper; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.List; import icepick.State; @@ -68,18 +69,19 @@ public class StatisticsPlaylistFragment private HistoryRecordManager recordManager; private List processResult(final List results) { + final Comparator comparator; switch (sortMode) { case LAST_PLAYED: - Collections.sort(results, (left, right) -> - right.getLatestAccessDate().compareTo(left.getLatestAccessDate())); - return results; + comparator = Comparator.comparing(StreamStatisticsEntry::getLatestAccessDate); + break; case MOST_PLAYED: - Collections.sort(results, (left, right) -> - Long.compare(right.getWatchCount(), left.getWatchCount())); - return results; + comparator = Comparator.comparingLong(StreamStatisticsEntry::getWatchCount); + break; default: return null; } + Collections.sort(results, comparator.reversed()); + return results; } /////////////////////////////////////////////////////////////////////////// diff --git a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java index e26c00fb2..0c840f8c3 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java @@ -18,6 +18,7 @@ import org.schabi.newpipe.extractor.stream.VideoStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -265,10 +266,8 @@ public final class ListHelper { */ private static void sortStreamList(final List videoStreams, final boolean ascendingOrder) { - Collections.sort(videoStreams, (o1, o2) -> { - final int result = compareVideoStreamResolution(o1, o2); - return result == 0 ? 0 : (ascendingOrder ? result : -result); - }); + final Comparator comparator = ListHelper::compareVideoStreamResolution; + Collections.sort(videoStreams, ascendingOrder ? comparator : comparator.reversed()); } /** diff --git a/app/src/main/java/us/shandian/giga/get/Mission.java b/app/src/main/java/us/shandian/giga/get/Mission.java index 8e814a2af..ff1319884 100644 --- a/app/src/main/java/us/shandian/giga/get/Mission.java +++ b/app/src/main/java/us/shandian/giga/get/Mission.java @@ -35,6 +35,10 @@ public abstract class Mission implements Serializable { */ public StoredFileHelper storage; + public long getTimestamp() { + return timestamp; + } + /** * Delete the downloaded file * diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManager.java b/app/src/main/java/us/shandian/giga/service/DownloadManager.java index 994c6ee63..4c73fbfea 100644 --- a/app/src/main/java/us/shandian/giga/service/DownloadManager.java +++ b/app/src/main/java/us/shandian/giga/service/DownloadManager.java @@ -12,6 +12,7 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import us.shandian.giga.get.DownloadMission; @@ -198,7 +199,7 @@ public class DownloadManager { } if (mMissionsPending.size() > 1) - Collections.sort(mMissionsPending, (mission1, mission2) -> Long.compare(mission1.timestamp, mission2.timestamp)); + Collections.sort(mMissionsPending, Comparator.comparingLong(Mission::getTimestamp)); } /** diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index 70a2afe73..43ee99958 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -13,7 +13,7 @@ + lines="281,313"/> Date: Thu, 25 Jun 2020 17:34:08 +0530 Subject: [PATCH 082/231] Use Collection.removeIf() instead of using Iterator.remove() to remove elements conditionally. --- .../fragments/list/channel/ChannelFragment.java | 8 +++----- .../fragments/list/search/SearchFragment.java | 14 +++----------- .../us/shandian/giga/service/DownloadManager.java | 10 +++------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java index 8902834e4..58e28df49 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java @@ -50,7 +50,6 @@ import org.schabi.newpipe.util.ShareUtils; import org.schabi.newpipe.util.ThemeHelper; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.concurrent.TimeUnit; @@ -495,13 +494,12 @@ public class ChannelFragment extends BaseListInfoFragment // handling ContentNotSupportedException not to show the error but an appropriate string // so that crashes won't be sent uselessly and the user will understand what happened - for (Iterator it = errors.iterator(); it.hasNext();) { - final Throwable throwable = it.next(); + errors.removeIf(throwable -> { if (throwable instanceof ContentNotSupportedException) { showContentNotSupported(); - it.remove(); } - } + return throwable instanceof ContentNotSupportedException; + }); if (!errors.isEmpty()) { showSnackBarError(errors, UserAction.REQUESTED_CHANNEL, diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index c402565fd..1e54176d4 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -61,7 +61,6 @@ import org.schabi.newpipe.util.ServiceHelper; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Queue; @@ -758,16 +757,9 @@ public class SearchFragment extends BaseListFragment iterator = networkResult.iterator(); - while (iterator.hasNext() && localResult.size() > 0) { - final SuggestionItem next = iterator.next(); - for (final SuggestionItem item : localResult) { - if (item.query.equals(next.query)) { - iterator.remove(); - break; - } - } - } + networkResult.removeIf(networkItem -> + localResult.stream().anyMatch(localItem -> + localItem.query.equals(networkItem.query))); if (networkResult.size() > 0) { result.addAll(networkResult); diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManager.java b/app/src/main/java/us/shandian/giga/service/DownloadManager.java index 4c73fbfea..dc4d5701b 100644 --- a/app/src/main/java/us/shandian/giga/service/DownloadManager.java +++ b/app/src/main/java/us/shandian/giga/service/DownloadManager.java @@ -13,7 +13,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.Iterator; +import java.util.List; import us.shandian.giga.get.DownloadMission; import us.shandian.giga.get.FinishedMission; @@ -564,14 +564,10 @@ public class DownloadManager { synchronized (DownloadManager.this) { ArrayList pending = new ArrayList<>(mMissionsPending); ArrayList finished = new ArrayList<>(mMissionsFinished); - ArrayList remove = new ArrayList<>(hidden); + List remove = new ArrayList<>(hidden); // hide missions (if required) - Iterator iterator = remove.iterator(); - while (iterator.hasNext()) { - Mission mission = iterator.next(); - if (pending.remove(mission) || finished.remove(mission)) iterator.remove(); - } + remove.removeIf(mission -> pending.remove(mission) || finished.remove(mission)); int fakeTotal = pending.size(); if (fakeTotal > 0) fakeTotal++; From 974f8f692c13ad123b87f45a1673bc0030d34864 Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Sun, 1 Nov 2020 18:13:41 +0100 Subject: [PATCH 083/231] Add option to not colorize notification --- .../java/org/schabi/newpipe/player/NotificationUtil.java | 5 ++++- .../newpipe/settings/NotificationSettingsFragment.kt | 9 +++++++++ app/src/main/res/values/settings_keys.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/notification_settings.xml | 7 +++++++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/NotificationUtil.java b/app/src/main/java/org/schabi/newpipe/player/NotificationUtil.java index 10fff5298..62f1d5dc2 100644 --- a/app/src/main/java/org/schabi/newpipe/player/NotificationUtil.java +++ b/app/src/main/java/org/schabi/newpipe/player/NotificationUtil.java @@ -120,7 +120,10 @@ public final class NotificationUtil { .setCategory(NotificationCompat.CATEGORY_TRANSPORT) .setShowWhen(false) .setSmallIcon(R.drawable.ic_newpipe_triangle_white) - .setColor(ContextCompat.getColor(player.context, R.color.gray)) + .setColor(ContextCompat.getColor(player.context, R.color.dark_background_color)) + .setColorized(player.sharedPreferences.getBoolean( + player.context.getString(R.string.notification_colorize_key), + true)) .setDeleteIntent(PendingIntent.getBroadcast(player.context, NOTIFICATION_ID, new Intent(ACTION_CLOSE), FLAG_UPDATE_CURRENT)); diff --git a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt index 860968626..c68b699d3 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt @@ -1,10 +1,19 @@ package org.schabi.newpipe.settings +import android.os.Build import android.os.Bundle +import androidx.preference.Preference import org.schabi.newpipe.R class NotificationSettingsFragment : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.notification_settings) + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + val colorizePref: Preference? = findPreference(getString(R.string.notification_colorize_key)) + colorizePref?.let { + preferenceScreen.removePreference(it) + } + } } } \ No newline at end of file diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index ba40ab931..c73d7d9de 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -132,6 +132,8 @@ notification_slot_compact_1_key notification_slot_compact_2_key + notification_colorize_key + video_mp4 video_webm video_3gp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a2ab0d78e..e0aefc935 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -72,6 +72,8 @@ Shuffle Buffering Nothing + Colorize notification + Have Android customize the notification\'s color according to the main color in the thumbnail (note that this is not available on all devices) Audio Default audio format Default video format diff --git a/app/src/main/res/xml/notification_settings.xml b/app/src/main/res/xml/notification_settings.xml index d9e45a41b..65d4af48a 100644 --- a/app/src/main/res/xml/notification_settings.xml +++ b/app/src/main/res/xml/notification_settings.xml @@ -10,6 +10,13 @@ android:title="@string/notification_scale_to_square_image_title" app:iconSpaceReserved="false" /> + + From 239fc2f6f8238e867ea76f05fca55ab304578c3f Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 1 Nov 2020 20:42:22 +0100 Subject: [PATCH 084/231] Change youtube subscription import instructions --- app/build.gradle | 2 +- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cfda114c2..e78d5b144 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -176,7 +176,7 @@ dependencies { // NewPipe dependencies // You can use a local version by uncommenting a few lines in settings.gradle - implementation 'com.github.TeamNewPipe:NewPipeExtractor:62912ee8349f5d26617c039f337297628ff52ead' + implementation 'com.github.Stypox:NewPipeExtractor:501ec30152642ad49ce0a1825410d200942d174c' implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751" implementation "org.jsoup:jsoup:1.13.1" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a2ab0d78e..c4eadc63b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -514,7 +514,7 @@ Previous export Could not import subscriptions Could not export subscriptions - Import YouTube subscriptions by downloading the export file:\n\n1. Go to this URL: %1$s\n2. Log in when asked\n3. A download should start (that\'s the export file) + Import YouTube subscriptions from Google takeout:\n\n1. Go to this URL: %1$s\n2. Log in when asked\n3. Click on \"All data included\", then on \"Deselect all\", then select only \"subscriptions\" and click \"OK\"\n4. Click on \"Next step\" and then on \"Create export\"\n5. Click on the \"Download\" button after it appears and \n6. From the downloaded takeout zip extract the .json file (usually under \"YouTube and YouTube Music/subscriptions/subscriptions.json\") and import it here. Import a SoundCloud profile by typing either the URL or your ID:\n\n1. Enable \"desktop mode\" in a web-browser (the site is not available for mobile devices)\n2. Go to this URL: %1$s\n3. Log in when asked\n4. Copy the profile URL you were redirected to. yourID, soundcloud.com/yourid Keep in mind this operation can be network expensive.\n\nDo you want to continue? From 96e3709b7b4ebd3b65e5470718c97f8c6df67d04 Mon Sep 17 00:00:00 2001 From: Franco Date: Sun, 1 Nov 2020 23:01:31 +0000 Subject: [PATCH 085/231] Translated using Weblate (Spanish) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-es/strings.xml | 148 ++++++++++++------------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 44f1ecd2d..099f09509 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -18,13 +18,13 @@ Los archivos de vídeo descargados se almacenan aquí Elija la carpeta de descarga para los archivos de vídeo Cambie las carpetas de descarga para que surtan efecto - Resolución predeterminada + Resolución predefinida Reproducir con Kodi - ¿Instalar la app Kore que falta\? + ¿Instalar la aplicación Kore que falta\? Mostrar opción «Reproducir con Kodi» Mostrar opción para reproducir vídeo a través del centro de medios Kodi Audio - Formato de audio predeterminado + Formato de audio predefinido Descargar No se admite el URL Usar reproductor de vídeo externo @@ -50,7 +50,7 @@ No se pudo descifrar la URL del vídeo No se pudo analizar el sitio web Mostrar vídeos \'Siguientes\' y \'Similares\' - Idioma predeterminado del contenido + Idioma predefinido del contenido Miniatura de previsualización del vídeo Reproducir vídeo; duración: Me gusta @@ -63,7 +63,7 @@ Toque «Buscar» para empezar \n Reproducción automática - Reproducir un vídeo cuando NewPipe es llamado desde otra app + Reproducir un vídeo cuando NewPipe es llamado desde otra aplicación En directo Descargas Descargas @@ -80,7 +80,7 @@ Su comentario (en Inglés): Detalles: Informar de un error - Reporte de usuario + Informe de usuario Vídeo Audio Reintentar @@ -88,7 +88,7 @@ Iniciar Pausar Reproducir - Eliminar + Borrar Suma de comprobación Misión nueva Aceptar @@ -102,9 +102,9 @@ Toque para ver detalles Espere, por favor… Copiado en el portapapeles - Defina una carpeta de descargas más tarde en la configuración + Defina una carpeta de descargas más tarde en los ajustes No se pudo cargar la imagen - La interfaz de la app dejó de funcionar + La interfaz de la aplicación dejó de funcionar Lo sucedido:\\nPetición:\\nIdioma del Contenido:\\nPaís del contenido:\\nIdioma de la aplicación:\\nServicio:\\nHora GMT:\\nPaquete:\\nVersión:\\nVersión del SO: Negro Todo @@ -121,11 +121,11 @@ Reto reCAPTCHA requerido Modo emergente Reproduciendo en modo emergente - Formato de vídeo predeterminado + Formato de vídeo predefinido Desactivado Mostrar resoluciones más altas Sólo algunos dispositivos pueden reproducir vídeos en 2K / 4K - Resolución predeterminada de emergente + Resolución predefinida de emergente Segundo plano Emergente Filtro @@ -133,11 +133,11 @@ Limpiar Emergente Redimensionando - Elimina el audio en algunas resoluciones + Quita el audio en algunas resoluciones Controles del reproductor por gestos Usar gestos para controlar el brillo y volumen del reproductor Sugerencias de búsqueda - Mostrar sugerencias cuando esté buscando + Mostrar sugerencias al buscar Mejor resolución Acerca de NewPipe Ajustes @@ -206,8 +206,8 @@ %s vídeo %s vídeos - Se eliminó el elemento - ¿Quiere eliminar este elemento del historial de búsquedas\? + Elemento borrado + ¿Quieres borrar este elemento del historial de búsquedas\? Contenido de la página principal Página en blanco Página del quiosco @@ -220,7 +220,7 @@ Quiosco Tendencias 50 mejores - Mostrar sugerencia cuando se presiona el botón de segundo plano o emergente en la página «Detalles:» del vídeo + Mostrar sugerencia al pulsar el botón de segundo plano o emergente en la página «Detalles:» del vídeo En cola en el reproductor de 2.º plano En cola en el reproductor emergente Reproducir todo @@ -229,20 +229,20 @@ Recuperándose del error del reproductor Quitar Detalles - Configuración de audio + Ajustes del audio [Desconocido] Comenzar a reproducir aquí Comenzar a reproducir en segundo plano Reproducir en modo emergente - Mostrar consejo «Mantener presionado para añadir» + Mostrar consejo «Mantener pulsado para añadir» Nuevo y lo mejor - Mantener presionado para agregar a la cola + Mantener pulsado para añadir a la cola Donar NewPipe es desarrollado por voluntarios que emplean su tiempo libre para brindarle la mejor experiencia. Haga una aportación para ayudarlos a crear un NewPipe mejor mientras disfrutan de una taza de café. Dar de vuelta Sitio web Visite el sitio web de NewPipe para más información y noticias. - País predeterminado del contenido + País predefinido del contenido Alternar orientación Cambiar a segundo plano Cambiar a emergente @@ -277,28 +277,28 @@ Añadir a Arrastrar para reordenar Crear - Eliminar uno - Eliminar todos + Borrar uno + Borrar todos Descartar Cambiar nombre - ¿Quiere eliminar este elemento del historial de reproducciones\? - ¿Confirma que quiere eliminar todos los elementos del historial\? + ¿Quieres borrar este elemento del historial de reproducciones\? + ¿Quieres borrar todos los elementos del historial\? Última reproducción Más reproducido Preguntar siempre Lista de reproducción nueva - Eliminar + Borrar Cambiar nombre Nombre Añadir a la lista de reproducción Definir como miniatura de lista de reproducción Marcar lista de reproducción - Eliminar marcador - ¿Quiere eliminar esta lista\? + Quitar marcador + ¿Quieres borrar esta lista\? Lista de reproducción creada Añadido a la lista de reproducción Miniatura de lista de reproducción cambiada. - No se pudo eliminar la lista de reproducción. + No se pudo borrar la lista de reproducción. Algo aparecerá aquí pronto ;D Sin subtítulos Ajustar @@ -306,15 +306,15 @@ Zoom Depuración Auto generados - La monitorización de fugas de memoria puede causar que la app no responda cuando hay Heap Dump - Reportar errores fuera del ciclo de duración - Forzar reporte de excepciones no entregables de RX fuera del fragmento o del ciclo de actividad después del descarte + La monitorización de fugas de memoria puede causar que la aplicación no responda al realizar el volcado de memoria + Informar errores fuera del ciclo de duración + Forzar informe de excepciones no entregables de RX fuera del fragmento o del ciclo de actividad después del descarte Usar búsqueda rápida e inexacta La búsqueda inexacta permite al reproductor buscar posiciones más rápido con menor precisión. Buscar de a 5, 15 o 25 segundos no funciona. Poner en cola vídeo relacionado siguiente Continuar reproducción sin repetir al añadir de forma automática un vídeo relacionado con el último visto Archivo - Archivo movido o eliminado + Archivo movido o borrado La carpeta no existe No existe tal archivo/origen del contenido El archivo no existe o carece de los permisos para leer o escribir en él @@ -349,7 +349,7 @@ Desactivar para evitar la carga de miniaturas y ahorrar datos y memoria. Se vaciará la caché de imágenes en la memoria volátil y en el disco. Se vació la caché de imágenes Vaciar metadatos en memoria caché - Eliminar todos los datos de páginas web en antememoria + Quitar todos los datos guardados de páginas web Se vació la caché de metadatos Controles de velocidad de reproducción Tiempo @@ -357,31 +357,31 @@ Desvincular (puede causar distorsión) No hay streams disponibles para descargar Acción de apertura preferida - Acción predeterminada al abrir contenido: %s + Acción predefinida al abrir contenido: %s No se encontró ninguna aplicación que reproduzca este archivo Subtítulos - Modificar la escala de texto de los subtítulos y los estilos de fondo. Requiere reiniciar la app para que surta efecto. + Modificar la escala de texto de los subtítulos y los estilos de fondo. Requiere reiniciar la aplicación para que surta efecto. Vaciar historial de reproducciones - Elimina el historial de contenido visto y posiciones de reproducción - ¿Eliminar todo el historial de reproducciones\? - Se eliminó el historial de reproducciones. + Borra el historial de contenido visto y posiciones de reproducción + ¿Borrar todo el historial de reproducciones\? + Historial de reproducciones borrado. Vaciar historial de búsquedas - Elimina el historial de palabras clave de búsqueda - ¿Eliminar todo el historial de búsqueda\? - Historial de búsquedas eliminado. - Se eliminó 1 elemento. + Borra el historial de búsqueda de palabras clave + ¿Borrar todo el historial de búsqueda\? + Historial de búsquedas borrado. + Se ha borrado 1 elemento. NewPipe es un software copyleft libre: puedes usarlo, estudiarlo, compartirlo y mejorarlo a voluntad. Específicamente, puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior. - ¿Quiere importar también la configuración\? + ¿Quiere importar también los ajustes\? Normativa de privacidad de NewPipe El proyecto NewPipe toma su privacidad muy en serio. Por ello, la aplicación no recopila algún dato sin su consentimiento. -\nLa normativa de privacidad de NewPipe explica en detalle qué datos se envían y almacenan cuando envía un informe de fallo. +\nLa normativa de privacidad de NewPipe explica en detalle qué datos se envían y almacenan al enviar un informe de fallo. Leer la normativa de privacidad - Para cumplir con el Reglamento general europeo de protección de datos (GDPR), atraemos su atención sobre la política de privacidad de NewPipe. Por favor léase cuidadosamente. + Para cumplir con el «Reglamento general europeo de protección de datos (GDPR)», atraemos su atención sobre la política de privacidad de NewPipe. Por favor léase cuidadosamente. \nDebe aceptarlo para enviarnos el informe de error. Aceptar Declinar Sin límite - Limitar la resolución cuando se usen datos móviles + Limitar la resolución al usar datos móviles Minimizar al cambiar de aplicación Acción de cambiar a otra aplicación desde el reproductor principal — %s Ninguna @@ -402,7 +402,7 @@ recuperando Añadir a cola Acción denegada por el sistema - Se eliminó el archivo + Archivo borrado Descarga fallida Descarga finalizada @@ -417,7 +417,7 @@ Hay una descarga pendiente con este nombre Mostrar como grilla Mostrar como lista - ¿Quiere limpiar su historial de descargas o eliminar todos los ficheros descargados\? + ¿Quieres vaciar el historial de descargas o borrar todos los ficheros descargados\? Detener Intentos máximos Cantidad máxima de intentos antes de cancelar la descarga @@ -442,7 +442,7 @@ Falló el posprocesamiento NewPipe se cerró mientras se trabajaba en el archivo No hay suficiente espacio disponible en el dispositivo - Se perdió el progreso porque el archivo fue eliminado + Se perdió el progreso porque el archivo fue borrado Tiempo de espera excedido No se puede recuperar esta descarga Preguntar dónde descargar @@ -465,15 +465,15 @@ Notificaciones de versiones nuevas de NewPipe Almacenamiento externo no disponible No es posible descargar a una tarjeta SD externa. \¿Restablecer la ubicación de la carpeta de descarga\? - No se pudo leer las pestañas guardadas, se usarán las pestañas por defecto - Restaurar valores por defecto - ¿Quieres restaurar los valores por defecto\? + No se pudo leer las pestañas guardadas, se usarán las pestañas predefinidas + Restaurar valores predefinidos + ¿Quieres restaurar los valores predefinidos\? Número de suscriptores no disponible Qué pestañas aparecen en la página principal Selección Conferencias Actualizaciones - Mostrar una notificación para solicitar actualizar la aplicación cuando haya una nueva versión disponible + Mostrar una notificación para solicitar actualizar la aplicación al haber una nueva versión disponible Modo de vista de lista Automático Cambiar vista @@ -490,12 +490,12 @@ Posiciones en listas Mostrar indicador de posición en listas de reproducción Vaciar datos - Se eliminaron las posiciones de reproducción. - Eliminar posiciones de reproducción - Elimina todas las posiciones de reproducción - ¿Quiere eliminar todas las posiciones de reproducción\? + Posiciones de reproducción borradas. + Borrar posiciones de reproducción + Borra todas las posiciones de reproducción + ¿Quieres borrar todas las posiciones de reproducción\? Activar/desactivar servicio, seleccionados actualmente: - Quiosco predeterminado + Quiosco predefinido Nadie está viendo %s viendo @@ -511,30 +511,30 @@ Instancias de PeerTube Selecciona tus instancias favoritas de PeerTube Encuentra las instancias que te gusten en %s - Agregar instancia + Añadir instancia Ingresar URL de la instancia No se pudo validar la instancia Solo se admiten URL HTTPS La instancia ya existe Local - Agregados recientemente + Añadidos recientemente Más gustados Generado automáticamente (no se encontró creador) Elige una instancia Limpiar historial de descargas - Eliminar archivos descargados - Eliminadas %1$d descargas + Borrar archivos descargados + Borradas %1$d descargas Permitir mostrar sobre otras aplicaciones Idioma de aplicación - Predeterminado del sistema - Pulse en «Hecho» cuando esté resuelto + Predefinido del sistema + Pulse en «Hecho» al resolverlo Hecho Vídeos %d segundo %d segundos - Debido a limitaciones de ExoPlayer la duración de la búsqueda fue fijada en %d segundos + Debido a limitaciones de ExoPlayer, la duración de la búsqueda fue definida en %d segundos Silenciar Desactivar silencio Ayuda @@ -572,7 +572,7 @@ Disponible para algunos servicios, suele ser más rápido pero puede mostrar una cantidad limitada de ítems y a menudo información incompleta (por ejemplo falta de duración, tipo de ítem o estado). Activar modo rápido Desactivar modo rápido - ¿Piensas que la carga de contenidos es muy lenta\? Entonces intenta habilitar la carga rápida (puedes cambiarlo en los ajustes o presionando el botón debajo). + ¿Piensas que la carga de contenidos es muy lenta\? Entonces intenta habilitar la carga rápida (puedes cambiarlo en los ajustes o pulsando el botón debajo). \n \nNewpipe ofrece dos formas de cargar los contenidos: \n• Obtener todos los canales con suscripciones, lento pero completo. @@ -595,10 +595,10 @@ \n \nHabilita «%1$s» en los ajustes si quieres verlo. Sí, y también videos vistos parcialmente - Los videos que ya se hayan visto luego de agregados a la lista de reproducción, serán eliminados. + Los videos que ya se hayan visto luego de añadidos a la lista de reproducción, serán quitados. \n¿Estás seguro\? ¡Esta acción no se puede deshacer! - ¿Borrar videos ya vistos\? - Borrar videos ya vistos + ¿Quitar videos ya vistos\? + Quitar videos ya vistos Por %s Creado por %s Miniatura de avatar del canal @@ -609,9 +609,9 @@ Mostrar sólo suscripciones desagrupadas Sin marcadores de lista de reproducción aún Seleccione una lista de reproducción - Por favor revise si ya existe una discusión sobre su problema. Cuando se crean entradas duplicadas, toma tiempo de nosotros que podríamos usar para arreglar tal problema. - Reportar en Github - Copiar reporte con formato + Por favor revise si ya existe una discusión sobre su problema. Al crear entradas duplicadas, toma tiempo de nosotros que podríamos usar para arreglar tal problema. + Informar en Github + Copiar informe con formato Mostrando resultados para: %s Orden aleatorio Escalar miniatura a relación de aspecto 1:1 @@ -624,7 +624,7 @@ Poner en cola Cambiar de un reproductor a otro puede reemplazar la cola de reproducción La cola de reproducción activa será reemplazada - Pedir confirmación antes de eliminar una cola + Pedir confirmación antes de vaciar una cola Nada Almacenar en memoria (búfer) Repetir @@ -636,7 +636,7 @@ Botón de segunda acción Botón de primera acción Escalar la miniatura del vídeo mostrada en la notificación de relación de aspecto 16:9 a 1:1 (puede ocasionar distorsiones) - Limpiar las cookies que NewPipe guarda cuando resuelves un reCAPTCHA + Vaciar las cookies que NewPipe guarda al resolver un reCAPTCHA Mostrar contenido inapropiado para niños porque tiene un limite de edad (como 18+). Mostrar pérdidas de memoria Añadido a la cola From 2b5b9d3599eae328f85a92ac894f363dc6970fde Mon Sep 17 00:00:00 2001 From: Juraj Liso Date: Sun, 1 Nov 2020 20:41:56 +0000 Subject: [PATCH 086/231] Translated using Weblate (Slovak) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-sk/strings.xml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 452f19582..178e4ecd1 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -55,11 +55,12 @@ (Experimentálne) Vyžadovať preberanie cez Tor pre väčšie súkromie (streamovanie videa momentálne nie je podporované). Nemožno vytvoriť adresár na preberanie \'%1$s\' Adresár na preberanie bol vytvorený \'%1$s\' - Ťuknite na \"Vyhľadávanie\" pre začatie + Ťuknite na \"Vyhľadávanie\" pre začatie +\n Automatické prehrávanie Prehrá video pri zavolaní NewPipe inou aplikáciou Obsah - Vekovo obmedzený obsah + Zobraziť vekovo obmedzený obsah Zobrazit video s vekovým obmezením. Zmenit túto voľbu môžete v nastaveniach. Naživo Nemožno kompletne zanalyzovať web @@ -606,8 +607,8 @@ Albumy Vekovo obmedzené video. \n -\nPre zobrazenie videa povoľte \"Vekovo obmedzený obsah\" v nastaveniach. - YouTube v obmedzenom režime +\nPre zobrazenie videa povoľte \"%1$s\" v nastaveniach. + Zapnúť \"Obmedzený režim YouTube\" %s Vytvoril %s Minuatúrny avatar kanála @@ -642,4 +643,12 @@ Akčné tlačidlo jedna Zmeniť pomer strán videa zobrazovaného v miniatúre z 16:9 na 1:1 (čo môže spôsobovať skreslenie) Zmenšiť pomer strán miniatúry na 1: 1 + Zobraziť memory leaks + Zaradené do poradia + Zaradiť do poradia + Vymazať cookies, ktoré NewPipe ukladá, keď vyriešite reCAPTCHA + reCAPTCHA cookies boli vymazané + Vymazať cookies reCAPTCHA + YouTube poskytuje \"Obmedzený režim\", ktorý skrýva potenciálny obsah pre dospelých. + Zobraziť obsah, ktorý je možno nevhodný pre deti, pretože má vekovú hranicu (napríklad 18+). \ No newline at end of file From ceed1c49629f77aa9ee9db8b90dd37746abe1cee Mon Sep 17 00:00:00 2001 From: zeritti Date: Sun, 1 Nov 2020 14:05:02 +0000 Subject: [PATCH 087/231] Translated using Weblate (Czech) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-cs/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index c0b064d37..d06b82501 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -643,4 +643,12 @@ První akční tlačítko Zmenšit miniaturu videa zobrazenou v oznámení z poměru stran 16: 9 na 1: 1 (může způsobit zkreslení) Změnit poměr stran miniatury na 1:1 + Ukázat memory leaks + Zařazeno do fronty + Zařadit do fronty + Vymazat cookies, které NewPipe uloží, po vyřešení reCAPTCHA + Cookies reCAPTCHA byly vymazány + Vymazat cookies reCAPTCHA + YouTube poskytuje \"Omezený režim\", který skrývá potenciální obsahy pro dospělé. + Zobrazit obsah, i když je patrně nevhodný pro děti, protože odkazuje na věkové omezení (např. 18+). \ No newline at end of file From 2bfb83c4cd98a209b2e4682ae20775274f9d9acc Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Sun, 1 Nov 2020 14:36:30 +0000 Subject: [PATCH 088/231] Translated using Weblate (Santali) Currently translated at 7.4% (45 of 603 strings) --- app/src/main/res/values-sat/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index d56946343..2743ffa14 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -13,4 +13,12 @@ %1$s ᱧᱮᱞᱠᱚ ᱮᱦᱲᱵ ᱞᱟᱹᱜᱤᱫ \"ᱥᱮᱸᱫᱽᱨᱟ\" ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ \n + ᱵᱟᱦᱨᱮ ᱣᱤᱰᱤᱭᱚ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱮᱵᱷᱟᱨ ᱢᱮᱸ + ᱛᱮᱞᱟ ᱫᱮᱠᱷᱟᱣᱜᱽ ᱠᱟᱱᱟᱺ%s + ᱟᱢᱟᱜ ᱚᱨᱛᱷᱚ \"%1$s\" ᱥᱮ\? + ᱥᱴᱨᱤᱢ ᱨᱮᱫ ᱰᱟᱩᱱᱞᱳᱰ ᱢᱮᱸ + ᱯᱚᱯᱚᱯ ᱢᱳᱰ ᱨᱮ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮᱸ + ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ (ᱟᱢ VLC ᱯᱞᱮᱭᱟᱹᱨ ᱵᱚᱦᱟᱞ ᱠᱟᱛᱮ ᱚᱱᱟ ᱨᱮ ᱯᱞᱮ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ) ᱾ + ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ ᱾ VLC ᱵᱚᱦᱟᱞ ᱟᱢ ᱥᱮ\? + %1$s ᱨᱮ ᱩᱪᱷᱟᱹᱱ ᱮᱱᱟ \ No newline at end of file From 1f73572dd3d101a9c313e684d8a9bdd185450670 Mon Sep 17 00:00:00 2001 From: Stypox Date: Mon, 2 Nov 2020 14:24:39 +0100 Subject: [PATCH 089/231] Fix playlist select dialog and do some refactoring --- .../settings/SelectPlaylistFragment.java | 102 +++++++----------- 1 file changed, 40 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java index c858c7f77..153adf4c0 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java @@ -1,7 +1,6 @@ package org.schabi.newpipe.settings; import android.app.Activity; -import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -34,6 +33,7 @@ import java.util.List; import java.util.Vector; import io.reactivex.Flowable; +import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; public class SelectPlaylistFragment extends DialogFragment { @@ -46,12 +46,11 @@ public class SelectPlaylistFragment extends DialogFragment { private final ImageLoader imageLoader = ImageLoader.getInstance(); private OnSelectedListener onSelectedListener = null; - private OnCancelListener onCancelListener = null; private ProgressBar progressBar; private TextView emptyView; private RecyclerView recyclerView; - private Disposable playlistsSubscriber; + private Disposable disposable = null; private List playlists = new Vector<>(); @@ -59,10 +58,6 @@ public class SelectPlaylistFragment extends DialogFragment { onSelectedListener = listener; } - public void setOnCancelListener(final OnCancelListener listener) { - onCancelListener = listener; - } - /*////////////////////////////////////////////////////////////////////////// // Fragment's Lifecycle //////////////////////////////////////////////////////////////////////////*/ @@ -70,15 +65,32 @@ public class SelectPlaylistFragment extends DialogFragment { @Override public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { - final View v = - inflater.inflate(R.layout.select_playlist_fragment, container, false); + final View v = inflater.inflate(R.layout.select_playlist_fragment, container, false); + progressBar = v.findViewById(R.id.progressBar); recyclerView = v.findViewById(R.id.items_list); + emptyView = v.findViewById(R.id.empty_state_view); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); final SelectPlaylistAdapter playlistAdapter = new SelectPlaylistAdapter(); recyclerView.setAdapter(playlistAdapter); - progressBar = v.findViewById(R.id.progressBar); - emptyView = v.findViewById(R.id.empty_state_view); + loadPlaylists(); + return v; + } + + @Override + public void onDestroy() { + super.onDestroy(); + if (disposable != null) { + disposable.dispose(); + } + } + + /*////////////////////////////////////////////////////////////////////////// + // Load and display playlists + //////////////////////////////////////////////////////////////////////////*/ + + private void loadPlaylists() { progressBar.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.GONE); emptyView.setVisibility(View.GONE); @@ -87,43 +99,36 @@ public class SelectPlaylistFragment extends DialogFragment { final LocalPlaylistManager localPlaylistManager = new LocalPlaylistManager(database); final RemotePlaylistManager remotePlaylistManager = new RemotePlaylistManager(database); - playlistsSubscriber = Flowable.combineLatest(localPlaylistManager.getPlaylists(), + disposable = Flowable.combineLatest(localPlaylistManager.getPlaylists(), remotePlaylistManager.getPlaylists(), PlaylistLocalItem::merge) + .observeOn(AndroidSchedulers.mainThread()) .subscribe(this::displayPlaylists, this::onError); - - return v; } - @Override - public void onDestroy() { - super.onDestroy(); + private void displayPlaylists(final List newPlaylists) { + playlists = newPlaylists; + progressBar.setVisibility(View.GONE); + emptyView.setVisibility(newPlaylists.isEmpty() ? View.VISIBLE : View.GONE); + recyclerView.setVisibility(newPlaylists.isEmpty() ? View.GONE : View.VISIBLE); + } - if (playlistsSubscriber != null) { - playlistsSubscriber.dispose(); - playlistsSubscriber = null; - } + protected void onError(final Throwable e) { + final Activity activity = requireActivity(); + ErrorActivity.reportError(activity, e, activity.getClass(), null, ErrorActivity.ErrorInfo + .make(UserAction.UI_ERROR, "none", "load_playlists", R.string.app_ui_crash)); } /*////////////////////////////////////////////////////////////////////////// // Handle actions //////////////////////////////////////////////////////////////////////////*/ - @Override - public void onCancel(final DialogInterface dialogInterface) { - super.onCancel(dialogInterface); - if (onCancelListener != null) { - onCancelListener.onCancel(); - } - } - private void clickedItem(final int position) { if (onSelectedListener != null) { final LocalItem selectedItem = playlists.get(position); if (selectedItem instanceof PlaylistMetadataEntry) { final PlaylistMetadataEntry entry = ((PlaylistMetadataEntry) selectedItem); - onSelectedListener - .onLocalPlaylistSelected(entry.uid, entry.name); + onSelectedListener.onLocalPlaylistSelected(entry.uid, entry.name); } else if (selectedItem instanceof PlaylistRemoteEntity) { final PlaylistRemoteEntity entry = ((PlaylistRemoteEntity) selectedItem); @@ -134,31 +139,6 @@ public class SelectPlaylistFragment extends DialogFragment { dismiss(); } - /*////////////////////////////////////////////////////////////////////////// - // Item handling - //////////////////////////////////////////////////////////////////////////*/ - - private void displayPlaylists(final List newPlaylists) { - this.playlists = newPlaylists; - progressBar.setVisibility(View.GONE); - if (newPlaylists.isEmpty()) { - emptyView.setVisibility(View.VISIBLE); - return; - } - recyclerView.setVisibility(View.VISIBLE); - - } - - /*////////////////////////////////////////////////////////////////////////// - // Error - //////////////////////////////////////////////////////////////////////////*/ - - protected void onError(final Throwable e) { - final Activity activity = getActivity(); - ErrorActivity.reportError(activity, e, activity.getClass(), null, ErrorActivity.ErrorInfo - .make(UserAction.UI_ERROR, "none", "", R.string.app_ui_crash)); - } - /*////////////////////////////////////////////////////////////////////////// // Interfaces //////////////////////////////////////////////////////////////////////////*/ @@ -168,22 +148,20 @@ public class SelectPlaylistFragment extends DialogFragment { void onRemotePlaylistSelected(int serviceId, String url, String name); } - public interface OnCancelListener { - void onCancel(); - } - private class SelectPlaylistAdapter extends RecyclerView.Adapter { + @NonNull @Override public SelectPlaylistItemHolder onCreateViewHolder(final ViewGroup parent, - final int viewType) { + final int viewType) { final View item = LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_playlist_mini_item, parent, false); return new SelectPlaylistItemHolder(item); } @Override - public void onBindViewHolder(final SelectPlaylistItemHolder holder, final int position) { + public void onBindViewHolder(@NonNull final SelectPlaylistItemHolder holder, + final int position) { final PlaylistLocalItem selectedItem = playlists.get(position); if (selectedItem instanceof PlaylistMetadataEntry) { From 347566c311f9e215b48baa20ab3c10f53525f809 Mon Sep 17 00:00:00 2001 From: vkay94 Date: Wed, 21 Oct 2020 16:41:14 +0200 Subject: [PATCH 090/231] Player gestures: Add multi-double-tap logic --- .../player/event/BasePlayerGestureListener.kt | 69 +++++++++++++++++++ .../newpipe/player/event/DoubleTapListener.kt | 7 ++ .../player/event/PlayerGestureListener.java | 2 + 3 files changed, 78 insertions(+) create mode 100644 app/src/main/java/org/schabi/newpipe/player/event/DoubleTapListener.kt diff --git a/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt index 8ce140443..dcc1bb128 100644 --- a/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt @@ -1,6 +1,7 @@ package org.schabi.newpipe.player.event import android.content.Context +import android.os.Handler import android.util.Log import android.view.GestureDetector import android.view.MotionEvent @@ -203,6 +204,11 @@ abstract class BasePlayerGestureListener( if (DEBUG) Log.d(TAG, "onDown called with e = [$e]") + if (isDoubleTapping && isDoubleTapEnabled) { + doubleTapControls?.onDoubleTapProgressDown(getDisplayPortion(e)) + return true + } + return if (playerImpl.popupPlayerSelected()) onDownInPopup(e) else @@ -233,6 +239,9 @@ abstract class BasePlayerGestureListener( if (DEBUG) Log.d(TAG, "onSingleTapConfirmed() called with: e = [$e]") + if (isDoubleTapping) + return true + if (playerImpl.popupPlayerSelected()) { if (playerImpl.player == null) return false @@ -374,6 +383,65 @@ abstract class BasePlayerGestureListener( return true } + // /////////////////////////////////////////////////////////////////// + // Multi double tapping + // /////////////////////////////////////////////////////////////////// + + var doubleTapControls: DoubleTapListener? = null + private set + + val isDoubleTapEnabled: Boolean + get() = doubleTapDelay > 0 + + var isDoubleTapping = false + private set + + fun doubleTapControls(listener: DoubleTapListener) = apply { + doubleTapControls = listener + } + + private var doubleTapDelay = DOUBLE_TAP_DELAY + private val doubleTapHandler: Handler = Handler() + private val doubleTapRunnable = Runnable { + if (DEBUG) + Log.d(TAG, "doubleTapRunnable called") + + isDoubleTapping = false + doubleTapControls?.onDoubleTapFinished() + } + + fun startMultiDoubleTap(e: MotionEvent) { + if (!isDoubleTapping) { + if (DEBUG) + Log.d(TAG, "startMultiDoubleTap called with e = [$e]") + + keepInDoubleTapMode() + doubleTapControls?.onDoubleTapStarted(getDisplayPortion(e)) + } + } + + fun keepInDoubleTapMode() { + if (DEBUG) + Log.d(TAG, "keepInDoubleTapMode called") + + isDoubleTapping = true + doubleTapHandler.removeCallbacks(doubleTapRunnable) + doubleTapHandler.postDelayed(doubleTapRunnable, doubleTapDelay) + } + + fun endMultiDoubleTap() { + if (DEBUG) + Log.d(TAG, "endMultiDoubleTap called") + + isDoubleTapping = false + doubleTapHandler.removeCallbacks(doubleTapRunnable) + doubleTapControls?.onDoubleTapFinished() + } + + fun enableMultiDoubleTap(enable: Boolean) = apply { + doubleTapDelay = if (enable) DOUBLE_TAP_DELAY else 0 + } + // /////////////////////////////////////////////////////////////////// // Utils // /////////////////////////////////////////////////////////////////// @@ -429,6 +497,7 @@ abstract class BasePlayerGestureListener( private const val TAG = "BasePlayerGestListener" private val DEBUG = BasePlayer.DEBUG + private const val DOUBLE_TAP_DELAY = 550L private const val MOVEMENT_THRESHOLD = 40 } } diff --git a/app/src/main/java/org/schabi/newpipe/player/event/DoubleTapListener.kt b/app/src/main/java/org/schabi/newpipe/player/event/DoubleTapListener.kt new file mode 100644 index 000000000..84cfb9b8d --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/player/event/DoubleTapListener.kt @@ -0,0 +1,7 @@ +package org.schabi.newpipe.player.event + +interface DoubleTapListener { + fun onDoubleTapStarted(portion: DisplayPortion) {} + fun onDoubleTapProgressDown(portion: DisplayPortion) {} + fun onDoubleTapFinished() {} +} diff --git a/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java b/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java index 003b9ff9d..a23d5d3ff 100644 --- a/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java +++ b/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java @@ -62,6 +62,8 @@ public class PlayerGestureListener if (portion == DisplayPortion.LEFT) { playerImpl.onFastRewind(); + } else if (portion == DisplayPortion.MIDDLE) { + playerImpl.onPlayPause(); } else if (portion == DisplayPortion.RIGHT) { playerImpl.onFastForward(); } From 355effd93d8273cb0621337ce0f7ad7e031cf073 Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Tue, 3 Nov 2020 16:56:04 +0000 Subject: [PATCH 091/231] Mention custom repo and generally update section Added custom repo as additional install method, and added comparison between them all. Also removed the outdated part. --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6eea7de01..a287768b7 100644 --- a/README.md +++ b/README.md @@ -80,17 +80,18 @@ NewPipe supports multiple services. Our [docs](https://teamnewpipe.github.io/doc ## Updates When a change to the NewPipe code occurs (due to either adding features or bug fixing), eventually a release will occur. These are in the format x.xx.x . In order to get this new version, you can: - * Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods. - * Download the APK from [releases](https://github.com/TeamNewPipe/NewPipe/releases) and install it. - * Update via F-droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users. + 1. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods. + 2. Add our custom repo to F-Droid and install it from there as soon as we publish a release. The instructions are here: https://newpipe.schabi.org/FAQ/tutorials/install-add-fdroid-repo/ + 3. Download the APK from [Github Releases](https://github.com/TeamNewPipe/NewPipe/releases) and install it as soon as we publish a release. + 4. Update via F-droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users. -When you install an APK from one of these options, it will be incompatible with an APK from one of the other options. This is due to different signing keys being used. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app, and are independent. F-Droid and GitHub use different signing keys, and building an APK debug excludes a key. The signing key issue is being discussed in issue [#1981](https://github.com/TeamNewPipe/NewPipe/issues/1981), and may be fixed by setting up our own repository on F-Droid. +We recommend method 2 for most users. APKs installed using method 2 or 3 are compatible with each other, but not with those installed using method 4. This is due to the same signing key (ours) being using for 2 and 3, but a different signing key (F-Droid's) being used for 4. Building a debug APK using method 1 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality was broken and F-Droid doesn't have the update yet), we recommend following this procedure: -1. Back up your data via "Settings>Content>Export Database" so you keep your history, subscriptions, and playlists +1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists 2. Uninstall NewPipe 3. Download the APK from the new source and install it -4. Import the data from step 1 via "Settings>Content>Import Database" +4. Import the data from step 1 via Settings > Content > Import Database ## Contribution Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome. From eea1a80de6ab8afa72ab778046cd1b32c5003f04 Mon Sep 17 00:00:00 2001 From: Vladislav Date: Tue, 3 Nov 2020 08:24:00 +0000 Subject: [PATCH 092/231] Translated using Weblate (Russian) Currently translated at 99.3% (599 of 603 strings) --- app/src/main/res/values-ru/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e64efaaa2..54019e3d1 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -648,4 +648,5 @@ Файлы cookie reCAPTCHA были удалены Очистить файлы cookie reCAPTCHA Показывать контент, который, возможно, не подходит для детей, потому что он имеет возрастное ограничение (например, 18+). + YouTube предоставляет \"Ограниченный режим\", который скрывает потенциально взрослый контент. \ No newline at end of file From ea3770260a22831e011cf44f54749bc057cbe504 Mon Sep 17 00:00:00 2001 From: aqwer-T Date: Tue, 3 Nov 2020 13:20:42 +0000 Subject: [PATCH 093/231] Translated using Weblate (Lithuanian) Currently translated at 52.2% (315 of 603 strings) --- app/src/main/res/values-lt/strings.xml | 53 +++++++++++++------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 5e50ae49b..a5ca3c669 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -1,6 +1,7 @@ - Palieskite „Ieškoti“, kad pradėtumėte + Palieskite „Ieškoti“, kad pradėtumėte +\n %1$s peržiūrų Publikuota %1$s Nerastas srauto grotuvas. Įdiegti VLC\? @@ -17,17 +18,17 @@ Pasirinkti naršyklę sukimas Naudoti išorinį vaizdo grotuvą - Kai kurios raiškos nepalaiko audio, kai ši parinktis įgalinta + Kai kurios raiškos nepalaiko garso, kai ši parinktis įgalinta Naudoti išorinį audio grotuvą iššokančio lango rėžimas Fonas Išokantis langelis Vaizdo įrašų parsisiuntimo aplankas Vieta parsisiųstų vaizdo įrašų laikymui - Įvesti parsiuntimo kelią vaizdo įrašams - Garso įrašų parsiuntimo kelias + Pasirinkite parsiuntimo aplankalą vaizdo įrašams + Garso įrašų parsiuntimo aplankalas Vieta laikyti parsisiųstus garso įrašus - Įveskite atsisiuntimų kelią garso įrašams + Pasirinkite atsisiuntimų aplankalą garso įrašams Automatinis paleidimas Groti vaizdo įrašą, kai NewPipe iškvečiama per kitą programėlę Numatytoji raiška @@ -35,7 +36,7 @@ Rodyti aukštesnes raiškas Tik kai kurie įrenginiai palaiko 2K/4K vaizdo įrašų peržiūrą Groti su Kodi - Kore programėlė nerasta. Įdiegti Kore? + Įdiegti nereastą Kore programėlę\? Rodyti \"Peržiūra su Kodi\" pasirinkimą Rodyti pasirinkimą peržiūrėti vaizdo įrašus per Kodi mediacentrą Garso įrašas @@ -50,7 +51,7 @@ Paieškos nuspėjimai Rodyti nuspėjimus, kai ieškoma Atsisiųsti - Rodyti kitus panašius vaizdo įrašus + Rodyti „kitus” ir „panašius” vaizdo įrašus URL nepalaikoma Numatytoji tūrinio kalba Vaizdas ir garsas @@ -60,7 +61,7 @@ Groja fone Grojama iššokančiojo lango rėžime Turinys - Rodyti amžiaus cenzo apribotą turinį + Rodyti amžiumi apribotą turinį Gyvai Atsisiuntimai Atsisiuntimai @@ -83,14 +84,14 @@ Negalima visiškai apdoroti tinklapio Turinys neprieinamas Negalima sutvarkyti atsisiuntimų meniu - Tai gyvas srautas. Tokie kol kas nepalaikomi. + Tiesioginės translecijos yra nepalaikomos Negalima gauti jokio srauto Negalima įkelti jokio paveikslėlio Programėlė/ vartotojo sąsaja nulūžo Atsiprašome, taip neturėjo įvykti. - Raportuoti apie klaidą el. paštu + Pranešti apie šią klaidą el. paštu Atsiprašome, ištiko keletas klaidų. - ATASKAITA + Ataskaita Informacija: Kas nutiko: Kas:\\nUžklausa:\\nTurinio Kalba:\\nTurinio Šalis:\\nProgramėlės Kalba:\\nPaslauga:\\nGMT Laikas:\\nPaketas:\\nVersija:\\nOS versija: @@ -140,7 +141,7 @@ Šis leidimas reikalingas \natidarymui iššokančio lango rėžime reCAPTCHA iššūkis - reCAPTCHA prašomas iššūkis + prašomas reCAPTCHA iššūkis Prenumeruoti Užprenumeruota Kanalas Nebeprenumeruojamas @@ -153,13 +154,13 @@ Saugoti paieškos užklausas vietinėje atmintyje Žiūrėjimo istorija Sekite peržiūrėtus vaizdo įrašus - Atkurti kai dėmesio centre + Paleisti Tęsti grojimą po pertraukčių (pvz. skambučių) - Rodyti laikyti, kad įtraukti patarimą + Rodyti “laikyti kad pakeisti„ patarimą Rodyti patarimą, kai foninis arba langelio rėžimo mygtukas paspaudžiamas vaizdo įrašų detalių puslapyje Grotuvas Elgsena - Istorija + Istorija ir laikmena Foninio grotuvo eilėje Įtraukta į langelio rėžimo grojimo eilę Apriboto amžiaus vaizdo įrašas. Kad leisti tokius vaizdo įrašus eikite į nustatymus. @@ -174,7 +175,7 @@ Atstatoma po grotuvo klaidos Nėra rezultatų Čia nieko nėra išskyrus svirplius - Saugyklos prieiga uždrausta + Pirma duokite prieiga prie saugyklos Tūkst. Mln. Mlrd. @@ -241,12 +242,12 @@ Garso nustatymai Laikykite kad įtraukti į eilę Pradėti groti čia - Pradėti groti čia foniniame rėžime - Pradėti groti čia langelio grotuvo rėžime + Pradėti groti foniniame rėžime + Pradėti groti langelio grotuve Nerastas srauto grotuvas (galite įdiegti VLC kad grotumėte). Parsisiųsti srauto failą Rodyti informaciją - Adresynas + Pažymėti grojaraščiai Pridėti į Numatyta tūrinio šalis Paslauga @@ -289,18 +290,18 @@ Visada klausti Gauname informaciją… Įkeliamas pasirinktas turinys - Sukurti naują grojaraštį - Ištrinti grojaraštį - Pervadinti grajaraštį + Naujas grojaraštį + Ištrinti + Pervadinti Pavadinimas Pridėti į grojaraštį Nustatyti kaip grojaraščio paveikslėlį Pridėti grojaraštį į žymes Pašalinti žymes - Ar norite ištrinti šį grojaraštį? - Grojaraštis sėkmingai sukurtas + Ištrinti šį grojaraštį\? + Grojaraštis sukurtas Pridėta į grojaraštį - Grojaraščio paveikslėlis pakeistas + Grojaraščio paveikslėlis pakeistas. Nepavyko ištrinti grojaraščio Nėra antraštės Pritaikyti @@ -310,7 +311,7 @@ Atminties nutekėjimo stebėjimas gali padaryti programėlę nestabilią Pranešti apie Out-of-Lifecycle klaidas Priverstinai pranešti apie \"undeliverable Rx exceptions occurring outside of fragment or activity lifecycle after dispose\" - Išjungti, kad paslėptų komentarai + Išjungti, kad paslėpti komentarus Rodyti komentarus Pasirinkti skirtuką Naujas skirtukas From 70123d19feac4cfbfbeebb6983254e550e488a33 Mon Sep 17 00:00:00 2001 From: Stjepan Date: Tue, 3 Nov 2020 09:08:31 +0000 Subject: [PATCH 094/231] Translated using Weblate (Croatian) Currently translated at 98.5% (594 of 603 strings) --- app/src/main/res/values-hr/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index fde6a14c8..4e0d74b5d 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -204,9 +204,9 @@ Nema videozapisa - %s video - %s videa - %s videa + %s videozapis + %s videozapisa + %s videozapisa Stavka je izbrisana Stavljeno u popis izvođenja playera u pozadini @@ -585,7 +585,7 @@ Obrada feeda … Zadnje aktualiziranje feeda: %s Grupe kanala - Da, i djelomično pogledane videa + Da, i djelomično pogledane videozapise Odaberi primjerak Program će te pitati kamo spremati preuzimanja. \nOdaberi SAF, ako želiš preuzeti na vanjsku SD karticu @@ -594,7 +594,7 @@ Napredak je izgubljen, jer je datoteka izbrisana NewPipe se zatvorio tijekom rada s datotekom Stranica playliste - Videa koji su gledani prije i nakon dodavanja u playlistu će se ukloniti. + Videzapisi koji su gledani prije i nakon dodavanja u playlistu će se ukloniti. \nStvarno ih želiš ukloniti\? Ovo je nepovratna radnja! Još nema zabilježenih playlista Odaberi playlistu From 2d848020fc6712e41ae4a2bf603ad28f8511f0ed Mon Sep 17 00:00:00 2001 From: Oymate Date: Tue, 3 Nov 2020 17:02:40 +0000 Subject: [PATCH 095/231] Translated using Weblate (Bengali) Currently translated at 64.0% (386 of 603 strings) --- app/src/main/res/values-bn/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 506d795c3..9472703b1 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -359,4 +359,11 @@ চতুর্থ অ্যাকশন বাটন তৃতীয় অ্যাকশন বাটন দ্বিতীয় অ্যাকশান বাটন + একটি সংশ্লিষ্ট স্ট্রিম যোগ করে প্লেব্যাক সারি শেষ করা অব্যাহত রাখো (পুনরাবৃত্তি ছাড়া) + সক্রিয় প্লেয়ার সারি প্রতিস্থাপন করা হবে + এক প্লেয়ার থেকে অন্য প্লেয়ারে পরিবর্তন করলে তোমার সারি প্রতিস্থাপিত হতে পারে + কিউ মোছার আগে নিশ্চিত করো + কমপ্যাক্ট বিজ্ঞপ্তিতে প্রদর্শন করতে তুমি সর্বাধিক তিনটি ক্রিয়া নির্বাচন করতে পারো! + নিচের প্রতিটি প্রজ্ঞাপন ক্রিয়া সম্পাদনা করো। ডান দিকের চেকবাক্স ব্যবহার করে কম্প্যাক্ট নোটিফিকেশনে দেখানোর জন্য তিনটি পর্যন্ত নির্বাচন করো। + ১৬:৯ থেকে ১:১অনুপাতে প্রদর্শিত ভিডিও থাম্বনেইল পরিবর্তন করো (বিকৃতি প্রবর্তন করতে পারে) \ No newline at end of file From 3a00dc5b5f13c7a03dedf12443cff803bc0efc1f Mon Sep 17 00:00:00 2001 From: aqwer-T Date: Tue, 3 Nov 2020 12:42:59 +0000 Subject: [PATCH 096/231] Translated using Weblate (Lithuanian) Currently translated at 0.0% (0 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/lt/ --- fastlane/metadata/android/lt/full_description.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/lt/full_description.txt diff --git a/fastlane/metadata/android/lt/full_description.txt b/fastlane/metadata/android/lt/full_description.txt new file mode 100644 index 000000000..e729e7221 --- /dev/null +++ b/fastlane/metadata/android/lt/full_description.txt @@ -0,0 +1 @@ +NewPipe nenaudoja jokių Google paslaugų ar Youtube API. Jisai tiktai nuskanuoja svetaine dėl reikemos informacijos. Dėlto NewPipe nereikia įdiegtų Google paslaugų. Ir jums nereikia Youtube paskyros norint naudoti NewPipe taip pat yra FLOSS. From e5db3ed9b7206d693f40aa8401a1bb7f67c31c9e Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Mon, 2 Nov 2020 17:43:41 +0000 Subject: [PATCH 097/231] Translated using Weblate (Santali) Currently translated at 7.6% (46 of 603 strings) --- app/src/main/res/values-sat/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 2743ffa14..7d2f16bfc 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -21,4 +21,5 @@ ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ (ᱟᱢ VLC ᱯᱞᱮᱭᱟᱹᱨ ᱵᱚᱦᱟᱞ ᱠᱟᱛᱮ ᱚᱱᱟ ᱨᱮ ᱯᱞᱮ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ) ᱾ ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ ᱾ VLC ᱵᱚᱦᱟᱞ ᱟᱢ ᱥᱮ\? %1$s ᱨᱮ ᱩᱪᱷᱟᱹᱱ ᱮᱱᱟ + ᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ \ No newline at end of file From ef5084036cf2a21dfdfdb2f18b655900292ba51c Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Mon, 12 Oct 2020 06:25:35 +0530 Subject: [PATCH 098/231] Use RxJava instead of AsyncTask to check for new app versions. --- app/src/main/java/org/schabi/newpipe/App.java | 14 +- ...onTask.java => CheckForNewAppVersion.java} | 201 +++++++++--------- .../settings/MainSettingsFragment.java | 5 +- 3 files changed, 120 insertions(+), 100 deletions(-) rename app/src/main/java/org/schabi/newpipe/{CheckForNewAppVersionTask.java => CheckForNewAppVersion.java} (58%) diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index a94acda8e..5fdc1058a 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -36,6 +36,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.CompositeException; import io.reactivex.exceptions.MissingBackpressureException; import io.reactivex.exceptions.OnErrorNotImplementedException; @@ -65,6 +66,9 @@ public class App extends MultiDexApplication { protected static final String TAG = App.class.toString(); private static App app; + private Disposable disposable = null; + + @NonNull public static App getApp() { return app; } @@ -100,7 +104,15 @@ public class App extends MultiDexApplication { configureRxJavaErrorHandler(); // Check for new version - new CheckForNewAppVersionTask().execute(); + disposable = CheckForNewAppVersion.checkNewVersion(this); + } + + @Override + public void onTerminate() { + if (disposable != null) { + disposable.dispose(); + } + super.onTerminate(); } protected Downloader getDownloader() { diff --git a/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java b/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersion.java similarity index 58% rename from app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java rename to app/src/main/java/org/schabi/newpipe/CheckForNewAppVersion.java index 10a6a73d7..a193149e2 100644 --- a/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersionTask.java +++ b/app/src/main/java/org/schabi/newpipe/CheckForNewAppVersion.java @@ -9,9 +9,9 @@ import android.content.pm.PackageManager; import android.content.pm.Signature; import android.net.ConnectivityManager; import android.net.Uri; -import android.os.AsyncTask; import android.util.Log; +import androidx.annotation.NonNull; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; import androidx.core.content.ContextCompat; @@ -35,16 +35,18 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -/** - * AsyncTask to check if there is a newer version of the NewPipe github apk available or not. - * If there is a newer version we show a notification, informing the user. On tapping - * the notification, the user will be directed to the download link. - */ -public class CheckForNewAppVersionTask extends AsyncTask { - private static final boolean DEBUG = MainActivity.DEBUG; - private static final String TAG = CheckForNewAppVersionTask.class.getSimpleName(); +import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.disposables.Disposables; +import io.reactivex.schedulers.Schedulers; + +public final class CheckForNewAppVersion { + private CheckForNewAppVersion() { } + + private static final boolean DEBUG = MainActivity.DEBUG; + private static final String TAG = CheckForNewAppVersion.class.getSimpleName(); - private static final Application APP = App.getApp(); private static final String GITHUB_APK_SHA1 = "B0:2E:90:7C:1C:D6:FC:57:C3:35:F0:88:D0:8F:50:5F:94:E4:D2:15"; private static final String NEWPIPE_API_URL = "https://newpipe.schabi.org/api/data.json"; @@ -52,18 +54,19 @@ public class CheckForNewAppVersionTask extends AsyncTask { /** * Method to get the apk's SHA1 key. See https://stackoverflow.com/questions/9293019/#22506133. * + * @param application The application * @return String with the apk's SHA1 fingeprint in hexadecimal */ - private static String getCertificateSHA1Fingerprint() { - final PackageManager pm = APP.getPackageManager(); - final String packageName = APP.getPackageName(); + private static String getCertificateSHA1Fingerprint(@NonNull final Application application) { + final PackageManager pm = application.getPackageManager(); + final String packageName = application.getPackageName(); final int flags = PackageManager.GET_SIGNATURES; PackageInfo packageInfo = null; try { packageInfo = pm.getPackageInfo(packageName, flags); } catch (final PackageManager.NameNotFoundException e) { - ErrorActivity.reportError(APP, e, null, null, + ErrorActivity.reportError(application, e, null, null, ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none", "Could not find package info", R.string.app_ui_crash)); } @@ -78,7 +81,7 @@ public class CheckForNewAppVersionTask extends AsyncTask { final CertificateFactory cf = CertificateFactory.getInstance("X509"); c = (X509Certificate) cf.generateCertificate(input); } catch (final CertificateException e) { - ErrorActivity.reportError(APP, e, null, null, + ErrorActivity.reportError(application, e, null, null, ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none", "Certificate error", R.string.app_ui_crash)); } @@ -90,7 +93,7 @@ public class CheckForNewAppVersionTask extends AsyncTask { final byte[] publicKey = md.digest(c.getEncoded()); hexString = byte2HexFormatted(publicKey); } catch (NoSuchAlgorithmException | CertificateEncodingException e) { - ErrorActivity.reportError(APP, e, null, null, + ErrorActivity.reportError(application, e, null, null, ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none", "Could not retrieve SHA1 key", R.string.app_ui_crash)); } @@ -118,104 +121,108 @@ public class CheckForNewAppVersionTask extends AsyncTask { return str.toString(); } - public static boolean isGithubApk() { - return getCertificateSHA1Fingerprint().equals(GITHUB_APK_SHA1); + /** + * Method to compare the current and latest available app version. + * If a newer version is available, we show the update notification. + * + * @param application The application + * @param versionName Name of new version + * @param apkLocationUrl Url with the new apk + * @param versionCode Code of new version + */ + private static void compareAppVersionAndShowNotification(@NonNull final Application application, + final String versionName, + final String apkLocationUrl, + final int versionCode) { + final int notificationId = 2000; + + if (BuildConfig.VERSION_CODE < versionCode) { + // A pending intent to open the apk location url in the browser. + final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(apkLocationUrl)); + final PendingIntent pendingIntent + = PendingIntent.getActivity(application, 0, intent, 0); + + final String channelId = application + .getString(R.string.app_update_notification_channel_id); + final NotificationCompat.Builder notificationBuilder + = new NotificationCompat.Builder(application, channelId) + .setSmallIcon(R.drawable.ic_newpipe_update) + .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) + .setContentIntent(pendingIntent) + .setAutoCancel(true) + .setContentTitle(application + .getString(R.string.app_update_notification_content_title)) + .setContentText(application + .getString(R.string.app_update_notification_content_text) + + " " + versionName); + + final NotificationManagerCompat notificationManager + = NotificationManagerCompat.from(application); + notificationManager.notify(notificationId, notificationBuilder.build()); + } } - @Override - protected void onPreExecute() { - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(APP); + private static boolean isConnected(@NonNull final App app) { + final ConnectivityManager cm = ContextCompat.getSystemService(app, + ConnectivityManager.class); + return cm.getActiveNetworkInfo() != null + && cm.getActiveNetworkInfo().isConnected(); + } + + public static boolean isGithubApk(@NonNull final App app) { + return getCertificateSHA1Fingerprint(app).equals(GITHUB_APK_SHA1); + } + + @NonNull + public static Disposable checkNewVersion(@NonNull final App app) { + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(app); // Check if user has enabled/disabled update checking // and if the current apk is a github one or not. - if (!prefs.getBoolean(APP.getString(R.string.update_app_key), true) || !isGithubApk()) { - this.cancel(true); - } - } - - @Override - protected String doInBackground(final Void... voids) { - if (isCancelled() || !isConnected()) { - return null; + if (!prefs.getBoolean(app.getString(R.string.update_app_key), true) + || !isGithubApk(app)) { + return Disposables.empty(); } - // Make a network request to get latest NewPipe data. - try { - return DownloaderImpl.getInstance().get(NEWPIPE_API_URL).responseBody(); - } catch (IOException | ReCaptchaException e) { - // connectivity problems, do not alarm user and fail silently - if (DEBUG) { - Log.w(TAG, Log.getStackTraceString(e)); + return Observable.fromCallable(() -> { + if (!isConnected(app)) { + return null; } - } - - return null; - } - - @Override - protected void onPostExecute(final String response) { - // Parse the json from the response. - if (response != null) { + // Make a network request to get latest NewPipe data. try { - final JsonObject githubStableObject = JsonParser.object().from(response) - .getObject("flavors").getObject("github").getObject("stable"); - - final String versionName = githubStableObject.getString("version"); - final int versionCode = githubStableObject.getInt("version_code"); - final String apkLocationUrl = githubStableObject.getString("apk"); - - compareAppVersionAndShowNotification(versionName, apkLocationUrl, versionCode); - - } catch (final JsonParserException e) { + return DownloaderImpl.getInstance().get(NEWPIPE_API_URL).responseBody(); + } catch (IOException | ReCaptchaException e) { // connectivity problems, do not alarm user and fail silently if (DEBUG) { Log.w(TAG, Log.getStackTraceString(e)); } } - } - } - /** - * Method to compare the current and latest available app version. - * If a newer version is available, we show the update notification. - * - * @param versionName Name of new version - * @param apkLocationUrl Url with the new apk - * @param versionCode Code of new version - */ - private void compareAppVersionAndShowNotification(final String versionName, - final String apkLocationUrl, - final int versionCode) { - final int notificationId = 2000; + return null; + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(response -> { + // Parse the json from the response. + if (response != null) { + try { + final JsonObject githubStableObject = JsonParser.object().from(response) + .getObject("flavors").getObject("github").getObject("stable"); - if (BuildConfig.VERSION_CODE < versionCode) { + final String versionName = githubStableObject.getString("version"); + final int versionCode = githubStableObject.getInt("version_code"); + final String apkLocationUrl = githubStableObject.getString("apk"); - // A pending intent to open the apk location url in the browser. - final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(apkLocationUrl)); - final PendingIntent pendingIntent - = PendingIntent.getActivity(APP, 0, intent, 0); - - final NotificationCompat.Builder notificationBuilder = new NotificationCompat - .Builder(APP, APP.getString(R.string.app_update_notification_channel_id)) - .setSmallIcon(R.drawable.ic_newpipe_update) - .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) - .setContentIntent(pendingIntent) - .setAutoCancel(true) - .setContentTitle(APP.getString(R.string.app_update_notification_content_title)) - .setContentText(APP.getString(R.string.app_update_notification_content_text) - + " " + versionName); - - final NotificationManagerCompat notificationManager - = NotificationManagerCompat.from(APP); - notificationManager.notify(notificationId, notificationBuilder.build()); - } - } - - private boolean isConnected() { - final ConnectivityManager cm = ContextCompat.getSystemService(APP, - ConnectivityManager.class); - return cm.getActiveNetworkInfo() != null - && cm.getActiveNetworkInfo().isConnected(); + compareAppVersionAndShowNotification(app, versionName, apkLocationUrl, + versionCode); + } catch (final JsonParserException e) { + // connectivity problems, do not alarm user and fail silently + if (DEBUG) { + Log.w(TAG, Log.getStackTraceString(e)); + } + } + } + }); } } diff --git a/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java index 6d6f0fa75..2f65af4d6 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java @@ -4,7 +4,8 @@ import android.os.Bundle; import androidx.preference.Preference; -import org.schabi.newpipe.CheckForNewAppVersionTask; +import org.schabi.newpipe.App; +import org.schabi.newpipe.CheckForNewAppVersion; import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.R; @@ -15,7 +16,7 @@ public class MainSettingsFragment extends BasePreferenceFragment { public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) { addPreferencesFromResource(R.xml.main_settings); - if (!CheckForNewAppVersionTask.isGithubApk()) { + if (!CheckForNewAppVersion.isGithubApk(App.getApp())) { final Preference update = findPreference(getString(R.string.update_pref_screen_key)); getPreferenceScreen().removePreference(update); From 8ec55ef39450ee214e3bd1eb21d3663aa72a0d57 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Mon, 12 Oct 2020 12:42:59 +0530 Subject: [PATCH 099/231] Use RxJava instead of AsyncTask in LicenseFragmentHelper. --- .../schabi/newpipe/about/LicenseFragment.java | 37 +++++----- .../newpipe/about/LicenseFragmentHelper.java | 74 ++++++++----------- 2 files changed, 49 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java index a6e64616d..bac789dbd 100644 --- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java +++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.about; -import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.LayoutInflater; @@ -21,15 +20,19 @@ import java.io.Serializable; import java.util.Arrays; import java.util.Comparator; +import io.reactivex.disposables.CompositeDisposable; + /** * Fragment containing the software licenses. */ public class LicenseFragment extends Fragment { private static final String ARG_COMPONENTS = "components"; + private static final String LICENSE_KEY = "ACTIVE_LICENSE"; + private SoftwareComponent[] softwareComponents; private SoftwareComponent componentForContextMenu; private License activeLicense; - private static final String LICENSE_KEY = "ACTIVE_LICENSE"; + private final CompositeDisposable compositeDisposable = new CompositeDisposable(); public static LicenseFragment newInstance(final SoftwareComponent[] softwareComponents) { if (softwareComponents == null) { @@ -42,16 +45,6 @@ public class LicenseFragment extends Fragment { return fragment; } - /** - * Shows a popup containing the license. - * - * @param context the context to use - * @param license the license to show - */ - private static void showLicense(final Activity context, final License license) { - new LicenseFragmentHelper(context).execute(license); - } - @Override public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -68,6 +61,12 @@ public class LicenseFragment extends Fragment { Arrays.sort(softwareComponents, Comparator.comparing(SoftwareComponent::getName)); } + @Override + public void onDestroy() { + compositeDisposable.dispose(); + super.onDestroy(); + } + @Nullable @Override public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container, @@ -77,8 +76,9 @@ public class LicenseFragment extends Fragment { final View licenseLink = rootView.findViewById(R.id.app_read_license); licenseLink.setOnClickListener(v -> { - activeLicense = StandardLicenses.GPL3; - showLicense(getActivity(), StandardLicenses.GPL3); + activeLicense = StandardLicenses.GPL3; + compositeDisposable.add(LicenseFragmentHelper.showLicense(getActivity(), + StandardLicenses.GPL3)); }); for (final SoftwareComponent component : softwareComponents) { @@ -95,13 +95,15 @@ public class LicenseFragment extends Fragment { componentView.setTag(component); componentView.setOnClickListener(v -> { activeLicense = component.getLicense(); - showLicense(getActivity(), component.getLicense()); + compositeDisposable.add(LicenseFragmentHelper.showLicense(getActivity(), + component.getLicense())); }); softwareComponentsView.addView(componentView); registerForContextMenu(componentView); } if (activeLicense != null) { - showLicense(getActivity(), activeLicense); + compositeDisposable.add(LicenseFragmentHelper.showLicense(getActivity(), + activeLicense)); } return rootView; } @@ -129,7 +131,8 @@ public class LicenseFragment extends Fragment { ShareUtils.openUrlInBrowser(getActivity(), component.getLink()); return true; case R.id.action_show_license: - showLicense(getActivity(), component.getLicense()); + compositeDisposable.add(LicenseFragmentHelper.showLicense(getActivity(), + component.getLicense())); } return false; } diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java index 01a01bc88..8a2ab6fa9 100644 --- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java +++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.java @@ -1,8 +1,6 @@ package org.schabi.newpipe.about; -import android.app.Activity; import android.content.Context; -import android.os.AsyncTask; import android.util.Base64; import android.webkit.WebView; @@ -16,18 +14,18 @@ import org.schabi.newpipe.util.ThemeHelper; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.lang.ref.WeakReference; import java.nio.charset.StandardCharsets; +import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.disposables.Disposables; +import io.reactivex.schedulers.Schedulers; + import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage; -public class LicenseFragmentHelper extends AsyncTask { - private final WeakReference weakReference; - private License license; - - public LicenseFragmentHelper(@Nullable final Activity activity) { - weakReference = new WeakReference<>(activity); - } +public final class LicenseFragmentHelper { + private LicenseFragmentHelper() { } /** * @param context the context to use @@ -62,7 +60,7 @@ public class LicenseFragmentHelper extends AsyncTask { * @param context * @return String which is a CSS stylesheet according to the context's theme */ - private static String getLicenseStylesheet(final Context context) { + private static String getLicenseStylesheet(@NonNull final Context context) { final boolean isLightTheme = ThemeHelper.isLightThemeSelected(context); return "body{padding:12px 15px;margin:0;" + "background:#" + getHexRGBColor(context, isLightTheme @@ -84,45 +82,31 @@ public class LicenseFragmentHelper extends AsyncTask { * @param color the color number from R.color * @return a six characters long String with hexadecimal RGB values */ - private static String getHexRGBColor(final Context context, final int color) { + private static String getHexRGBColor(@NonNull final Context context, final int color) { return context.getResources().getString(color).substring(3); } - @Nullable - private Activity getActivity() { - final Activity activity = weakReference.get(); - - if (activity != null && activity.isFinishing()) { - return null; - } else { - return activity; - } - } - - @Override - protected Integer doInBackground(final Object... objects) { - license = (License) objects[0]; - return 1; - } - - @Override - protected void onPostExecute(final Integer result) { - final Activity activity = getActivity(); - if (activity == null) { - return; + static Disposable showLicense(@Nullable final Context context, @NonNull final License license) { + if (context == null) { + return Disposables.empty(); } - final String webViewData = Base64.encodeToString(getFormattedLicense(activity, license) - .getBytes(StandardCharsets.UTF_8), Base64.NO_PADDING); - final WebView webView = new WebView(activity); - webView.loadData(webViewData, "text/html; charset=UTF-8", "base64"); + return Observable.fromCallable(() -> getFormattedLicense(context, license)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(formattedLicense -> { + final String webViewData = Base64.encodeToString(formattedLicense + .getBytes(StandardCharsets.UTF_8), Base64.NO_PADDING); + final WebView webView = new WebView(context); + webView.loadData(webViewData, "text/html; charset=UTF-8", "base64"); - final AlertDialog.Builder alert = new AlertDialog.Builder(activity); - alert.setTitle(license.getName()); - alert.setView(webView); - assureCorrectAppLanguage(activity); - alert.setNegativeButton(activity.getString(R.string.finish), - (dialog, which) -> dialog.dismiss()); - alert.show(); + final AlertDialog.Builder alert = new AlertDialog.Builder(context); + alert.setTitle(license.getName()); + alert.setView(webView); + assureCorrectAppLanguage(context); + alert.setNegativeButton(context.getString(R.string.finish), + (dialog, which) -> dialog.dismiss()); + alert.show(); + }); } } From 3b69e0dd2551a1760fd0d6cfb9cdf89e857f23c4 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Mon, 12 Oct 2020 12:56:16 +0530 Subject: [PATCH 100/231] Use RxJava instead of AsyncTask in MissionAdapter. --- .../giga/ui/adapter/MissionAdapter.java | 90 +++++++------------ 1 file changed, 31 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java index eb0fec596..80c238d91 100644 --- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java +++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java @@ -1,13 +1,11 @@ package us.shandian.giga.ui.adapter; import android.annotation.SuppressLint; -import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.net.Uri; -import android.os.AsyncTask; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -26,7 +24,6 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; import androidx.core.content.FileProvider; @@ -46,12 +43,15 @@ import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.util.NavigationHelper; import java.io.File; -import java.lang.ref.WeakReference; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; +import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.schedulers.Schedulers; import us.shandian.giga.get.DownloadMission; import us.shandian.giga.get.FinishedMission; import us.shandian.giga.get.Mission; @@ -116,6 +116,8 @@ public class MissionAdapter extends Adapter implements Handler.Callb private final Runnable rUpdater = this::updater; private final Runnable rDelete = this::deleteFinishedDownloads; + private final CompositeDisposable compositeDisposable = new CompositeDisposable(); + public MissionAdapter(Context context, @NonNull DownloadManager downloadManager, View emptyMessage, View root) { mContext = context; mDownloadManager = downloadManager; @@ -675,7 +677,30 @@ public class MissionAdapter extends Adapter implements Handler.Callb return true; case R.id.md5: case R.id.sha1: - new ChecksumTask(mContext).execute(h.item.mission.storage, ALGORITHMS.get(id)); + ProgressDialog progressDialog = null; + if (mContext != null) { + // Create dialog + progressDialog = new ProgressDialog(mContext); + progressDialog.setCancelable(false); + progressDialog.setMessage(mContext.getString(R.string.msg_wait)); + progressDialog.show(); + } + final ProgressDialog finalProgressDialog = progressDialog; + final StoredFileHelper storage = h.item.mission.storage; + compositeDisposable.add( + Observable.fromCallable(() -> Utility.checksum(storage, ALGORITHMS.get(id))) + .subscribeOn(Schedulers.computation()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(result -> { + if (finalProgressDialog != null) { + Utility.copyToClipboard(finalProgressDialog.getContext(), + result); + if (mContext != null) { + finalProgressDialog.dismiss(); + } + } + }) + ); return true; case R.id.source: /*Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(h.item.mission.source)); @@ -758,8 +783,8 @@ public class MissionAdapter extends Adapter implements Handler.Callb } } - public void onDestroy() { + compositeDisposable.dispose(); mDeleter.dispose(); } @@ -960,60 +985,7 @@ public class MissionAdapter extends Adapter implements Handler.Callb } } - - static class ChecksumTask extends AsyncTask { - ProgressDialog progressDialog; - WeakReference weakReference; - - ChecksumTask(@NonNull Context context) { - weakReference = new WeakReference<>((Activity) context); - } - - @Override - protected void onPreExecute() { - super.onPreExecute(); - - Activity activity = getActivity(); - if (activity != null) { - // Create dialog - progressDialog = new ProgressDialog(activity); - progressDialog.setCancelable(false); - progressDialog.setMessage(activity.getString(R.string.msg_wait)); - progressDialog.show(); - } - } - - @Override - protected String doInBackground(Object... params) { - return Utility.checksum((StoredFileHelper) params[0], (String) params[1]); - } - - @Override - protected void onPostExecute(String result) { - super.onPostExecute(result); - - if (progressDialog != null) { - Utility.copyToClipboard(progressDialog.getContext(), result); - if (getActivity() != null) { - progressDialog.dismiss(); - } - } - } - - @Nullable - private Activity getActivity() { - Activity activity = weakReference.get(); - - if (activity != null && activity.isFinishing()) { - return null; - } else { - return activity; - } - } - } - public interface RecoverHelper { void tryRecover(DownloadMission mission); } - } From c745b845c50437aa7728743102b69ae7a5ea7178 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Sun, 18 Oct 2020 11:46:55 +0530 Subject: [PATCH 101/231] Switch to the Java 8 Date/Time API. --- .../schabi/newpipe/database/Converters.java | 22 ++++++++------ .../newpipe/database/feed/dao/FeedDAO.kt | 14 ++++----- .../feed/model/FeedLastUpdatedEntity.kt | 5 ++-- .../history/model/SearchHistoryEntry.java | 11 +++---- .../history/model/StreamHistoryEntity.java | 13 +++++---- .../history/model/StreamHistoryEntry.kt | 6 ++-- .../database/stream/StreamStatisticsEntry.kt | 13 ++++----- .../newpipe/database/stream/dao/StreamDAO.kt | 4 +-- .../database/stream/model/StreamEntity.kt | 13 ++++----- .../fragments/detail/VideoDetailFragment.java | 2 +- .../org/schabi/newpipe/ktx/OffsetDateTime.kt | 10 +++++++ .../newpipe/local/LocalItemListAdapter.java | 11 +++---- .../newpipe/local/feed/FeedDatabaseManager.kt | 29 +++++++++---------- .../newpipe/local/feed/FeedViewModel.kt | 11 ++++--- .../local/feed/service/FeedLoadService.kt | 7 ++--- .../local/history/HistoryRecordManager.java | 7 +++-- .../newpipe/local/holder/LocalItemHolder.java | 4 +-- .../local/holder/LocalPlaylistItemHolder.java | 6 ++-- .../holder/LocalPlaylistStreamItemHolder.java | 4 +-- .../LocalStatisticStreamItemHolder.java | 10 +++---- .../local/holder/PlaylistItemHolder.java | 4 +-- .../holder/RemotePlaylistItemHolder.java | 6 ++-- .../org/schabi/newpipe/util/Localization.java | 17 +++++++---- checkstyle-suppressions.xml | 2 +- 24 files changed, 122 insertions(+), 109 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/ktx/OffsetDateTime.kt diff --git a/app/src/main/java/org/schabi/newpipe/database/Converters.java b/app/src/main/java/org/schabi/newpipe/database/Converters.java index ca2d8d875..c46b5f427 100644 --- a/app/src/main/java/org/schabi/newpipe/database/Converters.java +++ b/app/src/main/java/org/schabi/newpipe/database/Converters.java @@ -5,31 +5,35 @@ import androidx.room.TypeConverter; import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.local.subscription.FeedGroupIcon; -import java.util.Date; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; public final class Converters { private Converters() { } /** - * Convert a long value to a date. + * Convert a long value to a {@link OffsetDateTime}. * * @param value the long value - * @return the date + * @return the {@code OffsetDateTime} */ @TypeConverter - public static Date fromTimestamp(final Long value) { - return value == null ? null : new Date(value); + public static OffsetDateTime offsetDateTimeFromTimestamp(final Long value) { + return value == null ? null : OffsetDateTime.ofInstant(Instant.ofEpochMilli(value), + ZoneOffset.UTC); } /** - * Convert a date to a long value. + * Convert a {@link OffsetDateTime} to a long value. * - * @param date the date + * @param offsetDateTime the {@code OffsetDateTime} * @return the long value */ @TypeConverter - public static Long dateToTimestamp(final Date date) { - return date == null ? null : date.getTime(); + public static Long offsetDateTimeToTimestamp(final OffsetDateTime offsetDateTime) { + return offsetDateTime == null ? null : offsetDateTime.withOffsetSameInstant(ZoneOffset.UTC) + .toInstant().toEpochMilli(); } @TypeConverter diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt b/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt index 74f5b369e..d8b4f72cc 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt @@ -7,7 +7,7 @@ import androidx.room.Query import androidx.room.Transaction import androidx.room.Update import io.reactivex.Flowable -import java.util.Date +import java.time.OffsetDateTime import org.schabi.newpipe.database.feed.model.FeedEntity import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity import org.schabi.newpipe.database.stream.model.StreamEntity @@ -58,10 +58,10 @@ abstract class FeedDAO { INNER JOIN feed f ON s.uid = f.stream_id - WHERE s.upload_date < :date + WHERE s.upload_date < :offsetDateTime ) """) - abstract fun unlinkStreamsOlderThan(date: Date) + abstract fun unlinkStreamsOlderThan(offsetDateTime: OffsetDateTime) @Query(""" DELETE FROM feed @@ -106,10 +106,10 @@ abstract class FeedDAO { INNER JOIN feed_group_subscription_join fgs ON fgs.subscription_id = lu.subscription_id AND fgs.group_id = :groupId """) - abstract fun oldestSubscriptionUpdate(groupId: Long): Flowable> + abstract fun oldestSubscriptionUpdate(groupId: Long): Flowable> @Query("SELECT MIN(last_updated) FROM feed_last_updated") - abstract fun oldestSubscriptionUpdateFromAll(): Flowable> + abstract fun oldestSubscriptionUpdateFromAll(): Flowable> @Query("SELECT COUNT(*) FROM feed_last_updated WHERE last_updated IS NULL") abstract fun notLoadedCount(): Flowable @@ -135,7 +135,7 @@ abstract class FeedDAO { WHERE lu.last_updated IS NULL OR lu.last_updated < :outdatedThreshold """) - abstract fun getAllOutdated(outdatedThreshold: Date): Flowable> + abstract fun getAllOutdated(outdatedThreshold: OffsetDateTime): Flowable> @Query(""" SELECT s.* FROM subscriptions s @@ -148,5 +148,5 @@ abstract class FeedDAO { WHERE lu.last_updated IS NULL OR lu.last_updated < :outdatedThreshold """) - abstract fun getAllOutdatedForGroup(groupId: Long, outdatedThreshold: Date): Flowable> + abstract fun getAllOutdatedForGroup(groupId: Long, outdatedThreshold: OffsetDateTime): Flowable> } diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt index 78b2550a5..069d1138f 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt @@ -4,7 +4,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.ForeignKey import androidx.room.PrimaryKey -import java.util.Date +import java.time.OffsetDateTime import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity.Companion.FEED_LAST_UPDATED_TABLE import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity.Companion.SUBSCRIPTION_ID import org.schabi.newpipe.database.subscription.SubscriptionEntity @@ -25,9 +25,8 @@ data class FeedLastUpdatedEntity( var subscriptionId: Long, @ColumnInfo(name = LAST_UPDATED) - var lastUpdated: Date? = null + var lastUpdated: OffsetDateTime? = null ) { - companion object { const val FEED_LAST_UPDATED_TABLE = "feed_last_updated" diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java index 752835182..fd4588700 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java @@ -6,7 +6,7 @@ import androidx.room.Ignore; import androidx.room.Index; import androidx.room.PrimaryKey; -import java.util.Date; +import java.time.OffsetDateTime; import static org.schabi.newpipe.database.history.model.SearchHistoryEntry.SEARCH; @@ -24,7 +24,7 @@ public class SearchHistoryEntry { private long id; @ColumnInfo(name = CREATION_DATE) - private Date creationDate; + private OffsetDateTime creationDate; @ColumnInfo(name = SERVICE_ID) private int serviceId; @@ -32,7 +32,8 @@ public class SearchHistoryEntry { @ColumnInfo(name = SEARCH) private String search; - public SearchHistoryEntry(final Date creationDate, final int serviceId, final String search) { + public SearchHistoryEntry(final OffsetDateTime creationDate, final int serviceId, + final String search) { this.serviceId = serviceId; this.creationDate = creationDate; this.search = search; @@ -46,11 +47,11 @@ public class SearchHistoryEntry { this.id = id; } - public Date getCreationDate() { + public OffsetDateTime getCreationDate() { return creationDate; } - public void setCreationDate(final Date creationDate) { + public void setCreationDate(final OffsetDateTime creationDate) { this.creationDate = creationDate; } diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.java b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.java index bf1f7a9dd..ad1941adb 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.java +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.java @@ -9,7 +9,7 @@ import androidx.room.Index; import org.schabi.newpipe.database.stream.model.StreamEntity; -import java.util.Date; +import java.time.OffsetDateTime; import static androidx.room.ForeignKey.CASCADE; import static org.schabi.newpipe.database.history.model.StreamHistoryEntity.JOIN_STREAM_ID; @@ -37,12 +37,12 @@ public class StreamHistoryEntity { @NonNull @ColumnInfo(name = STREAM_ACCESS_DATE) - private Date accessDate; + private OffsetDateTime accessDate; @ColumnInfo(name = STREAM_REPEAT_COUNT) private long repeatCount; - public StreamHistoryEntity(final long streamUid, @NonNull final Date accessDate, + public StreamHistoryEntity(final long streamUid, @NonNull final OffsetDateTime accessDate, final long repeatCount) { this.streamUid = streamUid; this.accessDate = accessDate; @@ -50,7 +50,7 @@ public class StreamHistoryEntity { } @Ignore - public StreamHistoryEntity(final long streamUid, @NonNull final Date accessDate) { + public StreamHistoryEntity(final long streamUid, @NonNull final OffsetDateTime accessDate) { this(streamUid, accessDate, 1); } @@ -62,11 +62,12 @@ public class StreamHistoryEntity { this.streamUid = streamUid; } - public Date getAccessDate() { + @NonNull + public OffsetDateTime getAccessDate() { return accessDate; } - public void setAccessDate(@NonNull final Date accessDate) { + public void setAccessDate(@NonNull final OffsetDateTime accessDate) { this.accessDate = accessDate; } diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt index c653e6c6f..b928b00bf 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt @@ -2,7 +2,7 @@ package org.schabi.newpipe.database.history.model import androidx.room.ColumnInfo import androidx.room.Embedded -import java.util.Date +import java.time.OffsetDateTime import org.schabi.newpipe.database.stream.model.StreamEntity data class StreamHistoryEntry( @@ -13,7 +13,7 @@ data class StreamHistoryEntry( val streamId: Long, @ColumnInfo(name = StreamHistoryEntity.STREAM_ACCESS_DATE) - val accessDate: Date, + val accessDate: OffsetDateTime, @ColumnInfo(name = StreamHistoryEntity.STREAM_REPEAT_COUNT) val repeatCount: Long @@ -25,6 +25,6 @@ data class StreamHistoryEntry( fun hasEqualValues(other: StreamHistoryEntry): Boolean { return this.streamEntity.uid == other.streamEntity.uid && streamId == other.streamId && - accessDate.compareTo(other.accessDate) == 0 + accessDate.isEqual(other.accessDate) } } diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt b/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt index dde1f0392..1e4c672ab 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt @@ -2,26 +2,25 @@ package org.schabi.newpipe.database.stream import androidx.room.ColumnInfo import androidx.room.Embedded -import java.util.Date +import java.time.OffsetDateTime import org.schabi.newpipe.database.LocalItem import org.schabi.newpipe.database.history.model.StreamHistoryEntity import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.extractor.stream.StreamInfoItem class StreamStatisticsEntry( - @Embedded + @Embedded val streamEntity: StreamEntity, - @ColumnInfo(name = StreamHistoryEntity.JOIN_STREAM_ID) + @ColumnInfo(name = StreamHistoryEntity.JOIN_STREAM_ID) val streamId: Long, - @ColumnInfo(name = STREAM_LATEST_DATE) - val latestAccessDate: Date, + @ColumnInfo(name = STREAM_LATEST_DATE) + val latestAccessDate: OffsetDateTime, - @ColumnInfo(name = STREAM_WATCH_COUNT) + @ColumnInfo(name = STREAM_WATCH_COUNT) val watchCount: Long ) : LocalItem { - fun toStreamInfoItem(): StreamInfoItem { val item = StreamInfoItem(streamEntity.serviceId, streamEntity.url, streamEntity.title, streamEntity.streamType) item.duration = streamEntity.duration diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt b/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt index 921c08b46..89757c17d 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt @@ -7,7 +7,7 @@ import androidx.room.OnConflictStrategy import androidx.room.Query import androidx.room.Transaction import io.reactivex.Flowable -import java.util.Date +import java.time.OffsetDateTime import org.schabi.newpipe.database.BasicDAO import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_ID @@ -129,7 +129,7 @@ abstract class StreamDAO : BasicDAO { var textualUploadDate: String? = null, @ColumnInfo(name = StreamEntity.STREAM_UPLOAD_DATE) - var uploadDate: Date? = null, + var uploadDate: OffsetDateTime? = null, @ColumnInfo(name = StreamEntity.STREAM_IS_UPLOAD_DATE_APPROXIMATION) var isUploadDateApproximation: Boolean? = null, diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt b/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt index d13f5cc2d..defcb7acf 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt @@ -6,8 +6,7 @@ import androidx.room.Ignore import androidx.room.Index import androidx.room.PrimaryKey import java.io.Serializable -import java.util.Calendar -import java.util.Date +import java.time.OffsetDateTime import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_SERVICE_ID import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_TABLE import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_URL @@ -55,18 +54,17 @@ data class StreamEntity( var textualUploadDate: String? = null, @ColumnInfo(name = STREAM_UPLOAD_DATE) - var uploadDate: Date? = null, + var uploadDate: OffsetDateTime? = null, @ColumnInfo(name = STREAM_IS_UPLOAD_DATE_APPROXIMATION) var isUploadDateApproximation: Boolean? = null ) : Serializable { - @Ignore constructor(item: StreamInfoItem) : this( serviceId = item.serviceId, url = item.url, title = item.name, streamType = item.streamType, duration = item.duration, uploader = item.uploaderName, thumbnailUrl = item.thumbnailUrl, viewCount = item.viewCount, - textualUploadDate = item.textualUploadDate, uploadDate = item.uploadDate?.date()?.time, + textualUploadDate = item.textualUploadDate, uploadDate = item.uploadDate?.offsetDateTime(), isUploadDateApproximation = item.uploadDate?.isApproximation ) @@ -75,7 +73,7 @@ data class StreamEntity( serviceId = info.serviceId, url = info.url, title = info.name, streamType = info.streamType, duration = info.duration, uploader = info.uploaderName, thumbnailUrl = info.thumbnailUrl, viewCount = info.viewCount, - textualUploadDate = info.textualUploadDate, uploadDate = info.uploadDate?.date()?.time, + textualUploadDate = info.textualUploadDate, uploadDate = info.uploadDate?.offsetDateTime(), isUploadDateApproximation = info.uploadDate?.isApproximation ) @@ -95,8 +93,7 @@ data class StreamEntity( if (viewCount != null) item.viewCount = viewCount as Long item.textualUploadDate = textualUploadDate item.uploadDate = uploadDate?.let { - DateWrapper(Calendar.getInstance().apply { time = it }, isUploadDateApproximation - ?: false) + DateWrapper(it, isUploadDateApproximation ?: false) } return item diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index cd4a3a083..365804f75 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1527,7 +1527,7 @@ public class VideoDetailFragment if (info.getUploadDate() != null) { videoUploadDateView.setText(Localization - .localizeUploadDate(activity, info.getUploadDate().date().getTime())); + .localizeUploadDate(activity, info.getUploadDate().offsetDateTime())); videoUploadDateView.setVisibility(View.VISIBLE); } else { videoUploadDateView.setText(null); diff --git a/app/src/main/java/org/schabi/newpipe/ktx/OffsetDateTime.kt b/app/src/main/java/org/schabi/newpipe/ktx/OffsetDateTime.kt new file mode 100644 index 000000000..b3df83c25 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/ktx/OffsetDateTime.kt @@ -0,0 +1,10 @@ +package org.schabi.newpipe.ktx + +import java.time.OffsetDateTime +import java.time.ZoneId +import java.util.Calendar +import java.util.GregorianCalendar + +fun OffsetDateTime.toCalendar(zoneId: ZoneId = ZoneId.systemDefault()): Calendar { + return GregorianCalendar.from(if (zoneId != offset) atZoneSameInstant(zoneId) else toZonedDateTime()) +} diff --git a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java index 5b67f51da..da8902c08 100644 --- a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java @@ -26,7 +26,8 @@ import org.schabi.newpipe.util.FallbackViewHolder; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.OnClickGesture; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.util.ArrayList; import java.util.List; @@ -69,7 +70,7 @@ public class LocalItemListAdapter extends RecyclerView.Adapter localItems; private final HistoryRecordManager recordManager; - private final DateFormat dateFormat; + private final DateTimeFormatter dateTimeFormatter; private boolean showFooter = false; private boolean useGridVariant = false; @@ -80,8 +81,8 @@ public class LocalItemListAdapter extends RecyclerView.Adapter(); - dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, - Localization.getPreferredLocale(context)); + dateTimeFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT) + .withLocale(Localization.getPreferredLocale(context)); } public void setSelectedListener(final OnClickGesture listener) { @@ -303,7 +304,7 @@ public class LocalItemListAdapter extends RecyclerView.Adapter { return when (groupId) { @@ -64,7 +60,7 @@ class FeedDatabaseManager(context: Context) { } } - fun outdatedSubscriptionsForGroup(groupId: Long = FeedGroupEntity.GROUP_ALL_ID, outdatedThreshold: Date) = + fun outdatedSubscriptionsForGroup(groupId: Long = FeedGroupEntity.GROUP_ALL_ID, outdatedThreshold: OffsetDateTime) = feedTable.getAllOutdatedForGroup(groupId, outdatedThreshold) fun markAsOutdated(subscriptionId: Long) = feedTable @@ -73,7 +69,7 @@ class FeedDatabaseManager(context: Context) { fun upsertAll( subscriptionId: Long, items: List, - oldestAllowedDate: Date = FEED_OLDEST_ALLOWED_DATE.time + oldestAllowedDate: OffsetDateTime = FEED_OLDEST_ALLOWED_DATE ) { val itemsToInsert = ArrayList() loop@ for (streamItem in items) { @@ -81,7 +77,7 @@ class FeedDatabaseManager(context: Context) { itemsToInsert += when { uploadDate == null && streamItem.streamType == StreamType.LIVE_STREAM -> streamItem - uploadDate != null && uploadDate.date().time >= oldestAllowedDate -> streamItem + uploadDate != null && uploadDate.offsetDateTime() >= oldestAllowedDate -> streamItem else -> continue@loop } } @@ -96,10 +92,11 @@ class FeedDatabaseManager(context: Context) { feedTable.insertAll(feedEntities) } - feedTable.setLastUpdatedForSubscription(FeedLastUpdatedEntity(subscriptionId, Calendar.getInstance().time)) + feedTable.setLastUpdatedForSubscription(FeedLastUpdatedEntity(subscriptionId, + OffsetDateTime.now(ZoneOffset.UTC))) } - fun removeOrphansOrOlderStreams(oldestAllowedDate: Date = FEED_OLDEST_ALLOWED_DATE.time) { + fun removeOrphansOrOlderStreams(oldestAllowedDate: OffsetDateTime = FEED_OLDEST_ALLOWED_DATE) { feedTable.unlinkStreamsOlderThan(oldestAllowedDate) streamTable.deleteOrphans() } @@ -159,7 +156,7 @@ class FeedDatabaseManager(context: Context) { .observeOn(AndroidSchedulers.mainThread()) } - fun oldestSubscriptionUpdate(groupId: Long): Flowable> { + fun oldestSubscriptionUpdate(groupId: Long): Flowable> { return when (groupId) { FeedGroupEntity.GROUP_ALL_ID -> feedTable.oldestSubscriptionUpdateFromAll() else -> feedTable.oldestSubscriptionUpdate(groupId) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt index da2b5ffa4..13c3183da 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt @@ -9,11 +9,11 @@ import io.reactivex.Flowable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.functions.Function4 import io.reactivex.schedulers.Schedulers -import java.util.Calendar -import java.util.Date +import java.time.OffsetDateTime import java.util.concurrent.TimeUnit import org.schabi.newpipe.database.feed.model.FeedGroupEntity import org.schabi.newpipe.extractor.stream.StreamInfoItem +import org.schabi.newpipe.ktx.toCalendar import org.schabi.newpipe.local.feed.service.FeedEventManager import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.ErrorResultEvent import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.IdleEvent @@ -41,7 +41,7 @@ class FeedViewModel(applicationContext: Context, val groupId: Long = FeedGroupEn feedDatabaseManager.notLoadedCount(groupId), feedDatabaseManager.oldestSubscriptionUpdate(groupId), - Function4 { t1: FeedEventManager.Event, t2: List, t3: Long, t4: List -> + Function4 { t1: FeedEventManager.Event, t2: List, t3: Long, t4: List -> return@Function4 CombineResultHolder(t1, t2, t3, t4.firstOrNull()) } ) @@ -51,8 +51,7 @@ class FeedViewModel(applicationContext: Context, val groupId: Long = FeedGroupEn .subscribe { val (event, listFromDB, notLoadedCount, oldestUpdate) = it - val oldestUpdateCalendar = - oldestUpdate?.let { Calendar.getInstance().apply { time = it } } + val oldestUpdateCalendar = oldestUpdate?.toCalendar() mutableStateLiveData.postValue(when (event) { is IdleEvent -> FeedState.LoadedState(listFromDB, oldestUpdateCalendar, notLoadedCount) @@ -71,5 +70,5 @@ class FeedViewModel(applicationContext: Context, val groupId: Long = FeedGroupEn combineDisposable.dispose() } - private data class CombineResultHolder(val t1: FeedEventManager.Event, val t2: List, val t3: Long, val t4: Date?) + private data class CombineResultHolder(val t1: FeedEventManager.Event, val t2: List, val t3: Long, val t4: OffsetDateTime?) } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt index 556c215d9..8d3afbc7e 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt @@ -41,7 +41,8 @@ import io.reactivex.functions.Function import io.reactivex.processors.PublishProcessor import io.reactivex.schedulers.Schedulers import java.io.IOException -import java.util.Calendar +import java.time.OffsetDateTime +import java.time.ZoneOffset import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicInteger @@ -172,9 +173,7 @@ class FeedLoadService : Service() { private fun startLoading(groupId: Long = FeedGroupEntity.GROUP_ALL_ID, useFeedExtractor: Boolean, thresholdOutdatedSeconds: Int) { feedResultsHolder = ResultsHolder() - val outdatedThreshold = Calendar.getInstance().apply { - add(Calendar.SECOND, -thresholdOutdatedSeconds) - }.time + val outdatedThreshold = OffsetDateTime.now(ZoneOffset.UTC).minusSeconds(thresholdOutdatedSeconds.toLong()) val subscriptions = when (groupId) { FeedGroupEntity.GROUP_ALL_ID -> feedDatabaseManager.outdatedSubscriptions(outdatedThreshold) diff --git a/app/src/main/java/org/schabi/newpipe/local/history/HistoryRecordManager.java b/app/src/main/java/org/schabi/newpipe/local/history/HistoryRecordManager.java index 6af57bc94..7f5c4f7a7 100644 --- a/app/src/main/java/org/schabi/newpipe/local/history/HistoryRecordManager.java +++ b/app/src/main/java/org/schabi/newpipe/local/history/HistoryRecordManager.java @@ -44,9 +44,10 @@ import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.player.playqueue.PlayQueueItem; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Collection; -import java.util.Date; import java.util.List; import io.reactivex.Completable; @@ -85,7 +86,7 @@ public class HistoryRecordManager { return Maybe.empty(); } - final Date currentTime = new Date(); + final OffsetDateTime currentTime = OffsetDateTime.now(ZoneOffset.UTC); return Maybe.fromCallable(() -> database.runInTransaction(() -> { final long streamId = streamTable.upsert(new StreamEntity(info)); final StreamHistoryEntity latestEntry = streamHistoryTable.getLatestEntry(streamId); @@ -161,7 +162,7 @@ public class HistoryRecordManager { return Maybe.empty(); } - final Date currentTime = new Date(); + final OffsetDateTime currentTime = OffsetDateTime.now(ZoneOffset.UTC); final SearchHistoryEntry newEntry = new SearchHistoryEntry(currentTime, serviceId, search); return Maybe.fromCallable(() -> database.runInTransaction(() -> { diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java index c4307fcde..a093d93e1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java @@ -9,7 +9,7 @@ import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.local.LocalItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; /* * Created by Christian Schabesberger on 12.02.17. @@ -41,7 +41,7 @@ public abstract class LocalItemHolder extends RecyclerView.ViewHolder { } public abstract void updateFromItem(LocalItem item, HistoryRecordManager historyRecordManager, - DateFormat dateFormat); + DateTimeFormatter dateTimeFormatter); public void updateState(final LocalItem localItem, final HistoryRecordManager historyRecordManager) { } diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java index 458b3c30e..5560df3e0 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java @@ -10,7 +10,7 @@ import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; public class LocalPlaylistItemHolder extends PlaylistItemHolder { public LocalPlaylistItemHolder(final LocalItemBuilder infoItemBuilder, final ViewGroup parent) { @@ -25,7 +25,7 @@ public class LocalPlaylistItemHolder extends PlaylistItemHolder { @Override public void updateFromItem(final LocalItem localItem, final HistoryRecordManager historyRecordManager, - final DateFormat dateFormat) { + final DateTimeFormatter dateTimeFormatter) { if (!(localItem instanceof PlaylistMetadataEntry)) { return; } @@ -39,6 +39,6 @@ public class LocalPlaylistItemHolder extends PlaylistItemHolder { itemBuilder.displayImage(item.thumbnailUrl, itemThumbnailView, ImageDisplayConstants.DISPLAY_PLAYLIST_OPTIONS); - super.updateFromItem(localItem, historyRecordManager, dateFormat); + super.updateFromItem(localItem, historyRecordManager, dateTimeFormatter); } } diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java index 33722e380..f7cf69708 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java @@ -20,7 +20,7 @@ import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.views.AnimatedProgressBar; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.concurrent.TimeUnit; @@ -52,7 +52,7 @@ public class LocalPlaylistStreamItemHolder extends LocalItemHolder { @Override public void updateFromItem(final LocalItem localItem, final HistoryRecordManager historyRecordManager, - final DateFormat dateFormat) { + final DateTimeFormatter dateTimeFormatter) { if (!(localItem instanceof PlaylistStreamEntry)) { return; } diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java index 8eaef807a..f473b0277 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java @@ -20,7 +20,7 @@ import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.views.AnimatedProgressBar; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.concurrent.TimeUnit; @@ -71,10 +71,10 @@ public class LocalStatisticStreamItemHolder extends LocalItemHolder { } private String getStreamInfoDetailLine(final StreamStatisticsEntry entry, - final DateFormat dateFormat) { + final DateTimeFormatter dateTimeFormatter) { final String watchCount = Localization .shortViewCount(itemBuilder.getContext(), entry.getWatchCount()); - final String uploadDate = dateFormat.format(entry.getLatestAccessDate()); + final String uploadDate = dateTimeFormatter.format(entry.getLatestAccessDate()); final String serviceName = NewPipe.getNameOfService(entry.getStreamEntity().getServiceId()); return Localization.concatenateStrings(watchCount, uploadDate, serviceName); } @@ -82,7 +82,7 @@ public class LocalStatisticStreamItemHolder extends LocalItemHolder { @Override public void updateFromItem(final LocalItem localItem, final HistoryRecordManager historyRecordManager, - final DateFormat dateFormat) { + final DateTimeFormatter dateTimeFormatter) { if (!(localItem instanceof StreamStatisticsEntry)) { return; } @@ -116,7 +116,7 @@ public class LocalStatisticStreamItemHolder extends LocalItemHolder { } if (itemAdditionalDetails != null) { - itemAdditionalDetails.setText(getStreamInfoDetailLine(item, dateFormat)); + itemAdditionalDetails.setText(getStreamInfoDetailLine(item, dateTimeFormatter)); } // Default thumbnail is shown on error, while loading and if the url is empty diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java index 11e3deb67..e8c53161e 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java @@ -9,7 +9,7 @@ import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.local.LocalItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; public abstract class PlaylistItemHolder extends LocalItemHolder { public final ImageView itemThumbnailView; @@ -34,7 +34,7 @@ public abstract class PlaylistItemHolder extends LocalItemHolder { @Override public void updateFromItem(final LocalItem localItem, final HistoryRecordManager historyRecordManager, - final DateFormat dateFormat) { + final DateTimeFormatter dateTimeFormatter) { itemView.setOnClickListener(view -> { if (itemBuilder.getOnItemSelectedListener() != null) { itemBuilder.getOnItemSelectedListener().selected(localItem); diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java index a47d61d2f..a39e3cecb 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java @@ -11,7 +11,7 @@ import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; -import java.text.DateFormat; +import java.time.format.DateTimeFormatter; public class RemotePlaylistItemHolder extends PlaylistItemHolder { public RemotePlaylistItemHolder(final LocalItemBuilder infoItemBuilder, @@ -27,7 +27,7 @@ public class RemotePlaylistItemHolder extends PlaylistItemHolder { @Override public void updateFromItem(final LocalItem localItem, final HistoryRecordManager historyRecordManager, - final DateFormat dateFormat) { + final DateTimeFormatter dateTimeFormatter) { if (!(localItem instanceof PlaylistRemoteEntity)) { return; } @@ -48,6 +48,6 @@ public class RemotePlaylistItemHolder extends PlaylistItemHolder { itemBuilder.displayImage(item.getThumbnailUrl(), itemThumbnailView, ImageDisplayConstants.DISPLAY_PLAYLIST_OPTIONS); - super.updateFromItem(localItem, historyRecordManager, dateFormat); + super.updateFromItem(localItem, historyRecordManager, dateTimeFormatter); } } diff --git a/app/src/main/java/org/schabi/newpipe/util/Localization.java b/app/src/main/java/org/schabi/newpipe/util/Localization.java index 96ba2808d..9cebfa863 100644 --- a/app/src/main/java/org/schabi/newpipe/util/Localization.java +++ b/app/src/main/java/org/schabi/newpipe/util/Localization.java @@ -23,11 +23,13 @@ import org.schabi.newpipe.extractor.localization.ContentCountry; import java.math.BigDecimal; import java.math.RoundingMode; -import java.text.DateFormat; import java.text.NumberFormat; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; import java.util.Arrays; import java.util.Calendar; -import java.util.Date; import java.util.List; import java.util.Locale; @@ -139,13 +141,16 @@ public final class Localization { return nf.format(number); } - public static String formatDate(final Date date, final Context context) { - return DateFormat.getDateInstance(DateFormat.MEDIUM, getAppLocale(context)).format(date); + public static String formatDate(final OffsetDateTime offsetDateTime, final Context context) { + return DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM) + .withLocale(getAppLocale(context)).format(offsetDateTime + .atZoneSameInstant(ZoneId.systemDefault())); } @SuppressLint("StringFormatInvalid") - public static String localizeUploadDate(final Context context, final Date date) { - return context.getString(R.string.upload_date_text, formatDate(date, context)); + public static String localizeUploadDate(final Context context, + final OffsetDateTime offsetDateTime) { + return context.getString(R.string.upload_date_text, formatDate(offsetDateTime, context)); } public static String localizeViewCount(final Context context, final long viewCount) { diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml index 43ee99958..73bdbf4ca 100644 --- a/checkstyle-suppressions.xml +++ b/checkstyle-suppressions.xml @@ -5,7 +5,7 @@ + lines="221,293"/> Date: Wed, 4 Nov 2020 13:49:24 +0000 Subject: [PATCH 102/231] Translated using Weblate (Japanese) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-ja/strings.xml | 84 +++++++++++++------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 1dca536ae..8059e9ed3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -2,18 +2,18 @@ %1$s に公開 動画プレイヤーが見つかりません。VLC をインストールしますか? - 入手 + インストール キャンセル ブラウザで開く 共有 - 保存 + ダウンロード 検索 設定 - もしかして \"%1$s\" ですか? + もしかして: \"%1$s\" 共有 ブラウザを選択 回転 - 動画を保存する場所 + 動画を保存するフォルダー ダウンロードした動画をここに保存します 動画ファイルをダウンロードするフォルダーを選択して下さい デフォルトの解像度 @@ -23,12 +23,12 @@ Kodi メディアセンター経由で動画を再生するための設定を表示します 音声 デフォルトの音声形式 - 保存 + ダウンロード 「次の動画」と「関連動画」を表示 - URLは使用できません - 優先言語 + 対応していないURLです + デフォルトの言語 動画と音声 - %1$s ビュー + %1$s 再生 動画 プレビュー サムネイル ビデオ再生、時間: 投稿者アイコンのサムネイル @@ -45,15 +45,15 @@ 外観 その他 ネットワークエラー - 音声を保存する場所 + 音声を保存するフォルダー ダウンロードした音楽ファイルをここに保存します 音楽ファイルをダウンロードするフォルダーを選択して下さい 保存場所 \'%1$s\' を作成できません 保存場所 \'%1$s\' を作成しました エラー - 全てのサムネイルを読み込むことができません + 全てのサムネイルを読み込めませんでした 動画のURLを復号できませんでした - Webサイトを解析できませんでした + ウェブサイトを解析できませんでした コンテンツが利用できません 保存メニューを設定できませんでした 生放送にはまだ対応していません @@ -73,7 +73,7 @@ 動画 音声 再試行 - 初めにストレージへのアクセスを許可する + ストレージへのアクセスを許可してください 自動再生 NewPipe が他のアプリから呼び出された時、動画を再生します。 不具合を報告 @@ -123,8 +123,8 @@ 無効 デフォルトの動画形式 デフォルトのポップアップ解像度 - 高い解像度で表示 - 2K/4K ビデオの再生は一部のデバイスのみ再生できます + より高い解像度を表示 + 一部のデバイスのみ2K/4K動画を再生できます バックグラウンド ポップアップ フィルター @@ -148,22 +148,22 @@ このアプリについて 貢献者 ライセンス - Android 向けの自由で軽量なストリーミング。 + Android 向けのフリーで軽量なストリーミング。 GitHub で表示 NewPipe のライセンス 翻訳、デザインの変更、コードの整理、動作の重いコードの変更など、アイデアをお持ちではありませんか?ヘルプはいつでも歓迎します。より良いものを一緒に作り上げましょう! ライセンスを読む 貢献する チャンネル登録 - チャンネル登録しました + 登録済み チャンネル登録を解除しました チャンネル登録を変更できません チャンネル登録を更新できません メイン - 登録リスト + 登録チャンネル 新着 検索履歴 - 検索した履歴を記憶します + 検索履歴を記憶します 視聴履歴 再生した履歴を記憶します 再生の再開 @@ -175,7 +175,7 @@ プレイリスト 元に戻す すべて再生 - 通知 + NewPipeの通知 [不明] 動画の再生ができませんでした 回復不能な再生エラーが発生しました @@ -189,7 +189,7 @@ 文字と数字 文字と数字と、多くの特殊文字 寄付 - NewPipe は、あなたに最高の体験を味わってもらうために、ボランティアが自分たちの時間を使って開発しています。開発者たちがコーヒーを飲みながら NewPipe を継続的に改良できるよう、あなたのご支援をお願いします。 + NewPipe は、あなたに最高の体験を提供するために、ボランティアが自分たちの時間を使って開発しています。開発者たちがコーヒーを飲みながら NewPipe を継続的に改良できるよう、ご支援をお願いします。 Webサイト NewPipe の詳しい情報や最新情報については、ウェブサイトをご覧ください。 履歴 @@ -197,14 +197,14 @@ 再生履歴 履歴は無効になっています 履歴 - 履歴に何もありません + 履歴なし 履歴を削除しました アイテムを削除しました このアイテムを検索履歴から削除しますか? メインページのコンテンツ 空白ページ Kioskページ - チャンネル登録ページ + 登録チャンネルページ フィードページ チャンネルページ チャンネルを選択 @@ -248,13 +248,13 @@ コンテンツを読み込んでいます 動画ファイルをダウンロード 情報を表示 - プレイリスト + ブックマークしたプレイリスト サムネイルを読み込む 画像キャッシュを消去しました キャッシュを消去 アプリ内のキャッシュデータをすべて削除します キャッシュが消去されました - 関連動画を自動でキューに追加する + 次のを自動でキューに追加する デバッグ ファイル 動画が見つかりません @@ -299,10 +299,10 @@ 登録リストがエクスポートできませんでした 速度 音程 - バックグラウンド再生の順番待ちに追加 - ポップアップ再生の順番待ちに追加 + バックグラウンド再生のキューに追加 + ポップアップ再生のキューに追加 再生履歴を消去 - 再生したストリームの履歴と再生位置を削除します + 再生した動画の履歴と再生位置を削除します 再生履歴を削除しました。 検索履歴を消去 検索キーワードの履歴を削除します @@ -318,16 +318,16 @@ おおまかなシーク おおまかなシークを使用することで精度が下がる代わりに高速にシークができます。5 秒、15 秒または 25 秒間隔のシークはできません。 すべてのサムネイルの読み込みと保存を無効化します。このオプションを切り替えるとメモリおよびディスク上の画像キャッシュがクリアされます。 - キューに関連動画を追加しつつ、再生を続ける(リピートしない場合) + キューに関連動画を追加して再生を続ける すべての再生履歴を削除しますか? すべての検索履歴を削除しますか? このファイル/コンテンツはありません %s人が登録しています - 視聴なし + 再生なし - 視聴回数 %s回 + 再生回数 %s再生 1 つのアイテムが削除されました。 支援する @@ -335,12 +335,12 @@ \nNewPipe のプライバシー・ポリシーでは、クラッシュリポート送信時にどのような種類のデータが送信・記録されるかを詳細に説明しています。 NewPipe はコピーレフトなソフトウェアです。あなたは自由にそれを使用し、研究し、そして改善することができます。あなたは、GNU フリーソフトウェア財団が公開する GNU General Public ライセンス バージョン3以降の下に、自由に再配布・修正を行うことができます。 最終再生日時 - 最も再生した動画 + 最も再生された動画 ズーム プレイリスト 「長押しして追加」のヒントを表示 トラック - NewPipe バックグラウンドおよびポップアップのプレイヤーの通知 + NewPipeのバックグラウンドおよびポップアッププレイヤーの通知 新着と人気 長押ししてキューに追加 ポップアップで連続再生を開始 @@ -388,7 +388,7 @@ 新しいタブ タブを選択 アプリの更新 - 催し物 + イベント 新しい NewPipe バージョンの通知 外部記憶装置は利用できません 既定値に戻す @@ -449,9 +449,9 @@ 従量制課金ネットワークの割り込み モバイルデータ通信に切り替える場合に便利ですが、一部のダウンロードは一時停止できません コメントを表示 - 無効にするとコメントの表示を停止します + 無効にするとコメントを非表示にします 自動再生 - コメントはありません + コメントなし コメントを読み込めませんでした 閉じる 接続タイムアウト @@ -459,7 +459,7 @@ 最後に再生した位置を復元します リスト内の位置 リストに再生位置インジケーターを表示します - データをクリア + データを削除 再生位置を削除しました。 ファイルが移動または削除されました ファイルを上書きできません @@ -487,12 +487,12 @@ %s本の動画 - デフォルトのキオスク + デフォルトのKiosk 誰も見ていません %s人が視聴中 - 誰も聞いていません + 誰も聴いていません %s リスナー @@ -500,11 +500,11 @@ 高速早送り/巻き戻し時間 PeerTube インスタンス PeerTube インスタンスを選択する - あなたに最適なインスタンスを探せます: %s + あなたに最適なインスタンスを探す: %s インスタンスを追加 インスタンスの URL を入力 インスタンスを検証することができませんでした - HTTPS な URL のみがサポートされています + HTTPS の URL のみに対応しています インスタンスはすでに存在しています ローカル 最近追加された @@ -618,13 +618,13 @@ 3 番目のアクションボタン 2 番目のアクションボタン 1 番目のアクションボタン - 何もない + なし リピート シャッフル バッファリング 通知 YouTube は、成人向けの可能性があるコンテンツを除外する「制限付きモード」を提供しています。 - 年齢制限(18歳以上など)があるため、子供には不適切な可能性のあるコンテンツを表示します。 + 年齢制限のあるコンテンツを表示します。 キューに追加 キューに追加しました reCAPTCHA を解いたときに NewPipe が保存した Cookie を消去します From 31f407f4e86fe23c46d9d637612b71ac89de4a6d Mon Sep 17 00:00:00 2001 From: fieldfile Date: Wed, 4 Nov 2020 12:35:07 +0000 Subject: [PATCH 103/231] Translated using Weblate (Ukrainian) Currently translated at 94.3% (569 of 603 strings) --- app/src/main/res/values-uk/strings.xml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index d75da04e9..809920842 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -10,7 +10,7 @@ Завантажити Шукати Налаштування - Чи ви мали на увазі: %1$s\? + Чи ви мали на увазі: \"%1$s\"\? Поширити через Оберіть переглядач обертання @@ -63,7 +63,8 @@ Звіт Інформація: Що сталося: - Натисніть на «пошук» щоб почати + Натисніть на «пошук», аби почати +\n Чорна Завантаження Завантаження @@ -619,4 +620,14 @@ Вибрати плейліст Жоден плейліст ще не додано Сторінка плейлісту + Нічого + Буферизація + Перемішати + Повтор + Кнопка п\'ятої дії + Кнопка четвертої дії + Кнопка третьої дії + Кнопка другої дії + Кнопка першої дії + Збільшити мініатюру до масштабу 1:1 \ No newline at end of file From 1e0789162f387abd2ecd20ed88d7894cd35c8f34 Mon Sep 17 00:00:00 2001 From: Oymate Date: Wed, 4 Nov 2020 06:38:59 +0000 Subject: [PATCH 104/231] Translated using Weblate (Bengali (Bangladesh)) Currently translated at 61.3% (370 of 603 strings) --- app/src/main/res/values-bn-rBD/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index 4ef6f7780..fc5827501 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -359,4 +359,5 @@ পুনরায় প্রথম ক্রিয়া বোতাম থাম্বনেলে ১:১ অনুপাতে করো + আমদানি/রপ্তানি \ No newline at end of file From abf9365bbe2f62cd93f489807512ed2bb86a6fb2 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Thu, 5 Nov 2020 12:06:13 +0000 Subject: [PATCH 105/231] Translated using Weblate (Croatian) Currently translated at 99.0% (597 of 603 strings) --- app/src/main/res/values-hr/strings.xml | 31 ++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 4e0d74b5d..e73c04757 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -53,15 +53,15 @@ Tema Svijetla Tamna - Crno + Crna Kontroliranje reproduktora gestama Koristi geste za kontrolu svjetline i glasnoće reproduktora - Sugestije pri traženju + Prijedlozi pri traženju Prikaži prijedloge pri traženju Povijest pretraživanja Svaku pretragu spremi lokalno Prati povijest - Pratite pogledane videozapise + Spremaj povijest gledanja Nastavi reprodukciju Nastavi reproducirati nakon prekidanja (npr. telefonski pozivi) Preuzmi @@ -73,7 +73,7 @@ Izgled Drugo Reprodukcija u pozadini - Reproduciram u skočnom prozoru + Reprodukcija u skočnom prozoru Sadržaj Prikaži dobno ograničeni sadržaj Prikaži dobno ograničeni videozapis. Buduće promjene moguće je postaviti u postavkama. @@ -275,7 +275,7 @@ Dodaj u Učitaj slike Slikovna predmemorija obrisana - Obriši predmemorijsku metupodataka + Izbriši metapodatke iz predmemorije Usluga Kanali Playliste @@ -375,13 +375,13 @@ Preuzimanje nije uspjelo Preuzimanje je gotovo Prikaži pogrešku - Isključite kako biste spriječili učitavanje sličica, spremanje podataka i korištenja memorije. Promjene čiste radnu i trajnu predmemoriju slika. - Uklonite sve podatke iz privremenih web-stranica + Isključi, kako bi se spriječilo učitavanje sličica, spremanje podataka i korištenje memorije. Promjene prazne radnu i trajnu predmemoriju slika. + Izbriši sve podatke web-stranica iz predmemorije Metapodaci su izbrisani Automatski dodaj sljedeći stream u popisa izvođenja Nastavi završavati (ne ponavljajući) popis izvođenja dodavanjem povezanog streama Kontrola glasnoće pomoću gesti - Koristi gesture za kontrolu glasnoće + Koristi geste za kontrolu glasnoće Kontrola svjetline pomoću gesti Koristi gesture za kontrolu svjetline Zadana zemlja sadržaja @@ -453,7 +453,7 @@ Prekini na mrežama s ograničenim prometom Korisno pri prelasku na mobilne podatke, iako se neka preuzimanja ne mogu obustaviti Prikaži komentare - Onemogućite da biste prestali prikazivati komentare + Isključi, kako bi se komentari sakrili Automatska reprodukcija Nema komentara Komentare nije moguće učitati @@ -543,11 +543,11 @@ Nije učitano: %d Nije odabrana nijedna pretplata Odaberi pretplate - Peti akcijski gumb - Četvrti akcijski gumb - Treći akcijski gumb - Drugi akcijski gumb - Prvi akcijski gumb + Gumb pete radnje + Gumb četvrte radnje + Gumb treće radnje + Gumb druge radnje + Gumb prve radnje Promijenite mape za preuzimanje kako bi stupile na snagu Prikazuju se rezultati za: %s Nije moguće prepoznati URL. Želite li otvoriti u drugoj aplikaciji\? @@ -629,4 +629,7 @@ Ništa Promiješaj Ponovi + Provjeri je li tvoj problem već postoji. Dupla pojava problema krade nam vrijeme koje bismo mogli utrošiti na ispravljanje same greške. + Za uređivanje obavijesti radnji, dodirni ih. Označi do tri radnje za kompaktni prikaz obavijesti. + Zbog ograničenja ExoPlayera, trajanje traženja postavljeno je na %d s \ No newline at end of file From 468ee4756f385f60df62bf0183350b7eba6280e0 Mon Sep 17 00:00:00 2001 From: Oymate Date: Wed, 4 Nov 2020 06:49:07 +0000 Subject: [PATCH 106/231] Translated using Weblate (Bengali) Currently translated at 73.6% (444 of 603 strings) --- app/src/main/res/values-bn/strings.xml | 61 ++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 9472703b1..ccb5671c9 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -366,4 +366,65 @@ কমপ্যাক্ট বিজ্ঞপ্তিতে প্রদর্শন করতে তুমি সর্বাধিক তিনটি ক্রিয়া নির্বাচন করতে পারো! নিচের প্রতিটি প্রজ্ঞাপন ক্রিয়া সম্পাদনা করো। ডান দিকের চেকবাক্স ব্যবহার করে কম্প্যাক্ট নোটিফিকেশনে দেখানোর জন্য তিনটি পর্যন্ত নির্বাচন করো। ১৬:৯ থেকে ১:১অনুপাতে প্রদর্শিত ভিডিও থাম্বনেইল পরিবর্তন করো (বিকৃতি প্রবর্তন করতে পারে) + ফিড + ওভাররাইট + সারিবদ্ধ + পুনরুদ্ধাররত + পরে-প্রক্রিয়াকরণ + সারিবদ্ধ + প্রক্রিয়ারত + কখনো না + হালনাগাদ + পুনশুরু + স্টেপ + পিচ + টেম্পো + রপ্তানি করা হচ্ছে… + আমদানি করা হচ্ছে… + + %s সদস্যতা + %s সদস্যতাগণ + + ব্যবহারকারীরা + বিজ্ঞপ্তি + বাধার পর প্লে চালিয়ে যাও (উদাহরণস্বরূপ ফোনকল) + সদস্যতা রপ্তানি করা যায়নি + সদস্যতা/সাবস্ক্রিপশন আমদানি করা যায়নি + স্বয়ংক্রিয়ভাবে উৎপাদিত (কোনও আপলোডার পাওয়া যায়নি) + পছন্দ-তালিকা মুছে ফেলা যায়নি। + প্লে-তালিকা থাম্বনেইল হিসেবে সেট করো + কোনও বৈধ জিপ ফাইল নেই + এখনো কোন প্লে-তালিকা বুকমার্ক নেই + এখনও কোনও চ্যানেল সাবস্ক্রিপশন নেই + মূল পৃষ্ঠার বিষয়বস্তু + ফাইলের নামে অনুমোদিত অক্ষরসমূহ + সমাধান হয়ে গেলে \"সম্পন্ন\" টিপো + কেউ শুনছে না + কেউ দেখছে না + সেবাটি পরিবর্তন করো, বর্তমানে নির্বাচিত: + এখানে ঝিঝিপোকা ছাড়া আর কিছু নেই + এই ধরনের কোন ফাইল/বিষয়বস্তুর উৎস নেই + অপুনরুদ্ধারযোগ্য প্লেয়ার ত্রুটি ঘটেছে + পপআপ প্লেয়ারে সারিবদ্ধ + পটভূমি প্লেয়ারে সারিবদ্ধ + ইন্সট্যান্সটি যাচাই করা যায়নি + রিক্যাপচা কুকিগুলো পরিষ্কার করা হয়েছে + হ্যাঁ, এবং আংশিকভাবে দেখা ভিডিও + সিস্টেম দ্বারা অনুমতি অগ্রাহ্য করা হয়েছে + ব্যবস্থা দ্বারা ক্রিয়া অস্বীকার করা হয়েছে + "স্বয়ংক্রিয়ভাবে প্লেব্যাক শুরু করো %s — তে" + একটি পপ-আপে প্লে শুরু করো + পটভূমিতে প্লে শুরু করো + অ্যান্ড্রয়েডে মুক্ত সহজ স্ট্রিমিং। + ইতিহাস, সদস্যতা এবং পছন্দ-তালিকা রপ্তানি করো + \"সংযোজন করতে ধরে রাখো\" পরামর্শ দেখাও + উপলব্ধ হলে আলাদা ফিড থেকে এনো + সার্ভার ডেটা পাঠায় না + সার্ভারে সংযোগ করা যাচ্ছে না + আমদানি + আমদানি/রপ্তানি + সম্মেলন + নির্বাচন + তালিকায় প্লেব্যাক অবস্থান সূচক দেখাও + স্বত-সারি \ No newline at end of file From 0233ffafb6171b19cd26b611b8aa51168df3a383 Mon Sep 17 00:00:00 2001 From: Nyatsuki Date: Wed, 4 Nov 2020 11:44:57 +0000 Subject: [PATCH 107/231] Translated using Weblate (Japanese) Currently translated at 16.6% (6 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ja/ --- fastlane/metadata/android/ja/changelogs/952.txt | 7 +++++++ fastlane/metadata/android/ja/changelogs/953.txt | 1 + fastlane/metadata/android/ja/changelogs/955.txt | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 fastlane/metadata/android/ja/changelogs/952.txt create mode 100644 fastlane/metadata/android/ja/changelogs/953.txt create mode 100644 fastlane/metadata/android/ja/changelogs/955.txt diff --git a/fastlane/metadata/android/ja/changelogs/952.txt b/fastlane/metadata/android/ja/changelogs/952.txt new file mode 100644 index 000000000..b1ae1410d --- /dev/null +++ b/fastlane/metadata/android/ja/changelogs/952.txt @@ -0,0 +1,7 @@ +改善 +• 全てのサービスで自動再生が利用可能 + +修正 +• Fixed related streams by supporting YouTube's new continuations +• 年齢制限のあるYouTube動画を修正 +• [Android TV] Fixed lingering focus highlight overlay diff --git a/fastlane/metadata/android/ja/changelogs/953.txt b/fastlane/metadata/android/ja/changelogs/953.txt new file mode 100644 index 000000000..175a2f691 --- /dev/null +++ b/fastlane/metadata/android/ja/changelogs/953.txt @@ -0,0 +1 @@ +YouTubeの復号化機能の展開を修正。 diff --git a/fastlane/metadata/android/ja/changelogs/955.txt b/fastlane/metadata/android/ja/changelogs/955.txt new file mode 100644 index 000000000..eab8f1d9d --- /dev/null +++ b/fastlane/metadata/android/ja/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] いくつかのユーザー向けに検索を修正 +[YouTube] ランダムな復号化の除外を修正 +[SoundCloud] スラッシュで終わるURLが正しく解析されるようになりました From 472d9322ceabceb610401b10bde1aa843b69fa21 Mon Sep 17 00:00:00 2001 From: pjammo Date: Wed, 4 Nov 2020 10:59:25 +0000 Subject: [PATCH 108/231] Translated using Weblate (Italian) Currently translated at 22.2% (8 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ --- fastlane/metadata/android/it/changelogs/940.txt | 16 ++++++++++++++++ fastlane/metadata/android/it/changelogs/950.txt | 4 ++++ fastlane/metadata/android/it/changelogs/952.txt | 7 +++++++ fastlane/metadata/android/it/changelogs/955.txt | 3 +++ 4 files changed, 30 insertions(+) create mode 100644 fastlane/metadata/android/it/changelogs/940.txt create mode 100644 fastlane/metadata/android/it/changelogs/950.txt create mode 100644 fastlane/metadata/android/it/changelogs/952.txt create mode 100644 fastlane/metadata/android/it/changelogs/955.txt diff --git a/fastlane/metadata/android/it/changelogs/940.txt b/fastlane/metadata/android/it/changelogs/940.txt new file mode 100644 index 000000000..d0b07986a --- /dev/null +++ b/fastlane/metadata/android/it/changelogs/940.txt @@ -0,0 +1,16 @@ +Nuovo +• Supporto commenti SoundCloud +• "Mod. con Restrizioni" di YouTube +• Mostra dettagli canale genitore PeerTube + +Migliorato +• Mostra pulsante Kore solo per dispositivi supportati +• Gesti bloccati quando si tocca la Barra di Navigazione o la Barra di Stato +• Cambiato colresfondo pulsanti "Riptova" e "Iscriviti" in base al servizio + +Aggiustato +• Congelamento fin. dialogo download +• Pulsante "Apri nel Browser" funziona correttamente +• Crash ed errori all'apertura di alcuni video + +altro diff --git a/fastlane/metadata/android/it/changelogs/950.txt b/fastlane/metadata/android/it/changelogs/950.txt new file mode 100644 index 000000000..867c5c795 --- /dev/null +++ b/fastlane/metadata/android/it/changelogs/950.txt @@ -0,0 +1,4 @@ +Aggiustato +• Accesso archiviazione su Adroid 10+ +• Apertura kiosk +• Analisi durata per video lunghi diff --git a/fastlane/metadata/android/it/changelogs/952.txt b/fastlane/metadata/android/it/changelogs/952.txt new file mode 100644 index 000000000..844cac095 --- /dev/null +++ b/fastlane/metadata/android/it/changelogs/952.txt @@ -0,0 +1,7 @@ +Migliorato +• Riproduzione automatica disponibile per tutte le piattaforme (invece che solo per YouTube) + +Aggiustato +• Contenuti consigliati per supportare le continuazioni di YouTube +• Restrizioni d'età per i video di YouTube +• [Android TV] Focus prolungato overlay diff --git a/fastlane/metadata/android/it/changelogs/955.txt b/fastlane/metadata/android/it/changelogs/955.txt new file mode 100644 index 000000000..9301be007 --- /dev/null +++ b/fastlane/metadata/android/it/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Aggiustata la ricerca per alcuni utenti +[YouTube] Aggiustate eccezioni casuali di decodifica +[SoundCloud] Gli URL che finiscono con uno slash sono analizzati correttamente From e8289d3912b496c3a8164e811b85c0348d0c4f93 Mon Sep 17 00:00:00 2001 From: Michalis Nikolaidis Date: Fri, 6 Nov 2020 11:22:50 +0000 Subject: [PATCH 109/231] Translated using Weblate (Greek) Currently translated at 92.0% (555 of 603 strings) --- app/src/main/res/values-el/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index eac5acd55..be9bcf70b 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -92,7 +92,7 @@ Λήψη του αρχείου ροής Αφαίρεση του ήχου από κάποιες αναλύσεις Λειτουργία αναδυόμενου παραθύρου - Απεγγραφή από το κανάλι + Κανάλι διαγράφηκε Αδύνατη η αλλαγή της εγγραφής Αδύνατη η ενημέρωση της εγγραφής Κύριο From 6f32f098eb64155fb6e76c2fc1c9cb5eaceac910 Mon Sep 17 00:00:00 2001 From: Vasilis K Date: Fri, 6 Nov 2020 11:18:34 +0000 Subject: [PATCH 110/231] Translated using Weblate (Greek) Currently translated at 92.0% (555 of 603 strings) --- app/src/main/res/values-el/strings.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index be9bcf70b..1f59c72dc 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -87,10 +87,11 @@ Ιστορικό Ιστορικό Εμφάνιση πληροφοριών - Πατήστε \"Αναζήτηση\" για να ξεκινήσετε + Πατήστε \"Αναζήτηση\" για να ξεκινήσετε +\n Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή). Λήψη του αρχείου ροής - Αφαίρεση του ήχου από κάποιες αναλύσεις + Αφαιρείται ο ήχος από κάποιες αναλύσεις Λειτουργία αναδυόμενου παραθύρου Κανάλι διαγράφηκε Αδύνατη η αλλαγή της εγγραφής From 18c45ad30b45a254db4d2b2a4052deda261ac355 Mon Sep 17 00:00:00 2001 From: xxkfqz Date: Fri, 6 Nov 2020 12:38:06 +0000 Subject: [PATCH 111/231] Translated using Weblate (Russian) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-ru/strings.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 54019e3d1..c7531f1d3 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -609,7 +609,7 @@ Удалить просмотренные видео\? Отображать сообщённое сервисом время с момента публикации Исходное время публикации - Безопасный режим YouTube + Включить \"Безопасный режим\" YouTube От %s Создано %s Миниатюра значка канала @@ -649,4 +649,7 @@ Очистить файлы cookie reCAPTCHA Показывать контент, который, возможно, не подходит для детей, потому что он имеет возрастное ограничение (например, 18+). YouTube предоставляет \"Ограниченный режим\", который скрывает потенциально взрослый контент. + Добавлено в очередь + Добавить в очередь + Очистить cookie, которые NewPipe сохраняет при решении reCAPTCHA \ No newline at end of file From 479ab5df0ec6cccd38b279a47d2085a7ee1af195 Mon Sep 17 00:00:00 2001 From: Gontzal Manuel Pujana Onaindia Date: Fri, 6 Nov 2020 14:18:50 +0000 Subject: [PATCH 112/231] Translated using Weblate (Basque) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-eu/strings.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index ea88abf09..3b9f5410e 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -597,7 +597,7 @@ Kanalaren avatar-earen miniatura Erakutsi agrupatuta ez dauden harpidetzak bakarrik Bai, partzialki ikusitako bideoak ere bai - Erreprodukzio zerrendara gehitu baino lehen eta gero ikusten diren bideoak ezabatuak izango dira. + Jada ikusi eta gero erreprodukzio zerrendara gehitu diren bideoak ezabatuak izango dira. \nJarraitu nahi duzu\? Ekintza hau ezin da desegin! Ikusitako bideoak ezabatu\? Ikusitako bideoak ezabatu @@ -638,4 +638,7 @@ %s bilaketaren erantzunak erakusten Ilaran jarri da Jarri ilaran + Zerbitzuen jatorrizko testuak transmisioko elementuetan ikusgai egongo dira + Erakutsi «orain dela» jatorrizko denbora elementuetan + Editatu beheko jakinarazpen ekintza bakoitza gainean sakatuz. Hautatu horietako hiru gehienez jakinarazpen trinkoan erakusteko eskuineko kontrol laukiak erabiliz. \ No newline at end of file From 725bd8029fd5cbca700ca02f6e0a28a9d3cb3006 Mon Sep 17 00:00:00 2001 From: Vasilis K Date: Fri, 6 Nov 2020 14:00:07 +0000 Subject: [PATCH 113/231] Translated using Weblate (Greek) Currently translated at 99.6% (601 of 603 strings) --- app/src/main/res/values-el/strings.xml | 284 +++++++++++++++---------- 1 file changed, 175 insertions(+), 109 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 1f59c72dc..561c38215 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -19,7 +19,7 @@ Φάκελος λήψης βίντεο Τα ληφθέντα αρχεία βίντεο αποθηκεύονται εδώ Επιλέξτε φάκελο λήψης για αρχεία βίντεο - Διαδρομή λήψης αρχείων ήχου + Φάκελος λήψης ήχου Τα ληφθέντα αρχεία ήχου αποθηκεύονται εδώ Επιλέξτε φάκελο λήψης για αρχεία ήχου Προεπιλεγμένη ανάλυση @@ -41,16 +41,16 @@ Άλλα Αναπαραγωγή στο παρασκήνιο Σφάλμα δικτύου - Μικρογραφία προεπισκόπισης βίντεο + Μικρογραφία προεπισκόπησης βίντεο Αναπαραγωγή βίντεο, διάρκεια: Μικρογραφία εικόνας προφίλ του χρήστη Like Dislike Χρήση του Tor - (Πειραματικό) Αναγκάζει την κίνηση λήψης μέσω Tor για αυξημένη προστασία προσωπικών δεδομένων (η αναπαραγωγή δεν υποστηρίζεται ακόμη). - Δεν μπόρεσε να δημιουργηθεί ο φάκελος \'%1$s\' - Δημιουργήθηκε ο φάκελος \'%1$s\' - Δις + (Πειραματικό) Εξαναγκάζει τη λήψη μέσω του Tor για αυξημένη ιδιωτικότητα (η αναπαραγωγή δεν υποστηρίζεται ακόμη). + Αδυναμία δημιουργίας φακέλου λήψεων \'%1$s\' + Δημιουργήθηκε ο φάκελος λήψεων \'%1$s\' + δισ/ρια Άνοιγμα σε αναδυόμενο παράθυρο Εγγραφή Εγγεγραμμένος @@ -93,13 +93,13 @@ Λήψη του αρχείου ροής Αφαιρείται ο ήχος από κάποιες αναλύσεις Λειτουργία αναδυόμενου παραθύρου - Κανάλι διαγράφηκε + Το κανάλι διαγράφηκε Αδύνατη η αλλαγή της εγγραφής Αδύνατη η ενημέρωση της εγγραφής Κύριο Συνδρομές Αγαπημένες λίστες αναπαραγωγής - Νέα + Τι νέο υπάρχει Στο παρασκήνιο Αναδυόμενο παράθυρο Προσθήκη σε @@ -111,35 +111,35 @@ Χρήση γρήγορης ανακριβούς αναζήτησης Η μην ακριβής αναζήτηση επιτρέπει στην εφαρμογή να αναζητεί θέσεις στο βίντεο γρηγορότερα με μειωμένη ακρίβεια. Δε λειτουργεί για διαστήματα των 5, 15 ή 25 δευτερολέπτων. Φόρτωση μικρογραφιών - Με την απενεργοποίηση δε φορτώνονται οι μικρογραφίες, χρησιμοποιώντας λιγότερα δεδομένα και μνήμη. Οι αλλαγές σβήνουν τις προσωρινά αποθηκευμένες εικόνες στη μνήμη και στον δίσκο. + Με την απενεργοποίηση δε φορτώνονται οι μικρογραφίες, εξοικονομώντας δεδομένα και μνήμη. Οι αλλαγές σβήνουν τις προσωρινά αποθηκευμένες εικόνες στη μνήμη και στον δίσκο. Εκκαθαρίστηκε η προσωρινή μνήμη εικόνων Εκκαθάριση προσωρινά αποθηκευμένων μεταδεδομένων Αφαίρεση όλων των προσωρινά αποθηκευμένων δεδομένων ιστοσελίδων Η προσωρινή μνήμη μεταδεδομένων εκκαθαρίστηκε Αυτόματη πρόσθεση της επόμενης ροής στην ουρά - Συνεχίστε να τερματίζετε (μη επαναλαμβανόμενη) τη σειρά αναπαραγωγής προσθέτοντας μια σχετική ροή + Συνέχεια της τρέχουσας (μη επαναλαμβανόμενης) ουράς μετά τη λήξη της, με την προσθήκη μιας σχετικής ροής Έλεγχος αναπαραγωγής με χειρονομίες Χρήση χειρονομιών για τον έλεγχο της φωτεινότητας και της έντασης ήχου Εμφάνιση προτάσεων ενώ κάνετε αναζήτηση Αποθήκευση αναζητήσεων στη συσκευή Προβολή Ιστορικού - Κρατήστε ιστορικό των βίντεο που έχετε δει - Συνέχεια αναπαραγωγής + Κρατήστε ιστορικό των αναπαραχθέντων βίντεο + Ανάκτηση αναπαραγωγής Συνέχιση της αναπαραγωγής έπειτα από διακοπές (π.χ. κλήσεις) - Εμφάνιση της βοήθειας \"Πιέστε παρατεταμένα για πρόσθεση\" - Εμφάνιση υπόδειξης όταν πατηθεί το κουμπί Παρασκηνίου ή Αναδυόμενου παραθύρου στη σελίδα λεπτομερειών του βίντεο + Εμφάνιση επεξήγησης του \"Πιέστε παρατεταμένα για προσθήκη\" + Εμφάνιση υπόδειξης όταν πατηθεί το κουμπί παρασκηνίου ή αναδυόμενου παραθύρου στη σελίδα λεπτομερειών του βίντεο Προεπιλεγμένη χώρα περιεχομένου Υπηρεσία - Συσκευή Αναπαραγωγής + Αναπαραγωγός Συμπεριφορά - Ιστορικό και προσωρινή αποθήκευση + Ιστορικό και προσωρινή μνήμη Αναδυόμενο παράθυρο - Απασφαλμάτωση + Αποσφαλμάτωση Αναπαραγωγή σε αναδυόμενο παράθυρο Προστέθηκε στη λίστα αναπαραγωγής παρασκηνίου Προστέθηκε στη λίστα αναπαραγωγής αναδυόμενου παραθύρου Περιεχόμενο - Περιεχόμενο περιορισμένης ηλικίας + Εμφάνιση περιεχομένου περιορισμένης ηλικίας Εμφάνιση βίντεο με περιορισμό ηλικίας. Μελλοντικές αλλαγές είναι δυνατές από τις ρυθμίσεις. Ζωντανά Αναφορά σφαλμάτων @@ -159,7 +159,7 @@ Μόνο μία φορά Αρχείο Ειδοποίηση NewPipe - Ειδοποιήσεις για την αναπαραγωγή Παρασκηνίου και Αναδυόμενου Παραθύρου + Ειδοποιήσεις αναπαραγωγής παρασκηνίου και αναδυόμενου παραθύρου [Άγνωστο] Αλλαγή προσανατολισμού Αλλαγή σε Παρασκήνιο @@ -167,10 +167,10 @@ Αλλαγή σε Κύριο Εισαγωγή βάσης δεδομένων Εξαγωγή βάσης δεδομένων - Θα παρακάμψει το τρέχον ιστορικό και εγγραφές σας + Παρακάμπτει το τρέχον ιστορικό και τις εγγραφές σας Εξαγωγή ιστορικού, εγγραφών και λιστών αναπαραγωγής Εκκαθάριση ιστορικού προβολής - Διαγράφει το ιστορικό των ροών που έχουν αναπαραχθεί + Διαγράφει το ιστορικό των αναπαραχθέντων ροών και των θέσεων αναπαραγωγής Διαγραφή ολόκληρου του ιστορικού προβολής; Το στορικό προβολής διαγράφηκε. Διαγραφή ιστορικού αναζητήσεων @@ -178,25 +178,25 @@ Διαγραφή ολόκληρου του ιστορικού αναζητήσεων; Το ιστορικό αναζητήσεων διαγράφηκε. Δεν ήταν δυνατή η φόρτωση όλων των εικονιδίων - Δεν ήταν δυνατή η αποκρυπτογράφηση της υπογραφής του URL του βίντεο + Δεν ήταν δυνατή η αποκρυπτογράφηση της υπογραφής της URL του βίντεο Δεν ήταν δυνατή η ανάλυση του ιστοτόπου Δεν ήταν δυνατή η ανάλυση ολόκληρου του ιστοτόπου Το περιεχόμενο δεν είναι διαθέσιμο Δεν ήταν δυνατή η ρύθμιση του μενού λήψεων - Η Ζωντανή Ροή δεν υποστηρίζεται ακόμα - Δεν ήταν δυνατή η λήψη καμίας ροής + Οι ζωντανές ροές δεν υποστηρίζονται ακόμα + Δεν ήταν δυνατή η λήψη οποιασδήποτε ροής Δεν ήταν δυνατή η φόρτωση της εικόνας - Η εφαρμογή κράσαρε + Η εφαρμογή κατέρρευσε Δεν ήταν δυνατή η αναπαραγωγή αυτής της ροής Συνέβη ένα μη ανακτήσιμο σφάλμα στη συσκευή αναπαραγωγής Ανάκτηση από σφάλμα της συσκευής αναπαραγωγής Οι εξωτερικές συσκευές αναπαραγωγής δεν υποστηρίζουν αυτού του είδους συνδέσμους - Μη έγκυρο URL + Μη έγκυρη URL Δε βρέθηκαν ροές βίντεο Δε βρέθηκαν ροές ήχου Δεν υπάρχει αυτός ο φάκελος Δεν υπάρχει το αρχείο/πηγή περιεχομένου - Το αρχείο δεν υπάρχει ή δεν έχουμε επαρκή εξουσιοδότηση για να διαβάσουμε ή να γράψουμε σε αυτό + Το αρχείο δεν υπάρχει ή δεν υπάρχει επαρκής εξουσιοδότηση ανάγνωσης ή εγγραφής σε αυτό Το όνομα αρχείου δεν μπορεί να είναι κενό Προέκυψε ένα σφάλμα: %1$s Δεν υπάρχουν διαθέσιμες ροές για λήψη @@ -209,13 +209,13 @@ Δεν υπάρχει τίποτα εδώ Σύρετε για ταξινόμηση Προσπάθεια εκ νέου - Παραχώρηση πρόσβασης πρώτα στον αποθηκευτικό χώρο - χιλ - Εκ - Κανένας εγγεγραμένος χρήστης + Παραχώρηση πρώτα πρόσβασης στον αποθηκευτικό χώρο + χιλ. + εκ/ρια + Κανένας συνδρομητής - %s εγγεγραμένος χρήστης - %s εγγεγραμένοι χρήστες + %s συνδρομητής + %s συνδρομητές Καμία προβολή @@ -224,8 +224,8 @@ Κανένα βίντεο - %s Βίντεο - %s Βίντεο + %s βίντεο + %s βίντεο Εκκίνηση Αναπαραγωγή @@ -235,7 +235,7 @@ Άθροισμα ελέγχου Αγνόηση Μετονομασία - Νέα αποστολη + Νέα αποστολή ΟΚ Όνομα αρχείου Νήματα @@ -244,40 +244,40 @@ Λήψη NewPipe Παρακαλώ περιμένετε… Αντιγράφηκε στο πρόχειρο - Παρακαλώ ορίστε έναν διαθέσιμο φάκελο λήψεων αργότερα στις ρυθμίσεις + Παρακαλώ ορίστε έναν φάκελο λήψεων αργότερα στις ρυθμίσεις Αυτή η άδεια είναι απαραίτητη για \nτο άνοιγμα αναδυόμενων παραθύρων 1 αντικείμενο διαγράφηκε. - Πρόκληση reCAPTCHA - Ζητήθηκε πρόκληση reCAPTCHA + Δοκιμασία reCAPTCHA + Ζητήθηκε δοκιμασία reCAPTCHA Επιτρεπόμενοι χαρακτήρες σε ονόματα αρχείων Οι μη έγκυροι χαρακτήρες αντικαθίστανται με αυτήν την τιμή Αντικαταστάτης χαρακτήρας Οι περισσότεροι ειδικοί χαρακτήρες - Δεν υπάρχει εφαρμογή εγκατεστημένη για την αναπαραγωγή αυτού του αρχείου + Δεν υπάρχει εγκατεστημένη εφαρμογή για την αναπαραγωγή αυτού του αρχείου Σχετικά με το NewPipe Περί Άδειες Τρίτων © %1$s από %2$s υπό %3$s Δεν ήταν δυνατή η φόρτωση της άδειας Περί - Συνεισφέροντες + Συντελεστές Ανοιχτού κώδικα, ελαφριά εφαρμογή Android, για την αναπαραγωγή πολυμέσων από το διαδίκτυο. Συνεισφέρετε - Αν έχετε ιδέες για μετάφραση, αλλαγή σχεδιασμού, εκκαθάριση ή ριζικές αλλαγές κώδικα της εφαρμογής—η βοήθεια σας είναι πάντα ευπρόσδεκτη. Όσο περισσότερη έχουμε, τόσο καλύτεροι γινόμαστε! + Αν έχετε ιδέες για μετάφραση, αλλαγή σχεδιασμού, εκκαθάριση ή ριζικές αλλαγές κώδικα της εφαρμογής, η βοήθεια σας είναι πάντα ευπρόσδεκτη. Όσο περισσότερη έχουμε, τόσο καλύτεροι γινόμαστε! Δείτε το στο GitHub Κάντε μια δωρεά - Το NewPipe αναπτύσσεται από εθελοντές που δαπανούν τον ελεύθερο χρόνο τους για να σας προσφέρουν τη βέλτιστη δυνατή εμπειρία χρήστη. Δώστε πίσω για να βοηθήσετε τους προγραμματιστές του NewPipe να το κάνουν ακόμα καλύτερο, όσο απολαμβάνουν ένα φλιτζάνι καφέ. - Προσφέρτε + Το NewPipe αναπτύσσεται από εθελοντές που δαπανούν τον ελεύθερο χρόνο τους για να σας προσφέρουν τη βέλτιστη δυνατή εμπειρία χρήστη. Ανταποδώστε το, για να βοηθήσετε τους προγραμματιστές του NewPipe να το κάνουν ακόμα καλύτερο, όσο απολαμβάνουν ένα φλιτζάνι καφέ. + Προσφέρετε Ιστότοπος Επισκευτείτε τον ιστότοπο του NewPipe για περισσότερες πληροφορίες και νέα. - Η πολιτική ιδιωτικού απόρρητου του NewPipe - Το NewPipe παίρνει πολύ σοβαρά το ιδιωτικό σας απόρρητο. Έτσι, η εφαρμογή αυτή δεν συλλέγει δεδομένα από εσάς χωρίς τη συγκατάθεσή σας. + Πολιτική ιδιωτικού απόρρητου του NewPipe + Το NewPipe παίρνει πολύ σοβαρά την ιδιωτικότητα σας. Έτσι, η εφαρμογή αυτή δεν συλλέγει δεδομένα από εσάς χωρίς τη συγκατάθεσή σας. \nΗ πολιτική ιδιωτικού απόρρητου του NewPipe εξηγεί λεπτομερώς ποια δεδομένα αποστέλλονται και αποθηκεύονται όταν επιλέγετε να στείλετε μια αναφορά σφαλμάτων. - Διαβάστε την πολιτική ιδιωτικού απόρρητου + Ανάγνωση της πολιτικής ιδιωτικού απόρρητου Η άδεια του NewPipe Το NewPipe είναι copylelft ελεύθερο λογισμικό: Μπορείτε να το χρησιμοποιήσετε, να το μελετήσετε, να το μοιραστείτε και να το βελτιώσετε κατά βούληση. Ειδικότερα, μπορείτε να το αναδιανείμετε ή/και να το τροποποιήσετε υπό την άδεια GNU General Public Licence όπως αυτή εκδόθηκε από το Free Software Foundation, είτε υπό την έκδοση 3 της Άδειας είτε (προεραιτικά) υπό οποιαδήποτε μεταγενέστερη άδεια. - Διαβάστε την άδεια + Ανάγνωση της άδειας Αναζητήθηκαν Προβλήθηκαν Το ιστορικό έχει απενεργοποιηθεί @@ -292,7 +292,7 @@ Περιεχόμενο της κεντρικής σελίδας Κενή σελίδα Σελίδα περιπτέρου - Σελίδα εγγραφών + Σελίδα συνδρομών Σελίδα καναλιών Επιλέξτε ένα κανάλι Δεν έχει γίνει εγγραφή σε κάποιο κανάλι ακόμα @@ -307,31 +307,31 @@ Αφαίρεση Λεπτομέρειες Ρυθμίσεις ήχου - Πιέστε για να προστεθεί στην ουρά - Εκκίνηση Αναπαραγωγής εδώ + Πιέστε παρατεταμένα για να προστεθεί στην ουρά + Εκκίνηση αναπαραγωγής εδώ Εκκίνηση αναπαραγωγής στο παρασκήνιο Εκκίνηση αναπαραγωγής σε ένα αναδυόμενο παράθυρο - Άνοιγμα Συρταριού - Κλείσιμο Συρταριού - Κάτι θα παιχτεί εδω σύντομα ;D + Άνοιγμα συρταριού + Κλείσιμο συρταριού + Κάτι θα εμφανιστεί εδώ σύντομα ;D Τοπ 50 Καινούρια και δημοφιλή - Προτιμώμενη ενέργεια ανοίγματος + Προτιμώμενη ενέργεια κοινοποίησης Προεπιλεγμένη ενέργεια για το άνοιγμα περιεχομένου — %s Συσκευή αναπαραγωγής βίντεο - Αναπαραγωγή Παρασκηνίου - Αναπαραγωγή σε Αναδυόμενο Παράθυρο + Αναπαραγωγή παρασκηνίου + Αναπαραγωγή σε αναδυόμενο παράθυρο Πάντα ερώτηση Γίνεται λήψη πληροφοριών… Γίνεται φόρτωση του ζητούμενου περιεχομένου - Νέα Λίστα Αναπαραγωγής + Νέα λίστα αναπαραγωγής Διαγραφή Μετονομασία Όνομα - Προσθήκη στη Λίστα + Προσθήκη σε λίστα αναπαραγωγής Ορισμός ως μικρογραφία λίστας αναπαραγωγής - Προσθήκη Σελιδοδείκτη στη Λίστα - Διαγραφή Σελιδοδείκτη + Προσθήκη σελιδοδείκτη στη λίστα + Διαγραφή σελιδοδείκτη Διαγραφή αυτής της λίστας αναπαραγωγής; Η λίστα αναπαραγωγής δημιουργήθηκε Προστέθηκε στη λίστα αναπαραγωγής @@ -355,7 +355,7 @@ Εισαγωγή αρχείου Προηγούμενη εξαγωγή Δεν ήταν δυνατή η εισαγωγή των εγγραφών - Δεν ήταν δυνατή η εισαγωγή των εγγραφών + Δεν ήταν δυνατή η εξαγωγή των εγγραφών Κάντε εισαγωγή των εγγραφών σας στο YouTube κατεβάζοντας το εξής αρχείο: \n \n1. Πλοηγηθήτε στο: %1$s @@ -366,7 +366,7 @@ \n1. Ενεργοποιήστε τη λειτουργία \"Desktop mode\" στον φυλλομετρητή σας (καθώς η ιστοσελίδα δεν είναι διαθέσιμη για κινητά) \n2. Πλοηθηθείτε στο %1$s \n3. Εισέλθετε στο λογαριασμό σας, όταν σας ζητηθεί -\n4. Αντιγράψτε τον σύνδεσμο του λογαριαμού στον οποίο ανακατευθυνθήκατε. +\n4. Αντιγράψτε τον σύνδεσμο του λογαριασμού στον οποίο ανακατευθυνθήκατε. Αυτή η διαδικασία μπορεί να χρησιμοποιήσει μεγάλο όγκο δεδομένων. \n \nΕπιθυμείτε να συνεχίσετε; @@ -374,16 +374,16 @@ Τέμπο Τόνος Ενέργεια κατά τη μετάβαση σε άλλη εφαρμογή — %s - Σελίδα Ροής + Σελίδα ροής Δημοφιλή Αναφορά σφαλμάτων εκτός κύκλου ζωής Το όνομα χρήστη σας, soundcloud.com/όνομαχρήστη - Αποσύνδεση (μπορεί να προκαλέσει παραμόρφωση) - Επιτάχυνση αναπαραγωγής κατά τη διάρκεια σιωπής + Απαγκίστρωση (μπορεί να προκαλέσει παραμόρφωση) + Γρήγορη αναπαραγωγή κατά τη διάρκεια της σίγασης Βήμα Επαναφορά - Προς συμμόρφωση με τον Ευρωπαϊκό Γενικό Κανονισμό για την Προστασία Δεδομένων (GDPR), σας επιστούμε την προσοχή στην πολιτική προστασίας προσωπικών δεδομένων του NewPipe. Παραλούμε, διαβάστε την προσεκτικά. -\nΘα πρέπει να την αποδεχτέιτε προκειμένου να μας αποστείλετε την αναφορά σφάλματος. + Προς συμμόρφωση με τον Ευρωπαϊκό Γενικό Κανονισμό για την Προστασία Δεδομένων (GDPR), σας εφιστούμε την προσοχή στην πολιτική προστασίας προσωπικών δεδομένων του NewPipe. Παραλούμε, διαβάστε την προσεκτικά. +\nΘα πρέπει να την αποδεχτείτε προκειμένου να μας αποστείλετε την αναφορά σφάλματος. Αποδοχή Απόρριψη Χωρίς όριο @@ -395,9 +395,9 @@ Απεγγραφή Νέα Καρτέλα Επιλογή Καρτέλας - Ρυθμίσεις χειρονομιών ήχου - Χρησιμοποιήστε χειρονομίες για τον έλεγχο έντασης του ήχου - Ρυθμίσεις χειρονομιών φωτεινότητας + Έλεγχος ήχου με χειρονομιές + Χρησιμοποιήστε χειρονομίες για τον έλεγχο της έντασης του ήχου + Έλεγχος φωτεινότητας με χειρονομίες Χρησιμοποιήστε χειρονομίες για τον έλεγχο φωτεινότητας Ενημερώσεις Συμβάντα @@ -406,51 +406,51 @@ Ειδοποίηση για νεότερη έκδοση του NewPipe Εξωτερική μνήμη αποθήκευσης μη διαθέσιμη Η αποθήκευση στην SD κάρτα δεν είναι δυνατή. Επαναφορά στην αρχική τοποθεσία λήψης; - Δεν ήταν δυνατή η ανάγνωση αποθηκευμένων καρτελών, επομένως χρήση προεπιλεγμένων καρτελών + Δεν ήταν δυνατή η ανάγνωση των αποθηκευμένων καρτελών. Θα γίνει χρήση των προεπιλεγμένων Επαναφορά προεπιλεγμένων ρυθμίσεων - Θέλετε να επαναφέρετε τις προεπιλογές; + Θέλετε να επαναφέρετε τις προεπιλεγμένες ρυθμίσεις; Ο αριθμός συνδρομητών δεν είναι διαθέσιμος Ποιές καρτέλες θα εμφανίζονται στην αρχική σελίδα Επιλογή Συνέδρια Ενημερώσεις Εμφάνιση ειδοποίησης όταν μια υπάρχει μια νεότερη έκδοση - Λειτουργία προβολής ως λίστα + Προβολή λίστας Λίστα Πλέγμα Αυτόματα Αλλαγή τρόπου προβολής - Νέα έκδοση του NewPipe είναι διαθέσιμη! + Μια νέα έκδοση του NewPipe είναι διαθέσιμη! Πατήστε για λήψη Ολοκληρώθηκε Εκκρεμεί - Παύση - στην ουρά - Μετεπεξεργασία + σε παύση + σε ουρά + σε μετεπεξεργασία Ουρά - Η δράση απορρίφθηκε από το σύστημα + Η ενέργεια απορρίφθηκε από το σύστημα Η λήψη απέτυχε Η λήψη ολοκληρώθηκε - %s λήψεις ολοκρηρώθηκαν + %s λήψεις ολοκληρώθηκαν Δημιουργία μοναδικού ονόματος Αντικατάσταση Ένα αρχείο με αυτό το όνομα υπάρχει ήδη - Ένα αρχείο που έχει ληφθεί με αυτό το όνομα υπάρχει ήδη + Ένα ληφθέν αρχείο με αυτό το όνομα υπάρχει ήδη Υπάρχει μια λήψη σε εξέλιξη με αυτό το όνομα Εμφάνιση σφάλματος - Κωδικός + Κώδικας Δεν είναι δυνατή η δημιουργία του φακέλου προορισμού Δεν είναι δυνατή η δημιουργία του αρχείου - Η αδειοδότηση απορρίφθηκε απο το σύστημα + Η άδεια απορρίφθηκε από το σύστημα Δεν ήταν δυνατή η δημιουργία ασφαλούς σύνδεσης Αδυναμία εύρεσης του εξυπηρετητή Αδυναμία σύνδεσης με τον εξυπηρετητή - Ο εξυπηρετητής δεν μπορεί να στείλει τα δεδομένα - Ο εξυπηρετητής δέν υποστηρίζει πολυνηματικές λήψεις, ξαναπροσπαθήστε με @string/msg_threads = 1 - Δεν βρέθηκε - Μετεπεξεργασία απέτυχε + Ο εξυπηρετητής δεν στέλνει δεδομένα + Ο εξυπηρετητής δεν υποστηρίζει πολυνηματικές λήψεις, ξαναπροσπαθήστε με @string/msg_threads = 1 + Δε βρέθηκε + Η μετεπεξεργασία απέτυχε Διακοπή - Μέγιστες επαναπροσπάθειες + Μέγιστος αριθμός προσπαθειών Μέγιστος αριθμός προσπαθειών προτού γίνει ακύρωση της λήψης Διακοπή σε δίκτυα με ογκοχρέωση Χρήσιμο κατά τη μετάβαση σε δεδομένα κινητής τηλεφωνίας, αν και ορισμένες λήψεις δεν μπορούν να ανασταλούν @@ -460,7 +460,7 @@ Χωρίς σχόλια Δεν ήταν δυνατή η φόρτωση σχολίων Κλείσιμο - Συνέχιση αναπαραγωγής + Ανάκτηση αναπαραγωγής Επαναφορά της τελευταίας θέσης αναπαραγωγής Θέσεις στις λίστες Εμφάνιση ενδείξεων θέσης αναπαραγωγής στις λίστες @@ -468,17 +468,17 @@ Οι θέσεις αναπαραγωγής διαγράφηκαν. Το αρχείο μετακινήθηκε ή διαγράφηκε δεν είναι δυνατή η αντικατάσταση του αρχείου - Υπάρχει μια εκκρεμή λήψη με αυτό το όνομα - Το NewPipe έκλεισε, ενώ εργάζονται στο αρχείο - Δεν είναι αρκετός ο χώρος στη συσκευή + Υπάρχει μια εκκρεμής λήψη με αυτό το όνομα + Το NewPipe τερματίστηκε ενώ επεξεργάζονταν το αρχείο + Δεν υπάρχει αρκετός χώρος στη συσκευή Η πρόοδος χάθηκε, επειδή το αρχείο διαγράφηκε Λήξη χρονικού ορίου σύνδεσης Θέλετε να διαγράψετε το ιστορικό λήψεων σας ή να διαγράψετε όλα τα αρχεία που έχετε λάβει; Περιορισμός ουράς λήψης - Μια λήψη θα εκτελεστεί ταυτόχρονα + Μόνο μια λήψη θα εκτελείται κάθε φορά Έναρξη λήψεων Παύση λήψεων - Ερώτηση που να γίνει η λήψη + Ερώτηση πού να γίνει η λήψη Θα ερωτηθείτε πού να αποθηκεύσετε κάθε λήψη Θα σας ζητηθεί πού να αποθηκεύσετε κάθε λήψη. \nΕπιλέξτε SAF αν θέλετε να κατεβάσετε σε μια εξωτερική κάρτα SD @@ -489,7 +489,7 @@ Διαγράφει όλες τις θέσεις αναπαραγωγής Να διαγραφούν όλες οι θέσεις αναπαραγωγής; Αλλαγή των φακέλων λήψης για να τεθούν σε ισχύ - Εναλλαγή υπηρεσιών, επιλεγμένη αυτήν τη στιγμή: + Εναλλαγή υπηρεσιών, επιλεγμένη αυτή τη στιγμή: Κανείς δεν παρακολουθεί %s παρακολουθεί @@ -500,15 +500,15 @@ %s ακροατής %s ακροατές - Η γλώσσα θα αλλάξει μόλις θα επανεκκινηθεί η εφαρμογή. + Η γλώσσα θα αλλάξει αφού επανεκκινηθεί η εφαρμογή. Προεπιλεγμένο περίπτερο - Υποστηρίζονται μόνο HTTPS URLς - Τοπικό - Προστέθηκε πρόσφατα + Μόνο HTTPS σύνδεσμοι υποστηρίζονται + Τοπικά + Προστέθηκαν πρόσφατα Δημιουργήθηκε αυτόματα (δεν βρέθηκε χρήστης μεταφόρτωσης) - Ανάκτηση + σε ανάκτηση Δεν είναι δυνατή η ανάκτηση αυτής της λήψης - Διάρκεια fastforward και rewind + Διάρκεια αναζήτησης fast-forward και rewind Προεπιλογή συστήματος Βίντεο Εμφάνιση αποτελεσμάτων για: %s @@ -521,15 +521,15 @@ Δημιουργήθηκε από %s Σελίδα λίστας αναπαραγωγής Από %s - Διαθέσιμο σε ορισμένες υπηρεσίες, είναι συνήθως πολύ πιο γρήγορο, αλλά μπορεί να επιστρέψει έναν περιορισμένο αριθμό αντικειμένων και συχνά ελλιπείς πληροφορίες (π.χ. χωρίς διάρκεια, τύπο αντικειμένου, χωρίς ζωντανή κατάσταση). + Διαθέσιμο σε ορισμένες υπηρεσίες, είναι συνήθως πολύ πιο γρήγορο, αλλά μπορεί να επιστρέψει έναν περιορισμένο αριθμό αντικειμένων και συχνά ελλειπείς πληροφορίες (π.χ. χωρίς διάρκεια, τύπο αντικειμένου). Λήψη από ειδική ροή όταν είναι διαθέσιμη Να γίνεται πάντα ενημέρωση - Ώρα μετά την τελευταία ενημέρωση πριν από μια συνδρομή θεωρείται ξεπερασμένη — %s + Χρόνος μετά την τελευταία ενημέρωση πριν μια συνδρομή θεωρηθεί ξεπερασμένη — %s Όριο ενημέρωσης ροής Ροή Εμφάνιση μόνο μη ομαδοποιημένων συνδρομών Νέα - Θέλετε να διαγράψετε αυτήν την ομάδα; + Θέλετε να διαγράψετε αυτή την ομάδα; Κενό όνομα ομάδας Δεν έχει επιλεγεί συνδρομή Επιλέξτε συνδρομές @@ -550,13 +550,13 @@ Τραγούδια Αυτό το βίντεο έχει περιορισμό ηλικίας. \n -\nΕνεργοποιήστε το \"Περιεχόμενο περιορισμένης ηλικίας\" στις ρυθμίσεις εάν θέλετε να το δείτε. - Λειτουργία περιορισμένης πρόσβασης στο YouTube +\nΕνεργοποιήστε το \"%1$s\" στις ρυθμίσεις εάν θέλετε να το δείτε. + Λειτουργία περιορισμένης πρόσβασης του YouTube Ειδοποίηση Δεν ήταν δυνατή η αναγνώριση της διεύθυνσης URL. Άνοιγμα με άλλη εφαρμογή; Αυτόματη ουρά - Η ουρά ενεργού παίκτη θα αντικατασταθεί - Η εναλλαγή από έναν παίκτη σε άλλο μπορεί να αντικαταστήσει την ουρά σας + Η ουρά του ενεργού αναπαραγωγού θα αντικατασταθεί + Η εναλλαγή από έναν αναπαραγωγό σε άλλον, μπορεί να αντικαταστήσει την ουρά σας Ζητήστε επιβεβαίωση πριν από την εκκαθάριση μιας ουράς Τίποτα Ανάμιξη @@ -568,7 +568,73 @@ Κουμπί τρίτης ενέργειας Κουμπί δεύτερης ενέργειας Κουμπί πρώτης ενέργειας - Κλιμάκωση της μικρογραφίας βίντεο που εμφανίζεται στην ειδοποίηση από 16:9 σε αναλογία διαστάσεων 1:1 (μπορεί να προκαλέσει στρεβλώσεις) + Κλιμάκωση της μικρογραφίας βίντεο που εμφανίζεται στην ειδοποίηση από 16:9 σε αναλογία διαστάσεων 1:1 (μπορεί να προκαλέσει παραμορφώσεις) Κλιμάκωση μικρογραφίας σε αναλογία διαστάσεων 1:1 Φόρτωση + Πιστεύετε ότι η ροή φορτώνει πολύ αργά; Δοκιμάστε να ενεργοποιήσετε τη γρήγορη φόρτωση (από τις ρυθμίσεις ή το παρακάτω κουμπί). +\n +\nΤο NewPipe προσφέρει δύο στρατηγικές φόρτωσης: +\n- Λήψη ολόκληρου του καναλιού της συνδρομής, η οποία είναι αργή αλλά πλήρης. +\n- Χρήση ενός αποκλειστικού τελικού σημείου υπηρεσίας, η οποία είναι γρήγορη αλλά συνήθως όχι πλήρης. +\n +\nΤο YouTube είναι ένα παράδειγμα χρήσης της δεύτερης μεθόδου. +\n +\nΣυνεπώς επιλέγετε ανάλογα: ταχύτητα ή ακριβείς πληροφορίες. + Η ροή ανανεώθηκε: %s + Φόρτωση ροής… + Επεξεργασία ροής… + + %d επιλέχθηκε + %d επιλέχθηκαν + + Δεν φορτώθηκε: %d + Οι ομάδες του καναλιού + + %d ημέρα + %d ημέρες + + + %d ώρα + %d ώρες + + + %d λεπτό + %d λεπτά + + + %d δευτερόλεπτο + %d δευτερόλεπτα + + Λόγω περιορισμών του ExoPlayer, η διάρκεια αναζήτησης ορίστηκε στα %d δευτερόλεπτα + Ναι. Και τα μερικώς θεαθέντα βίντεο + Τα βίντεο που εθεάθησαν πριν και αφού προστέθηκαν στη λίστα αναπαραγωγής θα απομακρυνθούν +\nΕίστε σίγουρος; Δεν μπορεί να αναιρεθεί! + Απομάκρυνση θεαθέντων βίντεο; + Απομάκρυνση όσων θεάθησαν + Γλώσσα εφαρμογής + Επιλογή μιας instance + Διαγράφηκαν %1$d λήψεις + Διαγραφή ληφθέντων αρχείων + Εκκαθάριση ιστορικού λήψεων + Ποτέ + Μόνο με Wi-Fi + Αυτόματη έναρξη αναπαραγωγής — %s + Τα αυθεντικά κείμενα των υπηρεσιών θα εμφανίζονται στα αντικείμενα ροής + Εμφάνιση διαρροών μνήμης + Αποσίγαση + Προστέθηκε στην ουρά + Προσθήκη στην ουρά + Πιο αγαπημένα + Παρακαλούμε ελέγξτε αν το πρόβλημα σας έχει ήδη αναφερθεί. Οι διπλές αναφορές μας στερούν το χρόνο που θα μπορούσαμε να διαθέσουμε για την επίλυση του προβλήματος. + Εκκαθάριση των cookies που αποθηκεύει η εφαρμογή όταν λύνετε ένα reCAPTCHA + Τα reCAPTCHA cookies εκκαθαρίστηκαν + Εκκαθάριση reCAPTCHA cookies + Το YouTube διαθέτει \"Περιορισμένη Λειτουργία\" η οποία κρύβει πιθανώς ακατάλληλο περιεχόμενο. + Εμφάνιση πιθανώς ακατάλληλου περιεχομένου (18+). + Το instance υπάρχει ήδη + Αδυναμία πιστοποίησης του instance + Προσθέστε την URL του instance + Προσθήκη instance + Βρείτε τα instances που σας αρέσουν στο %s + Επιλογή των αγαπημένων σας PeerTube instances \ No newline at end of file From 5f3196b74c330c6049e5dda488493a6fa57548dc Mon Sep 17 00:00:00 2001 From: Oymate Date: Sat, 7 Nov 2020 06:35:37 +0000 Subject: [PATCH 114/231] Translated using Weblate (Bengali) Currently translated at 77.9% (470 of 603 strings) --- app/src/main/res/values-bn/strings.xml | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index ccb5671c9..5a9c27d09 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -427,4 +427,43 @@ নির্বাচন তালিকায় প্লেব্যাক অবস্থান সূচক দেখাও স্বত-সারি + সংযোগের সময় শেষ + পোস্ট-প্রক্রিয়াকরণ ব্যর্থ হয়েছে + প্রদর্শন পরিবর্তন করো + তোমার আইডি, soundcloud.com/আইডি + আগের রপ্তানি + ফাইল আমদানি করো + রপ্তানি করো + আমদানি করো + বুকমার্ক প্লেলিস্ট + তথ্য আনা হচ্ছে… + পপআপ প্লেয়ার + পটভূমি প্লেয়ার + প্লে সারি + সর্বোচ্চ পছন্দ + ফিড পৃষ্ঠা + সদস্যতা পৃষ্ঠা + ডিফল্ট কিয়স্ক + কিয়স্ক পৃষ্ঠা + প্রতিস্থাপক অক্ষর + + %sটি ভিডিও + %sটি ভিডিও + + ∞ ভিডিও + ১০০+ ভিডিও + + %s জন শ্রোতা + %s জন শ্রোতা + + + %s জন দেখছে + %s জন দেখছে + + + %s বার দেখা + %s বার দেখা + + সারিবদ্ধ করা হয়েছে + এনকুই \ No newline at end of file From bbc4174501268d7f94c05aab2cd92bfc65cf4092 Mon Sep 17 00:00:00 2001 From: Gontzal Manuel Pujana Onaindia Date: Fri, 6 Nov 2020 14:25:09 +0000 Subject: [PATCH 115/231] Translated using Weblate (Basque) Currently translated at 16.6% (6 of 36 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/eu/ --- fastlane/metadata/android/eu/changelogs/910.txt | 1 + fastlane/metadata/android/eu/changelogs/950.txt | 4 ++++ fastlane/metadata/android/eu/changelogs/953.txt | 1 + fastlane/metadata/android/eu/changelogs/955.txt | 3 +++ fastlane/metadata/android/eu/full_description.txt | 1 + fastlane/metadata/android/eu/short_description.txt | 1 + 6 files changed, 11 insertions(+) create mode 100644 fastlane/metadata/android/eu/changelogs/910.txt create mode 100644 fastlane/metadata/android/eu/changelogs/950.txt create mode 100644 fastlane/metadata/android/eu/changelogs/953.txt create mode 100644 fastlane/metadata/android/eu/changelogs/955.txt create mode 100644 fastlane/metadata/android/eu/full_description.txt create mode 100644 fastlane/metadata/android/eu/short_description.txt diff --git a/fastlane/metadata/android/eu/changelogs/910.txt b/fastlane/metadata/android/eu/changelogs/910.txt new file mode 100644 index 000000000..7181320c5 --- /dev/null +++ b/fastlane/metadata/android/eu/changelogs/910.txt @@ -0,0 +1 @@ +NewPipe kasu arraro batzuetan hastea eragozten zuen datu base migrazioa konponduta. diff --git a/fastlane/metadata/android/eu/changelogs/950.txt b/fastlane/metadata/android/eu/changelogs/950.txt new file mode 100644 index 000000000..ecffccd78 --- /dev/null +++ b/fastlane/metadata/android/eu/changelogs/950.txt @@ -0,0 +1,4 @@ +Bertsio honek hiru konponketa txiki dakartza: +• Biltegirako sarbidea konpondu da Android 10+ bertsioan +• Kioskoen irekitzea konpondu dira +• Bideo luzeen iraupenaren analisia konpondu da diff --git a/fastlane/metadata/android/eu/changelogs/953.txt b/fastlane/metadata/android/eu/changelogs/953.txt new file mode 100644 index 000000000..5d3b249e4 --- /dev/null +++ b/fastlane/metadata/android/eu/changelogs/953.txt @@ -0,0 +1 @@ +YouTube-ren deszifratze funtzioaren erauzketa konpondu da. diff --git a/fastlane/metadata/android/eu/changelogs/955.txt b/fastlane/metadata/android/eu/changelogs/955.txt new file mode 100644 index 000000000..97b53b843 --- /dev/null +++ b/fastlane/metadata/android/eu/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Konpondu bilaketa erabiltzaile batzuentzat +[YouTube] Konpondu salbuespenak ausaz deszifratzean +[SoundCloud] Barra batekin amaitzen diren URLak orain ondo analizatzen dira diff --git a/fastlane/metadata/android/eu/full_description.txt b/fastlane/metadata/android/eu/full_description.txt new file mode 100644 index 000000000..e43066e6c --- /dev/null +++ b/fastlane/metadata/android/eu/full_description.txt @@ -0,0 +1 @@ +NewPipe-k ez du Google liburutegirik edo YouTuben APIa erabiltzen. Webgunea aztertzen du, behar duen informazioa lortzeko. Hori dela eta, aplikazio hau Google Zerbitzuak instalatu gabeko gailuetan erabili daiteke. Gainera, ez duzu YouTube konturik behar NewPipe erabiltzeko, eta FLOSS da. diff --git a/fastlane/metadata/android/eu/short_description.txt b/fastlane/metadata/android/eu/short_description.txt new file mode 100644 index 000000000..f7f121a48 --- /dev/null +++ b/fastlane/metadata/android/eu/short_description.txt @@ -0,0 +1 @@ +Android-erako doako YouTube frontend arina. From 9228511527c3fd285611d170bf3da9375b9cae8a Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Fri, 6 Nov 2020 13:49:13 +0000 Subject: [PATCH 116/231] Translated using Weblate (Santali) Currently translated at 7.9% (48 of 603 strings) --- app/src/main/res/values-sat/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 7d2f16bfc..6e8842e29 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -18,8 +18,10 @@ ᱟᱢᱟᱜ ᱚᱨᱛᱷᱚ \"%1$s\" ᱥᱮ\? ᱥᱴᱨᱤᱢ ᱨᱮᱫ ᱰᱟᱩᱱᱞᱳᱰ ᱢᱮᱸ ᱯᱚᱯᱚᱯ ᱢᱳᱰ ᱨᱮ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮᱸ - ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ (ᱟᱢ VLC ᱯᱞᱮᱭᱟᱹᱨ ᱵᱚᱦᱟᱞ ᱠᱟᱛᱮ ᱚᱱᱟ ᱨᱮ ᱯᱞᱮ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ) ᱾ + ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ (ᱟᱢ VLC ᱯᱞᱮᱭᱟᱹᱨ ᱵᱚᱦᱟᱞ ᱠᱟᱛᱮ ᱚᱱᱟ ᱨᱮ ᱯᱞᱮ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ)᱾ ᱚᱠᱟ ᱥᱴᱨᱤᱢ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱟᱭ ᱧᱟᱢ ᱞᱮᱱᱟ ᱾ VLC ᱵᱚᱦᱟᱞ ᱟᱢ ᱥᱮ\? %1$s ᱨᱮ ᱩᱪᱷᱟᱹᱱ ᱮᱱᱟ ᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ + ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ + ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱵᱽ ᱮᱱᱟ \ No newline at end of file From a310a06e3c825293deda86d078b5b444ac4b58f2 Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Sat, 7 Nov 2020 22:00:22 +0100 Subject: [PATCH 117/231] Added translation using Weblate (Uzbek (latin)) --- app/src/main/res/values-b+uz+Latn/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-b+uz+Latn/strings.xml diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From c2b4b0490bb3c3a0ac349facf2b80036297233ea Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 7 Nov 2020 22:00:26 +0100 Subject: [PATCH 118/231] Added translation using Weblate (Uzbek (latin)) --- fastlane/metadata/android/nl_BE/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/nl_BE/changelogs/955.txt | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 fastlane/metadata/android/nl_BE/changelogs/954.txt create mode 100644 fastlane/metadata/android/nl_BE/changelogs/955.txt diff --git a/fastlane/metadata/android/nl_BE/changelogs/954.txt b/fastlane/metadata/android/nl_BE/changelogs/954.txt new file mode 100644 index 000000000..a9b047026 --- /dev/null +++ b/fastlane/metadata/android/nl_BE/changelogs/954.txt @@ -0,0 +1,9 @@ +• nieuwe applicatieflow: speel video af op detailpagina, swipe naar beneden om speler te minimaliseren +• MediaStyle notificaties: personaliseerbare acties in meldingen, performantieverbeteringen +• basis herschalen voor NewPipe als bureaublad-app + +• toon dialoog met opties om te openen na niet-ondersteunde URL melding +• Verbeter zoeksuggestie-ervaring wanneer externe niet opgehaald kunnen worden +• Verhoog standaard videokwaliteit speler naar 720p60 (in-app) en 480p (pop-up) + +• hoop bugs opgelost… diff --git a/fastlane/metadata/android/nl_BE/changelogs/955.txt b/fastlane/metadata/android/nl_BE/changelogs/955.txt new file mode 100644 index 000000000..ec5ba6b93 --- /dev/null +++ b/fastlane/metadata/android/nl_BE/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Fix zoekfunctionaliteit voor sommige gebruikers +[YouTube] Fix willekeurige decoderingsfouten +[SoundCloud] URLs eindigend op slash worden nu correct verwerkt From 16c61a1919cb1dcd9b1afca55b983e42872121f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89frit?= Date: Sat, 7 Nov 2020 18:38:23 +0000 Subject: [PATCH 119/231] Translated using Weblate (French) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-fr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 05178080b..54a835113 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -73,7 +73,7 @@ Audio Réessayer Veuillez d’abord accorder l’accès au stockage - Appuyez sur « Rechercher » pour commencer + Appuyez sur la loupe pour commencer \n Lecture automatique Affiche les vidéos soumises à une limite d’âge. Modifier cette option est possible depuis les paramètres. @@ -160,7 +160,7 @@ Lettres et chiffres À propos de NewPipe © %1$s par %2$s sous %3$s - Que ce soit pour des idées de traductions, de changements de design, de nettoyage de code ou de gros changements de code, une aide est toujours la bienvenue. Plus on en fera, meilleur il deviendra ! + Que ce soit pour des idées de traductions, de changements de design, de nettoyage de code ou de gros changements de code, une aide est toujours la bienvenue. Plus on en fera meilleur il sera ! Impossible de modifier l’abonnement Impossible d’actualiser l’abonnement Continuer la lecture après les interruptions (ex. : appels téléphoniques) From 42e5cc3bef26564264eba6c643f175359eb6b910 Mon Sep 17 00:00:00 2001 From: Vasilis K Date: Sat, 7 Nov 2020 08:48:39 +0000 Subject: [PATCH 120/231] Translated using Weblate (Greek) Currently translated at 100.0% (603 of 603 strings) --- app/src/main/res/values-el/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 561c38215..8a3c877e3 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -637,4 +637,6 @@ Προσθήκη instance Βρείτε τα instances που σας αρέσουν στο %s Επιλογή των αγαπημένων σας PeerTube instances + Εμφάνιση αυθεντικού παρελθόντος χρόνου στα αντικείμενα + PeerTube instances \ No newline at end of file From 3e91b5a7937519c66e63e534e99272bd4930e3b5 Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Sat, 7 Nov 2020 21:36:45 +0000 Subject: [PATCH 121/231] Translated using Weblate (Uzbek (latin)) Currently translated at 7.4% (45 of 603 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index a6b3daec9..70e12d61f 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -1,2 +1,24 @@ - \ No newline at end of file + + Tashqi video pleerdan foydalanish + aylantirish + Brauzer tanlang + Bilan baham ko\'rish + %s uchun natijalar ko\'rsatilmoqda + \"%1$s\" demoqchimisiz\? + Sozlashlar + Qidirish + stream file yuklab olish + Yuklab olish + Baham ko\'rish + O\'rnatish + Brauzerda ochish + Qalqib chiqadigan rejimda ochish + Bekor qilish + Stream pleer topilmadi (uni ijro etish uchun VLC o\'rnatishingiz mumkin). + Hech qanday translatsiya pleyeri topilmadi. VLC o\'rnatilsinmi\? + %1$s tomonidan e‘lon qilingan + %1$s marta ko‘rilgan + Boshlash uchun \"Izlash\" tugmasini bosing +\n + \ No newline at end of file From 92ee5b66aba112ff21595499c9507f030ae5f07e Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 8 Nov 2020 00:48:40 +0100 Subject: [PATCH 122/231] Remove unused translation --- app/src/main/res/values-az/strings.xml | 2 -- app/src/main/res/values-pt-rPT/strings.xml | 2 -- 2 files changed, 4 deletions(-) diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 0ce733267..6deac3bee 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -88,8 +88,6 @@ Qeyri-dəqiq axtarış (videonu irəli/geri çəkmə) istifadə edin Qeyri-dəqiq axtarış pleyerə azaldılmış həssaslıqla mövqeləri daha sürətlə axtarmağa imkan verir. 5, 15 və ya 25 saniyəlik axtarış bununla işləmir. Cəld irəli/geri çəkmə müddəti - Ani pəncərənin sonuncu ölçü və mövqeyini xatırla - Ani pəncərə xüsusiyyətlərini xatırla Heç nə Buferizasiya olunur Qarışdır diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index d8a2df580..2315fc94a 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -450,7 +450,6 @@ Histórico de pesquisa removido. Limpar histórico de pesquisas Erro - Lembrar propriedades de popup Os ficheiros de vídeo transferidos são armazenados aqui Mudar para principal Esta permissão é necessária @@ -621,7 +620,6 @@ A fila do reprodutor ativo será substituída Mudar de um reprodutor para outro pode substituir a sua fila Solicitar confirmação antes de limpar uma fila - Lembrar do último tamanho e posição do popup Nada Processamento... Baralhar From 1f18fb54463ae964039ba74760f1be841481faac Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 8 Nov 2020 00:52:20 +0100 Subject: [PATCH 123/231] Remove unused "video_is_age_restricted" translations --- app/src/main/res/values-ar/strings.xml | 1 - app/src/main/res/values-b+zh+HANS+CN/strings.xml | 1 - app/src/main/res/values-be/strings.xml | 1 - app/src/main/res/values-bg/strings.xml | 1 - app/src/main/res/values-bn-rBD/strings.xml | 1 - app/src/main/res/values-bn-rIN/strings.xml | 1 - app/src/main/res/values-bn/strings.xml | 1 - app/src/main/res/values-ca/strings.xml | 1 - app/src/main/res/values-ckb/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 1 - app/src/main/res/values-da/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-el/strings.xml | 1 - app/src/main/res/values-eo/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-et/strings.xml | 1 - app/src/main/res/values-eu/strings.xml | 1 - app/src/main/res/values-fa/strings.xml | 1 - app/src/main/res/values-fi/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-gl/strings.xml | 1 - app/src/main/res/values-he/strings.xml | 1 - app/src/main/res/values-hi/strings.xml | 1 - app/src/main/res/values-hr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-in/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-ku/strings.xml | 1 - app/src/main/res/values-lt/strings.xml | 1 - app/src/main/res/values-mk/strings.xml | 1 - app/src/main/res/values-ml/strings.xml | 1 - app/src/main/res/values-ms/strings.xml | 1 - app/src/main/res/values-nb-rNO/strings.xml | 1 - app/src/main/res/values-ne/strings.xml | 1 - app/src/main/res/values-nl-rBE/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-pa/strings.xml | 1 - app/src/main/res/values-pl/strings.xml | 1 - app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-pt-rPT/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ro/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-sc/strings.xml | 1 - app/src/main/res/values-sk/strings.xml | 1 - app/src/main/res/values-sl/strings.xml | 1 - app/src/main/res/values-sq/strings.xml | 1 - app/src/main/res/values-sr/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values-ta/strings.xml | 1 - app/src/main/res/values-th/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-ur/strings.xml | 1 - app/src/main/res/values-vi/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rHK/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - 60 files changed, 60 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 45bd9a1dd..5e1c83ab3 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -108,7 +108,6 @@ تم وضعه على قائمة الانتظار في مشغل الخلفية تم وضعه على قائمة الانتظار في مشغل النافذة المنبثقة إظهار محتوى مقيد حسب العمر - إظهار الفيديو المقيد بحسب العمر. التغييرات المستقبلية ممكنة من \"الإعدادات\". بث مباشر تقرير خطأ قائمة التشغيل diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index a5052ae98..4c0577015 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -168,7 +168,6 @@ 在后台播放 内容 展示年龄限制的内容 - 显示受年龄限制的视频。可从设置允许此类内容。 直播 下载 下载 diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 0a65bda22..5f80571ac 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -100,7 +100,6 @@ Дададзена ў чаргу ў акне Кантэнт Кантэнт 18+ - Відэа з узроставымі абмежаваннямі. Дазволіць падобны кантэнт можна ў \"Наладах\". Трансляцыя Загрузкі Загрузкі diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 65e122ed2..cb2fb3941 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -80,7 +80,6 @@ Включен в опашката в нов прозорец Съдържание Съдържание за възрастни - Покажи съдържание за възрастни. Разрешаването на такова съдържание става от Настройки. НА ЖИВО Изтегляния Изтегляния diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index 1af400a5c..1e1ca5009 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -56,7 +56,6 @@ পপআপ মোডে চলছে কন্টেন্ট বয়স সীমাবদ্ধ কন্টেন্ট দেখাও - ভিডিওটিকে বয়স সীমিত করা হয়েছে। প্রথমে সেটিংসে বয়স সীমাবদ্ধ ভিডিওগুলি সক্ষম করো। লাইভ ডাউনলোডগুলি ডাউনলোডগুলি diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index 96e51912d..acf047e87 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -82,7 +82,6 @@ ডাউনলোডগুলি ডাউনলোডগুলি লাইভ - ভিডিওটিকে বয়স সীমিত করা হয়েছে। প্রথমে সেটিংসে বয়স সীমাবদ্ধ ভিডিওগুলি সক্ষম করো। বয়স সীমাবদ্ধ কন্টেন্ট দেখাও কন্টেন্ট পপআপ মোডে চলছে diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index afd9e06d6..d97093c30 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -233,7 +233,6 @@ ডাউনলোডগুলি লাইভ YouTube নিষিদ্ধ মোড - ভিডিওটিকে বয়স সীমিত করা হয়েছে। প্রথমে সেটিংসে বয়স সীমাবদ্ধ ভিডিওগুলি সক্ষম করো। বয়স সীমাবদ্ধ কন্টেন্ট দেখাও কন্টেন্ট পপআপ মোডে চলছে diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 4b3a25555..7edc68a6b 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -37,7 +37,6 @@ Depuració Contingut Desactiva les restriccions per edat - Mostra el vídeo restringit per edat. Podeu permetre aquesta mena de continguts des dels paràmetres. Directe Baixades Baixades diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index 421442971..63c32a6c2 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -585,7 +585,6 @@ پاشگه‌زبوونه‌وه‌ تراکەکان ڕێکخستنەکانی دەنگ - پیشاندانی ئەو ڤیدیۆیانەی سنوری تەمەنیان بۆ دانراوە. لە ڕێکخستنەکانەوە ڕێگەی پێدەدرێت. پرسیارت لێ دەکرێت بۆ شوێنی داگرتنی هەر پەڕگەیەک دواین کارپێکراو ناتوانرێ لیستی داگرتن دابنرێ diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index c314414d1..44fc02fc2 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -59,7 +59,6 @@ Přehrává video, když je NewPipe otevřen z jiné aplikace Obsah Zobrazit věkově omezený obsah - Zobrazit video s věkovým omezením. Změnit tuto volbu v budoucnu lze v \"Nastavení\". Živě Nebylo možné kompletně analyzovat stránku Začít klepnutím na \"Hledat\" diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 34573e745..5d1be509c 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -108,7 +108,6 @@ Føjet til pop op-afspilningskøen Indhold Aldersbegrænset indhold - Vis aldersbegrænsede videoer. Du kan tillade denne type videoer under Indstillinger. LIVE Downloads Downloads diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c7355a060..149289a84 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -57,7 +57,6 @@ Inhalt nicht verfügbar Inhalt Altersbeschränkte Inhalte anzeigen - Altersbeschränktes Video anzeigen. Spätere Änderungen sind in den Einstellungen möglich. Konnte Download-Menü nicht einrichten Live-Streams werden noch nicht unterstützt Konnte Webseite nicht vollständig analysieren diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index fd9315107..4bca46114 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -140,7 +140,6 @@ Προστέθηκε στη λίστα αναπαραγωγής αναδυόμενου παραθύρου Περιεχόμενο Εμφάνιση περιεχομένου περιορισμένης ηλικίας - Εμφάνιση βίντεο με περιορισμό ηλικίας. Μελλοντικές αλλαγές είναι δυνατές από τις ρυθμίσεις. Ζωντανά Αναφορά σφαλμάτων Κανάλια diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 7d9d0fd87..2683e092f 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -96,7 +96,6 @@ Ne povis konstrui la dosierujon de elŝuto Nunaj filmetoj ne estas ankoraŭ subtenataj Enhavo limigita al aĝo - Montri limigitan al aĝo filmeto. Postaj ŝanĝoj eblas ĉe la agordoj. Ne povis tute analizi la retejon Ne povis akiri ajnan torenton Nuna diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index e84630742..4b6065fe4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -59,7 +59,6 @@ Las transmisiones en vivo no son soportadas aún Contenido Mostrar contenido con restricción de edad - Mostrar vídeo restringido por edad. Se pueden realizar cambios futuros desde los ajustes. Toque «Buscar» para empezar \n Reproducción automática diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index f1b16effd..472341f5f 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -99,7 +99,6 @@ Lisati hüpikpleieri järjekorda Sisu Vanusepiiranguga sisu - Kuva vanusepiiranguga video. Sellist sisu saab lubada seadetes. OTSE Allalaadimised Allalaadimised diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 41caad9b5..395a9d91d 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -69,7 +69,6 @@ Laster-leiho moduan erreproduzitzen Edukia Adinez mugatutako edukia erakutsi - Erakutsi adinez mugatutako bideoa. Ezarpenetan aldaketak egin daitezke gero. Zuzenean Deskargak Deskargak diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 56c638ebf..4a99e1a17 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -45,7 +45,6 @@ در حال پخش در پس‌زمینه محتوا محتوای محدود شده بر اساس سن - نمایش ویدیوهای دارای محدودیت سنی. تغییرات آتی از طریق تنظیمات ممکن است. زنده بارگیری‌ها بارگیری‌ها diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index eec2728ff..4e9b1a5a8 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -78,7 +78,6 @@ Toistetaan ponnahdusikkunatilassa Sisältö Näytä ikärajoitettu sisältö - Ikärajoitettu video. Muuttaminen on mahdollista asetuksissa. Suora Lataukset Lataukset diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0b9ad2fb9..2048ee2f9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -76,7 +76,6 @@ Appuyez sur la loupe pour commencer \n Lecture automatique - Affiche les vidéos soumises à une limite d’âge. Modifier cette option est possible depuis les paramètres. Rapport utilisateur Signaler Impossible de configurer le menu de téléchargement diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index fc1e6cc58..4353f90a9 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -99,7 +99,6 @@ Na cola do reprodutor popup Contido Contido restrinxido para certa idade - Mostrar vídeo restrinxido por idade. Os cambios futuros son posibles na configuración. En directo Descargas Descargas diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 3193d1530..529d7b0dc 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -62,7 +62,6 @@ מתנגן בחלון צף תוכן הצגת תוכן עם הגבלת גיל - הצגת סרטונים עם הגבלת גיל. ניתן לשנות את זה בעתיד דרך ההגדרות. חי הורדות הורדות diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 3953c9667..5f630c2d3 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -106,7 +106,6 @@ पॉपअप प्लेयर की कतार पर विषयवस्तु उम्र प्रतिबंधित विषय वस्तु - उम्र प्रतिबंदित विडियो है .इस प्रकार की विषयवस्तु को अनुमति देने के लिए सेटिंग से संभव है | लाइव डाउनलोड डाउनलोड diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 4dd799854..f163ba3d0 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -76,7 +76,6 @@ Reprodukcija u skočnom prozoru Sadržaj Prikaži dobno ograničeni sadržaj - Prikaži dobno ograničeni videozapis. Buduće promjene moguće je postaviti u postavkama. Uživo Preuzimanja Preuzimanja diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 0b13e6411..a0320d867 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -57,7 +57,6 @@ Ez egy élő közvetítés, amely még nem támogatott. Automatikus lejátszás Videók automatikus lejátszása, ha a NewPipe egy másik alkalmazásból lett indítva - Korhatáros videó mutatása. Ennek a tartalomnak az engedélyezése a \"Beállítások\"-ban lehetséges. ÉLŐ JELENTÉS Információ: diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index d672a9ddd..13bad05fc 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -42,7 +42,6 @@ Memutar di latar belakang Konten Tampilkan konten yang dibatasi usia - Tampilkan video yang dibatasi usia. Bisa diubah nanti dari pengaturan. Galat jaringan Tidak bisa memuat semua thumbnail Apakah maksud anda \"%1$s\"\? diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c729da15b..e296e4a0b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -59,7 +59,6 @@ I contenuti in diretta non sono ancora supportati Contenuti Mostra Contenuti con Restrizioni di Età - Mostra video con restrizioni di età. È possibile modificare questa opzione nelle Impostazioni. Tocca «Cerca» per iniziare \n Riproduzione Automatica diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 2fd8aeb12..35c29add7 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -59,7 +59,6 @@ 生放送にはまだ対応していません コンテンツ 年齢制限のあるコンテンツを表示 - 年齢制限された動画を表示しています。設定から許可することができます。 ウェブサイトを完全には解析できませんでした 動画を取得できませんでした 申し訳ありません。発生すべきでものではありませんでした。 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 17b147eda..4713cd7db 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -55,7 +55,6 @@ NewPipe가 다른 앱에서 호출되었을 때 동영상을 재생합니다 컨텐츠 연령 제한 컨텐츠 - 연령 제한 비디오입니다. 설정 메뉴에서 시청 허용 여부를 변경하실 수 있습니다. 라이브 오류 모든 썸네일을 불러올 수 없습니다 diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index 79329ddc6..cabb49987 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -395,7 +395,6 @@ پیشاندانی ڕێنمایی ”داگرتن تا پاشکۆ” پیشاندانی ڕێنمایی کاتێ لە پاشبنەما یاخوود پەنجەرەدا گرتە دەکرێ لەسەر وردەکاری ڤیدیۆیەک پەرەسەندوو - پیشاندانی ئەو ڤیدیۆیانەی سنوری تەمەنیان بۆ دانراوە. لە ڕێکخستنەکانەوە ڕێگەی پێدەدرێت. ناتوانرێ واژووی بەستەری ڤیدیۆ بخوێنرێتەوە نەگێڕانەوەی کارپێکەر بۆ پێش کێشە ڕوویدا گێڕانەوەی کارپێکەر بۆکاتی پێش کێشە diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 9acbae03c..55d7073d0 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -163,7 +163,6 @@ Istorija ir laikmena Foninio grotuvo eilėje Įtraukta į langelio rėžimo grojimo eilę - Apriboto amžiaus vaizdo įrašas. Kad leisti tokius vaizdo įrašus eikite į nustatymus. Grojaraštis Atgal Groti viską diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 65dc451f0..d7aef8279 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -100,7 +100,6 @@ Ставено на листа, за пуштање во прозорче Содржина Покажи видеа со граница на возрастта - Видео за возрасни. Можете да дозволите вакви видеа преку Поставки. во живо Превземања Превземања diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 982d9e593..09449ec1d 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -333,7 +333,6 @@ ഈ വീഡിയോ പ്രായപരിമിതി ഉള്ളതാണ്. \n \nഇത് കാണണമെങ്കിൽ പ്രായനിയന്ത്രണ ക്രമീകരണങ്ങളിൽ മാറ്റം വരുത്തുക. - പ്രായപരിമിതിയുള്ള വീഡിയോ കാണിക്കുന്നു. ഭാവിയിൽ മാറ്റങ്ങൾ വരുത്താനാകും. പ്രായപരിമിതപ്പെടുത്തിയ കന്റെന്റ് കന്റെന്റ് പോപ്പപ്പ് പ്ലേയറിൽ ക്യൂ ചെയ്തിരിക്കുന്നു diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index 002bdf257..b5971b8ff 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -108,7 +108,6 @@ Beratur pada pemain popup Kandungan Kandungan terhad umur - Tunjukkan video terhad umur. Membenarkan bahan tersebut boleh dilakukan dari Tetapan. LANGSUNG Muat turun Muat turun diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index fad736e0a..42c576a3a 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -55,7 +55,6 @@ Spiller en video når NewPipe blir forespurt av et annet program Innhold Aldersbegrenset innhold - Vis aldersbegrenset video. Å tillate slikt materiale kan gjøres fra innstillingene. Feil Kunne ikke laste inn alle miniatyrbilder Kunne ikke dekryptere signaturen til videoens nettadresse diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 02277f32e..93790caf6 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -110,7 +110,6 @@ पपअप प्लेयरमा लामबद्ध सामग्री उमेर प्रतिबन्धित सामग्री - उमेर प्रतिबन्धित भिडियोहरु देखाऊ। भविष्यमा यो सेटिङ परिवर्तन सम्भव छ। प्रत्यक्ष डाउनलोडहरु डाउनलोडहरु diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 2d4b30bb0..4ff04b818 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -101,7 +101,6 @@ Toegevoegd aan wachtrij voor pop-upspeler Inhoud Toon inhoud met leeftijdsbeperking - Toont video met leeftijdsbeperking. Toelaten van deze soort video’s kan ingeschakeld worden in de Instellingen. Live Downloads Downloads diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 1b6932d9e..72402a0f3 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -46,7 +46,6 @@ Speelt af op achtergrond Inhoud Toon inhoud met leeftijdsbeperking - Toon video met leeftijdsbeperking. Toestaan van dit soort video’s kan worden ingeschakeld in de Instellingen. Fout Netwerkfout Kan niet alle miniatuurvoorbeelden laden diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index dde966622..c6f79674a 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -99,7 +99,6 @@ ਪੌਪ-ਅਪ ਪਲੇਯਰ ਵਿੱਚ ਕਤਾਰਬੱਧ Content ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ Content - ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਦਿਖਾਓ ਸੈਟਿੰਗਸ ਤੋਂ ਅਜਿਹੀ ਸਮੱਗਰੀ ਦੀ ਆਗਿਆ ਦੇਣੀ ਸੰਭਵ ਹੈ. ਲਾਈਵ ਡਾਊਨਲੋਡਸ ਡਾਊਨਲੋਡਸ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index aa30ab6e3..feaca1a57 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -46,7 +46,6 @@ Odtwarzanie w tle Zawartość Pokaż treści z ograniczeniem wiekowym - Pokaż wideo z ograniczeniami wiekowymi. Przyszłe zmiany są możliwe z poziomu ustawień. Na żywo Pobrane Pobrane diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 9efb53b21..6619b4823 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -7,7 +7,6 @@ Informação: %1$s visualizações Reproduzir - Mostrar vídeo com restrição de idade. É possível alterar esta opção no menu de configurações. Vídeo Reproduz um vídeo se NewPipe for chamado por outro app Autoreprodução diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 2315fc94a..7e0c95ba8 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -103,7 +103,6 @@ Adicionar a Remove todas as posições de reprodução Criar - Mostrar vídeo com restrição de idade. Alterações serão possíveis nas definições. Alternar orientação Subscrever Artistas diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index df08f4912..bbab1f55a 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -57,7 +57,6 @@ Conteúdo indisponível Conteúdo Mostrar conteúdo com restrição de idade - Mostrar vídeo com restrição de idade. Alterações serão possíveis nas definições. Não foi possível processar totalmente o site Não foi possível configurar o menu de descargas As emissões em direto ainda não são suportadas diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index e3a47ae38..5d5413284 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -43,7 +43,6 @@ Redare în fundal Conținut Conținut restricționat în funcție de vârstă - Afișează videoclipuri restricționate în funcție de vârstă. Permiterea vizionării este posibilă din Setări. Eroare Eroare de rețea Nu s-au putut încărca toate thumbnail-urile diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 28e164c09..3a3868d9e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -72,7 +72,6 @@ Автовоспроизведение Воспроизводить видео при вызове NewPipe из другого приложения Контент - Видео с возрастными ограничениями. Разрешить подобный контент можно в \"Настройках\" Трансляция Загрузки Загрузки diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 7a1db4fb6..dfc055fad 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -484,7 +484,6 @@ Iscarrigamentos In direta Allughe sa modalidade cun restritziones de YouTube - Ammustra su vìdeu limitadu pro edade. Podes mudare custa optzione dae sas impostatziones. Ammustra sos cuntenutos limitados pro edade Cuntenutos Postu in lista in su riproduidore a ventanedda diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 84f21f6ba..eed0cfee2 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -61,7 +61,6 @@ Prehrá video pri zavolaní NewPipe inou aplikáciou Obsah Zobraziť vekovo obmedzený obsah - Zobrazit video s vekovým obmezením. Zmenit túto voľbu môžete v nastaveniach. Naživo Nemožno kompletne zanalyzovať web Nemožno nastaviť menu preberania diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 15781aa36..f3266c5f9 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -59,7 +59,6 @@ Posnetek je pretok v živo. Ta vrsta prenosa še ni podprta. Vsebina Pokaži starostno omejeno vsebino - Starostna omejitev ogleda. Pred ogledom tovrstnih posnetkov, je treba ustrezno nastaviti omejitve. Ni mogoče dokončno razčleniti spletišča. Ni mogoče pridobiti pretoka. Do te napake naj ne bi prišlo. diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 2fe7b6fda..2dbcb907e 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -521,7 +521,6 @@ Kjo video ka kufizime moshe. \n \nAktivizoni \"Përmbajtje me moshë të kufizuar\" tek aranzhimet nëse doni ta shihni. - Shfaq videot me moshë të kufizuar. Ndryshime të tjera janë të mundura nga aranzhimet. Përmbajtje me moshë të kufizuar U radhit në luajtësin popup U radhit në luajtësin në sfond diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 988365715..3bebcbdeb 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -57,7 +57,6 @@ Садржај није доступан Садржај Прикажи старосно-ограничени садржај - Старосно-ограничени видео. Премошћавање је доступно у поставкама. Не могу да поставим мени преузимања Ово је ТОК УЖИВО, ово још није подржано. Не могу да рашчланим веб-сајт у целости diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index f610ca83a..b2963efd1 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -59,7 +59,6 @@ Spelar upp i popup-läge Innehåll Åldersbegränsat innehåll - Videon är åldersbegränsad. Du kan aktivera åldersbegränsade videor i inställningar. Live Nedladdningar Nedladdningar diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index be7974840..2fe785b1e 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -122,7 +122,6 @@ வயது வரம்புக்கு உட்பட்டது அடுத்த தாரையில் தானாக சேர் பின்னணி இயக்கியின் வரிசையில் சேர்க்கப்பட்டது - அமைப்புகள் மூலம் வயது வரையறுக்கப்பட்ட வீடியோக்கலை காணலாம். பிழை அறிக்கை சேனல் சேனல்கள் diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 844fe672e..867cd2106 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -108,7 +108,6 @@ จัดคิวลงในการเล่นโหมดป๊อปอัพแล้ว เนื้อหา เนื้อหาที่จำกัดอายุ - แสดงวิดีโอที่จำกัดอายุ การอนุญาตดังกล่าวเป็นไปได้จากการตั้งค่า สด ดาวน์โหลด ดาวน์โหลด diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8c82b2839..8125ce123 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -46,7 +46,6 @@ Arka planda oynatılıyor İçerik Yaş kısıtlı içeriği göster - Yaş kısıtlamalı videoyu göster. Daha sonra ayarlardan değiştirilebilir. Canlı İndirilenler İndirilenler diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 128dca5fa..a2e1e8409 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -45,7 +45,6 @@ Немає доступу до накопичувача Контент Контент з віковими обмеженнями - Показувати відео з віковими обмеженнями. Надалі дозволити програвання таких відео можна у налаштуваннях. Наживо Помилка Помилка мережі diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index a759e397c..1ad5f7347 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -99,7 +99,6 @@ پاپ اپ پلیئر میں شامل ہوئی مشمول نازیبا مشمولات - نازیبا ویڈیو دکھائی دے گی۔ ترتیبات سے اس طرح کی مشمولات کی اجازت ممکن ہے۔ براہ راست ڈاؤن لوڈز ڈاؤن لوڈز diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 006be9a08..1f13948c1 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -57,7 +57,6 @@ Phát ở chế độ popup Nội dung Cho phép nội dung có giới hạn độ tuổi - Hiện video có giới hạn độ tuổi. Có thể thay đổi trong phần Cài đặt. Trực tiếp Tải xuống Tải xuống diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f778b8070..853d8a3d8 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -167,7 +167,6 @@ 在后台播放 内容 受年龄限制的内容 - 显示受年龄限制的视频。可从设置允许此类内容。 直播 下载 下载 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index b42f8dba9..2463995af 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -56,7 +56,6 @@ 當 NewPipe 被其他程式調用時播放視頻 內容 顯示已設年齡限制的影片 - 此影片設有年齡限制。若要觀看,請先在設定中解除年齡限制。 直播 問題 無法載入全部縮圖 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 4d559596b..0feef39b6 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -71,7 +71,6 @@ 以懸浮視窗播放中 內容 顯示年齡限制內容 - 顯示有年齡限制的影片。未來仍可從設定中變更。 下載 下載 錯誤回報 From f07a6d03b5e566f8076c51aef9c3d194b4c9f244 Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Sat, 7 Nov 2020 22:44:38 +0000 Subject: [PATCH 124/231] Translated using Weblate (Uzbek (latin)) Currently translated at 20.3% (123 of 603 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 70e12d61f..87827c013 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -21,4 +21,82 @@ %1$s marta ko‘rilgan Boshlash uchun \"Izlash\" tugmasini bosing \n + Player yorqinligini va ovoz balandligini boshqarish uchun imo-ishoralardan foydalanish + Player imo-ishoralarini boshqarish + Player tovushini boshqarish uchun imo-ishoralardan foydalanish + Player yorqinligini boshqarish uchun imo-ishoralardan foydalaning + Yorqinlik ishoralarini boshqarish + Ovoz balandligini ishoralarni boshqarish + Avto-navbat + Tegishli stream qo\'shib, ijro etish navbatini tugatishni (takrorlanmaydigan) davom ettirish + avtomatik navbat next stream + Metadata keshi o\'chirildi + Barcha keshlangan veb-sahifa ma\'lumotlarini olib tashlash + Keshlangan metadatalarni o\'chirish + Rasm keshi o\'chirildi + Eskizlarni yuklash, ma\'lumotlarni tejash va xotiradan foydalanishni oldini olish uchun o\'chirib qo\'ying. O\'zgarishlar xotiradagi va diskdagi rasm keshini tozalaydi. + sharhlarni yashirishni o\'chirish + Izohlarni ko\'rsatish + Eskizlarni yuklang + Aktiv ijro etish navbati almashtiriladi + Bir ijro etishdan boshqasiga o\'tish sizning navbatingizni almashtirishi mumkin + Navbatni tozalashdan oldin tasdiqlashni so\'rash + Oldinga tez / oldinga siljish davomiyligini qidirish + Noto\'g\'ri izlash ijro etuvchiga aniqlikni pasayishi bilan tezroq pozitsiyalarni qidirishga imkon beradi. 5, 15 yoki 25 soniyani qidirish bu bilan ishlamaydi. + Tez aniq bo\'lmagan izlashdan foydalanish + Qora + qorong\'i + Yorug\' + Tema + Standart video format + Standart audio format + Audio + Hech narsa + Buferlash + Aralash + Takrorlash + Bildirishnomada ko\'rsatish uchun eng ko\'p uchta amalni tanlashingiz mumkin! + Quyidagi har bir bildirishnomani ustiga bosib uni tahrir qiling. O\'ng tomondagi katakchalar yordamida ixcham bildirishnomada ko\'rsatilishi uchun ulardan uchtasini tanlang. + Beshinchi harakat tugmasi + To\'rtinchi harakat tugmasi + Uchinchi harakat tugmasi + Ikkinchi harakat tugmasi + Birinchi harakat tugmasi + Bildirishnomada ko\'rsatilgan video eskizini 16: 9dan 1: 1 gacha tomonlarning nisbatiga qarab o\'lchamang (buzilishlarni keltirib chiqarishi mumkin) + Eskizini 1: 1 tomonlar nisbatiga o‘lchash + Kodi media-markazi orqali videoni ijro etish variantini ko\'rsatish + \"Kodi bilan ijro etish\" parametrini ko\'rsatish + missing Kore dasturini o\'rnatasizmi\? + Kodi bilan ijro etish + Faqat ba\'zi qurilmalar 2K / 4K videolarni ijro etishi mumkin + Yuqori o\'lchamlarni ko\'rsatish + "Standart pop-up o\'lchamlari" + Standart o\'lchamlari + NewPipe boshqa dasturdan chaqirilganda videoni ijro etadi + Avtomatikplay + Yuklash papkalarini kuchga kirishi uchun o\'zgartirish + Audio fayllar uchun yuklab olish papkasini tanlash + Yuklab olingan videofayllar shu yerda saqlanadi + Yuklab olingan audio fayllar shu yerda saqlanadi + Ovozni yuklab olish papkasi + Video fayllar uchun yuklab olish papkasini tanlash + Videoni yuklab olish jildi + Qo\'shish + Qalqib ko\'rinish + Fon ko\'rinishi + Yorliqlangan pleylistlar + Yorliqni tanlash + Yangi yorliq + Obunalar + Asosiy + Ma\'lumotni ko\'rsatish + Obunani yangilab bo\'lmadi + Obunani o\'zgartirib bo\'lmadi + Kanal obunasi bekor qilindi + Obunani bekor qilish + Obuna bo\'lindi + Obuna bo\'lish + Qalqib ko\'rinadigan rejim + Tashqi audio pleerdan foydalanish + Ba\'zi piksellarda ovozni o\'chirish \ No newline at end of file From 15c4a5c9eaea6039ba21ed2d68e1ea300ddcc8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 8 Nov 2020 00:38:18 +0000 Subject: [PATCH 125/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 93.0% (563 of 605 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 42c576a3a..cd907efb7 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -641,4 +641,6 @@ Tøm kaker som NewPipe lagrer når du løser en reCAPTCHA YouTube tilbyr et «Begrenset modus» som skjuler mulig innhold kun for voksne. Vis innhold som muligens er upassende for barn, siden det har aldersgrense (som 18+). + Få Android til å tilpasse merknadens farge i henhold til hovedfargen på miniatyrbildet (merk at dette ikke støttes på alle enheter) + Fargelegg merknad \ No newline at end of file From 1d42e45d785b955f7f2dfc38c4da168cd7601e27 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 18 Oct 2020 20:19:50 +0200 Subject: [PATCH 126/231] Unify all ways of opening VideoDetailFragment --- .../java/org/schabi/newpipe/MainActivity.java | 40 ++-- .../org/schabi/newpipe/RouterActivity.java | 87 +------ .../fragments/detail/VideoDetailFragment.java | 99 ++++---- .../fragments/list/BaseListFragment.java | 5 +- .../list/channel/ChannelFragment.java | 2 +- .../list/playlist/PlaylistFragment.java | 2 +- .../history/StatisticsPlaylistFragment.java | 12 +- .../local/playlist/LocalPlaylistFragment.java | 11 +- .../newpipe/player/ServicePlayerActivity.java | 9 +- .../newpipe/player/VideoPlayerImpl.java | 2 +- .../newpipe/player/playqueue/PlayQueue.java | 44 ---- .../schabi/newpipe/util/NavigationHelper.java | 215 ++++++++---------- app/src/main/res/values/settings_keys.xml | 1 - 13 files changed, 201 insertions(+), 328 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index e72d4609e..1d911c944 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -30,9 +30,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import androidx.preference.PreferenceManager; import android.util.Log; - import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; @@ -46,6 +44,7 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; + import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBarDrawerToggle; @@ -55,6 +54,7 @@ import androidx.core.view.GravityCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; +import androidx.preference.PreferenceManager; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.navigation.NavigationView; @@ -71,8 +71,8 @@ import org.schabi.newpipe.player.VideoPlayer; import org.schabi.newpipe.player.event.OnKeyDownListener; import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.report.ErrorActivity; -import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.Constants; +import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.KioskTranslator; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.NavigationHelper; @@ -758,32 +758,36 @@ public class MainActivity extends AppCompatActivity { if (intent.hasExtra(Constants.KEY_LINK_TYPE)) { final String url = intent.getStringExtra(Constants.KEY_URL); final int serviceId = intent.getIntExtra(Constants.KEY_SERVICE_ID, 0); - final String title = intent.getStringExtra(Constants.KEY_TITLE); - switch (((StreamingService.LinkType) intent - .getSerializableExtra(Constants.KEY_LINK_TYPE))) { + String title = intent.getStringExtra(Constants.KEY_TITLE); + if (title == null) { + title = ""; + } + + final StreamingService.LinkType linkType = ((StreamingService.LinkType) intent + .getSerializableExtra(Constants.KEY_LINK_TYPE)); + assert linkType != null; + switch (linkType) { case STREAM: - final boolean autoPlay = intent - .getBooleanExtra(VideoDetailFragment.AUTO_PLAY, false); - final String intentCacheKey = intent - .getStringExtra(VideoPlayer.PLAY_QUEUE_KEY); + final String intentCacheKey = intent.getStringExtra( + VideoPlayer.PLAY_QUEUE_KEY); final PlayQueue playQueue = intentCacheKey != null ? SerializedCache.getInstance() .take(intentCacheKey, PlayQueue.class) : null; - NavigationHelper.openVideoDetailFragment(getSupportFragmentManager(), - serviceId, url, title, autoPlay, playQueue); + + final boolean switchingPlayers = intent.getBooleanExtra( + VideoDetailFragment.KEY_SWITCHING_PLAYERS, false); + NavigationHelper.openVideoDetailFragment( + getApplicationContext(), getSupportFragmentManager(), + serviceId, url, title, playQueue, switchingPlayers); break; case CHANNEL: NavigationHelper.openChannelFragment(getSupportFragmentManager(), - serviceId, - url, - title); + serviceId, url, title); break; case PLAYLIST: NavigationHelper.openPlaylistFragment(getSupportFragmentManager(), - serviceId, - url, - title); + serviceId, url, title); break; } } else if (intent.hasExtra(Constants.KEY_OPEN_SEARCH)) { diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java index 388d7683a..ca145bb9a 100644 --- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java +++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java @@ -60,8 +60,6 @@ import org.schabi.newpipe.views.FocusOverlayView; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; import java.util.List; import icepick.Icepick; @@ -116,8 +114,6 @@ public class RouterActivity extends AppCompatActivity { } } - internalRoute = getIntent().getBooleanExtra(INTERNAL_ROUTE_KEY, false); - setTheme(ThemeHelper.isLightThemeSelected(this) ? R.style.RouterActivityThemeLight : R.style.RouterActivityThemeDark); } @@ -492,10 +488,6 @@ public class RouterActivity extends AppCompatActivity { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(intent -> { - if (!internalRoute) { - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - } startActivity(intent); finish(); @@ -515,7 +507,7 @@ public class RouterActivity extends AppCompatActivity { @SuppressLint("CheckResult") private void openDownloadDialog() { - ExtractorHelper.getStreamInfo(currentServiceId, currentUrl, true) + disposables.add(ExtractorHelper.getStreamInfo(currentServiceId, currentUrl, true) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe((@NonNull StreamInfo result) -> { @@ -532,10 +524,10 @@ public class RouterActivity extends AppCompatActivity { downloadDialog.setSelectedVideoStream(selectedVideoStreamIndex); downloadDialog.show(fm, "downloadDialog"); fm.executePendingTransactions(); - downloadDialog.getDialog().setOnDismissListener(dialog -> finish()); + downloadDialog.requireDialog().setOnDismissListener(dialog -> finish()); }, (@NonNull Throwable throwable) -> { showUnsupportedUrlDialog(currentUrl); - }); + })); } @Override @@ -553,66 +545,6 @@ public class RouterActivity extends AppCompatActivity { } } - /*////////////////////////////////////////////////////////////////////////// - // Service Fetcher - //////////////////////////////////////////////////////////////////////////*/ - - private String removeHeadingGibberish(final String input) { - int start = 0; - for (int i = input.indexOf("://") - 1; i >= 0; i--) { - if (!input.substring(i, i + 1).matches("\\p{L}")) { - start = i + 1; - break; - } - } - return input.substring(start); - } - - /*////////////////////////////////////////////////////////////////////////// - // Utils - //////////////////////////////////////////////////////////////////////////*/ - - private String trim(final String input) { - if (input == null || input.length() < 1) { - return input; - } else { - String output = input; - while (output.length() > 0 && output.substring(0, 1).matches(REGEX_REMOVE_FROM_URL)) { - output = output.substring(1); - } - while (output.length() > 0 - && output.substring(output.length() - 1).matches(REGEX_REMOVE_FROM_URL)) { - output = output.substring(0, output.length() - 1); - } - return output; - } - } - - /** - * Retrieves all Strings which look remotely like URLs from a text. - * Used if NewPipe was called through share menu. - * - * @param sharedText text to scan for URLs. - * @return potential URLs - */ - protected String[] getUris(final String sharedText) { - final Collection result = new HashSet<>(); - if (sharedText != null) { - final String[] array = sharedText.split("\\p{Space}"); - for (String s : array) { - s = trim(s); - if (s.length() != 0) { - if (s.matches(".+://.+")) { - result.add(removeHeadingGibberish(s)); - } else if (s.matches(".+\\..+")) { - result.add("http://" + s); - } - } - } - } - return result.toArray(new String[0]); - } - private static class AdapterChoiceItem { final String description; final String key; @@ -739,11 +671,11 @@ public class RouterActivity extends AppCompatActivity { playQueue = new SinglePlayQueue((StreamInfo) info); if (playerChoice.equals(videoPlayerKey)) { - openMainPlayer(playQueue, choice); + NavigationHelper.playOnMainPlayer(this, playQueue); } else if (playerChoice.equals(backgroundPlayerKey)) { - NavigationHelper.enqueueOnBackgroundPlayer(this, playQueue, true); + NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); } else if (playerChoice.equals(popupPlayerKey)) { - NavigationHelper.enqueueOnPopupPlayer(this, playQueue, true); + NavigationHelper.playOnPopupPlayer(this, playQueue, true); } } } @@ -754,7 +686,7 @@ public class RouterActivity extends AppCompatActivity { : new PlaylistPlayQueue((PlaylistInfo) info); if (playerChoice.equals(videoPlayerKey)) { - openMainPlayer(playQueue, choice); + NavigationHelper.playOnMainPlayer(this, playQueue); } else if (playerChoice.equals(backgroundPlayerKey)) { NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); } else if (playerChoice.equals(popupPlayerKey)) { @@ -764,11 +696,6 @@ public class RouterActivity extends AppCompatActivity { }; } - private void openMainPlayer(final PlayQueue playQueue, final Choice choice) { - NavigationHelper.playOnMainPlayer(this, playQueue, choice.linkType, - choice.url, "", true, true); - } - @Override public void onDestroy() { super.onDestroy(); diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index d5da006f7..ffba7f521 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -110,6 +110,7 @@ import org.schabi.newpipe.views.LargeTextMovementMethod; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; import icepick.State; @@ -128,7 +129,7 @@ import static org.schabi.newpipe.player.helper.PlayerHelper.isClearingQueueConfi import static org.schabi.newpipe.player.playqueue.PlayQueueItem.RECOVERY_UNSET; import static org.schabi.newpipe.util.AnimationUtils.animateView; -public class VideoDetailFragment +public final class VideoDetailFragment extends BaseStateFragment implements BackPressable, SharedPreferences.OnSharedPreferenceChangeListener, @@ -136,7 +137,7 @@ public class VideoDetailFragment View.OnLongClickListener, PlayerServiceExtendedEventListener, OnKeyDownListener { - public static final String AUTO_PLAY = "auto_play"; + public static final String KEY_SWITCHING_PLAYERS = "switching_players"; private static final int RELATED_STREAMS_UPDATE_FLAG = 0x1; private static final int COMMENTS_UPDATE_FLAG = 0x2; @@ -167,19 +168,23 @@ public class VideoDetailFragment @State protected int serviceId = Constants.NO_SERVICE_ID; @State - protected String name; + @NonNull + protected String title = ""; @State - protected String url; - protected static PlayQueue playQueue; + @Nullable + protected String url = null; + @Nullable + protected PlayQueue playQueue = null; @State int bottomSheetState = BottomSheetBehavior.STATE_EXPANDED; @State protected boolean autoPlayEnabled = true; - private static StreamInfo currentInfo; + @Nullable + private StreamInfo currentInfo = null; private Disposable currentWorker; @NonNull - private CompositeDisposable disposables = new CompositeDisposable(); + private final CompositeDisposable disposables = new CompositeDisposable(); @Nullable private Disposable positionSubscriber = null; @@ -298,8 +303,10 @@ public class VideoDetailFragment /*////////////////////////////////////////////////////////////////////////*/ - public static VideoDetailFragment getInstance(final int serviceId, final String videoUrl, - final String name, final PlayQueue queue) { + public static VideoDetailFragment getInstance(final int serviceId, + @Nullable final String videoUrl, + @NonNull final String name, + @Nullable final PlayQueue queue) { final VideoDetailFragment instance = new VideoDetailFragment(); instance.setInitialData(serviceId, videoUrl, name, queue); return instance; @@ -444,8 +451,8 @@ public class VideoDetailFragment switch (requestCode) { case ReCaptchaActivity.RECAPTCHA_REQUEST: if (resultCode == Activity.RESULT_OK) { - NavigationHelper - .openVideoDetailFragment(getFM(), serviceId, url, name); + NavigationHelper.openVideoDetailFragment(requireContext(), getFM(), + serviceId, url, title, null, false); } else { Log.e(TAG, "ReCaptcha failed"); } @@ -791,7 +798,7 @@ public class VideoDetailFragment player.onPause(); } restoreDefaultOrientation(); - setAutoplay(false); + setAutoPlay(false); return true; } @@ -819,14 +826,11 @@ public class VideoDetailFragment } private void setupFromHistoryItem(final StackItem item) { - setAutoplay(false); + setAutoPlay(false); hideMainPlayer(); - setInitialData( - item.getServiceId(), - item.getUrl(), - !TextUtils.isEmpty(item.getTitle()) ? item.getTitle() : "", - item.getPlayQueue()); + setInitialData(item.getServiceId(), item.getUrl(), + item.getTitle() == null ? "" : item.getTitle(), item.getPlayQueue()); startLoading(false); // Maybe an item was deleted in background activity @@ -860,18 +864,17 @@ public class VideoDetailFragment } } - public void selectAndLoadVideo(final int sid, final String videoUrl, final String title, - final PlayQueue queue) { - // Situation when user switches from players to main player. - // All needed data is here, we can start watching - if (this.playQueue != null && this.playQueue.equals(queue)) { - openVideoPlayer(); - return; - } - setInitialData(sid, videoUrl, title, queue); - if (player != null) { + public void selectAndLoadVideo(final int newServiceId, + @Nullable final String newUrl, + @NonNull final String newTitle, + @Nullable final PlayQueue newQueue) { + if (player != null && newQueue != null && playQueue != null + && !Objects.equals(newQueue.getItem(), playQueue.getItem())) { + // Preloading can be disabled since playback is surely being replaced. player.disablePreloadingOfCurrentTrack(); } + + setInitialData(newServiceId, newUrl, newTitle, newQueue); startLoading(false, true); } @@ -956,7 +959,7 @@ public class VideoDetailFragment playQueue = new SinglePlayQueue(result); } if (stack.isEmpty() || !stack.peek().getPlayQueue().equals(playQueue)) { - stack.push(new StackItem(serviceId, url, name, playQueue)); + stack.push(new StackItem(serviceId, url, title, playQueue)); } } if (isAutoplayEnabled()) { @@ -977,7 +980,7 @@ public class VideoDetailFragment if (shouldShowComments()) { pageAdapter.addFragment( - CommentsFragment.getInstance(serviceId, url, name), COMMENTS_TAB_TAG); + CommentsFragment.getInstance(serviceId, url, title), COMMENTS_TAB_TAG); } if (showRelatedStreams && null == relatedStreamsLayout) { @@ -1068,7 +1071,7 @@ public class VideoDetailFragment } } - private void openVideoPlayer() { + public void openVideoPlayer() { if (PreferenceManager.getDefaultSharedPreferences(activity) .getBoolean(this.getString(R.string.use_external_video_player_key), false)) { showExternalPlaybackDialog(); @@ -1143,8 +1146,8 @@ public class VideoDetailFragment // Utils //////////////////////////////////////////////////////////////////////////*/ - public void setAutoplay(final boolean autoplay) { - this.autoPlayEnabled = autoplay; + public void setAutoPlay(final boolean autoPlay) { + this.autoPlayEnabled = autoPlay; } private void startOnExternalPlayer(@NonNull final Context context, @@ -1166,7 +1169,7 @@ public class VideoDetailFragment .getBoolean(getString(R.string.use_external_video_player_key), false); } - // This method overrides default behaviour when setAutoplay() is called. + // This method overrides default behaviour when setAutoPlay() is called. // Don't auto play if the user selected an external player or disabled it in settings private boolean isAutoplayEnabled() { return autoPlayEnabled @@ -1302,12 +1305,14 @@ public class VideoDetailFragment contentRootLayoutHiding.setVisibility(View.VISIBLE); } - protected void setInitialData(final int sid, final String u, final String title, - final PlayQueue queue) { - this.serviceId = sid; - this.url = u; - this.name = !TextUtils.isEmpty(title) ? title : ""; - this.playQueue = queue; + protected void setInitialData(final int newServiceId, + @Nullable final String newUrl, + @NonNull final String newTitle, + @Nullable final PlayQueue newPlayQueue) { + this.serviceId = newServiceId; + this.url = newUrl; + this.title = newTitle; + this.playQueue = newPlayQueue; } private void setErrorImage(final int imageResource) { @@ -1400,7 +1405,7 @@ public class VideoDetailFragment animateView(detailPositionView, false, 100); animateView(positionView, false, 50); - videoTitleTextView.setText(name != null ? name : ""); + videoTitleTextView.setText(title); videoTitleTextView.setMaxLines(1); animateView(videoTitleTextView, true, 0); @@ -1445,7 +1450,7 @@ public class VideoDetailFragment } } animateView(thumbnailPlayButton, true, 200); - videoTitleTextView.setText(name); + videoTitleTextView.setText(title); if (!TextUtils.isEmpty(info.getSubChannelName())) { displayBothUploaderAndSubChannel(info); @@ -1738,7 +1743,7 @@ public class VideoDetailFragment if (DEBUG) { Log.d(TAG, "onQueueUpdate() called with: serviceId = [" + serviceId + "], videoUrl = [" + url + "], name = [" - + name + "], playQueue = [" + playQueue + "]"); + + title + "], playQueue = [" + playQueue + "]"); } // This should be the only place where we push data to stack. @@ -1823,7 +1828,7 @@ public class VideoDetailFragment currentInfo = info; setInitialData(info.getServiceId(), info.getUrl(), info.getName(), queue); - setAutoplay(false); + setAutoPlay(false); // Delay execution just because it freezes the main thread, and while playing // next/previous video you see visual glitches // (when non-vertical video goes after vertical video) @@ -2037,7 +2042,7 @@ public class VideoDetailFragment private void checkLandscape() { if ((!player.isPlaying() && player.getPlayQueue() != playQueue) || player.getPlayQueue() == null) { - setAutoplay(true); + setAutoPlay(true); } player.checkLandscape(); @@ -2287,10 +2292,10 @@ public class VideoDetailFragment }); } - private void updateOverlayData(@Nullable final String title, + private void updateOverlayData(@Nullable final String overlayTitle, @Nullable final String uploader, @Nullable final String thumbnailUrl) { - overlayTitleTextView.setText(TextUtils.isEmpty(title) ? "" : title); + overlayTitleTextView.setText(TextUtils.isEmpty(overlayTitle) ? "" : overlayTitle); overlayChannelTextView.setText(TextUtils.isEmpty(uploader) ? "" : uploader); overlayThumbnailImageView.setImageResource(R.drawable.dummy_thumbnail_dark); if (!TextUtils.isEmpty(thumbnailUrl)) { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java index 79e1854e9..41263bc34 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java @@ -321,8 +321,9 @@ public abstract class BaseListFragment extends BaseStateFragment private void onStreamSelected(final StreamInfoItem selectedItem) { onItemSelected(selectedItem); - NavigationHelper.openVideoDetailFragment(getFM(), - selectedItem.getServiceId(), selectedItem.getUrl(), selectedItem.getName()); + NavigationHelper.openVideoDetailFragment(requireContext(), getFM(), + selectedItem.getServiceId(), selectedItem.getUrl(), selectedItem.getName(), + null, false); } protected void onScrollToBottom() { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java index 58e28df49..6ec818909 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java @@ -517,7 +517,7 @@ public class ChannelFragment extends BaseListInfoFragment monitorSubscription(result); headerPlayAllButton.setOnClickListener(view -> NavigationHelper - .playOnMainPlayer(activity, getPlayQueue(), true)); + .playOnMainPlayer(activity, getPlayQueue())); headerPopupButton.setOnClickListener(view -> NavigationHelper .playOnPopupPlayer(activity, getPlayQueue(), false)); headerBackgroundButton.setOnClickListener(view -> NavigationHelper diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java index 67f1a007a..71b51f9a1 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java @@ -319,7 +319,7 @@ public class PlaylistFragment extends BaseListInfoFragment { .subscribe(getPlaylistBookmarkSubscriber()); headerPlayAllButton.setOnClickListener(view -> - NavigationHelper.playOnMainPlayer(activity, getPlayQueue(), true)); + NavigationHelper.playOnMainPlayer(activity, getPlayQueue())); headerPopupButton.setOnClickListener(view -> NavigationHelper.playOnPopupPlayer(activity, getPlayQueue(), false)); headerBackgroundButton.setOnClickListener(view -> diff --git a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java index b4398d873..8cd4e4c7e 100644 --- a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java @@ -25,6 +25,7 @@ import org.reactivestreams.Subscription; import org.schabi.newpipe.R; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.stream.StreamStatisticsEntry; +import org.schabi.newpipe.database.stream.model.StreamEntity; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.info_list.InfoItemDialog; @@ -149,11 +150,10 @@ public class StatisticsPlaylistFragment @Override public void selected(final LocalItem selectedItem) { if (selectedItem instanceof StreamStatisticsEntry) { - final StreamStatisticsEntry item = (StreamStatisticsEntry) selectedItem; - NavigationHelper.openVideoDetailFragment(getFM(), - item.getStreamEntity().getServiceId(), - item.getStreamEntity().getUrl(), - item.getStreamEntity().getTitle()); + final StreamEntity item = + ((StreamStatisticsEntry) selectedItem).getStreamEntity(); + NavigationHelper.openVideoDetailFragment(requireContext(), getFM(), + item.getServiceId(), item.getUrl(), item.getTitle(), null, false); } } @@ -325,7 +325,7 @@ public class StatisticsPlaylistFragment } headerPlayAllButton.setOnClickListener(view -> - NavigationHelper.playOnMainPlayer(activity, getPlayQueue(), true)); + NavigationHelper.playOnMainPlayer(activity, getPlayQueue())); headerPopupButton.setOnClickListener(view -> NavigationHelper.playOnPopupPlayer(activity, getPlayQueue(), false)); headerBackgroundButton.setOnClickListener(view -> diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java index 32fac9de0..71df07a4b 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java @@ -30,6 +30,7 @@ import org.schabi.newpipe.R; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.history.model.StreamHistoryEntry; import org.schabi.newpipe.database.playlist.PlaylistStreamEntry; +import org.schabi.newpipe.database.stream.model.StreamEntity; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamType; @@ -178,10 +179,10 @@ public class LocalPlaylistFragment extends BaseLocalListFragment - NavigationHelper.playOnMainPlayer(activity, getPlayQueue(), true)); + NavigationHelper.playOnMainPlayer(activity, getPlayQueue())); headerPopupButton.setOnClickListener(view -> NavigationHelper.playOnPopupPlayer(activity, getPlayQueue(), false)); headerBackgroundButton.setOnClickListener(view -> diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 8b606260a..fee189295 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -367,7 +367,9 @@ public abstract class ServicePlayerActivity extends AppCompatActivity final MenuItem detail = popupMenu.getMenu().add(RECYCLER_ITEM_POPUP_MENU_GROUP_ID, 1, Menu.NONE, R.string.play_queue_stream_detail); detail.setOnMenuItemClickListener(menuItem -> { - onOpenDetail(item.getServiceId(), item.getUrl(), item.getTitle()); + // playQueue is null since we don't want any queue change + NavigationHelper.openVideoDetail( + this, item.getServiceId(), item.getUrl(), item.getTitle(), null); return true; }); @@ -454,11 +456,6 @@ public abstract class ServicePlayerActivity extends AppCompatActivity }; } - private void onOpenDetail(final int serviceId, final String videoUrl, - final String videoTitle) { - NavigationHelper.openVideoDetail(this, serviceId, videoUrl, videoTitle); - } - private void scrollToSelected() { if (player == null) { return; diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java index 97007f0f6..765eb148b 100644 --- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java +++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java @@ -785,7 +785,7 @@ public class VideoPlayerImpl extends VideoPlayer intent.putExtra(Constants.KEY_LINK_TYPE, StreamingService.LinkType.STREAM); intent.putExtra(Constants.KEY_URL, getVideoUrl()); intent.putExtra(Constants.KEY_TITLE, getVideoTitle()); - intent.putExtra(VideoDetailFragment.AUTO_PLAY, true); + intent.putExtra(VideoDetailFragment.KEY_SWITCHING_PLAYERS, true); service.onDestroy(); context.startActivity(intent); } diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java index 4f35f98f5..b8bb677e0 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java @@ -1,12 +1,8 @@ package org.schabi.newpipe.player.playqueue; -import android.util.Log; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.reactivestreams.Subscriber; -import org.reactivestreams.Subscription; import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.player.playqueue.events.AppendEvent; import org.schabi.newpipe.player.playqueue.events.ErrorEvent; @@ -43,7 +39,6 @@ import io.reactivex.subjects.BehaviorSubject; *

*/ public abstract class PlayQueue implements Serializable { - private final String TAG = "PlayQueue@" + Integer.toHexString(hashCode()); public static final boolean DEBUG = MainActivity.DEBUG; private ArrayList backup; @@ -55,7 +50,6 @@ public abstract class PlayQueue implements Serializable { private transient BehaviorSubject eventBroadcast; private transient Flowable broadcastReceiver; - private transient Subscription reportingReactor; private transient boolean disposed; @@ -87,10 +81,6 @@ public abstract class PlayQueue implements Serializable { broadcastReceiver = eventBroadcast.toFlowable(BackpressureStrategy.BUFFER) .observeOn(AndroidSchedulers.mainThread()) .startWith(new InitEvent()); - - if (DEBUG) { - broadcastReceiver.subscribe(getSelfReporter()); - } } /** @@ -100,13 +90,9 @@ public abstract class PlayQueue implements Serializable { if (eventBroadcast != null) { eventBroadcast.onComplete(); } - if (reportingReactor != null) { - reportingReactor.cancel(); - } eventBroadcast = null; broadcastReceiver = null; - reportingReactor = null; disposed = true; } @@ -544,35 +530,5 @@ public abstract class PlayQueue implements Serializable { eventBroadcast.onNext(event); } } - - private Subscriber getSelfReporter() { - return new Subscriber() { - @Override - public void onSubscribe(final Subscription s) { - if (reportingReactor != null) { - reportingReactor.cancel(); - } - reportingReactor = s; - reportingReactor.request(1); - } - - @Override - public void onNext(final PlayQueueEvent event) { - Log.d(TAG, "Received broadcast: " + event.type().name() + ". " - + "Current index: " + getIndex() + ", play queue length: " + size() + "."); - reportingReactor.request(1); - } - - @Override - public void onError(final Throwable t) { - Log.e(TAG, "Received broadcast error", t); - } - - @Override - public void onComplete() { - Log.d(TAG, "Broadcast is shutting down."); - } - }; - } } diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index 6761fce59..a96730552 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -18,7 +18,6 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; -import androidx.preference.PreferenceManager; import com.nostra13.universalimageloader.core.ImageLoader; @@ -52,13 +51,14 @@ import org.schabi.newpipe.player.BackgroundPlayerActivity; import org.schabi.newpipe.player.BasePlayer; import org.schabi.newpipe.player.MainPlayer; import org.schabi.newpipe.player.VideoPlayer; +import org.schabi.newpipe.player.helper.PlayerHelper; +import org.schabi.newpipe.player.helper.PlayerHolder; import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.player.playqueue.PlayQueueItem; import org.schabi.newpipe.settings.SettingsActivity; import java.util.ArrayList; -@SuppressWarnings({"unused"}) public final class NavigationHelper { public static final String MAIN_FRAGMENT_TAG = "main_fragment_tag"; public static final String SEARCH_FRAGMENT_TAG = "search_fragment_tag"; @@ -130,42 +130,22 @@ public final class NavigationHelper { } public static void playOnMainPlayer(final AppCompatActivity activity, - final PlayQueue queue, - final boolean autoPlay) { - playOnMainPlayer(activity.getSupportFragmentManager(), queue, autoPlay); + @NonNull final PlayQueue playQueue) { + final PlayQueueItem item = playQueue.getItem(); + assert item != null; + openVideoDetailFragment(activity, activity.getSupportFragmentManager(), + item.getServiceId(), item.getUrl(), item.getTitle(), playQueue, false); } - public static void playOnMainPlayer(final FragmentManager fragmentManager, - final PlayQueue queue, - final boolean autoPlay) { - final PlayQueueItem currentStream = queue.getItem(); - openVideoDetailFragment( - fragmentManager, - currentStream.getServiceId(), - currentStream.getUrl(), - currentStream.getTitle(), - autoPlay, - queue); + public static void playOnMainPlayer(final Context context, + @NonNull final PlayQueue playQueue) { + final PlayQueueItem item = playQueue.getItem(); + assert item != null; + openVideoDetail(context, item.getServiceId(), item.getUrl(), item.getTitle(), playQueue); } - public static void playOnMainPlayer(@NonNull final Context context, - @Nullable final PlayQueue queue, - @NonNull final StreamingService.LinkType linkType, - @NonNull final String url, - @NonNull final String title, - final boolean autoPlay, - final boolean resumePlayback) { - - final Intent intent = getPlayerIntent(context, MainActivity.class, queue, resumePlayback); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(Constants.KEY_LINK_TYPE, linkType); - intent.putExtra(Constants.KEY_URL, url); - intent.putExtra(Constants.KEY_TITLE, title); - intent.putExtra(VideoDetailFragment.AUTO_PLAY, autoPlay); - context.startActivity(intent); - } - - public static void playOnPopupPlayer(final Context context, final PlayQueue queue, + public static void playOnPopupPlayer(final Context context, + final PlayQueue queue, final boolean resumePlayback) { if (!PermissionHelper.isPopupEnabled(context)) { PermissionHelper.showPopupEnablementToast(context); @@ -300,9 +280,6 @@ public final class NavigationHelper { .setNegativeButton(R.string.cancel, (dialog, which) -> Log.i("NavigationHelper", "You unlocked a secret unicorn.")) .show(); -// Log.e("NavigationHelper", -// "Either no Streaming player for audio was installed, " -// + "or something important crashed:"); } else { Toast.makeText(context, R.string.no_player_found_toast, Toast.LENGTH_LONG).show(); } @@ -358,41 +335,6 @@ public final class NavigationHelper { .commit(); } - public static void openVideoDetailFragment(final FragmentManager fragmentManager, - final int serviceId, final String url, - final String title) { - openVideoDetailFragment(fragmentManager, serviceId, url, title, true, null); - } - - public static void openVideoDetailFragment( - final FragmentManager fragmentManager, - final int serviceId, - final String url, - final String title, - final boolean autoPlay, - final PlayQueue playQueue) { - final Fragment fragment = fragmentManager.findFragmentById(R.id.fragment_player_holder); - - if (fragment instanceof VideoDetailFragment && fragment.isVisible()) { - expandMainPlayer(fragment.requireActivity()); - final VideoDetailFragment detailFragment = (VideoDetailFragment) fragment; - detailFragment.setAutoplay(autoPlay); - detailFragment - .selectAndLoadVideo(serviceId, url, title == null ? "" : title, playQueue); - detailFragment.scrollToTop(); - return; - } - - final VideoDetailFragment instance = VideoDetailFragment - .getInstance(serviceId, url, title == null ? "" : title, playQueue); - instance.setAutoplay(autoPlay); - - defaultTransaction(fragmentManager) - .replace(R.id.fragment_player_holder, instance) - .runOnCommit(() -> expandMainPlayer(instance.requireActivity())) - .commit(); - } - public static void expandMainPlayer(final Context context) { context.sendBroadcast(new Intent(VideoDetailFragment.ACTION_SHOW_MAIN_PLAYER)); } @@ -409,33 +351,86 @@ public final class NavigationHelper { .commitAllowingStateLoss(); } + private interface RunnableWithVideoDetailFragment { + void run(VideoDetailFragment detailFragment); + } + + public static void openVideoDetailFragment(@NonNull final Context context, + @NonNull final FragmentManager fragmentManager, + final int serviceId, + @Nullable final String url, + @NonNull final String title, + @Nullable final PlayQueue playQueue, + final boolean switchingPlayers) { + + final boolean autoPlay; + @Nullable final MainPlayer.PlayerType playerType = PlayerHolder.getType(); + if (playerType == null) { + // no player open + autoPlay = PlayerHelper.isAutoplayAllowedByUser(context); + } else if (switchingPlayers) { + // switching player to main player + autoPlay = true; + } else if (playerType == MainPlayer.PlayerType.VIDEO) { + // opening new stream while already playing in main player + autoPlay = PlayerHelper.isAutoplayAllowedByUser(context); + } else { + // opening new stream while already playing in another player + autoPlay = false; + } + + final RunnableWithVideoDetailFragment onVideoDetailFragmentReady = (detailFragment) -> { + expandMainPlayer(detailFragment.requireActivity()); + detailFragment.setAutoPlay(autoPlay); + if (switchingPlayers) { + // Situation when user switches from players to main player. All needed data is + // here, we can start watching (assuming newQueue equals playQueue). + detailFragment.openVideoPlayer(); + } else { + detailFragment.selectAndLoadVideo(serviceId, url, title, playQueue); + } + detailFragment.scrollToTop(); + }; + + final Fragment fragment = fragmentManager.findFragmentById(R.id.fragment_player_holder); + if (fragment instanceof VideoDetailFragment && fragment.isVisible()) { + onVideoDetailFragmentReady.run((VideoDetailFragment) fragment); + } else { + final VideoDetailFragment instance = VideoDetailFragment + .getInstance(serviceId, url, title, playQueue); + instance.setAutoPlay(autoPlay); + + defaultTransaction(fragmentManager) + .replace(R.id.fragment_player_holder, instance) + .runOnCommit(() -> onVideoDetailFragmentReady.run(instance)) + .commit(); + } + } + public static void openChannelFragment(final FragmentManager fragmentManager, final int serviceId, final String url, - final String name) { + @NonNull final String name) { defaultTransaction(fragmentManager) - .replace(R.id.fragment_holder, ChannelFragment.getInstance(serviceId, url, - name == null ? "" : name)) + .replace(R.id.fragment_holder, ChannelFragment.getInstance(serviceId, url, name)) .addToBackStack(null) .commit(); } public static void openCommentsFragment(final FragmentManager fragmentManager, final int serviceId, final String url, - final String name) { + @NonNull final String name) { fragmentManager.beginTransaction() .setCustomAnimations(R.anim.switch_service_in, R.anim.switch_service_out) - .replace(R.id.fragment_holder, CommentsFragment.getInstance(serviceId, url, - name == null ? "" : name)) + .replace(R.id.fragment_holder, CommentsFragment.getInstance(serviceId, url, name)) .addToBackStack(null) .commit(); } public static void openPlaylistFragment(final FragmentManager fragmentManager, final int serviceId, final String url, - final String name) { + @NonNull final String name) { defaultTransaction(fragmentManager) - .replace(R.id.fragment_holder, PlaylistFragment.getInstance(serviceId, url, - name == null ? "" : name)) + .replace(R.id.fragment_holder, PlaylistFragment.getInstance(serviceId, url, name)) .addToBackStack(null) .commit(); } @@ -511,33 +506,31 @@ public final class NavigationHelper { context.startActivity(mIntent); } - public static void openChannel(final Context context, final int serviceId, final String url) { - openChannel(context, serviceId, url, null); - } - public static void openChannel(final Context context, final int serviceId, - final String url, final String name) { + final String url, @NonNull final String name) { final Intent openIntent = getOpenIntent(context, url, serviceId, StreamingService.LinkType.CHANNEL); - if (name != null && !name.isEmpty()) { - openIntent.putExtra(Constants.KEY_TITLE, name); - } + openIntent.putExtra(Constants.KEY_TITLE, name); context.startActivity(openIntent); } - public static void openVideoDetail(final Context context, final int serviceId, - final String url) { - openVideoDetail(context, serviceId, url, null); - } + public static void openVideoDetail(final Context context, + final int serviceId, + final String url, + @NonNull final String title, + @Nullable final PlayQueue playQueue) { - public static void openVideoDetail(final Context context, final int serviceId, - final String url, final String title) { - final Intent openIntent = getOpenIntent(context, url, serviceId, + final Intent intent = getOpenIntent(context, url, serviceId, StreamingService.LinkType.STREAM); - if (title != null && !title.isEmpty()) { - openIntent.putExtra(Constants.KEY_TITLE, title); + intent.putExtra(Constants.KEY_TITLE, title); + + if (playQueue != null) { + final String cacheKey = SerializedCache.getInstance().put(playQueue, PlayQueue.class); + if (cacheKey != null) { + intent.putExtra(VideoPlayer.PLAY_QUEUE_KEY, cacheKey); + } } - context.startActivity(openIntent); + context.startActivity(intent); } public static void openMainActivity(final Context context) { @@ -550,7 +543,6 @@ public final class NavigationHelper { public static void openRouterActivity(final Context context, final String url) { final Intent mIntent = new Intent(context, RouterActivity.class); mIntent.setData(Uri.parse(url)); - mIntent.putExtra(RouterActivity.INTERNAL_ROUTE_KEY, true); context.startActivity(mIntent); } @@ -564,14 +556,12 @@ public final class NavigationHelper { context.startActivity(intent); } - public static boolean openDownloads(final Activity activity) { - if (!PermissionHelper.checkStoragePermissions( + public static void openDownloads(final Activity activity) { + if (PermissionHelper.checkStoragePermissions( activity, PermissionHelper.DOWNLOADS_REQUEST_CODE)) { - return false; + final Intent intent = new Intent(activity, DownloadActivity.class); + activity.startActivity(intent); } - final Intent intent = new Intent(activity, DownloadActivity.class); - activity.startActivity(intent); - return true; } public static Intent getPlayQueueActivityIntent(final Context context) { @@ -600,7 +590,8 @@ public final class NavigationHelper { return getIntentByLink(context, NewPipe.getServiceByUrl(url), url); } - public static Intent getIntentByLink(final Context context, final StreamingService service, + public static Intent getIntentByLink(final Context context, + final StreamingService service, final String url) throws ExtractionException { final StreamingService.LinkType linkType = service.getLinkTypeByUrl(url); @@ -609,15 +600,7 @@ public final class NavigationHelper { + " url=" + url); } - final Intent rIntent = getOpenIntent(context, url, service.getServiceId(), linkType); - - if (linkType == StreamingService.LinkType.STREAM) { - rIntent.putExtra(VideoDetailFragment.AUTO_PLAY, - PreferenceManager.getDefaultSharedPreferences(context).getBoolean( - context.getString(R.string.autoplay_through_intent_key), false)); - } - - return rIntent; + return getOpenIntent(context, url, service.getServiceId(), linkType); } private static Uri openMarketUrl(final String packageName) { diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 1aa781fe2..9c9fa4853 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -21,7 +21,6 @@ use_external_video_player use_external_audio_player - autoplay_through_intent use_oldplayer volume_gesture_control From bb882ada2c4460c9c3705a6fdf461be205f6a2fc Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 18 Oct 2020 20:33:08 +0200 Subject: [PATCH 127/231] Show "Show info" instead of "Video player" if a stream is playing not on the main player when sharing something to NewPipe --- .../org/schabi/newpipe/RouterActivity.java | 72 +++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java index ca145bb9a..4f563a1d1 100644 --- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java +++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java @@ -40,7 +40,9 @@ import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.playlist.PlaylistInfo; import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.extractor.stream.VideoStream; +import org.schabi.newpipe.player.MainPlayer; import org.schabi.newpipe.player.helper.PlayerHelper; +import org.schabi.newpipe.player.helper.PlayerHolder; import org.schabi.newpipe.player.playqueue.ChannelPlayQueue; import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.player.playqueue.PlaylistPlayQueue; @@ -394,14 +396,22 @@ public class RouterActivity extends AppCompatActivity { // show both "show info" and "video player", they are two different activities returnList.add(showInfo); returnList.add(videoPlayer); - } else if (capabilities.contains(VIDEO) - && PlayerHelper.isAutoplayAllowedByUser(context)) { - // show only "video player" since the details activity will be opened and the video - // will be autoplayed there and "show info" would do the exact same thing - returnList.add(videoPlayer); } else { - // show only "show info" if video player is not applicable or autoplay is disabled - returnList.add(showInfo); + final MainPlayer.PlayerType playerType = PlayerHolder.getType(); + if (capabilities.contains(VIDEO) + && PlayerHelper.isAutoplayAllowedByUser(context) + && playerType == null || playerType == MainPlayer.PlayerType.VIDEO) { + // show only "video player" since the details activity will be opened and the + // video will be auto played there. Since "show info" would do the exact same + // thing, use that as a key to let VideoDetailFragment load the stream instead + // of using FetcherService (see comment in handleChoice()) + returnList.add(new AdapterChoiceItem( + showInfo.key, videoPlayer.description, videoPlayer.icon)); + } else { + // show only "show info" if video player is not applicable, auto play is + // disabled or a video is playing in a player different than the main one + returnList.add(showInfo); + } } if (capabilities.contains(VIDEO)) { @@ -489,7 +499,6 @@ public class RouterActivity extends AppCompatActivity { .observeOn(AndroidSchedulers.mainThread()) .subscribe(intent -> { startActivity(intent); - finish(); }, throwable -> handleError(throwable, currentUrl)) ); @@ -657,41 +666,30 @@ public class RouterActivity extends AppCompatActivity { final boolean isExtAudioEnabled = preferences.getBoolean( getString(R.string.use_external_audio_player_key), false); - PlayQueue playQueue; - final String playerChoice = choice.playerChoice; - + final PlayQueue playQueue; if (info instanceof StreamInfo) { - if (playerChoice.equals(backgroundPlayerKey) && isExtAudioEnabled) { + if (choice.playerChoice.equals(backgroundPlayerKey) && isExtAudioEnabled) { NavigationHelper.playOnExternalAudioPlayer(this, (StreamInfo) info); - - } else if (playerChoice.equals(videoPlayerKey) && isExtVideoEnabled) { + return; + } else if (choice.playerChoice.equals(videoPlayerKey) && isExtVideoEnabled) { NavigationHelper.playOnExternalVideoPlayer(this, (StreamInfo) info); - - } else { - playQueue = new SinglePlayQueue((StreamInfo) info); - - if (playerChoice.equals(videoPlayerKey)) { - NavigationHelper.playOnMainPlayer(this, playQueue); - } else if (playerChoice.equals(backgroundPlayerKey)) { - NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); - } else if (playerChoice.equals(popupPlayerKey)) { - NavigationHelper.playOnPopupPlayer(this, playQueue, true); - } + return; } + playQueue = new SinglePlayQueue((StreamInfo) info); + } else if (info instanceof ChannelInfo) { + playQueue = new ChannelPlayQueue((ChannelInfo) info); + } else if (info instanceof PlaylistInfo) { + playQueue = new PlaylistPlayQueue((PlaylistInfo) info); + } else { + return; } - if (info instanceof ChannelInfo || info instanceof PlaylistInfo) { - playQueue = info instanceof ChannelInfo - ? new ChannelPlayQueue((ChannelInfo) info) - : new PlaylistPlayQueue((PlaylistInfo) info); - - if (playerChoice.equals(videoPlayerKey)) { - NavigationHelper.playOnMainPlayer(this, playQueue); - } else if (playerChoice.equals(backgroundPlayerKey)) { - NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); - } else if (playerChoice.equals(popupPlayerKey)) { - NavigationHelper.playOnPopupPlayer(this, playQueue, true); - } + if (choice.playerChoice.equals(videoPlayerKey)) { + NavigationHelper.playOnMainPlayer(this, playQueue); + } else if (choice.playerChoice.equals(backgroundPlayerKey)) { + NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); + } else if (choice.playerChoice.equals(popupPlayerKey)) { + NavigationHelper.playOnPopupPlayer(this, playQueue, true); } }; } From 2a2c82e73bb2380c07ab848b185952ab183a5502 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 31 Oct 2020 20:26:09 +0100 Subject: [PATCH 128/231] More fixes with opening VideoDetailFragment --- .../org/schabi/newpipe/RouterActivity.java | 2 +- .../fragments/detail/VideoDetailFragment.java | 4 +- .../player/BackgroundPlayerActivity.java | 28 --------- .../org/schabi/newpipe/player/BasePlayer.java | 33 ++++++----- .../org/schabi/newpipe/player/MainPlayer.java | 2 +- .../newpipe/player/ServicePlayerActivity.java | 47 ++++++--------- .../newpipe/player/VideoPlayerImpl.java | 48 +++------------ .../player/event/BasePlayerGestureListener.kt | 5 +- .../newpipe/player/helper/AudioReactor.java | 2 +- .../newpipe/player/helper/PlayerHelper.java | 6 +- .../newpipe/player/helper/PlayerHolder.java | 7 +++ .../player/playqueue/PlayQueueItem.java | 14 +++++ .../schabi/newpipe/util/NavigationHelper.java | 59 ++++--------------- 13 files changed, 87 insertions(+), 170 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java index 4f563a1d1..537d71901 100644 --- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java +++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java @@ -685,7 +685,7 @@ public class RouterActivity extends AppCompatActivity { } if (choice.playerChoice.equals(videoPlayerKey)) { - NavigationHelper.playOnMainPlayer(this, playQueue); + NavigationHelper.playOnMainPlayer(this, playQueue, false); } else if (choice.playerChoice.equals(backgroundPlayerKey)) { NavigationHelper.playOnBackgroundPlayer(this, playQueue, true); } else if (choice.playerChoice.equals(popupPlayerKey)) { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index ffba7f521..1324d6832 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1097,7 +1097,7 @@ public final class VideoDetailFragment private void openMainPlayer() { if (playerService == null) { - PlayerHolder.startService(App.getApp(), true, this); + PlayerHolder.startService(App.getApp(), autoPlayEnabled, this); return; } if (currentInfo == null) { @@ -1112,7 +1112,7 @@ public final class VideoDetailFragment addVideoPlayerView(); final Intent playerIntent = NavigationHelper - .getPlayerIntent(requireContext(), MainPlayer.class, queue, null, true); + .getPlayerIntent(requireContext(), MainPlayer.class, queue, true, autoPlayEnabled); activity.startService(playerIntent); } diff --git a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayerActivity.java index 0e5222f5e..2fc710fb0 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayerActivity.java @@ -2,11 +2,8 @@ package org.schabi.newpipe.player; import android.content.Intent; import android.view.Menu; -import android.view.MenuItem; import org.schabi.newpipe.R; -import org.schabi.newpipe.util.NavigationHelper; -import org.schabi.newpipe.util.PermissionHelper; public final class BackgroundPlayerActivity extends ServicePlayerActivity { @@ -46,31 +43,6 @@ public final class BackgroundPlayerActivity extends ServicePlayerActivity { return R.menu.menu_play_queue_bg; } - @Override - public boolean onPlayerOptionSelected(final MenuItem item) { - if (item.getItemId() == R.id.action_switch_popup) { - - if (!PermissionHelper.isPopupEnabled(this)) { - PermissionHelper.showPopupEnablementToast(this); - return true; - } - - this.player.setRecovery(); - NavigationHelper.playOnPopupPlayer( - getApplicationContext(), player.playQueue, this.player.isPlaying()); - return true; - } - - if (item.getItemId() == R.id.action_switch_background) { - this.player.setRecovery(); - NavigationHelper.playOnBackgroundPlayer( - getApplicationContext(), player.playQueue, this.player.isPlaying()); - return true; - } - - return false; - } - @Override public void setupMenu(final Menu menu) { if (player == null) { diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 70f2e158b..1355f4285 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -125,7 +125,7 @@ public abstract class BasePlayer implements @NonNull public static final String RESUME_PLAYBACK = "resume_playback"; @NonNull - public static final String START_PAUSED = "start_paused"; + public static final String PLAY_WHEN_READY = "play_when_ready"; @NonNull public static final String SELECT_ON_APPEND = "select_on_append"; @NonNull @@ -224,7 +224,7 @@ public abstract class BasePlayer implements this.dataSource = new PlayerDataSource(context, userAgent, bandwidthMeter); final TrackSelection.Factory trackSelectionFactory = PlayerHelper - .getQualitySelector(context); + .getQualitySelector(); this.trackSelector = new CustomTrackSelector(context, trackSelectionFactory); this.loadControl = new LoadController(); @@ -302,6 +302,7 @@ public abstract class BasePlayer implements final boolean samePlayQueue = playQueue != null && playQueue.equals(queue); final int repeatMode = intent.getIntExtra(REPEAT_MODE, getRepeatMode()); + final boolean playWhenReady = intent.getBooleanExtra(PLAY_WHEN_READY, true); final boolean isMuted = intent .getBooleanExtra(IS_MUTED, simpleExoPlayer != null && isMuted()); @@ -327,16 +328,20 @@ public abstract class BasePlayer implements simpleExoPlayer.retry(); } simpleExoPlayer.seekTo(playQueue.getIndex(), queue.getItem().getRecoveryPosition()); - return; + simpleExoPlayer.setPlayWhenReady(playWhenReady); - } else if (samePlayQueue && !playQueue.isDisposed() && simpleExoPlayer != null) { + } else if (simpleExoPlayer != null + && samePlayQueue + && playQueue != null + && !playQueue.isDisposed()) { // Do not re-init the same PlayQueue. Save time // Player can have state = IDLE when playback is stopped or failed // and we should retry() in this case if (simpleExoPlayer.getPlaybackState() == Player.STATE_IDLE) { simpleExoPlayer.retry(); } - return; + simpleExoPlayer.setPlayWhenReady(playWhenReady); + } else if (intent.getBooleanExtra(RESUME_PLAYBACK, false) && isPlaybackResumeEnabled() && !samePlayQueue) { @@ -351,7 +356,7 @@ public abstract class BasePlayer implements state -> { queue.setRecovery(queue.getIndex(), state.getProgressTime()); initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, - playbackSkipSilence, true, isMuted); + playbackSkipSilence, playWhenReady, isMuted); }, error -> { if (DEBUG) { @@ -359,24 +364,22 @@ public abstract class BasePlayer implements } // In case any error we can start playback without history initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, - playbackSkipSilence, true, isMuted); + playbackSkipSilence, playWhenReady, isMuted); }, () -> { // Completed but not found in history initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, - playbackSkipSilence, true, isMuted); + playbackSkipSilence, playWhenReady, isMuted); } ); databaseUpdateReactor.add(stateLoader); - return; } + } else { + // Good to go... + // In a case of equal PlayQueues we can re-init old one but only when it is disposed + initPlayback(samePlayQueue ? playQueue : queue, repeatMode, playbackSpeed, + playbackPitch, playbackSkipSilence, playWhenReady, isMuted); } - // Good to go... - // In a case of equal PlayQueues we can re-init old one but only when it is disposed - initPlayback(samePlayQueue ? playQueue : queue, repeatMode, - playbackSpeed, playbackPitch, playbackSkipSilence, - !intent.getBooleanExtra(START_PAUSED, false), - isMuted); } private PlaybackParameters retrievePlaybackParametersFromPreferences() { diff --git a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java index ea205bbdf..07ca7b339 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java @@ -240,7 +240,7 @@ public final class MainPlayer extends Service { } public void removeViewFromParent() { - if (getView().getParent() != null) { + if (getView() != null && getView().getParent() != null) { if (playerImpl.getParentActivity() != null) { // This means view was added to fragment final ViewGroup parent = (ViewGroup) getView().getParent(); diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index fee189295..ad4c603cd 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -27,9 +27,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; -import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.R; -import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.fragments.OnScrollBelowItemsListener; import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; @@ -42,9 +40,9 @@ import org.schabi.newpipe.player.playqueue.PlayQueueItem; import org.schabi.newpipe.player.playqueue.PlayQueueItemBuilder; import org.schabi.newpipe.player.playqueue.PlayQueueItemHolder; import org.schabi.newpipe.player.playqueue.PlayQueueItemTouchCallback; -import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.NavigationHelper; +import org.schabi.newpipe.util.PermissionHelper; import org.schabi.newpipe.util.ThemeHelper; import java.util.Collections; @@ -113,9 +111,8 @@ public abstract class ServicePlayerActivity extends AppCompatActivity public abstract int getPlayerOptionMenuResource(); - public abstract boolean onPlayerOptionSelected(MenuItem item); - public abstract void setupMenu(Menu m); + //////////////////////////////////////////////////////////////////////////// // Activity Lifecycle //////////////////////////////////////////////////////////////////////////// @@ -187,12 +184,22 @@ public abstract class ServicePlayerActivity extends AppCompatActivity return true; case R.id.action_switch_main: this.player.setRecovery(); - getApplicationContext().startActivity( - getSwitchIntent(MainActivity.class, MainPlayer.PlayerType.VIDEO) - .putExtra(BasePlayer.START_PAUSED, !this.player.isPlaying())); + NavigationHelper.playOnMainPlayer(this, player.getPlayQueue(), true); + return true; + case R.id.action_switch_popup: + if (PermissionHelper.isPopupEnabled(this)) { + this.player.setRecovery(); + NavigationHelper.playOnPopupPlayer(this, player.playQueue, true); + } else { + PermissionHelper.showPopupEnablementToast(this); + } + return true; + case R.id.action_switch_background: + this.player.setRecovery(); + NavigationHelper.playOnBackgroundPlayer(this, player.playQueue, true); return true; } - return onPlayerOptionSelected(item) || super.onOptionsItemSelected(item); + return super.onOptionsItemSelected(item); } @Override @@ -201,24 +208,6 @@ public abstract class ServicePlayerActivity extends AppCompatActivity unbind(); } - protected Intent getSwitchIntent(final Class clazz, final MainPlayer.PlayerType playerType) { - return NavigationHelper.getPlayerIntent(getApplicationContext(), clazz, - this.player.getPlayQueue(), this.player.getRepeatMode(), - this.player.getPlaybackSpeed(), this.player.getPlaybackPitch(), - this.player.getPlaybackSkipSilence(), - null, - true, - !this.player.isPlaying(), - this.player.isMuted()) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - .putExtra(Constants.KEY_LINK_TYPE, StreamingService.LinkType.STREAM) - .putExtra(Constants.KEY_URL, this.player.getVideoUrl()) - .putExtra(Constants.KEY_TITLE, this.player.getVideoTitle()) - .putExtra(Constants.KEY_SERVICE_ID, - this.player.getCurrentMetadata().getMetadata().getServiceId()) - .putExtra(VideoPlayer.PLAYER_TYPE, playerType); - } - //////////////////////////////////////////////////////////////////////////// // Service Connection //////////////////////////////////////////////////////////////////////////// @@ -368,8 +357,8 @@ public abstract class ServicePlayerActivity extends AppCompatActivity Menu.NONE, R.string.play_queue_stream_detail); detail.setOnMenuItemClickListener(menuItem -> { // playQueue is null since we don't want any queue change - NavigationHelper.openVideoDetail( - this, item.getServiceId(), item.getUrl(), item.getTitle(), null); + NavigationHelper.openVideoDetail(this, item.getServiceId(), item.getUrl(), + item.getTitle(), null, false); return true; }); diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java index 765eb148b..fa016e158 100644 --- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java +++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java @@ -76,9 +76,7 @@ import com.google.android.exoplayer2.ui.SubtitleView; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.nostra13.universalimageloader.core.assist.FailReason; -import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.R; -import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.extractor.stream.VideoStream; import org.schabi.newpipe.fragments.OnScrollBelowItemsListener; @@ -97,7 +95,6 @@ import org.schabi.newpipe.player.resolver.AudioPlaybackResolver; import org.schabi.newpipe.player.resolver.MediaSourceTag; import org.schabi.newpipe.player.resolver.VideoPlaybackResolver; import org.schabi.newpipe.util.AnimationUtils; -import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.KoreUtil; import org.schabi.newpipe.util.ListHelper; @@ -260,7 +257,12 @@ public class VideoPlayerImpl extends VideoPlayer onQueueClosed(); // Android TV: without it focus will frame the whole player playPauseButton.requestFocus(); - onPlay(); + + if (simpleExoPlayer.getPlayWhenReady()) { + onPlay(); + } else { + onPause(); + } } NavigationHelper.sendPlayerStartedEvent(service); } @@ -756,40 +758,6 @@ public class VideoPlayerImpl extends VideoPlayer setupScreenRotationButton(); } - public void switchFromPopupToMain() { - if (DEBUG) { - Log.d(TAG, "switchFromPopupToMain() called"); - } - if (!popupPlayerSelected() || simpleExoPlayer == null || getCurrentMetadata() == null) { - return; - } - - setRecovery(); - service.removeViewFromParent(); - final Intent intent = NavigationHelper.getPlayerIntent( - service, - MainActivity.class, - this.getPlayQueue(), - this.getRepeatMode(), - this.getPlaybackSpeed(), - this.getPlaybackPitch(), - this.getPlaybackSkipSilence(), - null, - true, - !isPlaying(), - isMuted() - ); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(Constants.KEY_SERVICE_ID, - getCurrentMetadata().getMetadata().getServiceId()); - intent.putExtra(Constants.KEY_LINK_TYPE, StreamingService.LinkType.STREAM); - intent.putExtra(Constants.KEY_URL, getVideoUrl()); - intent.putExtra(Constants.KEY_TITLE, getVideoTitle()); - intent.putExtra(VideoDetailFragment.KEY_SWITCHING_PLAYERS, true); - service.onDestroy(); - context.startActivity(intent); - } - @Override public void onClick(final View v) { super.onClick(v); @@ -817,7 +785,9 @@ public class VideoPlayerImpl extends VideoPlayer } else if (v.getId() == openInBrowser.getId()) { onOpenInBrowserClicked(); } else if (v.getId() == fullscreenButton.getId()) { - switchFromPopupToMain(); + setRecovery(); + NavigationHelper.playOnMainPlayer(context, getPlayQueue(), true); + return; } else if (v.getId() == screenRotationButton.getId()) { // Only if it's not a vertical video or vertical video but in landscape with locked // orientation a screen orientation can be changed automatically diff --git a/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt index dcc1bb128..681c1b9af 100644 --- a/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/event/BasePlayerGestureListener.kt @@ -63,7 +63,7 @@ abstract class BasePlayerGestureListener( private var isMovingInPopup = false private var isResizing = false - private val tossFlingVelocity = PlayerHelper.getTossFlingVelocity(service) + private val tossFlingVelocity = PlayerHelper.getTossFlingVelocity() // [popup] initial coordinates and distance between fingers private var initPointerDistance = -1.0 @@ -104,9 +104,6 @@ abstract class BasePlayerGestureListener( } private fun onTouchInPopup(v: View, event: MotionEvent): Boolean { - if (playerImpl == null) { - return false - } playerImpl.gestureDetector.onTouchEvent(event) if (event.pointerCount == 2 && !isMovingInPopup && !isResizing) { if (DEBUG) { diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java b/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java index a931c46bd..ffe19599d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/AudioReactor.java @@ -164,7 +164,7 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An @Override public void onAudioSessionId(final EventTime eventTime, final int audioSessionId) { - if (!PlayerHelper.isUsingDSP(context)) { + if (!PlayerHelper.isUsingDSP()) { return; } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java index 4b52aa27d..cdd07ba1c 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java @@ -295,7 +295,7 @@ public final class PlayerHelper { return 60000; } - public static TrackSelection.Factory getQualitySelector(@NonNull final Context context) { + public static TrackSelection.Factory getQualitySelector() { return new AdaptiveTrackSelection.Factory( 1000, AdaptiveTrackSelection.DEFAULT_MAX_DURATION_FOR_QUALITY_DECREASE_MS, @@ -303,11 +303,11 @@ public final class PlayerHelper { AdaptiveTrackSelection.DEFAULT_BANDWIDTH_FRACTION); } - public static boolean isUsingDSP(@NonNull final Context context) { + public static boolean isUsingDSP() { return true; } - public static int getTossFlingVelocity(@NonNull final Context context) { + public static int getTossFlingVelocity() { return 2500; } diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java index 6d0f5fff7..5764b2b94 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java @@ -49,6 +49,13 @@ public final class PlayerHolder { return player.getPlayerType(); } + public static boolean isPlaying() { + if (player == null) { + return false; + } + return player.isPlaying(); + } + public static void setListener(final PlayerServiceExtendedEventListener newListener) { listener = newListener; // Force reload data from service diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItem.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItem.java index 74aef07fa..79efc03ae 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItem.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItem.java @@ -64,6 +64,20 @@ public class PlayQueueItem implements Serializable { this.recoveryPosition = RECOVERY_UNSET; } + @Override + public boolean equals(final Object o) { + if (o instanceof PlayQueueItem) { + return url.equals(((PlayQueueItem) o).url); + } else { + return false; + } + } + + @Override + public int hashCode() { + return url.hashCode(); + } + @NonNull public String getTitle() { return title; diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index a96730552..3c791d44d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -37,7 +37,6 @@ import org.schabi.newpipe.extractor.stream.VideoStream; import org.schabi.newpipe.fragments.MainFragment; import org.schabi.newpipe.fragments.detail.VideoDetailFragment; import org.schabi.newpipe.fragments.list.channel.ChannelFragment; -import org.schabi.newpipe.fragments.list.comments.CommentsFragment; import org.schabi.newpipe.fragments.list.kiosk.KioskFragment; import org.schabi.newpipe.fragments.list.playlist.PlaylistFragment; import org.schabi.newpipe.fragments.list.search.SearchFragment; @@ -73,7 +72,6 @@ public final class NavigationHelper { public static Intent getPlayerIntent(@NonNull final Context context, @NonNull final Class targetClazz, @Nullable final PlayQueue playQueue, - @Nullable final String quality, final boolean resumePlayback) { final Intent intent = new Intent(context, targetClazz); @@ -83,9 +81,6 @@ public final class NavigationHelper { intent.putExtra(VideoPlayer.PLAY_QUEUE_KEY, cacheKey); } } - if (quality != null) { - intent.putExtra(VideoPlayer.PLAYBACK_QUALITY, quality); - } intent.putExtra(VideoPlayer.RESUME_PLAYBACK, resumePlayback); intent.putExtra(VideoPlayer.PLAYER_TYPE, VideoPlayer.PLAYER_TYPE_VIDEO); @@ -96,8 +91,10 @@ public final class NavigationHelper { public static Intent getPlayerIntent(@NonNull final Context context, @NonNull final Class targetClazz, @Nullable final PlayQueue playQueue, - final boolean resumePlayback) { - return getPlayerIntent(context, targetClazz, playQueue, null, resumePlayback); + final boolean resumePlayback, + final boolean playWhenReady) { + return getPlayerIntent(context, targetClazz, playQueue, resumePlayback) + .putExtra(BasePlayer.PLAY_WHEN_READY, playWhenReady); } @NonNull @@ -111,24 +108,6 @@ public final class NavigationHelper { .putExtra(BasePlayer.SELECT_ON_APPEND, selectOnAppend); } - @NonNull - public static Intent getPlayerIntent(@NonNull final Context context, - @NonNull final Class targetClazz, - @Nullable final PlayQueue playQueue, - final int repeatMode, - final float playbackSpeed, - final float playbackPitch, - final boolean playbackSkipSilence, - @Nullable final String playbackQuality, - final boolean resumePlayback, - final boolean startPaused, - final boolean isMuted) { - return getPlayerIntent(context, targetClazz, playQueue, playbackQuality, resumePlayback) - .putExtra(BasePlayer.REPEAT_MODE, repeatMode) - .putExtra(BasePlayer.START_PAUSED, startPaused) - .putExtra(BasePlayer.IS_MUTED, isMuted); - } - public static void playOnMainPlayer(final AppCompatActivity activity, @NonNull final PlayQueue playQueue) { final PlayQueueItem item = playQueue.getItem(); @@ -138,10 +117,12 @@ public final class NavigationHelper { } public static void playOnMainPlayer(final Context context, - @NonNull final PlayQueue playQueue) { + @NonNull final PlayQueue playQueue, + final boolean switchingPlayers) { final PlayQueueItem item = playQueue.getItem(); assert item != null; - openVideoDetail(context, item.getServiceId(), item.getUrl(), item.getTitle(), playQueue); + openVideoDetail(context, + item.getServiceId(), item.getUrl(), item.getTitle(), playQueue, switchingPlayers); } public static void playOnPopupPlayer(final Context context, @@ -370,7 +351,7 @@ public final class NavigationHelper { autoPlay = PlayerHelper.isAutoplayAllowedByUser(context); } else if (switchingPlayers) { // switching player to main player - autoPlay = true; + autoPlay = PlayerHolder.isPlaying(); // keep play/pause state } else if (playerType == MainPlayer.PlayerType.VIDEO) { // opening new stream while already playing in main player autoPlay = PlayerHelper.isAutoplayAllowedByUser(context); @@ -416,16 +397,6 @@ public final class NavigationHelper { .commit(); } - public static void openCommentsFragment(final FragmentManager fragmentManager, - final int serviceId, final String url, - @NonNull final String name) { - fragmentManager.beginTransaction() - .setCustomAnimations(R.anim.switch_service_in, R.anim.switch_service_out) - .replace(R.id.fragment_holder, CommentsFragment.getInstance(serviceId, url, name)) - .addToBackStack(null) - .commit(); - } - public static void openPlaylistFragment(final FragmentManager fragmentManager, final int serviceId, final String url, @NonNull final String name) { @@ -506,23 +477,17 @@ public final class NavigationHelper { context.startActivity(mIntent); } - public static void openChannel(final Context context, final int serviceId, - final String url, @NonNull final String name) { - final Intent openIntent = getOpenIntent(context, url, serviceId, - StreamingService.LinkType.CHANNEL); - openIntent.putExtra(Constants.KEY_TITLE, name); - context.startActivity(openIntent); - } - public static void openVideoDetail(final Context context, final int serviceId, final String url, @NonNull final String title, - @Nullable final PlayQueue playQueue) { + @Nullable final PlayQueue playQueue, + final boolean switchingPlayers) { final Intent intent = getOpenIntent(context, url, serviceId, StreamingService.LinkType.STREAM); intent.putExtra(Constants.KEY_TITLE, title); + intent.putExtra(VideoDetailFragment.KEY_SWITCHING_PLAYERS, switchingPlayers); if (playQueue != null) { final String cacheKey = SerializedCache.getInstance().put(playQueue, PlayQueue.class); From 00a178f7d3b34d57e23dc4047c150c22d2e84fa3 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 1 Nov 2020 21:25:31 +0100 Subject: [PATCH 129/231] Fix tapping on video thumbnail does nothing --- .../schabi/newpipe/fragments/detail/VideoDetailFragment.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 1324d6832..92032986d 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -289,6 +289,7 @@ public final class VideoDetailFragment || (currentInfo != null && isAutoplayEnabled() && player.getParentActivity() == null)) { + autoPlayEnabled = true; // forcefully start playing openVideoPlayer(); } } @@ -521,6 +522,7 @@ public final class VideoDetailFragment } break; case R.id.detail_thumbnail_root_layout: + autoPlayEnabled = true; // forcefully start playing openVideoPlayer(); break; case R.id.detail_title_root_layout: @@ -537,6 +539,7 @@ public final class VideoDetailFragment player.hideControls(0, 0); showSystemUi(); } else { + autoPlayEnabled = true; // forcefully start playing openVideoPlayer(); } From 5a87cfc25df880a579d943299a20d00e6fbdc7e3 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 1 Nov 2020 21:45:39 +0100 Subject: [PATCH 130/231] Open mini player if player running on app open --- .../java/org/schabi/newpipe/MainActivity.java | 60 ++++++++++--------- .../newpipe/player/helper/PlayerHolder.java | 4 ++ 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 1d911c944..84235d4fb 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -69,6 +69,7 @@ import org.schabi.newpipe.fragments.detail.VideoDetailFragment; import org.schabi.newpipe.fragments.list.search.SearchFragment; import org.schabi.newpipe.player.VideoPlayer; import org.schabi.newpipe.player.event.OnKeyDownListener; +import org.schabi.newpipe.player.helper.PlayerHolder; import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.util.Constants; @@ -152,7 +153,7 @@ public class MainActivity extends AppCompatActivity { if (DeviceUtils.isTv(this)) { FocusOverlayView.setupFocusObserver(this); } - setupBroadcastReceiver(); + openMiniPlayerUponPlayerStarted(); } private void setupDrawer() throws Exception { @@ -809,34 +810,39 @@ public class MainActivity extends AppCompatActivity { } } - private void setupBroadcastReceiver() { - broadcastReceiver = new BroadcastReceiver() { - @Override - public void onReceive(final Context context, final Intent intent) { - if (intent.getAction().equals(VideoDetailFragment.ACTION_PLAYER_STARTED)) { - final Fragment fragmentPlayer = getSupportFragmentManager() - .findFragmentById(R.id.fragment_player_holder); - if (fragmentPlayer == null) { - /* - * We still don't have a fragment attached to the activity. - * It can happen when a user started popup or background players - * without opening a stream inside the fragment. - * Adding it in a collapsed state (only mini player will be visible) - * */ - NavigationHelper.showMiniPlayer(getSupportFragmentManager()); + private void openMiniPlayerIfMissing() { + final Fragment fragmentPlayer = getSupportFragmentManager() + .findFragmentById(R.id.fragment_player_holder); + if (fragmentPlayer == null) { + // We still don't have a fragment attached to the activity. It can happen when a user + // started popup or background players without opening a stream inside the fragment. + // Adding it in a collapsed state (only mini player will be visible). + NavigationHelper.showMiniPlayer(getSupportFragmentManager()); + } + } + + private void openMiniPlayerUponPlayerStarted() { + if (PlayerHolder.isPlayerOpen()) { + // no need for a broadcast receiver if the player is already open + openMiniPlayerIfMissing(); + } else { + // listen for player intents being sent around + broadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + if (intent.getAction().equals(VideoDetailFragment.ACTION_PLAYER_STARTED)) { + openMiniPlayerIfMissing(); + // At this point the player is added 100%, we can unregister. Other actions + // are useless since the fragment will not be removed after that. + unregisterReceiver(broadcastReceiver); + broadcastReceiver = null; } - /* - * At this point the player is added 100%, we can unregister. - * Other actions are useless since the fragment will not be removed after that - * */ - unregisterReceiver(broadcastReceiver); - broadcastReceiver = null; } - } - }; - final IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(VideoDetailFragment.ACTION_PLAYER_STARTED); - registerReceiver(broadcastReceiver, intentFilter); + }; + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(VideoDetailFragment.ACTION_PLAYER_STARTED); + registerReceiver(broadcastReceiver, intentFilter); + } } private boolean bottomSheetHiddenOrCollapsed() { diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java index 5764b2b94..854e3eb2b 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java @@ -56,6 +56,10 @@ public final class PlayerHolder { return player.isPlaying(); } + public static boolean isPlayerOpen() { + return player != null; + } + public static void setListener(final PlayerServiceExtendedEventListener newListener) { listener = newListener; // Force reload data from service From 1b47a1a994e009a298f12ad6570d2565cb49b7dd Mon Sep 17 00:00:00 2001 From: Stypox Date: Mon, 2 Nov 2020 18:06:14 +0100 Subject: [PATCH 131/231] Fix switching to main player when MainActivity is closed --- .../java/org/schabi/newpipe/MainActivity.java | 15 ++++++++++++--- .../fragments/detail/VideoDetailFragment.java | 4 +++- .../org/schabi/newpipe/player/MainPlayer.java | 2 ++ .../org/schabi/newpipe/util/NavigationHelper.java | 1 + 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 84235d4fb..9bcbe4ff1 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -88,6 +88,7 @@ import org.schabi.newpipe.views.FocusOverlayView; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage; @@ -822,15 +823,23 @@ public class MainActivity extends AppCompatActivity { } private void openMiniPlayerUponPlayerStarted() { + if (getIntent().getSerializableExtra(Constants.KEY_LINK_TYPE) + == StreamingService.LinkType.STREAM) { + // handleIntent() already takes care of opening video detail fragment + // due to an intent containing a STREAM link + return; + } + if (PlayerHolder.isPlayerOpen()) { - // no need for a broadcast receiver if the player is already open + // if the player is already open, no need for a broadcast receiver openMiniPlayerIfMissing(); } else { - // listen for player intents being sent around + // listen for player start intent being sent around broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(final Context context, final Intent intent) { - if (intent.getAction().equals(VideoDetailFragment.ACTION_PLAYER_STARTED)) { + if (Objects.equals(intent.getAction(), + VideoDetailFragment.ACTION_PLAYER_STARTED)) { openMiniPlayerIfMissing(); // At this point the player is added 100%, we can unregister. Other actions // are useless since the fragment will not be removed after that. diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 92032986d..3296f5bf8 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1111,7 +1111,9 @@ public final class VideoDetailFragment // Video view can have elements visible from popup, // We hide it here but once it ready the view will be shown in handleIntent() - playerService.getView().setVisibility(View.GONE); + if (playerService.getView() != null) { + playerService.getView().setVisibility(View.GONE); + } addVideoPlayerView(); final Intent playerIntent = NavigationHelper diff --git a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java index 07ca7b339..63f6a400e 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainPlayer.java @@ -30,6 +30,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; +import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import org.schabi.newpipe.R; @@ -231,6 +232,7 @@ public final class MainPlayer extends Service { return metrics.heightPixels < metrics.widthPixels; } + @Nullable public View getView() { if (playerImpl == null) { return null; diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index 3c791d44d..b45a1e7b9 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -486,6 +486,7 @@ public final class NavigationHelper { final Intent intent = getOpenIntent(context, url, serviceId, StreamingService.LinkType.STREAM); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(Constants.KEY_TITLE, title); intent.putExtra(VideoDetailFragment.KEY_SWITCHING_PLAYERS, switchingPlayers); From 617ee0afc0093bc0f075bd4a11b5762c7df19b79 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 4 Nov 2020 16:10:25 +0100 Subject: [PATCH 132/231] Fix brightness and volume scroll swapped --- .../schabi/newpipe/player/event/PlayerGestureListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java b/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java index a23d5d3ff..fdea20775 100644 --- a/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java +++ b/app/src/main/java/org/schabi/newpipe/player/event/PlayerGestureListener.java @@ -111,10 +111,10 @@ public class PlayerGestureListener } if (playerType == MainPlayer.PlayerType.VIDEO) { if (portion == DisplayPortion.LEFT_HALF) { - onScrollMainVolume(distanceX, distanceY); + onScrollMainBrightness(distanceX, distanceY); } else /* DisplayPortion.RIGHT_HALF */ { - onScrollMainBrightness(distanceX, distanceY); + onScrollMainVolume(distanceX, distanceY); } } else /* MainPlayer.PlayerType.POPUP */ { From e6bc29281ebf1357b5581b9209955c4ca69b881a Mon Sep 17 00:00:00 2001 From: KIMMINTAE98 Date: Sun, 8 Nov 2020 23:01:02 +0900 Subject: [PATCH 133/231] create korean translation of README.md just create --- README_KO.md | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 README_KO.md diff --git a/README_KO.md b/README_KO.md new file mode 100644 index 000000000..a287768b7 --- /dev/null +++ b/README_KO.md @@ -0,0 +1,139 @@ + +

NewPipe

+

A libre lightweight streaming frontend for Android.

+

+ +

+ + + + + + +

+
+

ScreenshotsDescriptionFeaturesUpdatesContributionDonateLicense

+

WebsiteBlogFAQPress

+
+ +WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY. + +PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS. + +## Screenshots + +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png) +[](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png) +[](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png) + +## Description + +NewPipe does not use any Google framework libraries, nor the YouTube API. Websites are only parsed to fetch required info, so this app can be used on devices without Google services installed. Also, you don't need a YouTube account to use NewPipe, which is copylefted libre software. + +### Features + +* Search videos +* Display general info about videos +* Watch YouTube videos +* Listen to YouTube videos +* Popup mode (floating player) +* Select streaming player to watch video with +* Download videos +* Download audio only +* Open a video in Kodi +* Show next/related videos +* Search YouTube in a specific language +* Watch/Block age restricted material +* Display general info about channels +* Search channels +* Watch videos from a channel +* Orbot/Tor support (not yet directly) +* 1080p/2K/4K support +* View history +* Subscribe to channels +* Search history +* Search/watch playlists +* Watch as enqueued playlists +* Enqueue videos +* Local playlists +* Subtitles +* Livestream support +* Show comments + +### Supported Services + +NewPipe supports multiple services. Our [docs](https://teamnewpipe.github.io/documentation/) provide more info on how a new service can be added to the app and the extractor. Please get in touch with us if you intend to add a new one. Currently supported services are: + +* YouTube +* SoundCloud \[beta\] +* media.ccc.de \[beta\] +* PeerTube instances \[beta\] + +## Updates +When a change to the NewPipe code occurs (due to either adding features or bug fixing), eventually a release will occur. These are in the format x.xx.x . In order to get this new version, you can: + 1. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods. + 2. Add our custom repo to F-Droid and install it from there as soon as we publish a release. The instructions are here: https://newpipe.schabi.org/FAQ/tutorials/install-add-fdroid-repo/ + 3. Download the APK from [Github Releases](https://github.com/TeamNewPipe/NewPipe/releases) and install it as soon as we publish a release. + 4. Update via F-droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users. + +We recommend method 2 for most users. APKs installed using method 2 or 3 are compatible with each other, but not with those installed using method 4. This is due to the same signing key (ours) being using for 2 and 3, but a different signing key (F-Droid's) being used for 4. Building a debug APK using method 1 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. + +In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality was broken and F-Droid doesn't have the update yet), we recommend following this procedure: +1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists +2. Uninstall NewPipe +3. Download the APK from the new source and install it +4. Import the data from step 1 via Settings > Content > Import Database + +## Contribution +Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome. +The more is done the better it gets! + +If you'd like to get involved, check our [contribution notes](.github/CONTRIBUTING.md). + + +Translation status + + +## Donate +If you like NewPipe we'd be happy about a donation. You can either send bitcoin or donate via Bountysource or Liberapay. For further info on donating to NewPipe, please visit our [website](https://newpipe.schabi.org/donate). + + + + + + + + + + + + + + + + + +
BitcoinBitcoin QR code16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
LiberapayVisit NewPipe at liberapay.comDonate via Liberapay
BountysourceVisit NewPipe at bountysource.comCheck out how many bounties you can earn.
+ +## Privacy Policy + +The NewPipe project aims to provide a private, anonymous experience for using media web services. +Therefore, the app does not collect any data without your consent. NewPipe's privacy policy explains in detail what data is sent and stored when you send a crash report, or comment in our blog. You can find the document [here](https://newpipe.schabi.org/legal/privacy/). + +## License +[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html) + +NewPipe is Free Software: You can use, study share and improve it at your +will. Specifically you can redistribute and/or modify it under the terms of the +[GNU General Public License](https://www.gnu.org/licenses/gpl.html) as +published by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. From 32a506208137dad68da796d33d1b81fe3364111f Mon Sep 17 00:00:00 2001 From: KIMMINTAE98 Date: Mon, 9 Nov 2020 03:37:56 +0900 Subject: [PATCH 134/231] update korean translation of README.md --- README_KO.md | 96 +++++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/README_KO.md b/README_KO.md index a287768b7..ecb36100f 100644 --- a/README_KO.md +++ b/README_KO.md @@ -16,9 +16,9 @@

WebsiteBlogFAQPress


-WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY. +경고: 이 버전은 베타 버전이므로, 버그가 발생할 수도 있습니다. 만약 버그가 발생하였다면, 우리의 GITHUB 저장소에서 ISSUE를 열람하여 주십시오. -PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS. +NEWPIPE 또는 이것의 FORK을 구글 플레이스토어에 올리는 것은 그들의 이용약관을 위반합니다. ## Screenshots @@ -37,41 +37,41 @@ ## Description -NewPipe does not use any Google framework libraries, nor the YouTube API. Websites are only parsed to fetch required info, so this app can be used on devices without Google services installed. Also, you don't need a YouTube account to use NewPipe, which is copylefted libre software. +NewPipe는 어떤 구글 프레임워크 라이브러리나, 유튜브 API를 사용하지 않습니다. 웹사이트는 단지 필요한 정보를 가져오기 위해 구문 분석 됩니다. 따라서 이 앱은 구글 서비스의 설치 없이 기기에서 사용될 수 있습니다. 또한, 카피레프트 자유 소프트웨어인 NewPipe를 사용하기 위해 유튜브 계정이 필요하지 않습니다. ### Features -* Search videos -* Display general info about videos -* Watch YouTube videos -* Listen to YouTube videos -* Popup mode (floating player) -* Select streaming player to watch video with -* Download videos -* Download audio only -* Open a video in Kodi -* Show next/related videos -* Search YouTube in a specific language -* Watch/Block age restricted material -* Display general info about channels -* Search channels -* Watch videos from a channel -* Orbot/Tor support (not yet directly) -* 1080p/2K/4K support -* View history -* Subscribe to channels -* Search history -* Search/watch playlists -* Watch as enqueued playlists -* Enqueue videos -* Local playlists -* Subtitles -* Livestream support -* Show comments +* 영상 검색 +* 영상의 일반적인 정보 표시 +* 유튜브 영상 보기 +* 유튜브 영상 듣기 +* 팝업 모드 (floating player) +* 영상 공유 +* 영상 다운로드 +* 음성만 다운로드 +* Kodi에서 영상 열람 +* 다음/관련된 영상 표시 +* 특정 언어로 유튜브 검색 +* 연령 제한 컨텐츠 시청/차단 +* 채널에 대한 일반적인 정보 표시 +* 채널 검색 +* 채널에서 영상 시청 +* Orbot/Tor 지원 (아직 직접적이지 않음) +* 1080p/2K/4K 지원 +* 기록 보기 +* 채널 구독 +* 기록 검색 +* 재생목록 검색/시청 +* 추가된 재생목록 시청 +* 영상 추가 +* 지역 재생목록 +* 자막 +* 실시간 방송 지원 +* 댓글 표시 ### Supported Services -NewPipe supports multiple services. Our [docs](https://teamnewpipe.github.io/documentation/) provide more info on how a new service can be added to the app and the extractor. Please get in touch with us if you intend to add a new one. Currently supported services are: +NewPipe는 여러가지 서비스를 지원합니다. 우리의 [문서](https://teamnewpipe.github.io/documentation/)는 새로운 서비스가 앱과 추출기에 어떻게 추가될 수 있는지에 대한 더 많은 정보를 제공합니다. 만약 새로운 서비스를 추가하고자 한다면, 우리에게 연락해 주시기 바랍니다. 현재 지원되는 서비스: * YouTube * SoundCloud \[beta\] @@ -79,32 +79,32 @@ NewPipe supports multiple services. Our [docs](https://teamnewpipe.github.io/doc * PeerTube instances \[beta\] ## Updates -When a change to the NewPipe code occurs (due to either adding features or bug fixing), eventually a release will occur. These are in the format x.xx.x . In order to get this new version, you can: - 1. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods. +NewPipe 코드의 변경이 있을 때(기능 추가 또는 버그 수정으로 인해), 결국 릴리즈가 발생할 것입니다. 이것들의 형식은 x.xx.x 입니다. 이 새로운 버전을 얻기 위해서, 당신은: + 1. 직접 디버그한 APK를 생성할 수 있습니다. 이 방법은 당신의 기기에서 새로운 기능을 얻을 수 있는 가장 빠른 방법이지만, 꽤 많이 복잡합니다. 따라서 우리는 다른 방법들 중 하나를 사용하는 것을 추천합니다. 2. Add our custom repo to F-Droid and install it from there as soon as we publish a release. The instructions are here: https://newpipe.schabi.org/FAQ/tutorials/install-add-fdroid-repo/ 3. Download the APK from [Github Releases](https://github.com/TeamNewPipe/NewPipe/releases) and install it as soon as we publish a release. 4. Update via F-droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users. -We recommend method 2 for most users. APKs installed using method 2 or 3 are compatible with each other, but not with those installed using method 4. This is due to the same signing key (ours) being using for 2 and 3, but a different signing key (F-Droid's) being used for 4. Building a debug APK using method 1 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. +우리는 대부분의 사용자에게 2번쨰 방법을 추천합니다. APKs installed using method 2 or 3 are compatible with each other, but not with those installed using method 4. This is due to the same signing key (ours) being using for 2 and 3, but a different signing key (F-Droid's) being used for 4. Building a debug APK using method 1 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality was broken and F-Droid doesn't have the update yet), we recommend following this procedure: -1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists -2. Uninstall NewPipe -3. Download the APK from the new source and install it -4. Import the data from step 1 via Settings > Content > Import Database +1. 당신의 기록, 구독, 그리고 재생목록을 유지할 수 있도록 Settings > Content > Export Database 를 통해 당신의 데이터를 백업하십시오. +2. NewPipe를 삭제하십시오. +3. 새로운 소스에서 APK를 다운로드하고 이것을 설치하십시오. +4. Step 1의 Settings > Content > Export Database 에서 데이터를 불러오십시오. ## Contribution -Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome. -The more is done the better it gets! +당신이 아이디어, 번역, 디자인 변경, 코드 정리, 또는 정말 큰 코드 수정에 대한 의견이 있다면, 도움은 항상 환영합니다. +더 많이 수행될수록 더 많이 발전할 수 있습니다! -If you'd like to get involved, check our [contribution notes](.github/CONTRIBUTING.md). +만약 참여하고 싶다면, 우리의 [컨트리뷰션 공지](.github/CONTRIBUTING.md)를 참고하십시오. Translation status ## Donate -If you like NewPipe we'd be happy about a donation. You can either send bitcoin or donate via Bountysource or Liberapay. For further info on donating to NewPipe, please visit our [website](https://newpipe.schabi.org/donate). +만약 NewPipe가 마음에 들었다면, 우리는 기부에 대해 기꺼이 환영합니다. bitcoin을 보내거나, Bountysource 또는 Liberapay를 통해 기부할 수 있습니다. NewPipe에 기부하는 것에 대한 자세한 정보를 원한다면, 우리의 [웹사이트](https://newpipe.schabi.org/donate)를 방문하여 주십시오. @@ -126,14 +126,12 @@ If you like NewPipe we'd be happy about a donation. You can either send bitcoin ## Privacy Policy -The NewPipe project aims to provide a private, anonymous experience for using media web services. -Therefore, the app does not collect any data without your consent. NewPipe's privacy policy explains in detail what data is sent and stored when you send a crash report, or comment in our blog. You can find the document [here](https://newpipe.schabi.org/legal/privacy/). +NewPipe 프로젝트는 미디어 웹 서비스를 사용하는 것에 대한 사적의, 익명의 경험을 제공하는 것을 목표로 하고 있습니다. +그러므로, 앱은 당신의 동의 없이 어떤 데이터도 수집하지 않습니다. NewPipe의 개인정보보호정책은 당신이 충돌 리포트를 보내거나, 또는 우리의 블로그에 글을 남길 때 어떤 데이터가 보내지고 저장되는지에 대해 상세히 설명합니다. 이 문서는 [여기](https://newpipe.schabi.org/legal/privacy/)에서 확인할 수 있습니다. ## License [![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html) -NewPipe is Free Software: You can use, study share and improve it at your -will. Specifically you can redistribute and/or modify it under the terms of the -[GNU General Public License](https://www.gnu.org/licenses/gpl.html) as -published by the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +NewPipe는 자유 소프트웨어입니다: 당신의 마음대로 이것을 사용하고, 연구하고, 공유하고, 개선할 수 있습니다. +구체적으로 당신은 자유 소프트웨어 재단에서 발행되는, 버전 3 또는 (당신의 선택에 따라)이후 버전의, +[GNU General Public License](https://www.gnu.org/licenses/gpl.html) 하에서 이것을 재배포 및/또는 수정할 수 있습니다. From e5f64710f4f31b65866cdca7c39e78fd672806b5 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sun, 8 Nov 2020 11:27:30 +0000 Subject: [PATCH 135/231] Translated using Weblate (German) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-de/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 149289a84..01993ba71 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -342,11 +342,14 @@ Die Überwachung von Speicherlecks kann dazu führen, dass die App beim Heap-Dumping nicht mehr reagiert Fehler außerhalb des Lebenszyklus melden Erzwingen der Meldung unzustellbarer Rx-Ausnahmen außerhalb des Lebenszyklus von Fragmenten oder Aktivitäten nach der Entsorgung - Importiere YouTube-Abonnements, indem du die Exportdatei herunterlädst: -\n -\n1. Gehe zu dieser URL: %1$s -\n2. Melde dich an, falls du dazu aufgefordert wirst. -\n3. Der Ladevorgang sollte beginnen (das ist die Exportdatei) + Importiere YouTube-Abonnements aus dem Google Takeout: +\n +\n1. Gehe zu dieser URL: %1$s +\n2. Melde dich an, falls du dazu aufgefordert wirst +\n3. Klicke auf \"Alle Daten enthalten\", dann auf \"Alle abwählen\", wähle dann nur \"Abonnements\" und klicke auf \"OK\" +\n4. Klicke auf \"Nächster Schritt\" und dann auf \"Export erstellen\" +\n5. Klicke auf die Schaltfläche \"Download\", nachdem sie erscheint und +\n6. Entpacke aus dem heruntergeladenen Takeout-Zip die .json-Datei (normalerweise unter \"YouTube und YouTube Music/subscriptions/subscriptions.json\") und importiere sie hier. Importiere ein SoundCloud-Profil, indem die URL oder deine ID eingegeben wird: \n \n1. Aktiviere den Desktop-Modus in einem Web-Browser (die Seite ist für mobile Geräte nicht verfügbar) @@ -640,4 +643,6 @@ reCAPTCHA-Cookies löschen Zeige Inhalt, der möglicherweise unpassend für Kinder ist, da er eine Altersbeschränkung (wie z.B. 18+) hat. Wiedergabe einreihen + Android kann die Farbe der Benachrichtigung entsprechend der Hauptfarbe in der Miniaturansicht anpassen (beachte, dass dies nicht auf allen Geräten verfügbar ist) + Benachrichtigung farblich anpassen \ No newline at end of file From f166cfbac8a0fe3d7ddb8fd4d61f9e7d8b7650b2 Mon Sep 17 00:00:00 2001 From: Florian Date: Sun, 8 Nov 2020 08:33:42 +0000 Subject: [PATCH 136/231] Translated using Weblate (French) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-fr/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2048ee2f9..ede413206 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -332,11 +332,14 @@ Exportation précédente Impossible d’importer les abonnements Impossible d’exporter les abonnements - Veuillez importer vos abonnements YouTube en téléchargeant le fichier d’exportation. -\n -\n1. Suivez ce lien : %1$s. -\n2. Connectez-vous à votre compte. -\n3. Un téléchargement va démarrer (celui du fichier d’exportation). + Importez vos abonnements YouTube depuis Google Takeout : +\n +\n1. Suivez ce lien : %1$s +\n2. Connectez-vous à votre compte +\n3. Cliquez sur \"Toutes les données Youtube sont incluses\", puis sur \"Tout désélectionner\", puis sélectionnez uniquement \"abonnements\" et cliquez sur \"OK\" +\n4. Cliquez sur \"Étape suivante\" et ensuite sur \"Créer une exportation\" +\n5. Cliquez sur le bouton \"Télécharger\" après qu\'il apparaisse et +\n6. À partir du fichier zip téléchargé, extrayez le fichier .json (généralement sous \"YouTube et YouTube Music/subscriptions/subscriptions.json\") et importez-le ici. Veuillez importer un profil SoundCloud en saisissant l’URL de votre profil ou votre identifiant. \n \n1. Activez le « mode bureau » dans votre navigateur Web (le site n’est pas disponible pour les appareils mobiles). @@ -640,4 +643,6 @@ Effacer les cookies reCAPTCHA YouTube dispose d\'un « Mode restreint » qui cache le contenu potentiellement inapproprié. Le contenu de cette émission n\'est peut-être pas approprié pour les enfants à cause d\'une limite d\'âge (18 +). + Notification colorée + Demander à Android de personnaliser la couleur de la notification en fonction de la couleur principale de la miniature (noter que cela n’est pas disponible sur tous les appareils) \ No newline at end of file From 21ef76816fe00df5efc5e7520aa007ee2589d697 Mon Sep 17 00:00:00 2001 From: Vancha March Date: Sun, 8 Nov 2020 10:38:08 +0000 Subject: [PATCH 137/231] Translated using Weblate (Dutch) Currently translated at 99.8% (604 of 605 strings) --- app/src/main/res/values-nl/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 72402a0f3..c2a44d6be 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -640,4 +640,6 @@ Verwijder reCAPTCHA cookies YouTube biedt een \"beperkte modes\" aan, dit verbergt mogelijk materiaal voor volwassenen. Toon inhoud die mogelijk niet geschikt is voor kinderen omwille van een leeftijdslimiet (zoals 18+). + Laat Android de kleur van de notificatie aanpassen, op basis van de meest voorkomende kleur in de thumbnail (let op: niet beschikbaar op elk apparaat) + Notificatie kleur aanpassen \ No newline at end of file From f9204450f186e759428687c1697c0730930ed8dc Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 09:46:37 +0000 Subject: [PATCH 138/231] Translated using Weblate (Portuguese) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pt/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index bbab1f55a..8fb983bd2 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -321,11 +321,14 @@ Exportação anterior Não foi possível importar as subscrições Não foi possível exportar as subscrições - Importe subscrições do YouTube descarregando o ficheiro de exportação: + Importar subscrições do YouTube do Google Takeout: \n -\n1. Aceda a este URL: %1$s -\n2. Inicie a sessão -\n3. A descarga será iniciada (esse é o ficheiro de exportação) +\n1. Vá para este URL: %1$s +\n2. Faça o login quando solicitado +\n3. Clique em \"Todos os dados incluídos\", depois em \"Desmarcar todos\", depois selecione apenas \"subscrições\" e clique em \"OK\". +\n4. Clique em \"Próximo passo\" e depois em \"Criar exportação\". +\n5. Clique no botão \"Descarregar\" após aparecer e +\n6. A partir do zip do takeout descarregado extraia o ficheiro .json (normalmente em \"YouTube e YouTube Music/subscriptions/subscriptions.json\") e importe-o aqui. Importe o seu perfil SoundCloud digitando o URL ou a ID.: \n \n1. Ative o modo desktop do seu navegador web (o site não está disponível para aparelhos móveis) @@ -640,4 +643,6 @@ Limpar cookies reCAPTCHA O YouTube fornece um \"Modo Restrito\" que oculta conteúdo potencialmente para adultos. Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+). + Fazer com que o Android personalize a cor da notificação de acordo com a cor principal na miniatura (note que esta não está disponível em todos os aparelhos) + Colorir a notificação \ No newline at end of file From 77ea160cd9a6bd33a1f790bcbba688cac862df17 Mon Sep 17 00:00:00 2001 From: Bopol Date: Sun, 8 Nov 2020 22:00:58 +0000 Subject: [PATCH 139/231] Translated using Weblate (Esperanto) Currently translated at 91.0% (551 of 605 strings) --- app/src/main/res/values-eo/strings.xml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 2683e092f..2d0cc6f70 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -9,7 +9,7 @@ Elŝuti Serĉi Agordoj - Ĉu vi signifis: %1$s\? + Ĉu vi signifis \"%1$s\"\? Konigi kun Elekti retumilon turno @@ -64,7 +64,8 @@ Signali eraron Filmeto Reprovi - Premi \"Serĉi\" por komenci + Premi \"Serĉi\" por komenci +\n Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin). Malfermi en ŝprucfenestran modon Forigas aŭdon ĉe kelkaj rezolucioj @@ -148,7 +149,7 @@ Kiosko Tendencoj Supro 50 - Nova & varma + Nova kaj varma Montri la indiko « Tenu por aldoni » Montri indikon premante la fona aŭ la ŝprucfenestra butono en filmeta \"Detaloj:\" Viciĝita en la fona ludilo @@ -205,7 +206,10 @@ \n \n1. Iru ĉe tiu retpaĝo: %1$s \n2. Ensalutu kiam oni petas vin -\n3. Elŝuto devus komenci (ĝi estas la dosiero de eksporto) +\n3. Click on \"All data included\", then on \"Deselect all\", then select only \"subscriptions\" and click \"OK\" +\n4. Click on \"Next step\" and then on \"Create export\" +\n5. Click on the \"Download\" button after it appears and +\n6. From the downloaded takeout zip extract the .json file (usually under \"YouTube and YouTube Music/subscriptions/subscriptions.json\") and import it here. Importu Soundcloud-n profilon tajpante ĉu la ligilon, ĉu vian ID : \n \n1. Ebligu komputilon modon en retumilon (la retejo malhaveblas por poŝtelefonoj) @@ -284,9 +288,9 @@ Ĉu vi volas forviŝi ĉiujn ludajn poziciojn \? Ŝanĝu la elŝutojn dosierujojn por efekti Pardonu, eraro okazis. - Pardonu, kelkaj eraroj okazis. + Pardonon, io mizokasis. Kio okazis: - Kio:\\nPeto:\\nEnhavlingvo:\\nServo:\\nGMT Horo:\\nPako:\\nVersio:\\nOperaciumo versio: + Kio:\\nPeto:\\nEnhavlingvo:\\nEnhavlando:\\nAplingvo:\\nServo:\\nGMT Horo:\\nPako:\\nVersio:\\nOperaciumo versio: Aŭdio Permesi la konservadon unue Uzantosignalo @@ -434,7 +438,7 @@ Rifuzi Neniu limo Minimumigi dum la apo ŝanĝo - Ago dum ŝanĝante al alia apo el la ĉefa filmetludilo—%s + Ago dum ŝanĝante al alia apo el la ĉefa filmetludilo — %s Neniu Minimumigi por ludi fone Plirapidigi dum silentoj From 167e9fbc6d89499ddcd61243d826b7d03e804627 Mon Sep 17 00:00:00 2001 From: simo Date: Sun, 8 Nov 2020 11:36:23 +0000 Subject: [PATCH 140/231] Translated using Weblate (Arabic) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-ar/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 5e1c83ab3..5f3d94e00 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -362,11 +362,14 @@ نسخة احتياطية تعذر استيراد الاشتراكات لا يمكن تصدير الاشتراكات - استيراد اشتراكات YouTube عن طريق تنزيل ملف التصدير: -\n -\n1. انتقل إلى عنوان URL هذا: %1$s -\n2. تسجيل الدخول عندما يطلب منك -\n3. يجب أن يبدأ التنزيل (وهذا ملف التصدير) + استيراد اشتراكات YouTube من Google Takeout +\n +\n1. انتقل إلى عنوان URL هذا : %1$s +\n2. تسجيل الدخول عندما يُطلب منك ذلك +\n3. انقر على \"جميع البيانات المدرجة\" ، ثم على \"إلغاء تحديد الكل\" ، ثم حدد \"الاشتراكات\" فقط وانقر على \"موافق\" +\n4. انقر على \"الخطوة التالية\" ثم على \"إنشاء تصدير\" +\n5. انقر فوق الزر \"تنزيل\" بعد ظهوره و +\n6. من الملف المضغوط الذي تم تنزيله ، استخرج ملف .json (عادةً ضمن \"YouTube و YouTube)Music/subscriptions/subscriptions.json\") واستورده قم باستيراد ملف تعريف SoundCloud عن طريق كتابة عنوان URL أو معرفك: \n \n1. تمكين \"وضع سطح المكتب\" في متصفح الويب (الموقع غير متاح للأجهزة المحمولة) @@ -680,4 +683,6 @@ إظهار تسرب الذاكرة قائمة الانتظار قائمة الانتظار + اجعل أندرويد يخصص لون الإشعار وفقا للون الرئيسي في الصورة المصغرة (لاحظ أن هذا غير متوفر على جميع الأجهزة + تلوين الاشعارات \ No newline at end of file From 0b150ea475d3b855fd17323ee43a60bc809ad664 Mon Sep 17 00:00:00 2001 From: Eric Date: Sun, 8 Nov 2020 02:31:51 +0000 Subject: [PATCH 141/231] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-b+zh+HANS+CN/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index 4c0577015..f2b39535d 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -357,11 +357,14 @@ 以前的导出 无法导入订阅 无法导出订阅 - 通过下载导出文件来导入 YouTube 订阅: + 从 Google takeout 导入YouTube 订阅: \n -\n1. 转到此网站: %1$s -\n2. 登录(如果需要) -\n3. 应该立即开始下载(即导出文件) +\n1. 转到这个URL:%1$s +\n2. 登录谷歌账户 +\n3. 点击“所有包含的数据”,然后点击“取消选择全部”,然后只选择“订阅”,然后点击“确定” +\n4. 点击“下一步”然后点击“创建导出” +\n5. 在“下载”按钮出现后,点击它 +\n6. 从下载的takeout压缩包提取.json文件 (通常能够位于\"YouTube and YouTube Music/subscriptions/subscriptions.json\")并在此导入它。 通过输入网址或你的 ID 导入 SoundCloud 配置文件: \n \n1. 在浏览器中启用\"电脑模式\"(该网站不适用于移动设备) @@ -631,4 +634,6 @@ 清理 reCAPTCHA cookies YouTube提供了一个“受限模式”,会隐藏潜在的成人内容。 展示可能不适合儿童观看的内容,因为它有年龄限制(比如18岁以上)。 + 让安卓系统根据视频缩略图的主色彩自定义通知的颜色(注意,该特性并非在所有设备上都可用) + 对通知着色 \ No newline at end of file From ad223a04f8dd1b24763133f507bc105c8c1684fc Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sun, 8 Nov 2020 02:15:08 +0000 Subject: [PATCH 142/231] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0feef39b6..ac409d840 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -321,11 +321,14 @@ 無法匯出訂閱 之前的匯出 檔案不存在或讀取或寫入權限不足 - 透過下載匯出檔來匯入您的 YouTube 訂閱: -\n -\n1. 移至此網址:%1$s + 從 Google Takeout 匯入您的 YouTube 訂閱: +\n +\n1. 移至此網址:%1$s \n2. 當被提示時登入帳號 -\n3. 應該會開始下載(這就是匯出檔 ) +\n3. 點擊「包含所有資料」,然後「取消選取全部」,然後僅選取「訂閱」並點擊「確定」 +\n4. 點擊「下一步」然後「建立匯出」 +\n5. 在「下載」按鈕出現後點擊它,然後 +\n6. 從已下載的 takeout zip 解壓縮 .json 檔(通常會在「YouTube 與 YouTube Music/subscriptions/subscriptions.json」)然後匯入它。 yourID, soundcloud.com/yourid 請記住,此操作可造成昂貴網路花費。 \n @@ -630,4 +633,6 @@ 清除 reCAPTCHA cookies YouTube 提供了「受限模式」,可以隱藏潛在的成人內容。 顯示可能不適於兒童的內容(因為其有年齡限制,如18歲以上等)。 + 讓 Android 根據縮圖中的主要色彩來自訂通知的顏色(請注意,此功能不是在所有裝置上都能正常運作) + 彩色通知 \ No newline at end of file From 55f23e930481a3cfec4bf30d8954b5462fbb84dc Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 8 Nov 2020 07:31:12 +0000 Subject: [PATCH 143/231] Translated using Weblate (Hebrew) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-he/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 529d7b0dc..564e2631d 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -317,10 +317,13 @@ לא ניתן לייבא את המינויים לא ניתן לייצא את המינויים כדי לייבא את רשימת המינויים שלך מ־YouTube עליך להוריד את קובץ הייצוא: -\n +\n \n1. לעבור לכתובת הזו: %1$s \n2. להיכנס אם נתבקשת -\n3. ההורדה אמורה להתחיל (זה קובץ הייצוא) +\n3. ללחוץ על „All data included”, ואז על „Deselect all”, לאחר מכן לבחור רק את „subscriptions” וללחוץ על „OK” +\n4. ללחוץ על „Next step” ואז על „Create export” +\n5. ללחוץ על כפתור ה־„Download” כשהוא מופיע ואז +\n6. לחלץ את קובץ ה־‎.json מתוך ה־zip (בדרך כלל תחת „YouTube and YouTube Music/subscriptions/subscriptions.json”) ולייבא אותו כאן. קצב שימוש בחיפוש מהיר ולא מדויק חיפוש גס מאפשר לנגן לחפש נקודת זמן מהר יותר, ברמת דיוק נמוכה יותר. חיפוש של 5, 15 או 25 שניות לא עובד עם ההגדרה הזאת. @@ -660,4 +663,6 @@ פינוי עוגיות reCAPTCHA פלטפורמת YouTube מספקת „מצב מוגבל” שמסתיר תוכן שעשוי להתאים למבוגרים בלבד. הצגת תוכן שעלול להיות בלתי הולם לילדים עקב מגבלת גיל (כגון 18+). + לאפשר ל־Android להתאים את צבע ההתראה בהתאם לצבע העיקרי של התמונה הממוזערת (לא זמין בכל המכשירים) + צביעת ההתראה \ No newline at end of file From 6ea3ebb72d97931d554d42bb55dc10f1eec39486 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 8 Nov 2020 18:17:01 +0000 Subject: [PATCH 144/231] Translated using Weblate (Sardinian) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-sc/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index dfc055fad..a4f6eee80 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -1,10 +1,13 @@ - Importa sas iscritziones iscarrighende su documentu de esportatzione: + Importa sas iscritziones dae Google takeout: \n \n 1. Bae a custu URL: %1$s \n 2. Intra cando ti l\'ant a pedire -\n 3. Diat dèpere incumintzare un\'iscarrigamentu (cussu est su documentu de esportatzione) +\n 3. Incarca in \"Totu sos datos incluidos\", a pustis in \"Boga sa seletzione a totus\" e a pustis galu ischerta petzi \"iscritziones\" e incarca \"AB\" +\n4. Incarca in \"Passu imbeniente\" e a pustis in \"Crea un\'esportatzione\" +\n5. Cando aparit, incarca in su butone \"Iscarrigamentu\" e +\n6. Dae s\'archìviu zip iscarrigadu estrai su documentu .json (de sòlitu tenet su nùmene\"\"YouTube and YouTube Music/subscriptions/subscriptions.json\") e importa·lu inoghe. Esportatzione de s\'iscritzione fallida Importatzione de s\'iscritzione fallida Esportatzione anteposta @@ -640,4 +643,6 @@ Isbòida sos testimòngios reCAPTCHA YouTube frunit una \"Modalidade cun restritziones\" chi cuat sos cuntenudos chi diant pòdere èssere pro adultos. Ammustra sos cuntenutos chi diant pòdere no èssere adatos pro sos pitzinnos ca tenent unu lìmite de edade (che a 18+). + Pedi a Android de personalizare su colore de sa notìfica sighende su colore printzipale de sa miniadura (ammenta·ti chi custu no est a disponimentu pro totu sos dispositivos) + Colora sas notìficas \ No newline at end of file From acee20d897b2706efb18366de6a477ffdf9ccc56 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 18:42:55 +0000 Subject: [PATCH 145/231] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pt-rPT/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 7e0c95ba8..ae9785493 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -192,11 +192,14 @@ País padrão para conteúdo Aplicação livre de reprodução de emissões para Android. Idioma padrão para conteúdo - Importe subscrições do YouTube descarregando o ficheiro de exportação: + Importar subscrições do YouTube do Google Takeout: \n -\n1. Aceda a este URL: %1$s -\n2. Inicie a sessão -\n3. A descarga será iniciada (esse é o ficheiro de exportação) +\n1. Vá para este URL: %1$s +\n2. Faça o login quando solicitado +\n3. Clique em \"Todos os dados incluídos\", depois em \"Desmarcar todos\", depois selecione apenas \"subscrições\" e clique em \"OK\". +\n4. Clique em \"Próximo passo\" e depois em \"Criar exportação\". +\n5. Clique no botão \"Descarregar\" após aparecer e +\n6. A partir do zip do takeout descarregado extraia o ficheiro .json (normalmente em \"YouTube e YouTube Music/subscriptions/subscriptions.json\") e importe-o aqui. Ativar reprodutor em segundo plano Mais tarde Desafio reCAPTCHA solicitado @@ -640,4 +643,6 @@ Limpar cookies reCAPTCHA O YouTube fornece um \"Modo Restrito\" que oculta conteúdo potencialmente para adultos. Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+). + Fazer com que o Android personalize a cor da notificação de acordo com a cor principal na miniatura (note que esta não está disponível em todos os aparelhos) + Colorir a notificação \ No newline at end of file From b4b1c9256bb45e99b60f1b617cc9aae91dce6e90 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sun, 8 Nov 2020 11:28:05 +0000 Subject: [PATCH 146/231] Translated using Weblate (German) Currently translated at 18.9% (7 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ --- fastlane/metadata/android/de/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/de/changelogs/956.txt diff --git a/fastlane/metadata/android/de/changelogs/956.txt b/fastlane/metadata/android/de/changelogs/956.txt new file mode 100644 index 000000000..d0e443335 --- /dev/null +++ b/fastlane/metadata/android/de/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Absturz beim Laden eines Videos behoben From 8ec3df552a21df80394f85dfe53185c70f862f54 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 18:48:18 +0000 Subject: [PATCH 147/231] Translated using Weblate (Portuguese) Currently translated at 54.0% (20 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ --- fastlane/metadata/android/pt/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/pt/changelogs/955.txt | 3 +++ fastlane/metadata/android/pt/changelogs/956.txt | 1 + 3 files changed, 13 insertions(+) create mode 100644 fastlane/metadata/android/pt/changelogs/954.txt create mode 100644 fastlane/metadata/android/pt/changelogs/955.txt create mode 100644 fastlane/metadata/android/pt/changelogs/956.txt diff --git a/fastlane/metadata/android/pt/changelogs/954.txt b/fastlane/metadata/android/pt/changelogs/954.txt new file mode 100644 index 000000000..1da36f6fa --- /dev/null +++ b/fastlane/metadata/android/pt/changelogs/954.txt @@ -0,0 +1,9 @@ +• fluxo de trabalho da app nova: reproduz vídeos na página de detalhes, deslize para baixo para minimizar o reprodutor +• notificações MediaStyle: ações personalizáveis em notificações, melhorias de desempenho +• redimensionamento básico ao usar NewPipe como app de desktop + +• mostrar diálogo com opções abertas em caso de URL não suportado +• experiência de sugestão de pesquisa melhorada +• qualidade de vídeo predefinido aumentada a 720p60 (player do app) e 480p (pop-up) + +• correções de bugs diff --git a/fastlane/metadata/android/pt/changelogs/955.txt b/fastlane/metadata/android/pt/changelogs/955.txt new file mode 100644 index 000000000..cd70b41c9 --- /dev/null +++ b/fastlane/metadata/android/pt/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] A procura por alguns utilizadores corrigida +[YouTube] Exceções de desencriptação aleatórias corrigidas +[SounCloud] URLs que terminam com uma barra são agora analisados corretamente diff --git a/fastlane/metadata/android/pt/changelogs/956.txt b/fastlane/metadata/android/pt/changelogs/956.txt new file mode 100644 index 000000000..e258a451e --- /dev/null +++ b/fastlane/metadata/android/pt/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Falha corrigida ao carregar qualquer vídeo From a4e3a874ada8452ec250c59232d6d8851452c818 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 8 Nov 2020 07:37:03 +0000 Subject: [PATCH 148/231] Translated using Weblate (Hebrew) Currently translated at 21.6% (8 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/ --- fastlane/metadata/android/he/changelogs/952.txt | 7 +++++++ fastlane/metadata/android/he/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/he/changelogs/956.txt | 1 + 3 files changed, 17 insertions(+) create mode 100644 fastlane/metadata/android/he/changelogs/952.txt create mode 100644 fastlane/metadata/android/he/changelogs/954.txt create mode 100644 fastlane/metadata/android/he/changelogs/956.txt diff --git a/fastlane/metadata/android/he/changelogs/952.txt b/fastlane/metadata/android/he/changelogs/952.txt new file mode 100644 index 000000000..8205cb4ab --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/952.txt @@ -0,0 +1,7 @@ +שיפורים +• נגינה אוטומטית זמינה לכל השירותים (במקום רק ל־YouTube) + +תיקונים +• תוקנו תזרימים קשורים על ידי תמיכה בהמשך נגינה החדש של YouTube +• תוקנו מגבלות גיל על סרטונים של YouTube +• [Android TV] תוקנה השתהות הצגת על של הדגשת מיקוד diff --git a/fastlane/metadata/android/he/changelogs/954.txt b/fastlane/metadata/android/he/changelogs/954.txt new file mode 100644 index 000000000..5905c41f0 --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/954.txt @@ -0,0 +1,9 @@ +• תצורת הנגינה השתנתה: ניתן לנגן סרטונים בעמוד הפירוט, לגרור כלפי מטה כדי למזער את הנגן +• התראות MediaStyle: פעולות מותאמות אישית בהתראות, שיפורי ביצועים +• שינוי גודל בסיסי בעת שימוש ב־NewPipe כיישומון שולחן עבודה + +• להציג דו־שיח עם אפשרויות פתיחה במקרה של הגשת כתובת בלתי נתמכת +• לשפר את חוויית תוצאות החיפוש כאשר אי אפשר להביא תוצאות מרוחקות +• בררת המחדל של איכות הווידאו עלתה ל־720p60 (בנגן הפנימי) ול־480p (בנגן הצף) + +• ערימות נכבדות של תיקוני באגים ועוד diff --git a/fastlane/metadata/android/he/changelogs/956.txt b/fastlane/metadata/android/he/changelogs/956.txt new file mode 100644 index 000000000..582b9680c --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] תוקנה קריסה בעת טעינת כל סרטון שהוא From 1b34ca822f192a39d9ceace509235837ee18379c Mon Sep 17 00:00:00 2001 From: simo Date: Sun, 8 Nov 2020 12:05:16 +0000 Subject: [PATCH 149/231] Translated using Weblate (Arabic) Currently translated at 62.1% (23 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ --- fastlane/metadata/android/ar/changelogs/64.txt | 8 ++++++++ fastlane/metadata/android/ar/changelogs/840.txt | 10 ++++++++++ fastlane/metadata/android/ar/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/ar/changelogs/956.txt | 1 + 4 files changed, 28 insertions(+) create mode 100644 fastlane/metadata/android/ar/changelogs/64.txt create mode 100644 fastlane/metadata/android/ar/changelogs/840.txt create mode 100644 fastlane/metadata/android/ar/changelogs/954.txt create mode 100644 fastlane/metadata/android/ar/changelogs/956.txt diff --git a/fastlane/metadata/android/ar/changelogs/64.txt b/fastlane/metadata/android/ar/changelogs/64.txt new file mode 100644 index 000000000..9f753ffad --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/64.txt @@ -0,0 +1,8 @@ +### تحسينات +- تمت إضافة القدرة على تقييد جودة الفيديو في حالة استخدام بيانات الجوال. #1339 +- تذكر السطوع للدورة #1442 +- تحسين أداء التنزيل لوحدات المعالجة المركزية الأضعف #1431 +- اضافة دعم (عاملة) للجلسة الاعلامية رقم#1433 + +### الإصلاح +- إصلاح التعطل عند فتح التنزيلات (الإصلاح متوفر الآن لإصدارات الإصدارات) #1441 diff --git a/fastlane/metadata/android/ar/changelogs/840.txt b/fastlane/metadata/android/ar/changelogs/840.txt new file mode 100644 index 000000000..dc364e25b --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/840.txt @@ -0,0 +1,10 @@ +جديد +• تمت إضافة محدد اللغة لتغيير لغة التطبيق +• تمت إضافة زر الإرسال إلى Kodi إلى قائمة المشغل القابلة للطي +• تمت إضافة إمكانية نسخ التعليقات عند الضغط لفترة طويلة + +محسّن +• إصلاح نشاط ReCaptcha وحفظ ملفات تعريف الارتباط التي تم الحصول عليها بشكل صحيح +• تمت إزالة قائمة النقاط لصالح الدرج وزر إخفاء السجل عندما لا يتم تمكين سجل المشاهدة في الإعدادات +• اطلب العرض فوق إذن التطبيقات الأخرى في الإعدادات بشكل صحيح على Android 6 والإصدارات الأحدث +• إعادة تسمية قائمة التشغيل المحلية عن طريق النقر لفترة ط diff --git a/fastlane/metadata/android/ar/changelogs/954.txt b/fastlane/metadata/android/ar/changelogs/954.txt new file mode 100644 index 000000000..fa6859cb1 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/954.txt @@ -0,0 +1,9 @@ +• سير عمل جديد للتطبيق: قم بتشغيل مقاطع الفيديو على صفحة التفاصيل ، واسحب لأسفل لتقليل المشغل +• إخطارات MediaStyle: إجراءات قابلة للتخصيص في الإخطارات ، وتحسينات في الأداء +• تغيير الحجم الأساسي عند استخدام NewPipe كتطبيق سطح المكتب + +• إظهار الحوار مع الخيارات المفتوحة في حالة وجود نخب عنوان URL غير مدعوم +• تحسين تجربة اقتراح البحث عندما يتعذر جلب الاقتراحات البعيدة +• زيادة جودة الفيديو الافتراضية إلى 720p60 (مشغل داخل التطبيق) و 480 بكسل (مشغل منبثق) + +• طن من إصلاحات الأخطاء وأكثر من ذلك diff --git a/fastlane/metadata/android/ar/changelogs/956.txt b/fastlane/metadata/android/ar/changelogs/956.txt new file mode 100644 index 000000000..ce05a3930 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/956.txt @@ -0,0 +1 @@ +[يوتيوب] عطل ثابت عند تحميل أي فيديو From 0b37b8b0594f5b465591672448e65c6b8f64c051 Mon Sep 17 00:00:00 2001 From: Florian Date: Sun, 8 Nov 2020 08:37:52 +0000 Subject: [PATCH 150/231] Translated using Weblate (French) Currently translated at 24.3% (9 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/910.txt | 1 + fastlane/metadata/android/fr/changelogs/956.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/fr/changelogs/910.txt create mode 100644 fastlane/metadata/android/fr/changelogs/956.txt diff --git a/fastlane/metadata/android/fr/changelogs/910.txt b/fastlane/metadata/android/fr/changelogs/910.txt new file mode 100644 index 000000000..33faa5c44 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/910.txt @@ -0,0 +1 @@ +Correction de la migration de la base de données qui empêchait NewPipe de démarrer dans de rares cas. diff --git a/fastlane/metadata/android/fr/changelogs/956.txt b/fastlane/metadata/android/fr/changelogs/956.txt new file mode 100644 index 000000000..b5d86b193 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Correction d'un crash lors du chargement de n'importe quelle vidéo From 9899e63d5379f2b49eeb0906d5ecb1df34725740 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 18:48:39 +0000 Subject: [PATCH 151/231] Translated using Weblate (Portuguese (Portugal)) Currently translated at 54.0% (20 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/ --- fastlane/metadata/android/pt_PT/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/pt_PT/changelogs/955.txt | 3 +++ fastlane/metadata/android/pt_PT/changelogs/956.txt | 1 + 3 files changed, 13 insertions(+) create mode 100644 fastlane/metadata/android/pt_PT/changelogs/954.txt create mode 100644 fastlane/metadata/android/pt_PT/changelogs/955.txt create mode 100644 fastlane/metadata/android/pt_PT/changelogs/956.txt diff --git a/fastlane/metadata/android/pt_PT/changelogs/954.txt b/fastlane/metadata/android/pt_PT/changelogs/954.txt new file mode 100644 index 000000000..1da36f6fa --- /dev/null +++ b/fastlane/metadata/android/pt_PT/changelogs/954.txt @@ -0,0 +1,9 @@ +• fluxo de trabalho da app nova: reproduz vídeos na página de detalhes, deslize para baixo para minimizar o reprodutor +• notificações MediaStyle: ações personalizáveis em notificações, melhorias de desempenho +• redimensionamento básico ao usar NewPipe como app de desktop + +• mostrar diálogo com opções abertas em caso de URL não suportado +• experiência de sugestão de pesquisa melhorada +• qualidade de vídeo predefinido aumentada a 720p60 (player do app) e 480p (pop-up) + +• correções de bugs diff --git a/fastlane/metadata/android/pt_PT/changelogs/955.txt b/fastlane/metadata/android/pt_PT/changelogs/955.txt new file mode 100644 index 000000000..cd70b41c9 --- /dev/null +++ b/fastlane/metadata/android/pt_PT/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] A procura por alguns utilizadores corrigida +[YouTube] Exceções de desencriptação aleatórias corrigidas +[SounCloud] URLs que terminam com uma barra são agora analisados corretamente diff --git a/fastlane/metadata/android/pt_PT/changelogs/956.txt b/fastlane/metadata/android/pt_PT/changelogs/956.txt new file mode 100644 index 000000000..e258a451e --- /dev/null +++ b/fastlane/metadata/android/pt_PT/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Falha corrigida ao carregar qualquer vídeo From 868661edf076cc222986825b5670007c89135aa2 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 8 Nov 2020 18:18:11 +0000 Subject: [PATCH 152/231] Translated using Weblate (Sardinian) Currently translated at 10.8% (4 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sc/ --- fastlane/metadata/android/sc/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/sc/changelogs/956.txt diff --git a/fastlane/metadata/android/sc/changelogs/956.txt b/fastlane/metadata/android/sc/changelogs/956.txt new file mode 100644 index 000000000..2dbbabd04 --- /dev/null +++ b/fastlane/metadata/android/sc/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Curretzione de una serradura no isetada cando si càrrigat cale si siat vìdeu From a1fb268764907fd9707de503a976112d11aed03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 8 Nov 2020 02:29:43 +0000 Subject: [PATCH 153/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 10.8% (4 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nb_NO/ --- fastlane/metadata/android/nb-NO/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/nb-NO/changelogs/956.txt diff --git a/fastlane/metadata/android/nb-NO/changelogs/956.txt b/fastlane/metadata/android/nb-NO/changelogs/956.txt new file mode 100644 index 000000000..1bd76267e --- /dev/null +++ b/fastlane/metadata/android/nb-NO/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Fikset kræsj ved innlasting av vilkårlig video From 6ecbbd1f7930acf1a526bd0ad5ff347f0b27b92c Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Sun, 8 Nov 2020 01:06:01 +0000 Subject: [PATCH 154/231] Translated using Weblate (Santali) Currently translated at 8.4% (51 of 605 strings) --- app/src/main/res/values-sat/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 6e8842e29..453ca0dca 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -24,4 +24,7 @@ ᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱵᱽ ᱮᱱᱟ + ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱯᱥᱚᱱ ᱵᱚᱫᱚᱞ ᱵᱟᱭ ᱜᱟᱱᱟᱜᱽ ᱠᱟᱱᱟ + ᱪᱟᱱᱱᱮᱹᱞ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱮᱱᱟ + ᱯᱚᱯᱟᱹᱯ ᱢᱳᱰ \ No newline at end of file From 64ae07b03ba710ddf81148c22a4238033d683a97 Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Sun, 8 Nov 2020 22:46:10 +0000 Subject: [PATCH 155/231] Translated using Weblate (Uzbek (latin)) Currently translated at 36.5% (221 of 605 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 87827c013..862f96f84 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -99,4 +99,104 @@ Qalqib ko\'rinadigan rejim Tashqi audio pleerdan foydalanish Ba\'zi piksellarda ovozni o\'chirish + Tomosha tarixini tozalash + ReCAPTCHA-ni hal qilganingizda NewPipe-da saqlanadigan cookie-fayllarni o\'chirib tashlang + Eksport tarixi, obunalari va pleylistlari + Joriy tarixingiz va obunalaringizni bekor qiladi + reCAPTCHA cookies fayllari o\'chirildi + ReCAPTCHA cookie-fayllarini o\'chirish + Ma\'lumotlar bazasini eksport qilish + Ma\'lumotlar bazasini import qilish + Asosiyga o\'tish + Pop-upga o\'tish + Orqa fonga o\'tish + Yo\'nalishni almashtirish / yoqish + [Noma\'lum] + NewPipe yangi versiyasi haqida bildirishnomalar + Ilovani yangilash bildirishnomasi + NewPipe fon va popup pleyerlari uchun bildirishnomalar + NewPipe bildirishnomasi + Fayl + Faqat bittasi + Har doim + Barchasini ijro etish + Fayl o\'chirildi + Bekor qilish + Eng yaxshi qaror + Hajmi o\'zgartirilmoqda + Tozalash + Yangilash + Filter + Ijrochilar o\'chirib qo\'yilgan + Keyin + Ha + Artistlar + Albomlar + Qo\'shiqlar + Natijalar + Foydalanuvchilar + Treklar + Videolar + Playlistlar + Playlist + Kanallar + Kanal + Hammasi + Xato haqida xabar berish + Yuklanganlar + Yuklanganlar + Jonli + Ushbu video yoshga cheklangan. +\n +\nAgar xohlasangiz, sozlamalarda \"%1$s\" ni yoqing. + YouTube \"cheklangan rejim\" ni taqdim etadi, u katta yoshlilar uchun tarkibni yashiradi. + YouTube-ning \"Cheklangan rejimi\" ni yoqish + Tarkibni bolalar uchun yaroqsiz deb ko\'rsating, chunki uning yosh chegarasi bor (18+ kabi). + Yoshi cheklangan tarkibni ko\'rsatish + Tarkib + Pop-up pleyerida navbat ketma-ketlikda + Orqa fon pleyerida navbat ketma-ketlikda + Pop-up rejimda ijro etish + Ijro etish foni + Bildirishnoma + Yangilanishlar + Nosozliklarni tuzatish + Boshqalar + Tashqi ko\'rinish + Pop-up + Tarix va kesh + Video va audio + Xatti-harakat + Ijro etish + Namuna allaqachon mavjud + Faqat HTTPS URL-lari qo\'llab-quvvatlanadi + Namunani tasdiqlab bo\'lmadi + Namuna URL manzilini kiriting + Namuna qo\'shish + %s da sizga yoqadigan misollarni toping + Sevimli PeerTube nusxalarini tanlang + PeerTube misollari + Standart kontent tili + Xizmatlar + Standart kontent mamlakati + URL manzili aniqlanmadi. Boshqa ilova bilan ochilsinmi\? + Qo\'llab-quvvatlanmaydigan URL manzili + \"Tafsilotlar:\" videodagi fon yoki po-pup tugmachasini bosganda ko\'rsatma. + \"Qo\'shish uchun ushlab turish\" maslahatini ko\'rsatish + \'Keyingi\' va \'O\'xshash\' videolarni namoyish etish + Avtoplay + Uzilishlardan keyin ijro etishni davom ettirish (masalan. phonecalls) + Yuklab olish + Ijro etishni davom ettirish + Ko\'rilgan videolarni kuzatib borish + Ma\'lumotlarni tozalash + Ro\'yxatlarda ijro holati ko\'rsatkichlarini ko\'rsatish + Ro\'yxatlardagi pozitsiyalar + Oxirgi ijro holatini tiklash + Ijro etishni davom ettirish + Qidirayotganda takliflarni ko\'rsatish + Tarixni ko\'rish + Qidiruv so\'rovlarini mahalliy sifatida saqlash + Qidiruv tarixi + Takliflarni qidirish \ No newline at end of file From 7b1fccdd064c94f8029467ff374eb4fd593bf113 Mon Sep 17 00:00:00 2001 From: KIMMINTAE98 Date: Mon, 9 Nov 2020 15:29:56 +0900 Subject: [PATCH 156/231] complete korean translation of README.md --- README_KO.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/README_KO.md b/README_KO.md index ecb36100f..702b0b733 100644 --- a/README_KO.md +++ b/README_KO.md @@ -79,19 +79,24 @@ NewPipe는 여러가지 서비스를 지원합니다. 우리의 [문서](https:/ * PeerTube instances \[beta\] ## Updates -NewPipe 코드의 변경이 있을 때(기능 추가 또는 버그 수정으로 인해), 결국 릴리즈가 발생할 것입니다. 이것들의 형식은 x.xx.x 입니다. 이 새로운 버전을 얻기 위해서, 당신은: - 1. 직접 디버그한 APK를 생성할 수 있습니다. 이 방법은 당신의 기기에서 새로운 기능을 얻을 수 있는 가장 빠른 방법이지만, 꽤 많이 복잡합니다. 따라서 우리는 다른 방법들 중 하나를 사용하는 것을 추천합니다. - 2. Add our custom repo to F-Droid and install it from there as soon as we publish a release. The instructions are here: https://newpipe.schabi.org/FAQ/tutorials/install-add-fdroid-repo/ - 3. Download the APK from [Github Releases](https://github.com/TeamNewPipe/NewPipe/releases) and install it as soon as we publish a release. - 4. Update via F-droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users. +NewPipe 코드의 변경이 있을 때(기능 추가 또는 버그 수정으로 인해), 결국 릴리즈가 발생할 것입니다. 이것들의 형식은 x.xx.x 입니다. +이 새로운 버전을 얻기 위해서, 당신은: + 1. 직접 디버그 APK를 생성할 수 있습니다. 이 방법은 당신의 기기에서 새로운 기능을 얻을 수 있는 가장 빠른 방법이지만, 꽤 많이 복잡합니다. + 따라서 우리는 다른 방법들 중 하나를 사용하는 것을 추천합니다. + 2. 우리의 커스텀 저장소를 F-Droid에 추가하고 우리가 릴리즈를 게시하는 대로 저곳에서 릴리즈를 설치할 수 있습니다. + 이에 대한 설명서는 이곳에서 확인할 수 있습니다: https://newpipe.schabi.org/FAQ/tutorials/install-add-fdroid-repo/ + 3. 우리가 릴리즈를 게시하는 대로 [Github Releases](https://github.com/TeamNewPipe/NewPipe/releases)에서 APK를 다운받고 이것을 설치할 수 있습니다. + 4. F-Droid를 통해 업데이트 할 수 있습니다. F-Droid는 변화를 인식하고, 스스로 APK를 생성하고, 이것에 서명하고, 사용자들에서 업데이트를 전달해야만 하기 때문에, + 이것은 업데이트를 받는 가장 느린 방법입니다. -우리는 대부분의 사용자에게 2번쨰 방법을 추천합니다. APKs installed using method 2 or 3 are compatible with each other, but not with those installed using method 4. This is due to the same signing key (ours) being using for 2 and 3, but a different signing key (F-Droid's) being used for 4. Building a debug APK using method 1 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. +우리는 대부분의 사용자에게 2번쨰 방법을 추천합니다. 방법 2 또는 3을 사용하여 설치된 APK는 서로 호환되지만, 방법 4를 사용하여 설치된 것들과는 호환되지 않습니다. 이것은 방법 2 또는 3에서는 같은 (우리의)서명 키가 사용되지만, 방법 4에서는 다른 (F-Droid의)서명 키가 사용되기 때문입니다. 방법 1을 사용하여 디버그 APK를 생성하는 것에서는 키가 완전히 제외됩니다. 서명 키는 사용자가 앱에 악의적인 업데이트를 설치하는 것에 대해 속지 않도록 보장하는 것을 도와줍니다. -In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality was broken and F-Droid doesn't have the update yet), we recommend following this procedure: -1. 당신의 기록, 구독, 그리고 재생목록을 유지할 수 있도록 Settings > Content > Export Database 를 통해 당신의 데이터를 백업하십시오. +한편, 만약 어떠한 이유(예. NewPipe의 핵심 기능이 손상되었고 F-Droid가 아직 업데이트를 가지지 않는 경우) 때문에 소스를 바꾸길 원한다면, +우리는 다음과 같은 절차를 따르는 것을 권장합니다: +1. 당신의 기록, 구독, 그리고 재생목록을 유지할 수 있도록 Settings > Content > Export Database 를 통해 데이터를 백업하십시오. 2. NewPipe를 삭제하십시오. 3. 새로운 소스에서 APK를 다운로드하고 이것을 설치하십시오. -4. Step 1의 Settings > Content > Export Database 에서 데이터를 불러오십시오. +4. Step 1의 Settings > Content > Export Database 을 통해 데이터를 불러오십시오. ## Contribution 당신이 아이디어, 번역, 디자인 변경, 코드 정리, 또는 정말 큰 코드 수정에 대한 의견이 있다면, 도움은 항상 환영합니다. From 9eb0f48a7a54693ee4d94a9ca71abf605cea6b34 Mon Sep 17 00:00:00 2001 From: "Bri@n" Date: Mon, 2 Nov 2020 21:16:07 -0500 Subject: [PATCH 157/231] Change loop index from float to int --- .../java/us/shandian/giga/ui/common/ProgressDrawable.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/us/shandian/giga/ui/common/ProgressDrawable.java b/app/src/main/java/us/shandian/giga/ui/common/ProgressDrawable.java index bec947540..2a8077d51 100644 --- a/app/src/main/java/us/shandian/giga/ui/common/ProgressDrawable.java +++ b/app/src/main/java/us/shandian/giga/ui/common/ProgressDrawable.java @@ -83,8 +83,8 @@ public class ProgressDrawable extends Drawable { // render marquee width += size * 2; Path marquee = new Path(); - for (float i = -size; i < width; i += size) { - marquee.addPath(mMarqueeLine, i + mMarqueeProgress, 0); + for (int i = -size; i < width; i += size) { + marquee.addPath(mMarqueeLine, ((float)i + mMarqueeProgress), 0); } marquee.close(); From 1008c74cd7c1afa03a7449654261d86cdb06f794 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Mon, 9 Nov 2020 17:13:18 +0000 Subject: [PATCH 158/231] Translated using Weblate (Polish) Currently translated at 99.8% (604 of 605 strings) --- app/src/main/res/values-pl/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index feaca1a57..4a101061e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -336,11 +336,14 @@ Poprzedni eksport Import subskrypcji nie powiódł się Eksport subskrypcji nie powiódł się - Aby zaimportować subskrypcje YouTube, potrzebny jest plik eksportu subskrypcji. Możesz go wygenerować w następujący sposób: + Importowanie subskrypcji YouTube z google takeout: \n -\n1. Odwiedź stronę: %1$s -\n2. Zaloguj się na swoje konto -\n3. Powinno rozpocząć się pobieranie (to jest twój plik eksportu) +\n1. Przejdź do tego adresu URL: %1$s +\n2. Zaloguj się, gdy zostaniesz o to poproszony +\n3. Kliknij na \"Wszystkie dane zawarte\", a następnie na \"Usuń zaznaczenie wszystkich\", a następnie wybierz tylko \"subskrypcje\" i kliknij \"OK\" +\n4. Kliknij na \"Następny krok\", a następnie na \"Tworzenie eksportu\" +\n5. Kliknij przycisk \"Pobierz\", gdy się pojawi i +\n6. Z pobranego pliku zip na wynos wyodrębnij plik .json (zwykle w sekcji \"YouTube i YouTube Music/subscriptions/subscriptions.json\") i zaimportuj go tutaj. Ta operacja może wygenerować duże użycie danych. \n \nCzy chcesz kontynuować? @@ -650,4 +653,6 @@ Wyczyść ciasteczka reCAPTCHA YouTube udostępnia \"Tryb ograniczonego dostępu\", który ukrywa treści potencjalnie dla dorosłych. Pokaż treści nieodpowiednie dla dzieci, ponieważ mają ograniczenia wiekowe (np. 18+). + Niech Android dostosuje kolor powiadomienia zgodnie z głównym kolorem na miniaturze (nie jest to dostępne na wszystkich urządzeniach) + Pokolorowanie powiadomienia \ No newline at end of file From 07b289167181f575822b4d6c95d986d4b5940955 Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Tue, 10 Nov 2020 06:56:01 +0000 Subject: [PATCH 159/231] Add links to translations All READMEs should contains links to translated versions. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a287768b7..f11262da1 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@

WebsiteBlogFAQPress


+*Read this in other languages: [English](README.md), [한국어](README.ko.md).* + WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY. PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS. From 9025a9b88c97ca62349d80bce28375a47bb68a67 Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Tue, 10 Nov 2020 06:58:20 +0000 Subject: [PATCH 160/231] Rename and add links to translations --- README_KO.md => README.ko.md | 2 ++ 1 file changed, 2 insertions(+) rename README_KO.md => README.ko.md (99%) diff --git a/README_KO.md b/README.ko.md similarity index 99% rename from README_KO.md rename to README.ko.md index 702b0b733..bb6bd653b 100644 --- a/README_KO.md +++ b/README.ko.md @@ -16,6 +16,8 @@

WebsiteBlogFAQPress


+*Read this in other languages: [English](README.md), [한국어](README.ko.md).* + 경고: 이 버전은 베타 버전이므로, 버그가 발생할 수도 있습니다. 만약 버그가 발생하였다면, 우리의 GITHUB 저장소에서 ISSUE를 열람하여 주십시오. NEWPIPE 또는 이것의 FORK을 구글 플레이스토어에 올리는 것은 그들의 이용약관을 위반합니다. From 18dbbfc95a74fead853aa2cc3349746242af3796 Mon Sep 17 00:00:00 2001 From: Terry Louwers Date: Mon, 9 Nov 2020 06:28:20 +0000 Subject: [PATCH 161/231] Translated using Weblate (Dutch) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-nl/strings.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index c2a44d6be..9b2e52c42 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -327,11 +327,14 @@ Vorige exportering De abonnementen kunnen niet worden geïmporteerd De abonnementen kunnen niet worden geëxporteerd - Importeer je YouTube-abonnementen door het exportbestand te downloaden: -\n + Importeer je YouTube-abonnementen vanaf Google Takeout: +\n \n1. Ga naar dit adres: %1$s \n2. Log in op je account -\n3. De download met het exportbestand zou nu moeten starten +\n3. Klik op \"Alle YouTube-gegevens inbegrepen\", dan op \"Selectie van alle items ongedaan maken\", dan selecteer alleen \"abonnementen\" en klik op \"OK\" +\n4. Klik op \"Volgende stap\", dan op \"Export maken\" +\n5. Klik op de knop \"Downloaden\" nadat deze verschijnt +\n6. Uit de Takeout zipfile, pak de .json uit (gebruikelijk in de folder \"YouTube en YouTube Music/abonnementen/abonnementen.json\") en importeer deze hier. Importeer een SoundCloud-profiel door de URL of het ID ervan in te voeren: \n \n1. Kies een webbrowser en schakel bureaubladmodus in (de website is niet beschikbaar voor mobiele apparaten) From 843c24b17a61449572402a0af25f0ae3e19ccd19 Mon Sep 17 00:00:00 2001 From: 2-Seol <2Seol.0117@gmail.com> Date: Mon, 9 Nov 2020 13:18:38 +0000 Subject: [PATCH 162/231] Translated using Weblate (Korean) Currently translated at 82.8% (501 of 605 strings) --- app/src/main/res/values-ko/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 4713cd7db..7af445c15 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -546,4 +546,6 @@ 알림에 표시되는 비디오 썸네일을 16:9에서 1:1 비율로 바꿉니다. (왜곡이 생길 수도 있습니다.) 썸네일을 1:1 비율로 하기 %s에 대한 검색 결과 + 셔플 + 연속 재생 \ No newline at end of file From b7fb9a65b65ae9cdf48e000d315d67cd32b02402 Mon Sep 17 00:00:00 2001 From: Michal L Date: Mon, 9 Nov 2020 19:59:50 +0000 Subject: [PATCH 163/231] Translated using Weblate (Polish) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pl/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4a101061e..c3c2db320 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -336,14 +336,14 @@ Poprzedni eksport Import subskrypcji nie powiódł się Eksport subskrypcji nie powiódł się - Importowanie subskrypcji YouTube z google takeout: + Importowanie subskrypcji YouTube z Google Takeout: \n \n1. Przejdź do tego adresu URL: %1$s \n2. Zaloguj się, gdy zostaniesz o to poproszony -\n3. Kliknij na \"Wszystkie dane zawarte\", a następnie na \"Usuń zaznaczenie wszystkich\", a następnie wybierz tylko \"subskrypcje\" i kliknij \"OK\" -\n4. Kliknij na \"Następny krok\", a następnie na \"Tworzenie eksportu\" +\n3. Kliknij na \"Wybrałeś wszystkie dane z Youtube\", a następnie na \"Odznacz wszystkie\", potem wybierz tylko \"subskrypcje\" i kliknij \"OK\" +\n4. Kliknij na \"Następny krok\", a następnie na \"Utwórz eksport\" \n5. Kliknij przycisk \"Pobierz\", gdy się pojawi i -\n6. Z pobranego pliku zip na wynos wyodrębnij plik .json (zwykle w sekcji \"YouTube i YouTube Music/subscriptions/subscriptions.json\") i zaimportuj go tutaj. +\n6. Z pobranego archiwum zip wyodrębnij plik .json (zazwyczaj pod ścieżką \"YouTube i YouTube Music/subskrypcje/subskrypcje.json\") i zaimportuj go tutaj. Ta operacja może wygenerować duże użycie danych. \n \nCzy chcesz kontynuować? From 731f88da84ddc86c38fb32362a8b18e4aff6b795 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Tue, 10 Nov 2020 00:02:31 +0000 Subject: [PATCH 164/231] Translated using Weblate (Croatian) Currently translated at 98.8% (598 of 605 strings) --- app/src/main/res/values-hr/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f163ba3d0..7dcd518a0 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -631,4 +631,6 @@ Provjeri je li tvoj problem već postoji. Dupla pojava problema krade nam vrijeme koje bismo mogli utrošiti na ispravljanje same greške. Za uređivanje obavijesti radnji, dodirni ih. Označi do tri radnje za kompaktni prikaz obavijesti. Zbog ograničenja ExoPlayera, trajanje traženja postavljeno je na %d s + Neka Android prilagodi boju obavijesti prema glavnoj boji minijature (ovo nije dostupno na svim uređajima) + Oboji obavijest \ No newline at end of file From 7b3bd26631edd9aba7e88fabc6db2cdf73d1d108 Mon Sep 17 00:00:00 2001 From: Terry Louwers Date: Mon, 9 Nov 2020 06:29:35 +0000 Subject: [PATCH 165/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 4ff04b818..3c4e42a43 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -339,11 +339,14 @@ Vorige exportering Kon abonnementen niet importeren Kon abonnementen niet exporteren - Importeer uw YouTube-abonnementen door het exportbestand te downloaden: + Importeer je YouTube-abonnementen vanaf Google Takeout: \n \n1. Ga naar dit adres: %1$s -\n2. Log in op uw account -\n3. De download met het exportbestand zou nu moeten starten +\n2. Log in op je account +\n3. Klik op \"Alle YouTube-gegevens inbegrepen\", dan op \"Selectie van alle items ongedaan maken\", dan selecteer alleen \"abonnementen\" en klik op \"OK\" +\n4. Klik op \"Volgende stap\", dan op \"Export maken\" +\n5. Klik op de knop \"Downloaden\" nadat deze verschijnt +\n6. Uit de Takeout zipfile, pak de .json uit (gebruikelijk in de folder \"YouTube en YouTube Music/abonnementen/abonnementen.json\") en importeer deze hier. Importeer een SoundCloud-profiel door de URL of het ID ervan in te voeren: \n \n1. Kies een webbrowser en schakel bureaubladmodus in (de website is niet beschikbaar voor mobiele apparaten) @@ -640,4 +643,6 @@ Schaal miniatuurafbeelding naar verhouding 1:1 Wijzig de download mappen Toon oorspronkelijke tijd geleden op items + Laat Android de kleur van de notificatie aanpassen, op basis van de meest voorkomende kleur in de thumbnail (let op: niet beschikbaar op elk apparaat) + Notificatie kleur aanpassen \ No newline at end of file From 10c582bafb7e144a5afc8a209e531c8e28b21d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 9 Nov 2020 19:35:24 +0000 Subject: [PATCH 166/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 93.3% (565 of 605 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index cd907efb7..2c9370cd2 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -50,7 +50,8 @@ (Eksperimentelt) Tving nedlasting av trafikk gjennom Tor for forbedret personvern (strømming av videoer støttes ikke enda). Kan ikke opprette nedlastingsmappe \'%1$s\' Opprettet nedlastingsmappen \'%1$s\' - Trykk «Søk» for å komme i gang + Trykk «Søk» for å begynne +\n Automatisk avspilling Spiller en video når NewPipe blir forespurt av et annet program Innhold @@ -564,9 +565,7 @@ Strøm sist oppdatert: %s Denne videoen er aldersbegrenset. \n -\nSkru på «Aldersbegrenset innhold» i innstillingene hvis du vil se den. -\n -\nHvis du ønsker å se den, skru på \"Aldersbegrenset innhold\" i innstillingene. +\nSkru på «%1$s» i innstillingene hvis du vil se den. ∞ videoer 100+ videoer Artister From aca21f6ef278695dd959355a9d6ede8390c7cc78 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Mon, 9 Nov 2020 16:41:36 +0000 Subject: [PATCH 167/231] Translated using Weblate (Polish) Currently translated at 37.8% (14 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ --- fastlane/metadata/android/pl/changelogs/954.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 fastlane/metadata/android/pl/changelogs/954.txt diff --git a/fastlane/metadata/android/pl/changelogs/954.txt b/fastlane/metadata/android/pl/changelogs/954.txt new file mode 100644 index 000000000..908e405d5 --- /dev/null +++ b/fastlane/metadata/android/pl/changelogs/954.txt @@ -0,0 +1,6 @@ +• Nowa obsługa aplikacji: odtwarzanie na stronie ze szczegółami, przesuń w dół aby zminimalizować. +• Powiadomienia Media Style: Personalizacja zachowań powiadomień, poprawki wydajności +• Prosta zmiana rozmiaru kiedy używasz trybu komputera (Dex itd) +• Nowe menu z opcjami w przypadku nie obsługiwanego adresu +• Poprawa sugerowanych wyników wyszukiwania w przypadku gdyby nie dało się ich pobrać z serwera. +• Podniesiona domyślna rozdzielczość: 720p60 w aplikacji, 480p w pływającym odtwarzaczu From c878f7dc25b69e5b2313fa9a04aa84e9cf0c1a08 Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Mon, 9 Nov 2020 03:49:47 +0000 Subject: [PATCH 168/231] Translated using Weblate (Santali) Currently translated at 8.5% (52 of 605 strings) --- app/src/main/res/values-sat/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 453ca0dca..b24f4222b 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -27,4 +27,5 @@ ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱯᱥᱚᱱ ᱵᱚᱫᱚᱞ ᱵᱟᱭ ᱜᱟᱱᱟᱜᱽ ᱠᱟᱱᱟ ᱪᱟᱱᱱᱮᱹᱞ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱮᱱᱟ ᱯᱚᱯᱟᱹᱯ ᱢᱳᱰ + ᱵᱟᱦᱨᱮ ᱟᱹᱰᱤᱭᱚ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱮᱵᱽᱦᱟᱨ ᱢᱮᱸ \ No newline at end of file From 4c7260b043d815b82e718988cee72a3ede5bb8a3 Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Tue, 10 Nov 2020 08:59:51 +0000 Subject: [PATCH 169/231] Translated using Weblate (Uzbek (latin)) Currently translated at 66.7% (404 of 605 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 862f96f84..497994e8a 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -199,4 +199,204 @@ Qidiruv so\'rovlarini mahalliy sifatida saqlash Qidiruv tarixi Takliflarni qidirish + Ogohlantirish: Barcha fayllarni import qilib bo\'lmadi. + Haqiqiy ZIP fayli yo‘q + Import qilindi + Eksport qilindi + kiosk tanlash + Hali pleylist xatcho\'plari yo\'q + Pleylistni tanlang + Hech qanday kanal obunasi yo\'q + Kanal tanlash + Kanal sahifasi + Feed sahifasi + Obuna sahifasi + Standart kiosk + Kiosk sahifasi + Bo\'sh sahifa + Tanlash + Asosiy sahifada qanday yorliqlar ko\'rsatilgan + Asosiy sahifaning tarkibi + Eng ko\'p ijrolar etilganlar + Oxirgi ijro + Haqiqatan ham barcha narsalarni tarixdan o\'chirishni xohlaysizmi\? + Ushbu narsani tomosha tarixidan o\'chirishni xohlaysizmi\? + Ushbu narsani qidiruv tarixidan o\'chirmoqchimisiz\? + Element o\'chirildi + Tarix tozlandi + Tarix bo\'sh + Tarix + Tarix o\'chirilgan + Qidirilgan + Ko\'rilgan + Tarix + Litsenziyani o\'qish + NewPipe - bu nusxa ko\'chirish dasturiy ta\'minotidir: Siz foydalanishingiz, baham ko\'rishingiz va o\'zingizning xohishingiz bilan yaxshilashingiz mumkin. Xususan, siz uni bepul dasturiy ta\'minot fondi tomonidan e\'lon qilingan GNU umumiy jamoat litsenziyasi shartlari asosida qayta tarqatishingiz va / yoki o\'zgartirishingiz mumkin, Litsenziyaning 3-versiyasi yoki (sizning xohishingizga ko\'ra) har qanday keyingi versiyada. + NewPipe litsenziyasi + Maxfiylik siyosatini o\'qish + NewPipe loyihasi sizning shaxsiy hayotingizga jiddiy e\'tibor beradi. Shuning uchun ilova sizning roziligingizsiz biron bir ma\'lumot to\'plamaydi. +\nNewPipe-ning maxfiylik siyosati halokat to\'g\'risidagi hisobotni yuborganingizda qanday ma\'lumotlar yuborilishi va saqlanishi haqida batafsil ma\'lumot beradi. + NewPipe-ning maxfiylik siyosati + Qo\'shimcha ma\'lumot va yangiliklar uchun NewPipe veb-saytiga tashrif buyuring. + Websayt + Qaytarib berish + Hadya etish + NewPipe ko\'ngillilar tomonidan bo\'sh vaqtlarini sarflash orqali sizga eng yaxshi foydalanuvchi tajribasini taqdim etadi. Ishlab chiquvchilarga bir chashka qahvadan zavqlanib, NewPipe-ni yanada yaxshiroq qilishlariga yordam berish. + GitHubda ko\'rish + Sizda g\'oyalar bormi; tarjima, dizayndagi o\'zgarishlar, kodni tozalash yoki haqiqiy og\'ir kodni o\'zgartirish - yordam har doim mamnuniyat bilan qabul qilinadi. Qancha ko\'p ish qilinsa, shuncha yaxshi bo\'ladi! + Hissa qo\'shish + Androidda Libre yengil streaming. + Litsenziyalar + Xissadorlar + Haqida + Veb-saytni ochish + Litsenziyani yuklab bo\'lmadi + © %1$s tomonidan %2$s gacha %3$s + Uchinchi tomon litsenziyalari + Haqida + Sozlamalar + NewPipe haqida + Ushbu faylni ijro etish uchun dastur o\'rnatilmagan + Ko\'pchilik maxsus belgilar + Yozuvlar va raqamlar + O\'zgartirish belgisi + Noto\'g\'ri belgilar ushbu qiymat bilan almashtiriladi + Fayl nomidagi ruxsat berilgan belgilar + Yuklab olish + Bajarildi + reCAPTCHA muammosi so\'raldi + Hal etilganda \"Bajarildi\" tugmasini bosing + reCAPTCHA muammosi + 1 ta element o\'chirildi. + Ushbu ruxsat zarur +\npopup rejimida oching + Yuklab olish papkasini keyinroq sozlamalarda belgilang + Buferga nusxa olindi + Iltimos kuting… + Tafsilotlar uchun bosing + NePipe yuklab olinmoqda + Noto\'g\'ri shakllangan URL yoki Internet mavjud emas + Fayl allaqachon mavjud + Qo\'llab-quvvatlanmaydigan server + Xato + Iplar + Faylnomi + Ok + Yangi missiya + Nomni o\'zgartirish + Tarqatish + Sumnazorat + Hammasini o\'chirish + Bittasini o\'chirish + O\'chirish + Yaratish + Ijro etish + Pauza + Boshlash + Izohlar yo\'q + + %s video + %s videolar + + ∞ videolar + 100+ videolar + Videolar yo\'q + + %s tinglovchi + %s tinglovchilar + + Hech kim tinglamayapti + + %s ko\'ryapti + %s ko\'ryaptilar + + Hech kim ko\'rmayapti + + %s ko\'rish + %s ko\'rishlar + + Ko\'rishlar yo\'q + Obunachilar soni mavjud emas + + %s bunachisi + %s obunachilar + + Obunachilar yo\'q + Hozirda tanlangan xizmatni yoqish: + B + M + k + Avval omborga kirishga ruxsat berish + Qayta + Audio + Video + \'%1$s\' yuklab olish katalogi yaratildi + \'%1$s \' yuklab olish katalogini yaratib bo\'lmadi + Qayta tartiblash uchun tortish + Bu erda kriketlardan boshqa hech narsa yo\'q + Natija yo\'q + Foydalanuvchi hisoboti + Hisobotda xato + (Eksperimental) Maxfiylikni oshirish uchun Tor orqali trafikni majburan yuklab oling (videolarni streamlash hali qo\'llab-quvvatlanmaydi). + Tor-dan foydalanish + Dislayklar + Layklar + Yuklovchining avatar eskizi + Videoni ijro etish muddati, davomiyligi: + Videoni oldindan ko\'rish uchun eskiz + Detallar: + Sizning sharhingiz (ingliz tilida): + Nima: \\n So\'rov: \\nTarkib tili: \\nTarkib mamlakati: \\nIlova tili: \\ nXizmat: \\ nGMT vaqti: \\ nPaket: \\ nVersion: \\ nOS versiyasi: + Nima sodir bo\'ldi: + Info: + Hisobot + Kechirasiz, biron bir xato yuz berdi. + Iltimos, sizning harakatingizni muhokama qiladigan muammo allaqachon mavjudligini tekshiring. Ikki nusxadagi ticketlarni yaratishda siz bizdan vaqt ajratib, biz haqiqiy xatolarni tuzatishga sarflashimiz mumkin edi. + GitHub haqida hisobot + Formatlangan hisobotni nusxalash + Ushbu xato haqida elektron pochta orqali xabar berish + Kechirasiz, bunday bo\'lmasligi kerak edi. + Boshqa ilovalar orqali ko\'rsatishga ruxsat berish + Birlamchi parametrlarni tiklashni xohlaysizmi\? + Birlamchi parametrlarni tiklash + Saqlangan yorliqlarni o\'qib bo\'lmadi, shuning uchun standartlardan foydalaning + Yuklash uchun stream mavjud emas + Xato yuz berdi: %1$s + Fayl nomi bo\'sh bo\'lishi mumkin emas + Fayl mavjud emas yoki uni o\'qish yoki yozish uchun ruxsat yo\'q + Bunday fayl / tarkib manbai yo\'q + Bunday papka yo\'q + Fayl ko\'chirildi yoki o\'chirildi + Hech qanday audio stream topilmadi + Hech qanday video stream topilmadi + URL manzili yaroqsiz + Tashqi playerlar ushbu turdagi havolalarni qo\'llab-quvvatlamaydilar + Player xatosidan qutulish + Qayta tiklanmaydigan pleyerda xatolik yuz berdi + Ushbu stream ijro etilmadi + Rasm yuklanmadi + Hech qanday stream olinmadi + Live streamlar hali qo\'llab-quvvatlanmaydi + Yuklab olish menyusi sozlanmadi + Tarkib mavjud emas + Veb-saytni to\'liq tahlil qilib bo\'lmadi + Veb-saytni tahlil qilib bo\'lmadi + Videoning URL manzilini o\'chirib bo\'lmadi + Barcha eskizlarni yuklab bo\'lmadi + Tarmoqda xato + Tashqi SD-kartaga yuklab olishning iloji yo\'q. Yuklash papkasining joylashuvi tiklansinmi\? + Tashqi xotira mavjud emas + Xato + Yordam + Qidiruv tarixi o\'chirildi. + Butun qidiruv tarixi o\'chirilsinmi\? + Qidiruv kalit so\'zlar tarixini o\'chiradi + Qidiruv tarixini tozalash + Ijro pozitsiyalari o\'chirildi. + Barcha ijro holatlari o\'chirilsinmi\? + Barcha ijro holatlarini o\'chiradi + Ijro pozitsiyalarini o\'chirib tashlash + Tomosha tarixi o\'chirildi. + Tomosha tarixi butunlay o\'chirib tashlansinmi\? + Ijro etilgan streamlar tarixi va ijro holatlarini o\'chiradi \ No newline at end of file From acdfede2a8c43b02eb2c61d0515fab441fceabf9 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Wed, 11 Nov 2020 19:16:01 +0000 Subject: [PATCH 170/231] Translated using Weblate (French) Currently translated at 21.6% (8 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/952.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fastlane/metadata/android/fr/changelogs/952.txt b/fastlane/metadata/android/fr/changelogs/952.txt index 0441f683e..b89573b47 100644 --- a/fastlane/metadata/android/fr/changelogs/952.txt +++ b/fastlane/metadata/android/fr/changelogs/952.txt @@ -1,4 +1,7 @@ -Améliorations : -• La lecture automatique est disponible pour tout les services (au lieu de Youtube uniquement) +Amélioration : +• La lecture automatique est maintenant disponible pour tous les services (et plus seulement pour YouTube) Corrections : +• Correction des flux suggérés par ajout du support de "YouTube's new continuations" +• Correction de la gestion de l'âge minimum pour regarder les vidéos Youtube +• [Android TV] correction de la persistance du soulignement sur l'overlay From 429aafc7bae559315fb40440b65e4ea608f3f1f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81cs=20Zolt=C3=A1n?= Date: Fri, 13 Nov 2020 21:49:27 +0000 Subject: [PATCH 171/231] Translated using Weblate (Hungarian) Currently translated at 68.4% (414 of 605 strings) --- app/src/main/res/values-hu/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index a0320d867..2387b1159 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -456,4 +456,5 @@ Összes lejátszási pozíció törlése Lejátszási pozíciók törlése Találatok a következőre: %s + Bélyegkép méretezése 1:1 arányra \ No newline at end of file From f7fb03bf56b7c57d83c4c76083473f872dc45d72 Mon Sep 17 00:00:00 2001 From: pjammo Date: Wed, 11 Nov 2020 17:27:34 +0000 Subject: [PATCH 172/231] Translated using Weblate (Italian) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-it/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e296e4a0b..abf5fd29d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -327,11 +327,14 @@ Esportazione precedente Impossibile importare le iscrizioni Impossibile esportare le iscrizioni - Importa le iscrizioni di YouTube scaricando il file d\'esportazione: -\n -\n1. Vai a questo URL: %1$s -\n2. Accedi quando richiesto -\n3. Il download del file d\'esportazione dovrebbe partire in automatico + Importa le iscrizioni di YouTube scaricando il file d\'esportazione: +\n +\n1. Vai a questo URL: %1$s +\n2. Accedi quando richiesto +\n3. Premi \"Tutti i dati inclusi\", \"Deseleziona tutto\", seleziona solo \"iscrizioni\" e premi \"OK\" +\n4. Premi \"Passaggio successivo\" e poi \"Crea esportazione\" +\n5. Premi il pulsante \"Scarica\" quando compare +\n6. Dall\'archivio ZIP scaricato, estrai il file JSON (solitamente in \"YouTube and YouTube Music/subscriptions/subscriptions.json\") e importalo qui. Importa un profilo SoundCloud inserendo l\'URL o il tuo ID: \n \n1. Abilitare la «modalità desktop» del browser (il sito non è disponibile per i dispositivi mobili) @@ -640,4 +643,6 @@ Pulisci Cookie reCAPTCHA Consente di usufruire della «Modalità con restrizioni» di YouTube, che esclude contenuti potenzialmente inappropriati per i minori. Mostra contenuti che hanno un limite di età (es. 18+). Potrebbero essere inadatti ai bambini. + Lascia che Android modifichi il colore della notifica, secondo il colore principale della copertina (funzione non disponibile per tutti i dispositivi) + Colora Notifica \ No newline at end of file From 4e4acdaeccb2c15ea016b6e5e840a556fd580500 Mon Sep 17 00:00:00 2001 From: jimman2003 Date: Wed, 11 Nov 2020 10:49:57 +0000 Subject: [PATCH 173/231] Translated using Weblate (Greek) Currently translated at 99.6% (603 of 605 strings) --- app/src/main/res/values-el/strings.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 4bca46114..8239f174b 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -71,7 +71,7 @@ Τι συνέβη: Το σχόλιό σας (στα Αγγλικά): Λεπτομέρειες: - Αναφορά σφάλματος + Αναφορά Σφάλματος Βίντεο Ήχος Παύση @@ -357,7 +357,7 @@ Δεν ήταν δυνατή η εξαγωγή των εγγραφών Κάντε εισαγωγή των εγγραφών σας στο YouTube κατεβάζοντας το εξής αρχείο: \n -\n1. Πλοηγηθήτε στο: %1$s +\n1. Πλοηγηθείτε στο: %1$s \n2. Εισέλθετε στο λογαριασμό σας, όταν σας ζητηθεί \n3. Η λήψη του αρχείου των εγγραφών σας θα ξεκινήσει Για να εισάγετε τον λογαριασμό SoundCloud σας, πληκτρολογήστε τον σύνδεσμο ή το ID σας: @@ -408,7 +408,7 @@ Δεν ήταν δυνατή η ανάγνωση των αποθηκευμένων καρτελών. Θα γίνει χρήση των προεπιλεγμένων Επαναφορά προεπιλεγμένων ρυθμίσεων Θέλετε να επαναφέρετε τις προεπιλεγμένες ρυθμίσεις; - Ο αριθμός συνδρομητών δεν είναι διαθέσιμος + Το πλήθος των συνδρομητών δεν είναι διαθέσιμο Ποιές καρτέλες θα εμφανίζονται στην αρχική σελίδα Επιλογή Συνέδρια @@ -638,4 +638,5 @@ Επιλογή των αγαπημένων σας PeerTube instances Εμφάνιση αυθεντικού παρελθόντος χρόνου στα αντικείμενα PeerTube instances + Χρωματισμός ειδοποιήσεων \ No newline at end of file From 1ebb8d8d14e43d9bd3d693705739ff2760f61f8e Mon Sep 17 00:00:00 2001 From: Marian Hanzel Date: Tue, 10 Nov 2020 14:21:22 +0000 Subject: [PATCH 174/231] Translated using Weblate (Slovak) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-sk/strings.xml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index eed0cfee2..2e980ae89 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -55,7 +55,7 @@ (Experimentálne) Vyžadovať preberanie cez Tor pre väčšie súkromie (streamovanie videa momentálne nie je podporované). Nemožno vytvoriť adresár na preberanie \'%1$s\' Adresár na preberanie bol vytvorený \'%1$s\' - Ťuknite na \"Vyhľadávanie\" pre začatie + Ťuknite na \"Vyhľadávanie\" \n Automatické prehrávanie Prehrá video pri zavolaní NewPipe inou aplikáciou @@ -342,11 +342,14 @@ Predchádzajúci export Nemožno importovať odbery Nemožno exportovať odbery - Import odberov služby YouTube pomocou exportovaného zoznamu -\n -\n1. Prejdite na túto adresu URL: %1$s -\n2. Po výzve sa prihláste do svojho účtu -\n3. Sťahovanie by malo začať (to je exportovaný zoznam) + Import odberov služby YouTube pomocou Google takeout: +\n +\n1. Prejdite na túto adresu URL: %1$s +\n2. Po výzve sa prihláste do svojho účtu +\n3. Kliknite na \"Zahrnuté sú všetky údaj služby YouTube\", tam kliknite na \"Zrušiť výber\", zaškrtnite \"odbery\" a potom kliknite na OK +\n4. Kliknite na \"Ďaľší krok\" a potom na \"Vytvoriť export\" +\n5. Po chvíli sa objaví tlačidlo s nápisom \"Stiahnuť\" +\n6. Stiahnutý súbor otvorte a extraktujte .json súbor (nachádza sa v \"/Takeout/YouTube a YouTube Music/odbery/\"). Tento súbor importujte do NewPipe. Importovať SoundCloud profil zadaním URL adresy alebo vášho ID: \n \n1. Prepnite režim na \"desktop\" (web nie je dostupný pre mobilné zariadenia) @@ -650,4 +653,6 @@ Vymazať cookies reCAPTCHA YouTube poskytuje \"Obmedzený režim\", ktorý skrýva potenciálny obsah pre dospelých. Zobraziť obsah, ktorý je možno nevhodný pre deti, pretože má vekovú hranicu (napríklad 18+). + Nechajte Android, aby prispôsobil farbu upozornenia podľa hlavnej farby v miniatúre (nemusí to fungovať na všetkých zariadeniach) + Farby upozornení \ No newline at end of file From 6f3b1000a7410a4351e3940aa44a1fc7544677a5 Mon Sep 17 00:00:00 2001 From: Habib Rohman Date: Thu, 12 Nov 2020 01:38:23 +0000 Subject: [PATCH 175/231] Translated using Weblate (Indonesian) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-in/strings.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 13bad05fc..416c69e94 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -343,11 +343,14 @@ Ekspor sebelumnya Tidak bisa mengimpor langganan Tidak bisa mengekspor langganan - Impor langganan YouTube dengan mengunduh berkas yang diekspor: + Impor langganan YouTube dari Google takeout: \n -\n1. Kunjungi URL ini: %1$s +\n1. Buka URL ini: %1$s \n2. Masuk ketika ditanya -\n3. Unduhan akan dimulai (itulah berkas ekspornya) +\n3. Klik \"Semua data termasuk\", lalu pada \"Batal pilih semua\", lalu pilih hanya \"langganan\" dan klik \"OK\" +\n4. Klik \"Langkah berikutnya\" dan kemudian pada \"Buat ekspor\" +\n5. Klik tombol \"Unduh\" setelah muncul dan +\n6. Dari download takeout zip ekstrak file .json (biasanya di bawah \"YouTube dan YouTube Music / subscriptions /subscriptions.json\") dan impor di sini. Impor profil SoundCloud dengan mengetik URL atau ID anda: \n \n1. Aktifkan \"mode desktop\" di peramban web (situs tidak tersedia untuk perangkat seluler) @@ -630,4 +633,6 @@ Hapus kuki reCAPTCHA YouTube menyediakan \"Mode Terbatas\" yang menyembunyikan video konten dewasa. Menampilkan konten yang mungkin tidak cocok untuk anak-anak karena memiliki batasan umur (seperti 18+). + Minta Android menyesuaikan warna notifikasi sesuai dengan warna utama di thumbnail (perhatikan bahwa ini tidak tersedia di semua perangkat) + Warnai notifikasi \ No newline at end of file From 25d3d0d0ba4475fbbfd8ff0504833f0a146641bf Mon Sep 17 00:00:00 2001 From: David Braz Date: Wed, 11 Nov 2020 21:52:36 +0000 Subject: [PATCH 176/231] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 6619b4823..b7dfe967f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -324,11 +324,14 @@ Exportação anterior Não foi possível importar inscrições Não foi possível exportar inscrições - Importe inscrições do YouTube baixando o arquivo de exportação: + Importe inscrições do YouTubedo pelo Google takeout: \n \n1. Acesse este link: %1$s \n2. Logue quando solicitado -\n3. O download do arquivo de exportação iniciará +\n3. Clique em \"Todos os dados incluídos\", em seguida, em \"Desmarque todos\", em seguida, selecione apenas \"assinaturas\" e clique em \"OK\" +\n4. Clique em \"Próximo passo\" e, em seguida, em \"Criar exportação\" +\n5. Clique no botão \"Baixar\" depois de aparecer e +\n6. A partir do arquivo zip baixado, retire o arquivo .json (geralmente em \"YouTube e YouTube Music/assinaturas/assinaturas.json\") e importe aqui. Importe um perfil do SoundCloud digitando o URL ou seu ID: \n \n1. Ative o \"modo desktop\" no navegador (o site está indisponível em celulares) @@ -640,4 +643,6 @@ Os cookies de reCAPTCHA foram apagados O YouTube oferece um \"Modo Restrito\" que oculta conteúdo potencialmente adulto. Mostrar conteúdo possivelmente inadequado para crianças porque tem um limite de idade (como +18). + Permite o Android personalizar a cor da notificação de acordo com a cor principal da miniatura (note que isso não está disponível em todos os dispositivos) + Colorir notificação \ No newline at end of file From de39d828de0c58095b638a21560a08aa83a65a8d Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Fri, 13 Nov 2020 21:21:50 +0000 Subject: [PATCH 177/231] Translated using Weblate (Finnish) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-fi/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 4e9b1a5a8..a652a6803 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -358,11 +358,14 @@ Edellinen vienti Tilauksia ei voitu tuoda Tilauksia ei voitu viedä - Tuo youtube-tilaukset lataamalla ensin tilauslistatiedostosi: + Tuo YouTube-tilaukset Google Takeoutista: \n \n1. Mene osoitteeseen: %1$s -\n2. Kirjaudu sisään kun niin vaaditaan -\n3. Latauksen pitäisi alkaa (se on se tiedosto) +\n2. Kirjaudu sisään pyydettäessä +\n3. Klikkaa \"Kaikki Youtube-data valittuna\", sitten \"Poista kaikki valinnat\", sitten ainoastaan \"tilaukset\" ja klikkaa \"OK\" +\n4. Klikkaa \"Seuraava vaihe\" ja \"Luo vienti\" +\n5. Klikkaa \"Lataa\" tämän ilmestyessä +\n6. Ladatusta takeoutin zip-tiedostosta pura json-tiedosto (yleensä sijainnissa \"Youtube ja Youtube Musiikki/tilaukset/tilaukset.json\" ja tuo se tänne Tuo SoundCloud-profiili kirjoittamalla joko osoite tai ID:si: \n \n1. Laita päälle työpöytämoodi selaimessasi (tai käytä tietokonetta, tämä sivu ei toimi mobiilisivuna) @@ -485,9 +488,9 @@ \n• Koko tilatun kanavan lataaminen, mikä on hidasta, mutta lataa syötteen kokonaisuudessaan. \n• Erityisen palvelu-endpointin käyttö, mikä on nopeaa, mutta yleensä ei lataa syötettä kokonaisuudessaan. \n -\nNäiden kahden välinen ero on, että nopean lataamista tiedoista yleensä puuttuu esim. sisällön kesto tai tyyppi (ei voi erotella livevideoita ja tavallisia) tai se ei lataa kaikkea sisältöä. +\nNäiden kahden välinen ero on, että nopean tavan lataamista tiedoista yleensä puuttuu esim. sisällön kesto tai tyyppi (ei voi erotella livevideoita ja tavallisia) tai se ei lataa kaikkea sisältöä. \n -\nYouTuve on esimerkki palvelusta, joka tarjoaa nopean tavan RSS-syötteen avulla. +\nYouTube on esimerkki palvelusta, joka tarjoaa nopean tavan RSS-syötteen avulla. \n \nValinta riippuu siitä, mitä halutaan: nopeutta vai tarkkoja tietoja. Oletuskioski @@ -640,4 +643,6 @@ Poista reCAPTCHA-evästeet YouTube tarjoaa ”Rajoitetun tilan”, joka piilottaa aikuisviihdesisällön. Näytä mahdollisesti lapsille sopimaton sisältö, jolla on ikäraja (esim. 18+). + Anna Androidin muokata ilmoituksen väriä esikatselukuvan päävärin mukaan (tämä ei ole mahdollista kaikilla laitteilla) + Käytä värejä ilmoituksessa \ No newline at end of file From f4ec2d810741555028614b56f307a824581e43a6 Mon Sep 17 00:00:00 2001 From: Oymate Date: Thu, 12 Nov 2020 07:21:26 +0000 Subject: [PATCH 178/231] Translated using Weblate (Bengali) Currently translated at 78.5% (475 of 605 strings) --- app/src/main/res/values-bn/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index d97093c30..91a4e1a03 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -465,4 +465,12 @@ সারিবদ্ধ করা হয়েছে এনকুই + + %d সেকেন্ড + %d সেকেন্ড + + দেখা থেকে অপসারণ করো + সিস্টেম ডিফল্ট + সাফ ব্যবহার করো + বিজ্ঞপ্তি রঙিন করো \ No newline at end of file From fa348cb98f55d4b7bf46ceed155cb08baca42ba9 Mon Sep 17 00:00:00 2001 From: David Braz Date: Wed, 11 Nov 2020 21:55:02 +0000 Subject: [PATCH 179/231] Translated using Weblate (Portuguese (Brazil)) Currently translated at 21.6% (8 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_BR/ --- fastlane/metadata/android/pt_BR/changelogs/955.txt | 3 +++ fastlane/metadata/android/pt_BR/changelogs/956.txt | 1 + 2 files changed, 4 insertions(+) create mode 100644 fastlane/metadata/android/pt_BR/changelogs/955.txt create mode 100644 fastlane/metadata/android/pt_BR/changelogs/956.txt diff --git a/fastlane/metadata/android/pt_BR/changelogs/955.txt b/fastlane/metadata/android/pt_BR/changelogs/955.txt new file mode 100644 index 000000000..21c5aea11 --- /dev/null +++ b/fastlane/metadata/android/pt_BR/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Corrigir pesquisa para alguns usuários +[YouTube] Corrigir exceções aleatórias de descriptografia +[SoundCloud] URLs que terminam com uma barra são agora analisados corretamente diff --git a/fastlane/metadata/android/pt_BR/changelogs/956.txt b/fastlane/metadata/android/pt_BR/changelogs/956.txt new file mode 100644 index 000000000..4e2f31ccb --- /dev/null +++ b/fastlane/metadata/android/pt_BR/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Corrigido o crash ao carregar qualquer vídeo From d8d5e04a51318c310123cff44dd478c3e8129a30 Mon Sep 17 00:00:00 2001 From: jimman2003 Date: Wed, 11 Nov 2020 11:06:37 +0000 Subject: [PATCH 180/231] Translated using Weblate (Greek) Currently translated at 16.2% (6 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/ --- fastlane/metadata/android/el/changelogs/63.txt | 8 ++++++++ fastlane/metadata/android/el/changelogs/952.txt | 7 +++++++ fastlane/metadata/android/el/changelogs/953.txt | 1 + fastlane/metadata/android/el/changelogs/955.txt | 3 +++ fastlane/metadata/android/el/changelogs/956.txt | 1 + fastlane/metadata/android/el/full_description.txt | 1 + fastlane/metadata/android/el/short_description.txt | 1 + 7 files changed, 22 insertions(+) create mode 100644 fastlane/metadata/android/el/changelogs/63.txt create mode 100644 fastlane/metadata/android/el/changelogs/952.txt create mode 100644 fastlane/metadata/android/el/changelogs/953.txt create mode 100644 fastlane/metadata/android/el/changelogs/955.txt create mode 100644 fastlane/metadata/android/el/changelogs/956.txt create mode 100644 fastlane/metadata/android/el/full_description.txt create mode 100644 fastlane/metadata/android/el/short_description.txt diff --git a/fastlane/metadata/android/el/changelogs/63.txt b/fastlane/metadata/android/el/changelogs/63.txt new file mode 100644 index 000000000..ea66cae32 --- /dev/null +++ b/fastlane/metadata/android/el/changelogs/63.txt @@ -0,0 +1,8 @@ +###Βελτιώσεις +- Εισαγωγή/εξαγωγή ρυθμίσεων #1333 +- Ελάττωση υπερβολών (βελτίωση απόδοσης) #1371 +- Μικροβελτιώσεις του κώδικα #1375 +- Προστέθηκαν τα πάντα σχετικά με τον GDPR #1420 + +###Επιδιορθώθηκαν +- Πρόγραμμα λήψης: Επιδιόρθωση καταρρεύσεως κατά τη φόρτωση ημιτελών λήψεων από αρχεία .giga #1407 diff --git a/fastlane/metadata/android/el/changelogs/952.txt b/fastlane/metadata/android/el/changelogs/952.txt new file mode 100644 index 000000000..033a4e567 --- /dev/null +++ b/fastlane/metadata/android/el/changelogs/952.txt @@ -0,0 +1,7 @@ +Βελτίωση +• Η αυτόματη αναπαραγωγή είναι διαθέσιμη για όλες τις υπηρεσίες (όχι μόνο για το YouTube) + +Επιδιόρθωση +• Επιδιορθώθηκαν σχετικές ροές μέσω της υποστήριξης νέων επεκτάσεων του YouTube +• Επιδιορθώθηκαν βίντεο του YouTube με ηλικιακούς περιορισμούς +• [Android TV] Επιδιορθώθηκε η παρατεταμένη εστίαση επισημασμένης επικάλυψης diff --git a/fastlane/metadata/android/el/changelogs/953.txt b/fastlane/metadata/android/el/changelogs/953.txt new file mode 100644 index 000000000..c125e28f7 --- /dev/null +++ b/fastlane/metadata/android/el/changelogs/953.txt @@ -0,0 +1 @@ +Επιδιόρθωση εξαγωγής της λειτουργίας αποκρυπτογράφησης του YouTube. diff --git a/fastlane/metadata/android/el/changelogs/955.txt b/fastlane/metadata/android/el/changelogs/955.txt new file mode 100644 index 000000000..ff22e7966 --- /dev/null +++ b/fastlane/metadata/android/el/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] Επιδιόρθωση αναζήτησης για κάποιους χρήστες +[YouTube] Επιδιόρθωση τυχαίων εξαιρέσεων αποκωδικοποίησης +[SoundCloud] Οι τοποθεσίες ιστοτόπων που τελειώνουν με κάθετο αναλύονται σωστά τώρα πλέον diff --git a/fastlane/metadata/android/el/changelogs/956.txt b/fastlane/metadata/android/el/changelogs/956.txt new file mode 100644 index 000000000..4a38f2dab --- /dev/null +++ b/fastlane/metadata/android/el/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Επιδιόρθωση crash όταν φορτώνεται οποιοδήποτε video diff --git a/fastlane/metadata/android/el/full_description.txt b/fastlane/metadata/android/el/full_description.txt new file mode 100644 index 000000000..88ba38563 --- /dev/null +++ b/fastlane/metadata/android/el/full_description.txt @@ -0,0 +1 @@ +Το NewPipe δε χρησιμοποιεί ούτε τα αποθετήρια πλαισίων της Google ούτε την API του YouTube. Αναλύει μόνο τον ιστότοπο ώστε να αποκτήσει τις πληροφορίες που χρειάζεται. Επομένως, αυτή η εφαρμογή μπορεί να χρησιμοποιηθεί σε συσκευές που δεν έχουν εγκατεστημένες τις Υπηρεσίες της Google. Ακόμη, δεν απαιτείται λογαριασμός στο YouTube για τη χρήση του NewPipe. Επίσης, ανήκει στην κατηγορία του Λογισμικού Ανοικτού Κώδικα (FLOSS). diff --git a/fastlane/metadata/android/el/short_description.txt b/fastlane/metadata/android/el/short_description.txt new file mode 100644 index 000000000..b5b10ec58 --- /dev/null +++ b/fastlane/metadata/android/el/short_description.txt @@ -0,0 +1 @@ +Ένα δωρεάν ελαφρύ εμπρόσθιο τμήμα του YouTube για συσκευές Android. From a8c849d38a99f6b3176d500b7d2a93f84849fef1 Mon Sep 17 00:00:00 2001 From: Michal L Date: Wed, 11 Nov 2020 11:32:38 +0000 Subject: [PATCH 181/231] Translated using Weblate (Polish) Currently translated at 40.5% (15 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ --- fastlane/metadata/android/pl/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/pl/changelogs/956.txt diff --git a/fastlane/metadata/android/pl/changelogs/956.txt b/fastlane/metadata/android/pl/changelogs/956.txt new file mode 100644 index 000000000..13a4ccf8b --- /dev/null +++ b/fastlane/metadata/android/pl/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Naprawiono awarię podczas ładowania dowolnego filmu From da6c4ad36a90470b404e25007261eff45e66afd5 Mon Sep 17 00:00:00 2001 From: ysard Date: Fri, 13 Nov 2020 19:54:16 +0000 Subject: [PATCH 182/231] Translated using Weblate (French) Currently translated at 24.3% (9 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/952.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/metadata/android/fr/changelogs/952.txt b/fastlane/metadata/android/fr/changelogs/952.txt index b89573b47..c44306671 100644 --- a/fastlane/metadata/android/fr/changelogs/952.txt +++ b/fastlane/metadata/android/fr/changelogs/952.txt @@ -4,4 +4,4 @@ Amélioration : Corrections : • Correction des flux suggérés par ajout du support de "YouTube's new continuations" • Correction de la gestion de l'âge minimum pour regarder les vidéos Youtube -• [Android TV] correction de la persistance du soulignement sur l'overlay +• [Android TV] correction de la persistance du focus sur l'overlay From 703b310ef046c1e4eadb8ec4bc18e015d5ffb12d Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Fri, 13 Nov 2020 21:19:56 +0000 Subject: [PATCH 183/231] Translated using Weblate (Finnish) Currently translated at 5.4% (2 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fi/ --- fastlane/metadata/android/fi/full_description.txt | 1 + fastlane/metadata/android/fi/short_description.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/fi/full_description.txt create mode 100644 fastlane/metadata/android/fi/short_description.txt diff --git a/fastlane/metadata/android/fi/full_description.txt b/fastlane/metadata/android/fi/full_description.txt new file mode 100644 index 000000000..c96166b5e --- /dev/null +++ b/fastlane/metadata/android/fi/full_description.txt @@ -0,0 +1 @@ +NewPipe ei käytä mitään Google kirjastoja tai YouTuben API:tä. Se ainoastaan käsittelee verkkosivuja saadakseen tarvitsemansa informaation. Siksi tätä sovellusta voidaan käyttää laitteilla ilman Google Palveluiden asentamista. Et myöskään tarvitse YouTube-tiliä käyttääksesi NewPipea ja se on FLOSS. diff --git a/fastlane/metadata/android/fi/short_description.txt b/fastlane/metadata/android/fi/short_description.txt new file mode 100644 index 000000000..3c72c98de --- /dev/null +++ b/fastlane/metadata/android/fi/short_description.txt @@ -0,0 +1 @@ +Vapaa kevyt YouTube-katseluohjelma Androidille. From ce814cffd1bcccec8cf837209d97ce72e2eb8ffd Mon Sep 17 00:00:00 2001 From: chr56 Date: Fri, 13 Nov 2020 16:25:29 +0000 Subject: [PATCH 184/231] Translated using Weblate (Chinese (Simplified)) Currently translated at 64.8% (24 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/ --- fastlane/metadata/android/zh_Hans/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/zh_Hans/changelogs/956.txt diff --git a/fastlane/metadata/android/zh_Hans/changelogs/956.txt b/fastlane/metadata/android/zh_Hans/changelogs/956.txt new file mode 100644 index 000000000..ee66e0110 --- /dev/null +++ b/fastlane/metadata/android/zh_Hans/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube]修复加载任意视频时崩溃 From ae7f04578df425e3436175a4ff021410c1ed524c Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Fri, 13 Nov 2020 02:31:47 +0000 Subject: [PATCH 185/231] Translated using Weblate (Santali) Currently translated at 9.7% (59 of 605 strings) --- app/src/main/res/values-sat/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index b24f4222b..4de232988 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -28,4 +28,11 @@ ᱪᱟᱱᱱᱮᱹᱞ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱮᱱᱟ ᱯᱚᱯᱟᱹᱯ ᱢᱳᱰ ᱵᱟᱦᱨᱮ ᱟᱹᱰᱤᱭᱚ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱮᱵᱽᱦᱟᱨ ᱢᱮᱸ + ᱱᱟᱶᱟ ᱴᱮᱵ + ᱵᱩᱻᱠᱢᱟᱨᱠ ᱯᱞᱮᱞᱤᱥᱴ ᱠᱚ + ᱥᱟᱹᱵᱥᱠᱨᱤᱯᱥᱚᱱ ᱠᱚ + ᱢᱩᱞ + ᱤᱱᱯᱷᱚ ᱫᱮᱠᱷᱟᱣ ᱢᱮᱸ + ᱥᱟᱹᱵᱥᱠᱨᱤᱯᱥᱚᱱ ᱵᱟᱝ ᱟᱹᱯᱰᱮᱴ ᱜᱟᱱᱚᱜᱽ ᱱᱟᱠᱟ + ᱥᱟᱲᱮ ᱠᱚ ᱛᱤᱱᱟᱹᱝ ᱜᱟᱱ ᱨᱤᱡᱚᱞᱭᱩᱥᱚᱱ ᱠᱚ ᱴᱷᱮᱱ ᱚᱪᱚᱜᱽ ᱟᱭ \ No newline at end of file From 81c24510a87609daf75a41583b9ac384398e6f41 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 14 Nov 2020 11:30:27 +0100 Subject: [PATCH 186/231] Add Release 0.20.3 fastlane changelog to allow translation --- fastlane/metadata/android/en-US/changelogs/957.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/957.txt diff --git a/fastlane/metadata/android/en-US/changelogs/957.txt b/fastlane/metadata/android/en-US/changelogs/957.txt new file mode 100644 index 000000000..f84bc82b2 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/957.txt @@ -0,0 +1,10 @@ +• Unify specific enqueue actions into one +• Two finger gesture to close player +• Allow clearing reCAPTCHA cookies +• Option to not colorize notification +• Improve how video details are opened to fix infinite buffering, buggy behaviour when sharing to NewPipe and other inconsistencies +• Speed up YouTube videos and fix age restricted ones +• Fix crash on fast forward/rewind +• Don't rearrange lists by dragging thumbnails +• Always remember popup properties +• Add Santali language From 9b05243d61fe1d4fc8baa1c8e38c770f36c9fe99 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 14 Nov 2020 10:48:02 +0000 Subject: [PATCH 187/231] Translated using Weblate (Italian) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-it/strings.xml | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index abf5fd29d..b7f755cdd 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -12,12 +12,12 @@ Impostazioni Forse cercavi «%1$s»\? Condividi con - Scegli Browser + Scegli browser rotazione - Cartella Video Scaricati + Cartella video scaricati I video scaricati saranno salvati qui Scegli la cartella per i video scaricati - Risoluzione Predefinita + Risoluzione predefinita Riproduci con Kodi Installare l\'app Kore\? Mostra «Riproduci con Kodi» @@ -36,9 +36,9 @@ Mi piace Impossibile creare la cartella di download \'%1$s\' Creata la cartella per i download \'%1$s\' - Usa Lettore Video Esterno - Usa Lettore Audio Esterno - Cartella Audio Scaricati + Usa lettore video esterno + Usa lettore audio esterno + Cartella audio scaricati Gli audio scaricati saranno salvati qui Scegli la cartella per gli audio scaricati Tema @@ -61,7 +61,7 @@ Mostra Contenuti con Restrizioni di Età Tocca «Cerca» per iniziare \n - Riproduzione Automatica + Riproduzione automatica Riproduci i video quando NewPipe viene aperto da un\'altra app Diretta Impossibile analizzare completamente il sito web @@ -115,14 +115,14 @@ Più tardi Apri in modalità Popup - Modalità Popup + Modalità popup Riproduzione in modalità Popup Disattivato L\'audio potrebbe non essere disponibile per alcune risoluzioni - In Sottofondo + In sottofondo Popup - Risoluzione Predefinita Popup - Mostra Altre Risoluzioni + Risoluzione predefinita popup + Mostra altre risoluzioni Solo alcuni dispositivi possono riprodurre video 2K/4K Formato Video Predefinito Controllo Gesti Lettore Multimediale @@ -270,8 +270,8 @@ Attenzione: Impossibile importare tutti i file. Questa operazione sostituirà le tue impostazioni attuali. Scarica il video - Mostra Informazioni - Playlist Salvate + Mostra informazioni + Playlist salvate Aggiungi a Trascina per riordinare Crea @@ -633,7 +633,7 @@ Notifica Niente Ripeti - Ridimensiona Copertina alla Proporzione 1:1 + Ridimensiona copertina alla proporzione 1:1 Modifica la proporzione della copertina del video mostrata nella notifica da 16:9 a 1:1 (può introdurre distorsioni) Mostra Memory Leak Aggiunto alla coda From 8b869915e701ffaab2b7587f5a206f5f1dd9bd85 Mon Sep 17 00:00:00 2001 From: ysard Date: Sat, 14 Nov 2020 01:24:39 +0000 Subject: [PATCH 188/231] Translated using Weblate (French) Currently translated at 67.5% (25 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/63.txt | 8 ++++++++ fastlane/metadata/android/fr/changelogs/64.txt | 8 ++++++++ fastlane/metadata/android/fr/changelogs/71.txt | 10 ++++++++++ fastlane/metadata/android/fr/changelogs/730.txt | 2 ++ fastlane/metadata/android/fr/changelogs/770.txt | 4 ++++ fastlane/metadata/android/fr/changelogs/780.txt | 12 ++++++++++++ fastlane/metadata/android/fr/changelogs/790.txt | 14 ++++++++++++++ fastlane/metadata/android/fr/changelogs/820.txt | 1 + fastlane/metadata/android/fr/changelogs/830.txt | 1 + fastlane/metadata/android/fr/changelogs/850.txt | 1 + fastlane/metadata/android/fr/changelogs/860.txt | 7 +++++++ fastlane/metadata/android/fr/changelogs/870.txt | 2 ++ fastlane/metadata/android/fr/changelogs/900.txt | 14 ++++++++++++++ fastlane/metadata/android/fr/changelogs/920.txt | 9 +++++++++ fastlane/metadata/android/fr/changelogs/940.txt | 14 ++++++++++++++ fastlane/metadata/android/fr/changelogs/951.txt | 15 +++++++++++++++ 16 files changed, 122 insertions(+) create mode 100644 fastlane/metadata/android/fr/changelogs/63.txt create mode 100644 fastlane/metadata/android/fr/changelogs/64.txt create mode 100644 fastlane/metadata/android/fr/changelogs/71.txt create mode 100644 fastlane/metadata/android/fr/changelogs/730.txt create mode 100644 fastlane/metadata/android/fr/changelogs/770.txt create mode 100644 fastlane/metadata/android/fr/changelogs/780.txt create mode 100644 fastlane/metadata/android/fr/changelogs/790.txt create mode 100644 fastlane/metadata/android/fr/changelogs/820.txt create mode 100644 fastlane/metadata/android/fr/changelogs/830.txt create mode 100644 fastlane/metadata/android/fr/changelogs/850.txt create mode 100644 fastlane/metadata/android/fr/changelogs/860.txt create mode 100644 fastlane/metadata/android/fr/changelogs/870.txt create mode 100644 fastlane/metadata/android/fr/changelogs/900.txt create mode 100644 fastlane/metadata/android/fr/changelogs/920.txt create mode 100644 fastlane/metadata/android/fr/changelogs/940.txt create mode 100644 fastlane/metadata/android/fr/changelogs/951.txt diff --git a/fastlane/metadata/android/fr/changelogs/63.txt b/fastlane/metadata/android/fr/changelogs/63.txt new file mode 100644 index 000000000..be078632b --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/63.txt @@ -0,0 +1,8 @@ +### Améliorations +- Importation/exportation des paramètres #1333 +- Réduction overdraw (amélioration des performances) #1371 +- Petites améliorations du code #1375 +- GDPR #1420 + +### Corrections +- Téléchargeur : Correction d'un plantage lors du chargement de téléchargements inachevés de fichiers .giga #1407 diff --git a/fastlane/metadata/android/fr/changelogs/64.txt b/fastlane/metadata/android/fr/changelogs/64.txt new file mode 100644 index 000000000..0b749d792 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/64.txt @@ -0,0 +1,8 @@ +### Améliorations +- Possibilité de limiter la qualité vidéo si utilisation de données mobiles #1339 +- Mémoriser luminosité pour la session #1442 +- Performances de téléchargement pour CPU peu performants #1431 +- Support pour les sessions média #1433 + +### Corrections +- Plantage lors de l'ouverture des téléchargements (disponible pour les versions ultérieures) #1441 diff --git a/fastlane/metadata/android/fr/changelogs/71.txt b/fastlane/metadata/android/fr/changelogs/71.txt new file mode 100644 index 000000000..6a886199c --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/71.txt @@ -0,0 +1,10 @@ +### Améliorations +* Notification maj GitHub (#1608 par @krtkush) +* Améliorations téléchargeur (#1944 par @kapodamy) : +  * icônes blanches manquantes; utilisation d'une méthode pour changer leurs couleurs +  * vérification si l'itérateur est initialisé (#2031) +  * réessayer les téléchargements "post-processing failed" dans le nouveau muxer +  * nouveau muxer MPEG-4 corrigeant les flux non synchrones (#2039) + +### Corrections +* Flux YouTube en direct s'arrêtent (#1996 par @yausername) diff --git a/fastlane/metadata/android/fr/changelogs/730.txt b/fastlane/metadata/android/fr/changelogs/730.txt new file mode 100644 index 000000000..73a06a5c8 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/730.txt @@ -0,0 +1,2 @@ +# Corrections +- Erreur liée à la fonctions de décryptage (encore). diff --git a/fastlane/metadata/android/fr/changelogs/770.txt b/fastlane/metadata/android/fr/changelogs/770.txt new file mode 100644 index 000000000..12efa1ffc --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/770.txt @@ -0,0 +1,4 @@ +Changements 0.17.2 + +Correction +- Aucune vidéo n'était disponible diff --git a/fastlane/metadata/android/fr/changelogs/780.txt b/fastlane/metadata/android/fr/changelogs/780.txt new file mode 100644 index 000000000..5eaf3c163 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/780.txt @@ -0,0 +1,12 @@ +Changements 0.17.3 + +Améliorations +- Option pour effacer les états de lecture #2550 +- Affichage des répertoires cachés #2591 +- Support des URL des instances `invidio.us` #2488 +- Support des URL de `music.youtube.com` TeamNewPipe/NewPipeExtractor#194 + +Corrections +- Exception "java.lang.IllegalArgumentException #192 +- Flux en direct ne fonctionnant pas TeamNewPipe/NewPipeExtractor#195 +- Performance sur Android Pie lors du téléchargement d'un flux #2592 diff --git a/fastlane/metadata/android/fr/changelogs/790.txt b/fastlane/metadata/android/fr/changelogs/790.txt new file mode 100644 index 000000000..43ca0a1cf --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/790.txt @@ -0,0 +1,14 @@ +Améliorations +- Titres plus accessibles aux personnes aveugles #2655 +- Réglage langue du dossier de téléchargement #2637 + +Corrections +- Vérification si le dernier octet est téléchargé #2646 +- Défilement dans le fragment vidéo #2672 +- Double animation de recherche #2695 +- [SoundCloud] Correction de l'extraction du client_id #2745 + +Développement +- Ajout dépendances manquantes de NewPipeExtractor dans NewPipe #2535 +- Migration AndroidX #2685 +- Mise à jour d'ExoPlayer 2.10.6 #2697, #2736 diff --git a/fastlane/metadata/android/fr/changelogs/820.txt b/fastlane/metadata/android/fr/changelogs/820.txt new file mode 100644 index 000000000..b6cad7a2f --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/820.txt @@ -0,0 +1 @@ +Correction de la regex du nom de la fonction de décryptage rendant YouTube inutilisable. diff --git a/fastlane/metadata/android/fr/changelogs/830.txt b/fastlane/metadata/android/fr/changelogs/830.txt new file mode 100644 index 000000000..8172d4a3e --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/830.txt @@ -0,0 +1 @@ +Mise à jour du client SoundCloud_id pour corriger les problèmes de SoundCloud. diff --git a/fastlane/metadata/android/fr/changelogs/850.txt b/fastlane/metadata/android/fr/changelogs/850.txt new file mode 100644 index 000000000..9a1b9edd4 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/850.txt @@ -0,0 +1 @@ +Dans cette version, la version du site YouTube a été mise à jour. L'ancienne version du site web sera abandonnée en mars et vous devez donc mettre à jour NewPipe. diff --git a/fastlane/metadata/android/fr/changelogs/860.txt b/fastlane/metadata/android/fr/changelogs/860.txt new file mode 100644 index 000000000..434d80dfa --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/860.txt @@ -0,0 +1,7 @@ +Améliorations +- Sauvegarde et restauration, que la hauteur et le tempo soient détachés ou non +- Coupure d'affichage dans le lecteur +- Calcul de l'arrondi pour le nombre de vues et le nombre d'abonnés +- Optimisation YouTube pour utiliser moins de données + +Plus de 15 bogues liés à YouTube ont été corrigés dans cette version. diff --git a/fastlane/metadata/android/fr/changelogs/870.txt b/fastlane/metadata/android/fr/changelogs/870.txt new file mode 100644 index 000000000..e95e4a343 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/870.txt @@ -0,0 +1,2 @@ +Il s'agit d'un correctif qui met à jour NewPipe pour permettre d'utiliser à nouveau SoundCloud sans problèmes majeurs. +L'API v2 de SoundCloud est maintenant utilisée dans l'extracteur et la détection des ID clients invalides a été améliorée. diff --git a/fastlane/metadata/android/fr/changelogs/900.txt b/fastlane/metadata/android/fr/changelogs/900.txt new file mode 100644 index 000000000..669904108 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/900.txt @@ -0,0 +1,14 @@ +Ajouts +- Groupes d'abonnement et flux triés +- Bouton "Mute" dans les lecteurs + +Améliorations +- Ouverture des liens music.youtube.com et media.ccc.de dans NewPipe +- Déplacement de deux paramètres de Apparence vers Contenu +- Cacher les options 5,15,25 secs si la recherche inexacte est activée + +Corrections +- Certaines vidéos WebM ne sont pas navigables +- Sauvegarde de la base de données sur Android P +- Crash lors du partage d'un fichier téléchargé +- Tonnes de problèmes d'extraction sur YouTube... diff --git a/fastlane/metadata/android/fr/changelogs/920.txt b/fastlane/metadata/android/fr/changelogs/920.txt new file mode 100644 index 000000000..321a18cde --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/920.txt @@ -0,0 +1,9 @@ +Améliorations + +- Ajout de la date de publication et du nombre de visionnages sur les éléments de la grille des diffusions +- Améliorations pour le dessin de la mise en page de l'en-tête + +Corrections + +- Bouton de mise en sourdine entraînant des plantages sur l'API 19 +- Téléchargement de longues vidéos 1080p 60fps diff --git a/fastlane/metadata/android/fr/changelogs/940.txt b/fastlane/metadata/android/fr/changelogs/940.txt new file mode 100644 index 000000000..cdba454ad --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/940.txt @@ -0,0 +1,14 @@ +Ajouts +- Support commentaires de SoundCloud +- Mode restreint de YouTube +- Détails de la chaîne parentale de PeerTube + +Améliorations +- Bouton Kore uniquement pour les services supportés +- Blocage des gestes débutant sur la barre de navigation ou d'état +- Couleur de fond des boutons réessai & abonnement + +Corrections +- Gel de la boîte de dialogue de téléchargement +- "Ouvrir dans le navigateur" s'ouvre réellement dans le navigateur +- Crash à l'ouverture des vidéos et "Impossible de lire ce flux" diff --git a/fastlane/metadata/android/fr/changelogs/951.txt b/fastlane/metadata/android/fr/changelogs/951.txt new file mode 100644 index 000000000..54d4cc0eb --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/951.txt @@ -0,0 +1,15 @@ +Ajouts +- Recherche dans sélecteur d'abonnement +- Filtre pour abonnements non groupés +- Onglet "Playlist" à la page principale +- Avance/retour dans la file du lecteur en arrière-plan/pop-up +- Affichage suggestions de recherche + +Améliorations +- Retrait métadonnées dans fichiers multiplexés +- Ne pas retirer les flux qui ont échoué de la file +- Couleurs barres d'outils et d'état similaires + +Corrections +- Correction de la désynchronisation audio/vidéo +- [PeerTube] Gestion des commentaires supprimés From 796e656328bdb051ed40b6eddcdb87a602173304 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 14 Nov 2020 10:48:26 +0000 Subject: [PATCH 189/231] Translated using Weblate (Italian) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-it/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b7f755cdd..b0b1b5c4f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -626,7 +626,7 @@ Azione Pulsante 4 Azione Pulsante 3 Azione Pulsante 2 - Azione Pulsante 1 + Azione primo pulsante Buffering Nella notifica compatta è possibile visualizzare al massimo 3 azioni! Casuale From 6075b9863407654b616a3d81eb7eb985919451ed Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Sun, 15 Nov 2020 13:41:43 +0000 Subject: [PATCH 190/231] Correct Gigaget's license It's GPLv3, not GPLv2. --- app/src/main/java/org/schabi/newpipe/about/AboutActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java index 9d3aea546..a15bb9e41 100644 --- a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java +++ b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.java @@ -33,7 +33,7 @@ public class AboutActivity extends AppCompatActivity { */ private static final SoftwareComponent[] SOFTWARE_COMPONENTS = new SoftwareComponent[]{ new SoftwareComponent("Giga Get", "2014 - 2015", "Peter Cai", - "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2), + "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL3), new SoftwareComponent("NewPipe Extractor", "2017 - 2020", "Christian Schabesberger", "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3), new SoftwareComponent("Jsoup", "2017", "Jonathan Hedley", From 7e0552efde4bf639dde5688f48ede00736ac629d Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Sun, 15 Nov 2020 14:03:20 +0000 Subject: [PATCH 191/231] Delete GPLv2 license file - not needed --- app/src/main/assets/gpl_2.html | 400 --------------------------------- 1 file changed, 400 deletions(-) delete mode 100644 app/src/main/assets/gpl_2.html diff --git a/app/src/main/assets/gpl_2.html b/app/src/main/assets/gpl_2.html deleted file mode 100644 index 0e1b8827e..000000000 --- a/app/src/main/assets/gpl_2.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - GNU General Public License v2.0 - GNU Project - Free Software Foundation (FSF) - - - -

GNU GENERAL PUBLIC LICENSE

-

-Version 2, June 1991 -

- -
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. -
- -

Preamble

- -

- The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. -

- -

- When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. -

- -

- To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. -

- -

- For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. -

- -

- We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. -

- -

- Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. -

- -

- Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. -

- -

- The precise terms and conditions for copying, distribution and -modification follow. -

- - -

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

- - -

-0. - This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". -

- -

-Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. -

- -

-1. - You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. -

- -

-You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. -

- -

-2. - You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: -

- -
-
-
- a) - You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. -
-
-
- b) - You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. -
-
-
- c) - If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) -
-
- -

-These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. -

- -

-Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. -

- -

-In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. -

- -

-3. - You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: -

- - - - -
-
-
- a) - Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, -
-
-
- b) - Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, -
-
-
- c) - Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) -
-
- -

-The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major softwareComponents (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. -

- -

-If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. -

- -

-4. - You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. -

- -

-5. - You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. -

- -

-6. - Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. -

- -

-7. - If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. -

- -

-If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. -

- -

-It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. -

- -

-This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. -

- -

-8. - If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. -

- -

-9. - The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. -

- -

-Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. -

- -

-10. - If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. -

- -

NO WARRANTY

- -

-11. - BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. -

- -

-12. - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. -

- From e4746f8b32eb785fd855c067788dde65c7e8ac2c Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Sun, 15 Nov 2020 14:04:10 +0000 Subject: [PATCH 192/231] Remove GPLv2 - not needed --- .../main/java/org/schabi/newpipe/about/StandardLicenses.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/about/StandardLicenses.java b/app/src/main/java/org/schabi/newpipe/about/StandardLicenses.java index 75a7a8613..50ee5ebc3 100644 --- a/app/src/main/java/org/schabi/newpipe/about/StandardLicenses.java +++ b/app/src/main/java/org/schabi/newpipe/about/StandardLicenses.java @@ -4,8 +4,6 @@ package org.schabi.newpipe.about; * Class containing information about standard software licenses. */ public final class StandardLicenses { - public static final License GPL2 - = new License("GNU General Public License, Version 2.0", "GPLv2", "gpl_2.html"); public static final License GPL3 = new License("GNU General Public License, Version 3.0", "GPLv3", "gpl_3.html"); public static final License APACHE2 From 3f25940dec9f86ddbdb6fde7220e2679282dddc2 Mon Sep 17 00:00:00 2001 From: Stypox Date: Tue, 10 Nov 2020 10:05:13 +0100 Subject: [PATCH 193/231] Release 0.20.3 --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e78d5b144..2050cd8ef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { resValue "string", "app_name", "NewPipe" minSdkVersion 19 targetSdkVersion 29 - versionCode 956 - versionName "0.20.2" + versionCode 957 + versionName "0.20.3" multiDexEnabled true @@ -176,7 +176,7 @@ dependencies { // NewPipe dependencies // You can use a local version by uncommenting a few lines in settings.gradle - implementation 'com.github.Stypox:NewPipeExtractor:501ec30152642ad49ce0a1825410d200942d174c' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:6701b0fe718f6bdc385221341fa473e8aaab560e' implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751" implementation "org.jsoup:jsoup:1.13.1" From 8d8ba688382c78b6ddad358469033f7b495f9761 Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Sat, 7 Nov 2020 22:44:38 +0000 Subject: [PATCH 194/231] Translated using Weblate (Uzbek (latin)) Currently translated at 20.3% (123 of 603 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 70e12d61f..87827c013 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -21,4 +21,82 @@ %1$s marta ko‘rilgan Boshlash uchun \"Izlash\" tugmasini bosing \n + Player yorqinligini va ovoz balandligini boshqarish uchun imo-ishoralardan foydalanish + Player imo-ishoralarini boshqarish + Player tovushini boshqarish uchun imo-ishoralardan foydalanish + Player yorqinligini boshqarish uchun imo-ishoralardan foydalaning + Yorqinlik ishoralarini boshqarish + Ovoz balandligini ishoralarni boshqarish + Avto-navbat + Tegishli stream qo\'shib, ijro etish navbatini tugatishni (takrorlanmaydigan) davom ettirish + avtomatik navbat next stream + Metadata keshi o\'chirildi + Barcha keshlangan veb-sahifa ma\'lumotlarini olib tashlash + Keshlangan metadatalarni o\'chirish + Rasm keshi o\'chirildi + Eskizlarni yuklash, ma\'lumotlarni tejash va xotiradan foydalanishni oldini olish uchun o\'chirib qo\'ying. O\'zgarishlar xotiradagi va diskdagi rasm keshini tozalaydi. + sharhlarni yashirishni o\'chirish + Izohlarni ko\'rsatish + Eskizlarni yuklang + Aktiv ijro etish navbati almashtiriladi + Bir ijro etishdan boshqasiga o\'tish sizning navbatingizni almashtirishi mumkin + Navbatni tozalashdan oldin tasdiqlashni so\'rash + Oldinga tez / oldinga siljish davomiyligini qidirish + Noto\'g\'ri izlash ijro etuvchiga aniqlikni pasayishi bilan tezroq pozitsiyalarni qidirishga imkon beradi. 5, 15 yoki 25 soniyani qidirish bu bilan ishlamaydi. + Tez aniq bo\'lmagan izlashdan foydalanish + Qora + qorong\'i + Yorug\' + Tema + Standart video format + Standart audio format + Audio + Hech narsa + Buferlash + Aralash + Takrorlash + Bildirishnomada ko\'rsatish uchun eng ko\'p uchta amalni tanlashingiz mumkin! + Quyidagi har bir bildirishnomani ustiga bosib uni tahrir qiling. O\'ng tomondagi katakchalar yordamida ixcham bildirishnomada ko\'rsatilishi uchun ulardan uchtasini tanlang. + Beshinchi harakat tugmasi + To\'rtinchi harakat tugmasi + Uchinchi harakat tugmasi + Ikkinchi harakat tugmasi + Birinchi harakat tugmasi + Bildirishnomada ko\'rsatilgan video eskizini 16: 9dan 1: 1 gacha tomonlarning nisbatiga qarab o\'lchamang (buzilishlarni keltirib chiqarishi mumkin) + Eskizini 1: 1 tomonlar nisbatiga o‘lchash + Kodi media-markazi orqali videoni ijro etish variantini ko\'rsatish + \"Kodi bilan ijro etish\" parametrini ko\'rsatish + missing Kore dasturini o\'rnatasizmi\? + Kodi bilan ijro etish + Faqat ba\'zi qurilmalar 2K / 4K videolarni ijro etishi mumkin + Yuqori o\'lchamlarni ko\'rsatish + "Standart pop-up o\'lchamlari" + Standart o\'lchamlari + NewPipe boshqa dasturdan chaqirilganda videoni ijro etadi + Avtomatikplay + Yuklash papkalarini kuchga kirishi uchun o\'zgartirish + Audio fayllar uchun yuklab olish papkasini tanlash + Yuklab olingan videofayllar shu yerda saqlanadi + Yuklab olingan audio fayllar shu yerda saqlanadi + Ovozni yuklab olish papkasi + Video fayllar uchun yuklab olish papkasini tanlash + Videoni yuklab olish jildi + Qo\'shish + Qalqib ko\'rinish + Fon ko\'rinishi + Yorliqlangan pleylistlar + Yorliqni tanlash + Yangi yorliq + Obunalar + Asosiy + Ma\'lumotni ko\'rsatish + Obunani yangilab bo\'lmadi + Obunani o\'zgartirib bo\'lmadi + Kanal obunasi bekor qilindi + Obunani bekor qilish + Obuna bo\'lindi + Obuna bo\'lish + Qalqib ko\'rinadigan rejim + Tashqi audio pleerdan foydalanish + Ba\'zi piksellarda ovozni o\'chirish \ No newline at end of file From 83f4dbe40e8a9e3edd4af71225b570bb1dc00260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 8 Nov 2020 00:38:18 +0000 Subject: [PATCH 195/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 93.0% (563 of 605 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 42c576a3a..cd907efb7 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -641,4 +641,6 @@ Tøm kaker som NewPipe lagrer når du løser en reCAPTCHA YouTube tilbyr et «Begrenset modus» som skjuler mulig innhold kun for voksne. Vis innhold som muligens er upassende for barn, siden det har aldersgrense (som 18+). + Få Android til å tilpasse merknadens farge i henhold til hovedfargen på miniatyrbildet (merk at dette ikke støttes på alle enheter) + Fargelegg merknad \ No newline at end of file From e0f53b63ce072de76e89843070cf18885ba5a4ec Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sun, 8 Nov 2020 11:27:30 +0000 Subject: [PATCH 196/231] Translated using Weblate (German) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-de/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 149289a84..01993ba71 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -342,11 +342,14 @@ Die Überwachung von Speicherlecks kann dazu führen, dass die App beim Heap-Dumping nicht mehr reagiert Fehler außerhalb des Lebenszyklus melden Erzwingen der Meldung unzustellbarer Rx-Ausnahmen außerhalb des Lebenszyklus von Fragmenten oder Aktivitäten nach der Entsorgung - Importiere YouTube-Abonnements, indem du die Exportdatei herunterlädst: -\n -\n1. Gehe zu dieser URL: %1$s -\n2. Melde dich an, falls du dazu aufgefordert wirst. -\n3. Der Ladevorgang sollte beginnen (das ist die Exportdatei) + Importiere YouTube-Abonnements aus dem Google Takeout: +\n +\n1. Gehe zu dieser URL: %1$s +\n2. Melde dich an, falls du dazu aufgefordert wirst +\n3. Klicke auf \"Alle Daten enthalten\", dann auf \"Alle abwählen\", wähle dann nur \"Abonnements\" und klicke auf \"OK\" +\n4. Klicke auf \"Nächster Schritt\" und dann auf \"Export erstellen\" +\n5. Klicke auf die Schaltfläche \"Download\", nachdem sie erscheint und +\n6. Entpacke aus dem heruntergeladenen Takeout-Zip die .json-Datei (normalerweise unter \"YouTube und YouTube Music/subscriptions/subscriptions.json\") und importiere sie hier. Importiere ein SoundCloud-Profil, indem die URL oder deine ID eingegeben wird: \n \n1. Aktiviere den Desktop-Modus in einem Web-Browser (die Seite ist für mobile Geräte nicht verfügbar) @@ -640,4 +643,6 @@ reCAPTCHA-Cookies löschen Zeige Inhalt, der möglicherweise unpassend für Kinder ist, da er eine Altersbeschränkung (wie z.B. 18+) hat. Wiedergabe einreihen + Android kann die Farbe der Benachrichtigung entsprechend der Hauptfarbe in der Miniaturansicht anpassen (beachte, dass dies nicht auf allen Geräten verfügbar ist) + Benachrichtigung farblich anpassen \ No newline at end of file From 204b5f7f09504c3afbc14d293222e87abceea72d Mon Sep 17 00:00:00 2001 From: Florian Date: Sun, 8 Nov 2020 08:33:42 +0000 Subject: [PATCH 197/231] Translated using Weblate (French) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-fr/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2048ee2f9..ede413206 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -332,11 +332,14 @@ Exportation précédente Impossible d’importer les abonnements Impossible d’exporter les abonnements - Veuillez importer vos abonnements YouTube en téléchargeant le fichier d’exportation. -\n -\n1. Suivez ce lien : %1$s. -\n2. Connectez-vous à votre compte. -\n3. Un téléchargement va démarrer (celui du fichier d’exportation). + Importez vos abonnements YouTube depuis Google Takeout : +\n +\n1. Suivez ce lien : %1$s +\n2. Connectez-vous à votre compte +\n3. Cliquez sur \"Toutes les données Youtube sont incluses\", puis sur \"Tout désélectionner\", puis sélectionnez uniquement \"abonnements\" et cliquez sur \"OK\" +\n4. Cliquez sur \"Étape suivante\" et ensuite sur \"Créer une exportation\" +\n5. Cliquez sur le bouton \"Télécharger\" après qu\'il apparaisse et +\n6. À partir du fichier zip téléchargé, extrayez le fichier .json (généralement sous \"YouTube et YouTube Music/subscriptions/subscriptions.json\") et importez-le ici. Veuillez importer un profil SoundCloud en saisissant l’URL de votre profil ou votre identifiant. \n \n1. Activez le « mode bureau » dans votre navigateur Web (le site n’est pas disponible pour les appareils mobiles). @@ -640,4 +643,6 @@ Effacer les cookies reCAPTCHA YouTube dispose d\'un « Mode restreint » qui cache le contenu potentiellement inapproprié. Le contenu de cette émission n\'est peut-être pas approprié pour les enfants à cause d\'une limite d\'âge (18 +). + Notification colorée + Demander à Android de personnaliser la couleur de la notification en fonction de la couleur principale de la miniature (noter que cela n’est pas disponible sur tous les appareils) \ No newline at end of file From 9d588aa7e7650d58f9bc3e038b4a1f3502f95cf9 Mon Sep 17 00:00:00 2001 From: Vancha March Date: Sun, 8 Nov 2020 10:38:08 +0000 Subject: [PATCH 198/231] Translated using Weblate (Dutch) Currently translated at 99.8% (604 of 605 strings) --- app/src/main/res/values-nl/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 72402a0f3..c2a44d6be 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -640,4 +640,6 @@ Verwijder reCAPTCHA cookies YouTube biedt een \"beperkte modes\" aan, dit verbergt mogelijk materiaal voor volwassenen. Toon inhoud die mogelijk niet geschikt is voor kinderen omwille van een leeftijdslimiet (zoals 18+). + Laat Android de kleur van de notificatie aanpassen, op basis van de meest voorkomende kleur in de thumbnail (let op: niet beschikbaar op elk apparaat) + Notificatie kleur aanpassen \ No newline at end of file From 7eadb6acadd53797b17d3eed41f34bbceef313c2 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 09:46:37 +0000 Subject: [PATCH 199/231] Translated using Weblate (Portuguese) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pt/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index bbab1f55a..8fb983bd2 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -321,11 +321,14 @@ Exportação anterior Não foi possível importar as subscrições Não foi possível exportar as subscrições - Importe subscrições do YouTube descarregando o ficheiro de exportação: + Importar subscrições do YouTube do Google Takeout: \n -\n1. Aceda a este URL: %1$s -\n2. Inicie a sessão -\n3. A descarga será iniciada (esse é o ficheiro de exportação) +\n1. Vá para este URL: %1$s +\n2. Faça o login quando solicitado +\n3. Clique em \"Todos os dados incluídos\", depois em \"Desmarcar todos\", depois selecione apenas \"subscrições\" e clique em \"OK\". +\n4. Clique em \"Próximo passo\" e depois em \"Criar exportação\". +\n5. Clique no botão \"Descarregar\" após aparecer e +\n6. A partir do zip do takeout descarregado extraia o ficheiro .json (normalmente em \"YouTube e YouTube Music/subscriptions/subscriptions.json\") e importe-o aqui. Importe o seu perfil SoundCloud digitando o URL ou a ID.: \n \n1. Ative o modo desktop do seu navegador web (o site não está disponível para aparelhos móveis) @@ -640,4 +643,6 @@ Limpar cookies reCAPTCHA O YouTube fornece um \"Modo Restrito\" que oculta conteúdo potencialmente para adultos. Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+). + Fazer com que o Android personalize a cor da notificação de acordo com a cor principal na miniatura (note que esta não está disponível em todos os aparelhos) + Colorir a notificação \ No newline at end of file From eeb68497fe63a539ca5641fdf1a4f803ad5ea092 Mon Sep 17 00:00:00 2001 From: Bopol Date: Sun, 8 Nov 2020 22:00:58 +0000 Subject: [PATCH 200/231] Translated using Weblate (Esperanto) Currently translated at 91.0% (551 of 605 strings) --- app/src/main/res/values-eo/strings.xml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 2683e092f..2d0cc6f70 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -9,7 +9,7 @@ Elŝuti Serĉi Agordoj - Ĉu vi signifis: %1$s\? + Ĉu vi signifis \"%1$s\"\? Konigi kun Elekti retumilon turno @@ -64,7 +64,8 @@ Signali eraron Filmeto Reprovi - Premi \"Serĉi\" por komenci + Premi \"Serĉi\" por komenci +\n Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin). Malfermi en ŝprucfenestran modon Forigas aŭdon ĉe kelkaj rezolucioj @@ -148,7 +149,7 @@ Kiosko Tendencoj Supro 50 - Nova & varma + Nova kaj varma Montri la indiko « Tenu por aldoni » Montri indikon premante la fona aŭ la ŝprucfenestra butono en filmeta \"Detaloj:\" Viciĝita en la fona ludilo @@ -205,7 +206,10 @@ \n \n1. Iru ĉe tiu retpaĝo: %1$s \n2. Ensalutu kiam oni petas vin -\n3. Elŝuto devus komenci (ĝi estas la dosiero de eksporto) +\n3. Click on \"All data included\", then on \"Deselect all\", then select only \"subscriptions\" and click \"OK\" +\n4. Click on \"Next step\" and then on \"Create export\" +\n5. Click on the \"Download\" button after it appears and +\n6. From the downloaded takeout zip extract the .json file (usually under \"YouTube and YouTube Music/subscriptions/subscriptions.json\") and import it here. Importu Soundcloud-n profilon tajpante ĉu la ligilon, ĉu vian ID : \n \n1. Ebligu komputilon modon en retumilon (la retejo malhaveblas por poŝtelefonoj) @@ -284,9 +288,9 @@ Ĉu vi volas forviŝi ĉiujn ludajn poziciojn \? Ŝanĝu la elŝutojn dosierujojn por efekti Pardonu, eraro okazis. - Pardonu, kelkaj eraroj okazis. + Pardonon, io mizokasis. Kio okazis: - Kio:\\nPeto:\\nEnhavlingvo:\\nServo:\\nGMT Horo:\\nPako:\\nVersio:\\nOperaciumo versio: + Kio:\\nPeto:\\nEnhavlingvo:\\nEnhavlando:\\nAplingvo:\\nServo:\\nGMT Horo:\\nPako:\\nVersio:\\nOperaciumo versio: Aŭdio Permesi la konservadon unue Uzantosignalo @@ -434,7 +438,7 @@ Rifuzi Neniu limo Minimumigi dum la apo ŝanĝo - Ago dum ŝanĝante al alia apo el la ĉefa filmetludilo—%s + Ago dum ŝanĝante al alia apo el la ĉefa filmetludilo — %s Neniu Minimumigi por ludi fone Plirapidigi dum silentoj From 796e0456efca1b460c70f61b77661c0e0d105530 Mon Sep 17 00:00:00 2001 From: simo Date: Sun, 8 Nov 2020 11:36:23 +0000 Subject: [PATCH 201/231] Translated using Weblate (Arabic) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-ar/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 5e1c83ab3..5f3d94e00 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -362,11 +362,14 @@ نسخة احتياطية تعذر استيراد الاشتراكات لا يمكن تصدير الاشتراكات - استيراد اشتراكات YouTube عن طريق تنزيل ملف التصدير: -\n -\n1. انتقل إلى عنوان URL هذا: %1$s -\n2. تسجيل الدخول عندما يطلب منك -\n3. يجب أن يبدأ التنزيل (وهذا ملف التصدير) + استيراد اشتراكات YouTube من Google Takeout +\n +\n1. انتقل إلى عنوان URL هذا : %1$s +\n2. تسجيل الدخول عندما يُطلب منك ذلك +\n3. انقر على \"جميع البيانات المدرجة\" ، ثم على \"إلغاء تحديد الكل\" ، ثم حدد \"الاشتراكات\" فقط وانقر على \"موافق\" +\n4. انقر على \"الخطوة التالية\" ثم على \"إنشاء تصدير\" +\n5. انقر فوق الزر \"تنزيل\" بعد ظهوره و +\n6. من الملف المضغوط الذي تم تنزيله ، استخرج ملف .json (عادةً ضمن \"YouTube و YouTube)Music/subscriptions/subscriptions.json\") واستورده قم باستيراد ملف تعريف SoundCloud عن طريق كتابة عنوان URL أو معرفك: \n \n1. تمكين \"وضع سطح المكتب\" في متصفح الويب (الموقع غير متاح للأجهزة المحمولة) @@ -680,4 +683,6 @@ إظهار تسرب الذاكرة قائمة الانتظار قائمة الانتظار + اجعل أندرويد يخصص لون الإشعار وفقا للون الرئيسي في الصورة المصغرة (لاحظ أن هذا غير متوفر على جميع الأجهزة + تلوين الاشعارات \ No newline at end of file From 01c1346696ca56bf21ad961a7a97f95ecd789a9b Mon Sep 17 00:00:00 2001 From: Eric Date: Sun, 8 Nov 2020 02:31:51 +0000 Subject: [PATCH 202/231] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-b+zh+HANS+CN/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index 4c0577015..f2b39535d 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -357,11 +357,14 @@ 以前的导出 无法导入订阅 无法导出订阅 - 通过下载导出文件来导入 YouTube 订阅: + 从 Google takeout 导入YouTube 订阅: \n -\n1. 转到此网站: %1$s -\n2. 登录(如果需要) -\n3. 应该立即开始下载(即导出文件) +\n1. 转到这个URL:%1$s +\n2. 登录谷歌账户 +\n3. 点击“所有包含的数据”,然后点击“取消选择全部”,然后只选择“订阅”,然后点击“确定” +\n4. 点击“下一步”然后点击“创建导出” +\n5. 在“下载”按钮出现后,点击它 +\n6. 从下载的takeout压缩包提取.json文件 (通常能够位于\"YouTube and YouTube Music/subscriptions/subscriptions.json\")并在此导入它。 通过输入网址或你的 ID 导入 SoundCloud 配置文件: \n \n1. 在浏览器中启用\"电脑模式\"(该网站不适用于移动设备) @@ -631,4 +634,6 @@ 清理 reCAPTCHA cookies YouTube提供了一个“受限模式”,会隐藏潜在的成人内容。 展示可能不适合儿童观看的内容,因为它有年龄限制(比如18岁以上)。 + 让安卓系统根据视频缩略图的主色彩自定义通知的颜色(注意,该特性并非在所有设备上都可用) + 对通知着色 \ No newline at end of file From 2921563e9c68c31d2fcc4be7ecdcf7f06a91a5e8 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sun, 8 Nov 2020 02:15:08 +0000 Subject: [PATCH 203/231] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0feef39b6..ac409d840 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -321,11 +321,14 @@ 無法匯出訂閱 之前的匯出 檔案不存在或讀取或寫入權限不足 - 透過下載匯出檔來匯入您的 YouTube 訂閱: -\n -\n1. 移至此網址:%1$s + 從 Google Takeout 匯入您的 YouTube 訂閱: +\n +\n1. 移至此網址:%1$s \n2. 當被提示時登入帳號 -\n3. 應該會開始下載(這就是匯出檔 ) +\n3. 點擊「包含所有資料」,然後「取消選取全部」,然後僅選取「訂閱」並點擊「確定」 +\n4. 點擊「下一步」然後「建立匯出」 +\n5. 在「下載」按鈕出現後點擊它,然後 +\n6. 從已下載的 takeout zip 解壓縮 .json 檔(通常會在「YouTube 與 YouTube Music/subscriptions/subscriptions.json」)然後匯入它。 yourID, soundcloud.com/yourid 請記住,此操作可造成昂貴網路花費。 \n @@ -630,4 +633,6 @@ 清除 reCAPTCHA cookies YouTube 提供了「受限模式」,可以隱藏潛在的成人內容。 顯示可能不適於兒童的內容(因為其有年齡限制,如18歲以上等)。 + 讓 Android 根據縮圖中的主要色彩來自訂通知的顏色(請注意,此功能不是在所有裝置上都能正常運作) + 彩色通知 \ No newline at end of file From 3e72df8b1e323dec75554c4c93a95a50650f78ee Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 8 Nov 2020 07:31:12 +0000 Subject: [PATCH 204/231] Translated using Weblate (Hebrew) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-he/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 529d7b0dc..564e2631d 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -317,10 +317,13 @@ לא ניתן לייבא את המינויים לא ניתן לייצא את המינויים כדי לייבא את רשימת המינויים שלך מ־YouTube עליך להוריד את קובץ הייצוא: -\n +\n \n1. לעבור לכתובת הזו: %1$s \n2. להיכנס אם נתבקשת -\n3. ההורדה אמורה להתחיל (זה קובץ הייצוא) +\n3. ללחוץ על „All data included”, ואז על „Deselect all”, לאחר מכן לבחור רק את „subscriptions” וללחוץ על „OK” +\n4. ללחוץ על „Next step” ואז על „Create export” +\n5. ללחוץ על כפתור ה־„Download” כשהוא מופיע ואז +\n6. לחלץ את קובץ ה־‎.json מתוך ה־zip (בדרך כלל תחת „YouTube and YouTube Music/subscriptions/subscriptions.json”) ולייבא אותו כאן. קצב שימוש בחיפוש מהיר ולא מדויק חיפוש גס מאפשר לנגן לחפש נקודת זמן מהר יותר, ברמת דיוק נמוכה יותר. חיפוש של 5, 15 או 25 שניות לא עובד עם ההגדרה הזאת. @@ -660,4 +663,6 @@ פינוי עוגיות reCAPTCHA פלטפורמת YouTube מספקת „מצב מוגבל” שמסתיר תוכן שעשוי להתאים למבוגרים בלבד. הצגת תוכן שעלול להיות בלתי הולם לילדים עקב מגבלת גיל (כגון 18+). + לאפשר ל־Android להתאים את צבע ההתראה בהתאם לצבע העיקרי של התמונה הממוזערת (לא זמין בכל המכשירים) + צביעת ההתראה \ No newline at end of file From 748904b8ad2cf078cec80eb567967817b54b47db Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 8 Nov 2020 18:17:01 +0000 Subject: [PATCH 205/231] Translated using Weblate (Sardinian) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-sc/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index dfc055fad..a4f6eee80 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -1,10 +1,13 @@ - Importa sas iscritziones iscarrighende su documentu de esportatzione: + Importa sas iscritziones dae Google takeout: \n \n 1. Bae a custu URL: %1$s \n 2. Intra cando ti l\'ant a pedire -\n 3. Diat dèpere incumintzare un\'iscarrigamentu (cussu est su documentu de esportatzione) +\n 3. Incarca in \"Totu sos datos incluidos\", a pustis in \"Boga sa seletzione a totus\" e a pustis galu ischerta petzi \"iscritziones\" e incarca \"AB\" +\n4. Incarca in \"Passu imbeniente\" e a pustis in \"Crea un\'esportatzione\" +\n5. Cando aparit, incarca in su butone \"Iscarrigamentu\" e +\n6. Dae s\'archìviu zip iscarrigadu estrai su documentu .json (de sòlitu tenet su nùmene\"\"YouTube and YouTube Music/subscriptions/subscriptions.json\") e importa·lu inoghe. Esportatzione de s\'iscritzione fallida Importatzione de s\'iscritzione fallida Esportatzione anteposta @@ -640,4 +643,6 @@ Isbòida sos testimòngios reCAPTCHA YouTube frunit una \"Modalidade cun restritziones\" chi cuat sos cuntenudos chi diant pòdere èssere pro adultos. Ammustra sos cuntenutos chi diant pòdere no èssere adatos pro sos pitzinnos ca tenent unu lìmite de edade (che a 18+). + Pedi a Android de personalizare su colore de sa notìfica sighende su colore printzipale de sa miniadura (ammenta·ti chi custu no est a disponimentu pro totu sos dispositivos) + Colora sas notìficas \ No newline at end of file From 83384e0de494c1438b285b8d8fc49825af38ffb2 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 18:42:55 +0000 Subject: [PATCH 206/231] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pt-rPT/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 7e0c95ba8..ae9785493 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -192,11 +192,14 @@ País padrão para conteúdo Aplicação livre de reprodução de emissões para Android. Idioma padrão para conteúdo - Importe subscrições do YouTube descarregando o ficheiro de exportação: + Importar subscrições do YouTube do Google Takeout: \n -\n1. Aceda a este URL: %1$s -\n2. Inicie a sessão -\n3. A descarga será iniciada (esse é o ficheiro de exportação) +\n1. Vá para este URL: %1$s +\n2. Faça o login quando solicitado +\n3. Clique em \"Todos os dados incluídos\", depois em \"Desmarcar todos\", depois selecione apenas \"subscrições\" e clique em \"OK\". +\n4. Clique em \"Próximo passo\" e depois em \"Criar exportação\". +\n5. Clique no botão \"Descarregar\" após aparecer e +\n6. A partir do zip do takeout descarregado extraia o ficheiro .json (normalmente em \"YouTube e YouTube Music/subscriptions/subscriptions.json\") e importe-o aqui. Ativar reprodutor em segundo plano Mais tarde Desafio reCAPTCHA solicitado @@ -640,4 +643,6 @@ Limpar cookies reCAPTCHA O YouTube fornece um \"Modo Restrito\" que oculta conteúdo potencialmente para adultos. Mostrar conteúdo possivelmente impróprio para crianças porque tem um limite de idade (como 18+). + Fazer com que o Android personalize a cor da notificação de acordo com a cor principal na miniatura (note que esta não está disponível em todos os aparelhos) + Colorir a notificação \ No newline at end of file From a274159726114792306c977c8c56ca1e8c61a0f2 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sun, 8 Nov 2020 11:28:05 +0000 Subject: [PATCH 207/231] Translated using Weblate (German) Currently translated at 18.9% (7 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ --- fastlane/metadata/android/de/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/de/changelogs/956.txt diff --git a/fastlane/metadata/android/de/changelogs/956.txt b/fastlane/metadata/android/de/changelogs/956.txt new file mode 100644 index 000000000..d0e443335 --- /dev/null +++ b/fastlane/metadata/android/de/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Absturz beim Laden eines Videos behoben From e887363910327dc26a692cd2d491640887c34608 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 18:48:18 +0000 Subject: [PATCH 208/231] Translated using Weblate (Portuguese) Currently translated at 54.0% (20 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ --- fastlane/metadata/android/pt/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/pt/changelogs/955.txt | 3 +++ fastlane/metadata/android/pt/changelogs/956.txt | 1 + 3 files changed, 13 insertions(+) create mode 100644 fastlane/metadata/android/pt/changelogs/954.txt create mode 100644 fastlane/metadata/android/pt/changelogs/955.txt create mode 100644 fastlane/metadata/android/pt/changelogs/956.txt diff --git a/fastlane/metadata/android/pt/changelogs/954.txt b/fastlane/metadata/android/pt/changelogs/954.txt new file mode 100644 index 000000000..1da36f6fa --- /dev/null +++ b/fastlane/metadata/android/pt/changelogs/954.txt @@ -0,0 +1,9 @@ +• fluxo de trabalho da app nova: reproduz vídeos na página de detalhes, deslize para baixo para minimizar o reprodutor +• notificações MediaStyle: ações personalizáveis em notificações, melhorias de desempenho +• redimensionamento básico ao usar NewPipe como app de desktop + +• mostrar diálogo com opções abertas em caso de URL não suportado +• experiência de sugestão de pesquisa melhorada +• qualidade de vídeo predefinido aumentada a 720p60 (player do app) e 480p (pop-up) + +• correções de bugs diff --git a/fastlane/metadata/android/pt/changelogs/955.txt b/fastlane/metadata/android/pt/changelogs/955.txt new file mode 100644 index 000000000..cd70b41c9 --- /dev/null +++ b/fastlane/metadata/android/pt/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] A procura por alguns utilizadores corrigida +[YouTube] Exceções de desencriptação aleatórias corrigidas +[SounCloud] URLs que terminam com uma barra são agora analisados corretamente diff --git a/fastlane/metadata/android/pt/changelogs/956.txt b/fastlane/metadata/android/pt/changelogs/956.txt new file mode 100644 index 000000000..e258a451e --- /dev/null +++ b/fastlane/metadata/android/pt/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Falha corrigida ao carregar qualquer vídeo From be9cb8a4daa19a4156f8fb472b421cdb2261d34c Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 8 Nov 2020 07:37:03 +0000 Subject: [PATCH 209/231] Translated using Weblate (Hebrew) Currently translated at 21.6% (8 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/ --- fastlane/metadata/android/he/changelogs/952.txt | 7 +++++++ fastlane/metadata/android/he/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/he/changelogs/956.txt | 1 + 3 files changed, 17 insertions(+) create mode 100644 fastlane/metadata/android/he/changelogs/952.txt create mode 100644 fastlane/metadata/android/he/changelogs/954.txt create mode 100644 fastlane/metadata/android/he/changelogs/956.txt diff --git a/fastlane/metadata/android/he/changelogs/952.txt b/fastlane/metadata/android/he/changelogs/952.txt new file mode 100644 index 000000000..8205cb4ab --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/952.txt @@ -0,0 +1,7 @@ +שיפורים +• נגינה אוטומטית זמינה לכל השירותים (במקום רק ל־YouTube) + +תיקונים +• תוקנו תזרימים קשורים על ידי תמיכה בהמשך נגינה החדש של YouTube +• תוקנו מגבלות גיל על סרטונים של YouTube +• [Android TV] תוקנה השתהות הצגת על של הדגשת מיקוד diff --git a/fastlane/metadata/android/he/changelogs/954.txt b/fastlane/metadata/android/he/changelogs/954.txt new file mode 100644 index 000000000..5905c41f0 --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/954.txt @@ -0,0 +1,9 @@ +• תצורת הנגינה השתנתה: ניתן לנגן סרטונים בעמוד הפירוט, לגרור כלפי מטה כדי למזער את הנגן +• התראות MediaStyle: פעולות מותאמות אישית בהתראות, שיפורי ביצועים +• שינוי גודל בסיסי בעת שימוש ב־NewPipe כיישומון שולחן עבודה + +• להציג דו־שיח עם אפשרויות פתיחה במקרה של הגשת כתובת בלתי נתמכת +• לשפר את חוויית תוצאות החיפוש כאשר אי אפשר להביא תוצאות מרוחקות +• בררת המחדל של איכות הווידאו עלתה ל־720p60 (בנגן הפנימי) ול־480p (בנגן הצף) + +• ערימות נכבדות של תיקוני באגים ועוד diff --git a/fastlane/metadata/android/he/changelogs/956.txt b/fastlane/metadata/android/he/changelogs/956.txt new file mode 100644 index 000000000..582b9680c --- /dev/null +++ b/fastlane/metadata/android/he/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] תוקנה קריסה בעת טעינת כל סרטון שהוא From 2a4717cb7fc3d1f9a1cbc9e7d91e922b1dbb2f38 Mon Sep 17 00:00:00 2001 From: simo Date: Sun, 8 Nov 2020 12:05:16 +0000 Subject: [PATCH 210/231] Translated using Weblate (Arabic) Currently translated at 62.1% (23 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ --- fastlane/metadata/android/ar/changelogs/64.txt | 8 ++++++++ fastlane/metadata/android/ar/changelogs/840.txt | 10 ++++++++++ fastlane/metadata/android/ar/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/ar/changelogs/956.txt | 1 + 4 files changed, 28 insertions(+) create mode 100644 fastlane/metadata/android/ar/changelogs/64.txt create mode 100644 fastlane/metadata/android/ar/changelogs/840.txt create mode 100644 fastlane/metadata/android/ar/changelogs/954.txt create mode 100644 fastlane/metadata/android/ar/changelogs/956.txt diff --git a/fastlane/metadata/android/ar/changelogs/64.txt b/fastlane/metadata/android/ar/changelogs/64.txt new file mode 100644 index 000000000..9f753ffad --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/64.txt @@ -0,0 +1,8 @@ +### تحسينات +- تمت إضافة القدرة على تقييد جودة الفيديو في حالة استخدام بيانات الجوال. #1339 +- تذكر السطوع للدورة #1442 +- تحسين أداء التنزيل لوحدات المعالجة المركزية الأضعف #1431 +- اضافة دعم (عاملة) للجلسة الاعلامية رقم#1433 + +### الإصلاح +- إصلاح التعطل عند فتح التنزيلات (الإصلاح متوفر الآن لإصدارات الإصدارات) #1441 diff --git a/fastlane/metadata/android/ar/changelogs/840.txt b/fastlane/metadata/android/ar/changelogs/840.txt new file mode 100644 index 000000000..dc364e25b --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/840.txt @@ -0,0 +1,10 @@ +جديد +• تمت إضافة محدد اللغة لتغيير لغة التطبيق +• تمت إضافة زر الإرسال إلى Kodi إلى قائمة المشغل القابلة للطي +• تمت إضافة إمكانية نسخ التعليقات عند الضغط لفترة طويلة + +محسّن +• إصلاح نشاط ReCaptcha وحفظ ملفات تعريف الارتباط التي تم الحصول عليها بشكل صحيح +• تمت إزالة قائمة النقاط لصالح الدرج وزر إخفاء السجل عندما لا يتم تمكين سجل المشاهدة في الإعدادات +• اطلب العرض فوق إذن التطبيقات الأخرى في الإعدادات بشكل صحيح على Android 6 والإصدارات الأحدث +• إعادة تسمية قائمة التشغيل المحلية عن طريق النقر لفترة ط diff --git a/fastlane/metadata/android/ar/changelogs/954.txt b/fastlane/metadata/android/ar/changelogs/954.txt new file mode 100644 index 000000000..fa6859cb1 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/954.txt @@ -0,0 +1,9 @@ +• سير عمل جديد للتطبيق: قم بتشغيل مقاطع الفيديو على صفحة التفاصيل ، واسحب لأسفل لتقليل المشغل +• إخطارات MediaStyle: إجراءات قابلة للتخصيص في الإخطارات ، وتحسينات في الأداء +• تغيير الحجم الأساسي عند استخدام NewPipe كتطبيق سطح المكتب + +• إظهار الحوار مع الخيارات المفتوحة في حالة وجود نخب عنوان URL غير مدعوم +• تحسين تجربة اقتراح البحث عندما يتعذر جلب الاقتراحات البعيدة +• زيادة جودة الفيديو الافتراضية إلى 720p60 (مشغل داخل التطبيق) و 480 بكسل (مشغل منبثق) + +• طن من إصلاحات الأخطاء وأكثر من ذلك diff --git a/fastlane/metadata/android/ar/changelogs/956.txt b/fastlane/metadata/android/ar/changelogs/956.txt new file mode 100644 index 000000000..ce05a3930 --- /dev/null +++ b/fastlane/metadata/android/ar/changelogs/956.txt @@ -0,0 +1 @@ +[يوتيوب] عطل ثابت عند تحميل أي فيديو From 7c10f414dcfe51b544ef0214a951b670de9f659e Mon Sep 17 00:00:00 2001 From: Florian Date: Sun, 8 Nov 2020 08:37:52 +0000 Subject: [PATCH 211/231] Translated using Weblate (French) Currently translated at 24.3% (9 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/910.txt | 1 + fastlane/metadata/android/fr/changelogs/956.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/fr/changelogs/910.txt create mode 100644 fastlane/metadata/android/fr/changelogs/956.txt diff --git a/fastlane/metadata/android/fr/changelogs/910.txt b/fastlane/metadata/android/fr/changelogs/910.txt new file mode 100644 index 000000000..33faa5c44 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/910.txt @@ -0,0 +1 @@ +Correction de la migration de la base de données qui empêchait NewPipe de démarrer dans de rares cas. diff --git a/fastlane/metadata/android/fr/changelogs/956.txt b/fastlane/metadata/android/fr/changelogs/956.txt new file mode 100644 index 000000000..b5d86b193 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Correction d'un crash lors du chargement de n'importe quelle vidéo From d2580ec87cce57d418f8919e5d9f0ebc02f4f133 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 8 Nov 2020 18:48:39 +0000 Subject: [PATCH 212/231] Translated using Weblate (Portuguese (Portugal)) Currently translated at 54.0% (20 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/ --- fastlane/metadata/android/pt_PT/changelogs/954.txt | 9 +++++++++ fastlane/metadata/android/pt_PT/changelogs/955.txt | 3 +++ fastlane/metadata/android/pt_PT/changelogs/956.txt | 1 + 3 files changed, 13 insertions(+) create mode 100644 fastlane/metadata/android/pt_PT/changelogs/954.txt create mode 100644 fastlane/metadata/android/pt_PT/changelogs/955.txt create mode 100644 fastlane/metadata/android/pt_PT/changelogs/956.txt diff --git a/fastlane/metadata/android/pt_PT/changelogs/954.txt b/fastlane/metadata/android/pt_PT/changelogs/954.txt new file mode 100644 index 000000000..1da36f6fa --- /dev/null +++ b/fastlane/metadata/android/pt_PT/changelogs/954.txt @@ -0,0 +1,9 @@ +• fluxo de trabalho da app nova: reproduz vídeos na página de detalhes, deslize para baixo para minimizar o reprodutor +• notificações MediaStyle: ações personalizáveis em notificações, melhorias de desempenho +• redimensionamento básico ao usar NewPipe como app de desktop + +• mostrar diálogo com opções abertas em caso de URL não suportado +• experiência de sugestão de pesquisa melhorada +• qualidade de vídeo predefinido aumentada a 720p60 (player do app) e 480p (pop-up) + +• correções de bugs diff --git a/fastlane/metadata/android/pt_PT/changelogs/955.txt b/fastlane/metadata/android/pt_PT/changelogs/955.txt new file mode 100644 index 000000000..cd70b41c9 --- /dev/null +++ b/fastlane/metadata/android/pt_PT/changelogs/955.txt @@ -0,0 +1,3 @@ +[YouTube] A procura por alguns utilizadores corrigida +[YouTube] Exceções de desencriptação aleatórias corrigidas +[SounCloud] URLs que terminam com uma barra são agora analisados corretamente diff --git a/fastlane/metadata/android/pt_PT/changelogs/956.txt b/fastlane/metadata/android/pt_PT/changelogs/956.txt new file mode 100644 index 000000000..e258a451e --- /dev/null +++ b/fastlane/metadata/android/pt_PT/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Falha corrigida ao carregar qualquer vídeo From d17236fe45d53a75cd5c71f54f02ec7461470be3 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 8 Nov 2020 18:18:11 +0000 Subject: [PATCH 213/231] Translated using Weblate (Sardinian) Currently translated at 10.8% (4 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sc/ --- fastlane/metadata/android/sc/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/sc/changelogs/956.txt diff --git a/fastlane/metadata/android/sc/changelogs/956.txt b/fastlane/metadata/android/sc/changelogs/956.txt new file mode 100644 index 000000000..2dbbabd04 --- /dev/null +++ b/fastlane/metadata/android/sc/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Curretzione de una serradura no isetada cando si càrrigat cale si siat vìdeu From b866c9dd087901943f10a526a0caecf97c0fc04f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 8 Nov 2020 02:29:43 +0000 Subject: [PATCH 214/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 10.8% (4 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nb_NO/ --- fastlane/metadata/android/nb-NO/changelogs/956.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 fastlane/metadata/android/nb-NO/changelogs/956.txt diff --git a/fastlane/metadata/android/nb-NO/changelogs/956.txt b/fastlane/metadata/android/nb-NO/changelogs/956.txt new file mode 100644 index 000000000..1bd76267e --- /dev/null +++ b/fastlane/metadata/android/nb-NO/changelogs/956.txt @@ -0,0 +1 @@ +[YouTube] Fikset kræsj ved innlasting av vilkårlig video From 7d27003bb26234356c11c3e4ff50a013ee63e70d Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Sun, 8 Nov 2020 01:06:01 +0000 Subject: [PATCH 215/231] Translated using Weblate (Santali) Currently translated at 8.4% (51 of 605 strings) --- app/src/main/res/values-sat/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 6e8842e29..453ca0dca 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -24,4 +24,7 @@ ᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱵᱽ ᱮᱱᱟ + ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱯᱥᱚᱱ ᱵᱚᱫᱚᱞ ᱵᱟᱭ ᱜᱟᱱᱟᱜᱽ ᱠᱟᱱᱟ + ᱪᱟᱱᱱᱮᱹᱞ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱮᱱᱟ + ᱯᱚᱯᱟᱹᱯ ᱢᱳᱰ \ No newline at end of file From e04ee666b8e58eae04d9f364649aa0395281619f Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Sun, 8 Nov 2020 22:46:10 +0000 Subject: [PATCH 216/231] Translated using Weblate (Uzbek (latin)) Currently translated at 36.5% (221 of 605 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 87827c013..862f96f84 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -99,4 +99,104 @@ Qalqib ko\'rinadigan rejim Tashqi audio pleerdan foydalanish Ba\'zi piksellarda ovozni o\'chirish + Tomosha tarixini tozalash + ReCAPTCHA-ni hal qilganingizda NewPipe-da saqlanadigan cookie-fayllarni o\'chirib tashlang + Eksport tarixi, obunalari va pleylistlari + Joriy tarixingiz va obunalaringizni bekor qiladi + reCAPTCHA cookies fayllari o\'chirildi + ReCAPTCHA cookie-fayllarini o\'chirish + Ma\'lumotlar bazasini eksport qilish + Ma\'lumotlar bazasini import qilish + Asosiyga o\'tish + Pop-upga o\'tish + Orqa fonga o\'tish + Yo\'nalishni almashtirish / yoqish + [Noma\'lum] + NewPipe yangi versiyasi haqida bildirishnomalar + Ilovani yangilash bildirishnomasi + NewPipe fon va popup pleyerlari uchun bildirishnomalar + NewPipe bildirishnomasi + Fayl + Faqat bittasi + Har doim + Barchasini ijro etish + Fayl o\'chirildi + Bekor qilish + Eng yaxshi qaror + Hajmi o\'zgartirilmoqda + Tozalash + Yangilash + Filter + Ijrochilar o\'chirib qo\'yilgan + Keyin + Ha + Artistlar + Albomlar + Qo\'shiqlar + Natijalar + Foydalanuvchilar + Treklar + Videolar + Playlistlar + Playlist + Kanallar + Kanal + Hammasi + Xato haqida xabar berish + Yuklanganlar + Yuklanganlar + Jonli + Ushbu video yoshga cheklangan. +\n +\nAgar xohlasangiz, sozlamalarda \"%1$s\" ni yoqing. + YouTube \"cheklangan rejim\" ni taqdim etadi, u katta yoshlilar uchun tarkibni yashiradi. + YouTube-ning \"Cheklangan rejimi\" ni yoqish + Tarkibni bolalar uchun yaroqsiz deb ko\'rsating, chunki uning yosh chegarasi bor (18+ kabi). + Yoshi cheklangan tarkibni ko\'rsatish + Tarkib + Pop-up pleyerida navbat ketma-ketlikda + Orqa fon pleyerida navbat ketma-ketlikda + Pop-up rejimda ijro etish + Ijro etish foni + Bildirishnoma + Yangilanishlar + Nosozliklarni tuzatish + Boshqalar + Tashqi ko\'rinish + Pop-up + Tarix va kesh + Video va audio + Xatti-harakat + Ijro etish + Namuna allaqachon mavjud + Faqat HTTPS URL-lari qo\'llab-quvvatlanadi + Namunani tasdiqlab bo\'lmadi + Namuna URL manzilini kiriting + Namuna qo\'shish + %s da sizga yoqadigan misollarni toping + Sevimli PeerTube nusxalarini tanlang + PeerTube misollari + Standart kontent tili + Xizmatlar + Standart kontent mamlakati + URL manzili aniqlanmadi. Boshqa ilova bilan ochilsinmi\? + Qo\'llab-quvvatlanmaydigan URL manzili + \"Tafsilotlar:\" videodagi fon yoki po-pup tugmachasini bosganda ko\'rsatma. + \"Qo\'shish uchun ushlab turish\" maslahatini ko\'rsatish + \'Keyingi\' va \'O\'xshash\' videolarni namoyish etish + Avtoplay + Uzilishlardan keyin ijro etishni davom ettirish (masalan. phonecalls) + Yuklab olish + Ijro etishni davom ettirish + Ko\'rilgan videolarni kuzatib borish + Ma\'lumotlarni tozalash + Ro\'yxatlarda ijro holati ko\'rsatkichlarini ko\'rsatish + Ro\'yxatlardagi pozitsiyalar + Oxirgi ijro holatini tiklash + Ijro etishni davom ettirish + Qidirayotganda takliflarni ko\'rsatish + Tarixni ko\'rish + Qidiruv so\'rovlarini mahalliy sifatida saqlash + Qidiruv tarixi + Takliflarni qidirish \ No newline at end of file From dc2dac66a3b3773119e3b70e8bd9aa46ab9c8963 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Mon, 9 Nov 2020 17:13:18 +0000 Subject: [PATCH 217/231] Translated using Weblate (Polish) Currently translated at 99.8% (604 of 605 strings) --- app/src/main/res/values-pl/strings.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index feaca1a57..4a101061e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -336,11 +336,14 @@ Poprzedni eksport Import subskrypcji nie powiódł się Eksport subskrypcji nie powiódł się - Aby zaimportować subskrypcje YouTube, potrzebny jest plik eksportu subskrypcji. Możesz go wygenerować w następujący sposób: + Importowanie subskrypcji YouTube z google takeout: \n -\n1. Odwiedź stronę: %1$s -\n2. Zaloguj się na swoje konto -\n3. Powinno rozpocząć się pobieranie (to jest twój plik eksportu) +\n1. Przejdź do tego adresu URL: %1$s +\n2. Zaloguj się, gdy zostaniesz o to poproszony +\n3. Kliknij na \"Wszystkie dane zawarte\", a następnie na \"Usuń zaznaczenie wszystkich\", a następnie wybierz tylko \"subskrypcje\" i kliknij \"OK\" +\n4. Kliknij na \"Następny krok\", a następnie na \"Tworzenie eksportu\" +\n5. Kliknij przycisk \"Pobierz\", gdy się pojawi i +\n6. Z pobranego pliku zip na wynos wyodrębnij plik .json (zwykle w sekcji \"YouTube i YouTube Music/subscriptions/subscriptions.json\") i zaimportuj go tutaj. Ta operacja może wygenerować duże użycie danych. \n \nCzy chcesz kontynuować? @@ -650,4 +653,6 @@ Wyczyść ciasteczka reCAPTCHA YouTube udostępnia \"Tryb ograniczonego dostępu\", który ukrywa treści potencjalnie dla dorosłych. Pokaż treści nieodpowiednie dla dzieci, ponieważ mają ograniczenia wiekowe (np. 18+). + Niech Android dostosuje kolor powiadomienia zgodnie z głównym kolorem na miniaturze (nie jest to dostępne na wszystkich urządzeniach) + Pokolorowanie powiadomienia \ No newline at end of file From 219f0598344c76978c8b98da9e0cb9199f360056 Mon Sep 17 00:00:00 2001 From: Terry Louwers Date: Mon, 9 Nov 2020 06:28:20 +0000 Subject: [PATCH 218/231] Translated using Weblate (Dutch) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-nl/strings.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index c2a44d6be..9b2e52c42 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -327,11 +327,14 @@ Vorige exportering De abonnementen kunnen niet worden geïmporteerd De abonnementen kunnen niet worden geëxporteerd - Importeer je YouTube-abonnementen door het exportbestand te downloaden: -\n + Importeer je YouTube-abonnementen vanaf Google Takeout: +\n \n1. Ga naar dit adres: %1$s \n2. Log in op je account -\n3. De download met het exportbestand zou nu moeten starten +\n3. Klik op \"Alle YouTube-gegevens inbegrepen\", dan op \"Selectie van alle items ongedaan maken\", dan selecteer alleen \"abonnementen\" en klik op \"OK\" +\n4. Klik op \"Volgende stap\", dan op \"Export maken\" +\n5. Klik op de knop \"Downloaden\" nadat deze verschijnt +\n6. Uit de Takeout zipfile, pak de .json uit (gebruikelijk in de folder \"YouTube en YouTube Music/abonnementen/abonnementen.json\") en importeer deze hier. Importeer een SoundCloud-profiel door de URL of het ID ervan in te voeren: \n \n1. Kies een webbrowser en schakel bureaubladmodus in (de website is niet beschikbaar voor mobiele apparaten) From e90d388fdb56035676e417d9365bc4c85040ae74 Mon Sep 17 00:00:00 2001 From: 2-Seol <2Seol.0117@gmail.com> Date: Mon, 9 Nov 2020 13:18:38 +0000 Subject: [PATCH 219/231] Translated using Weblate (Korean) Currently translated at 82.8% (501 of 605 strings) --- app/src/main/res/values-ko/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 4713cd7db..7af445c15 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -546,4 +546,6 @@ 알림에 표시되는 비디오 썸네일을 16:9에서 1:1 비율로 바꿉니다. (왜곡이 생길 수도 있습니다.) 썸네일을 1:1 비율로 하기 %s에 대한 검색 결과 + 셔플 + 연속 재생 \ No newline at end of file From 53cadeab611cc4568842e3a32731a538c0c41946 Mon Sep 17 00:00:00 2001 From: Michal L Date: Mon, 9 Nov 2020 19:59:50 +0000 Subject: [PATCH 220/231] Translated using Weblate (Polish) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-pl/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4a101061e..c3c2db320 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -336,14 +336,14 @@ Poprzedni eksport Import subskrypcji nie powiódł się Eksport subskrypcji nie powiódł się - Importowanie subskrypcji YouTube z google takeout: + Importowanie subskrypcji YouTube z Google Takeout: \n \n1. Przejdź do tego adresu URL: %1$s \n2. Zaloguj się, gdy zostaniesz o to poproszony -\n3. Kliknij na \"Wszystkie dane zawarte\", a następnie na \"Usuń zaznaczenie wszystkich\", a następnie wybierz tylko \"subskrypcje\" i kliknij \"OK\" -\n4. Kliknij na \"Następny krok\", a następnie na \"Tworzenie eksportu\" +\n3. Kliknij na \"Wybrałeś wszystkie dane z Youtube\", a następnie na \"Odznacz wszystkie\", potem wybierz tylko \"subskrypcje\" i kliknij \"OK\" +\n4. Kliknij na \"Następny krok\", a następnie na \"Utwórz eksport\" \n5. Kliknij przycisk \"Pobierz\", gdy się pojawi i -\n6. Z pobranego pliku zip na wynos wyodrębnij plik .json (zwykle w sekcji \"YouTube i YouTube Music/subscriptions/subscriptions.json\") i zaimportuj go tutaj. +\n6. Z pobranego archiwum zip wyodrębnij plik .json (zazwyczaj pod ścieżką \"YouTube i YouTube Music/subskrypcje/subskrypcje.json\") i zaimportuj go tutaj. Ta operacja może wygenerować duże użycie danych. \n \nCzy chcesz kontynuować? From 6b269c7559287ec6c791962bef2ebbbe343e3ead Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Tue, 10 Nov 2020 00:02:31 +0000 Subject: [PATCH 221/231] Translated using Weblate (Croatian) Currently translated at 98.8% (598 of 605 strings) --- app/src/main/res/values-hr/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f163ba3d0..7dcd518a0 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -631,4 +631,6 @@ Provjeri je li tvoj problem već postoji. Dupla pojava problema krade nam vrijeme koje bismo mogli utrošiti na ispravljanje same greške. Za uređivanje obavijesti radnji, dodirni ih. Označi do tri radnje za kompaktni prikaz obavijesti. Zbog ograničenja ExoPlayera, trajanje traženja postavljeno je na %d s + Neka Android prilagodi boju obavijesti prema glavnoj boji minijature (ovo nije dostupno na svim uređajima) + Oboji obavijest \ No newline at end of file From a59f80589afbad66467f52482bfe779ea31f76f7 Mon Sep 17 00:00:00 2001 From: Terry Louwers Date: Mon, 9 Nov 2020 06:29:35 +0000 Subject: [PATCH 222/231] Translated using Weblate (Dutch (Belgium)) Currently translated at 100.0% (605 of 605 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 4ff04b818..3c4e42a43 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -339,11 +339,14 @@ Vorige exportering Kon abonnementen niet importeren Kon abonnementen niet exporteren - Importeer uw YouTube-abonnementen door het exportbestand te downloaden: + Importeer je YouTube-abonnementen vanaf Google Takeout: \n \n1. Ga naar dit adres: %1$s -\n2. Log in op uw account -\n3. De download met het exportbestand zou nu moeten starten +\n2. Log in op je account +\n3. Klik op \"Alle YouTube-gegevens inbegrepen\", dan op \"Selectie van alle items ongedaan maken\", dan selecteer alleen \"abonnementen\" en klik op \"OK\" +\n4. Klik op \"Volgende stap\", dan op \"Export maken\" +\n5. Klik op de knop \"Downloaden\" nadat deze verschijnt +\n6. Uit de Takeout zipfile, pak de .json uit (gebruikelijk in de folder \"YouTube en YouTube Music/abonnementen/abonnementen.json\") en importeer deze hier. Importeer een SoundCloud-profiel door de URL of het ID ervan in te voeren: \n \n1. Kies een webbrowser en schakel bureaubladmodus in (de website is niet beschikbaar voor mobiele apparaten) @@ -640,4 +643,6 @@ Schaal miniatuurafbeelding naar verhouding 1:1 Wijzig de download mappen Toon oorspronkelijke tijd geleden op items + Laat Android de kleur van de notificatie aanpassen, op basis van de meest voorkomende kleur in de thumbnail (let op: niet beschikbaar op elk apparaat) + Notificatie kleur aanpassen \ No newline at end of file From 3245d620c3f90ff49ba1ecb460c18d42b5fab985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 9 Nov 2020 19:35:24 +0000 Subject: [PATCH 223/231] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 93.3% (565 of 605 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index cd907efb7..2c9370cd2 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -50,7 +50,8 @@ (Eksperimentelt) Tving nedlasting av trafikk gjennom Tor for forbedret personvern (strømming av videoer støttes ikke enda). Kan ikke opprette nedlastingsmappe \'%1$s\' Opprettet nedlastingsmappen \'%1$s\' - Trykk «Søk» for å komme i gang + Trykk «Søk» for å begynne +\n Automatisk avspilling Spiller en video når NewPipe blir forespurt av et annet program Innhold @@ -564,9 +565,7 @@ Strøm sist oppdatert: %s Denne videoen er aldersbegrenset. \n -\nSkru på «Aldersbegrenset innhold» i innstillingene hvis du vil se den. -\n -\nHvis du ønsker å se den, skru på \"Aldersbegrenset innhold\" i innstillingene. +\nSkru på «%1$s» i innstillingene hvis du vil se den. ∞ videoer 100+ videoer Artister From 4d874451c97dfa87309257342c11519b4b45b032 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Mon, 9 Nov 2020 16:41:36 +0000 Subject: [PATCH 224/231] Translated using Weblate (Polish) Currently translated at 37.8% (14 of 37 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ --- fastlane/metadata/android/pl/changelogs/954.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 fastlane/metadata/android/pl/changelogs/954.txt diff --git a/fastlane/metadata/android/pl/changelogs/954.txt b/fastlane/metadata/android/pl/changelogs/954.txt new file mode 100644 index 000000000..908e405d5 --- /dev/null +++ b/fastlane/metadata/android/pl/changelogs/954.txt @@ -0,0 +1,6 @@ +• Nowa obsługa aplikacji: odtwarzanie na stronie ze szczegółami, przesuń w dół aby zminimalizować. +• Powiadomienia Media Style: Personalizacja zachowań powiadomień, poprawki wydajności +• Prosta zmiana rozmiaru kiedy używasz trybu komputera (Dex itd) +• Nowe menu z opcjami w przypadku nie obsługiwanego adresu +• Poprawa sugerowanych wyników wyszukiwania w przypadku gdyby nie dało się ich pobrać z serwera. +• Podniesiona domyślna rozdzielczość: 720p60 w aplikacji, 480p w pływającym odtwarzaczu From 73be747cbecc86ee35e0c613bf4f5c6864595283 Mon Sep 17 00:00:00 2001 From: Prasanta-Hembram Date: Mon, 9 Nov 2020 03:49:47 +0000 Subject: [PATCH 225/231] Translated using Weblate (Santali) Currently translated at 8.5% (52 of 605 strings) --- app/src/main/res/values-sat/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index 453ca0dca..b24f4222b 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -27,4 +27,5 @@ ᱥᱟᱹᱵᱥᱠᱨᱭᱤᱯᱥᱚᱱ ᱵᱚᱫᱚᱞ ᱵᱟᱭ ᱜᱟᱱᱟᱜᱽ ᱠᱟᱱᱟ ᱪᱟᱱᱱᱮᱹᱞ ᱟᱹᱱᱥᱟᱹᱵᱥᱠᱨᱟᱭᱤᱵᱽ ᱮᱱᱟ ᱯᱚᱯᱟᱹᱯ ᱢᱳᱰ + ᱵᱟᱦᱨᱮ ᱟᱹᱰᱤᱭᱚ ᱯᱞᱮᱭᱟᱹᱨ ᱵᱮᱵᱽᱦᱟᱨ ᱢᱮᱸ \ No newline at end of file From 620bb54881d3b759ecade9f7cbbd15288ced7c6b Mon Sep 17 00:00:00 2001 From: Mukhamadjonov Date: Tue, 10 Nov 2020 08:59:51 +0000 Subject: [PATCH 226/231] Translated using Weblate (Uzbek (latin)) Currently translated at 66.7% (404 of 605 strings) --- app/src/main/res/values-b+uz+Latn/strings.xml | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 862f96f84..497994e8a 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -199,4 +199,204 @@ Qidiruv so\'rovlarini mahalliy sifatida saqlash Qidiruv tarixi Takliflarni qidirish + Ogohlantirish: Barcha fayllarni import qilib bo\'lmadi. + Haqiqiy ZIP fayli yo‘q + Import qilindi + Eksport qilindi + kiosk tanlash + Hali pleylist xatcho\'plari yo\'q + Pleylistni tanlang + Hech qanday kanal obunasi yo\'q + Kanal tanlash + Kanal sahifasi + Feed sahifasi + Obuna sahifasi + Standart kiosk + Kiosk sahifasi + Bo\'sh sahifa + Tanlash + Asosiy sahifada qanday yorliqlar ko\'rsatilgan + Asosiy sahifaning tarkibi + Eng ko\'p ijrolar etilganlar + Oxirgi ijro + Haqiqatan ham barcha narsalarni tarixdan o\'chirishni xohlaysizmi\? + Ushbu narsani tomosha tarixidan o\'chirishni xohlaysizmi\? + Ushbu narsani qidiruv tarixidan o\'chirmoqchimisiz\? + Element o\'chirildi + Tarix tozlandi + Tarix bo\'sh + Tarix + Tarix o\'chirilgan + Qidirilgan + Ko\'rilgan + Tarix + Litsenziyani o\'qish + NewPipe - bu nusxa ko\'chirish dasturiy ta\'minotidir: Siz foydalanishingiz, baham ko\'rishingiz va o\'zingizning xohishingiz bilan yaxshilashingiz mumkin. Xususan, siz uni bepul dasturiy ta\'minot fondi tomonidan e\'lon qilingan GNU umumiy jamoat litsenziyasi shartlari asosida qayta tarqatishingiz va / yoki o\'zgartirishingiz mumkin, Litsenziyaning 3-versiyasi yoki (sizning xohishingizga ko\'ra) har qanday keyingi versiyada. + NewPipe litsenziyasi + Maxfiylik siyosatini o\'qish + NewPipe loyihasi sizning shaxsiy hayotingizga jiddiy e\'tibor beradi. Shuning uchun ilova sizning roziligingizsiz biron bir ma\'lumot to\'plamaydi. +\nNewPipe-ning maxfiylik siyosati halokat to\'g\'risidagi hisobotni yuborganingizda qanday ma\'lumotlar yuborilishi va saqlanishi haqida batafsil ma\'lumot beradi. + NewPipe-ning maxfiylik siyosati + Qo\'shimcha ma\'lumot va yangiliklar uchun NewPipe veb-saytiga tashrif buyuring. + Websayt + Qaytarib berish + Hadya etish + NewPipe ko\'ngillilar tomonidan bo\'sh vaqtlarini sarflash orqali sizga eng yaxshi foydalanuvchi tajribasini taqdim etadi. Ishlab chiquvchilarga bir chashka qahvadan zavqlanib, NewPipe-ni yanada yaxshiroq qilishlariga yordam berish. + GitHubda ko\'rish + Sizda g\'oyalar bormi; tarjima, dizayndagi o\'zgarishlar, kodni tozalash yoki haqiqiy og\'ir kodni o\'zgartirish - yordam har doim mamnuniyat bilan qabul qilinadi. Qancha ko\'p ish qilinsa, shuncha yaxshi bo\'ladi! + Hissa qo\'shish + Androidda Libre yengil streaming. + Litsenziyalar + Xissadorlar + Haqida + Veb-saytni ochish + Litsenziyani yuklab bo\'lmadi + © %1$s tomonidan %2$s gacha %3$s + Uchinchi tomon litsenziyalari + Haqida + Sozlamalar + NewPipe haqida + Ushbu faylni ijro etish uchun dastur o\'rnatilmagan + Ko\'pchilik maxsus belgilar + Yozuvlar va raqamlar + O\'zgartirish belgisi + Noto\'g\'ri belgilar ushbu qiymat bilan almashtiriladi + Fayl nomidagi ruxsat berilgan belgilar + Yuklab olish + Bajarildi + reCAPTCHA muammosi so\'raldi + Hal etilganda \"Bajarildi\" tugmasini bosing + reCAPTCHA muammosi + 1 ta element o\'chirildi. + Ushbu ruxsat zarur +\npopup rejimida oching + Yuklab olish papkasini keyinroq sozlamalarda belgilang + Buferga nusxa olindi + Iltimos kuting… + Tafsilotlar uchun bosing + NePipe yuklab olinmoqda + Noto\'g\'ri shakllangan URL yoki Internet mavjud emas + Fayl allaqachon mavjud + Qo\'llab-quvvatlanmaydigan server + Xato + Iplar + Faylnomi + Ok + Yangi missiya + Nomni o\'zgartirish + Tarqatish + Sumnazorat + Hammasini o\'chirish + Bittasini o\'chirish + O\'chirish + Yaratish + Ijro etish + Pauza + Boshlash + Izohlar yo\'q + + %s video + %s videolar + + ∞ videolar + 100+ videolar + Videolar yo\'q + + %s tinglovchi + %s tinglovchilar + + Hech kim tinglamayapti + + %s ko\'ryapti + %s ko\'ryaptilar + + Hech kim ko\'rmayapti + + %s ko\'rish + %s ko\'rishlar + + Ko\'rishlar yo\'q + Obunachilar soni mavjud emas + + %s bunachisi + %s obunachilar + + Obunachilar yo\'q + Hozirda tanlangan xizmatni yoqish: + B + M + k + Avval omborga kirishga ruxsat berish + Qayta + Audio + Video + \'%1$s\' yuklab olish katalogi yaratildi + \'%1$s \' yuklab olish katalogini yaratib bo\'lmadi + Qayta tartiblash uchun tortish + Bu erda kriketlardan boshqa hech narsa yo\'q + Natija yo\'q + Foydalanuvchi hisoboti + Hisobotda xato + (Eksperimental) Maxfiylikni oshirish uchun Tor orqali trafikni majburan yuklab oling (videolarni streamlash hali qo\'llab-quvvatlanmaydi). + Tor-dan foydalanish + Dislayklar + Layklar + Yuklovchining avatar eskizi + Videoni ijro etish muddati, davomiyligi: + Videoni oldindan ko\'rish uchun eskiz + Detallar: + Sizning sharhingiz (ingliz tilida): + Nima: \\n So\'rov: \\nTarkib tili: \\nTarkib mamlakati: \\nIlova tili: \\ nXizmat: \\ nGMT vaqti: \\ nPaket: \\ nVersion: \\ nOS versiyasi: + Nima sodir bo\'ldi: + Info: + Hisobot + Kechirasiz, biron bir xato yuz berdi. + Iltimos, sizning harakatingizni muhokama qiladigan muammo allaqachon mavjudligini tekshiring. Ikki nusxadagi ticketlarni yaratishda siz bizdan vaqt ajratib, biz haqiqiy xatolarni tuzatishga sarflashimiz mumkin edi. + GitHub haqida hisobot + Formatlangan hisobotni nusxalash + Ushbu xato haqida elektron pochta orqali xabar berish + Kechirasiz, bunday bo\'lmasligi kerak edi. + Boshqa ilovalar orqali ko\'rsatishga ruxsat berish + Birlamchi parametrlarni tiklashni xohlaysizmi\? + Birlamchi parametrlarni tiklash + Saqlangan yorliqlarni o\'qib bo\'lmadi, shuning uchun standartlardan foydalaning + Yuklash uchun stream mavjud emas + Xato yuz berdi: %1$s + Fayl nomi bo\'sh bo\'lishi mumkin emas + Fayl mavjud emas yoki uni o\'qish yoki yozish uchun ruxsat yo\'q + Bunday fayl / tarkib manbai yo\'q + Bunday papka yo\'q + Fayl ko\'chirildi yoki o\'chirildi + Hech qanday audio stream topilmadi + Hech qanday video stream topilmadi + URL manzili yaroqsiz + Tashqi playerlar ushbu turdagi havolalarni qo\'llab-quvvatlamaydilar + Player xatosidan qutulish + Qayta tiklanmaydigan pleyerda xatolik yuz berdi + Ushbu stream ijro etilmadi + Rasm yuklanmadi + Hech qanday stream olinmadi + Live streamlar hali qo\'llab-quvvatlanmaydi + Yuklab olish menyusi sozlanmadi + Tarkib mavjud emas + Veb-saytni to\'liq tahlil qilib bo\'lmadi + Veb-saytni tahlil qilib bo\'lmadi + Videoning URL manzilini o\'chirib bo\'lmadi + Barcha eskizlarni yuklab bo\'lmadi + Tarmoqda xato + Tashqi SD-kartaga yuklab olishning iloji yo\'q. Yuklash papkasining joylashuvi tiklansinmi\? + Tashqi xotira mavjud emas + Xato + Yordam + Qidiruv tarixi o\'chirildi. + Butun qidiruv tarixi o\'chirilsinmi\? + Qidiruv kalit so\'zlar tarixini o\'chiradi + Qidiruv tarixini tozalash + Ijro pozitsiyalari o\'chirildi. + Barcha ijro holatlari o\'chirilsinmi\? + Barcha ijro holatlarini o\'chiradi + Ijro pozitsiyalarini o\'chirib tashlash + Tomosha tarixi o\'chirildi. + Tomosha tarixi butunlay o\'chirib tashlansinmi\? + Ijro etilgan streamlar tarixi va ijro holatlarini o\'chiradi \ No newline at end of file From 4c7b5d44a040d31b1ebf95d39838a9e2f06d453c Mon Sep 17 00:00:00 2001 From: Stypox Date: Fri, 13 Nov 2020 21:39:27 +0100 Subject: [PATCH 227/231] [Regression] Fix videos added multiple times to detail fragment stack --- .../schabi/newpipe/fragments/detail/VideoDetailFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 3296f5bf8..67bc51c58 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1756,7 +1756,7 @@ public final class VideoDetailFragment // deleted/added items inside Channel/Playlist queue and makes possible to have // a history of played items @Nullable final StackItem stackPeek = stack.peek(); - if (stackPeek != null && stackPeek.getPlayQueue().equals(queue)) { + if (stackPeek != null && !stackPeek.getPlayQueue().equals(queue)) { @Nullable final PlayQueueItem playQueueItem = queue.getItem(); if (playQueueItem != null) { stack.push(new StackItem(playQueueItem.getServiceId(), playQueueItem.getUrl(), From 7476498823105e1d52ae55f7eb02f0735962d115 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 15 Nov 2020 22:15:00 +0100 Subject: [PATCH 228/231] [Regression] Revert "Removed remember popup properties setting" This reverts commit 314615bfef8b20ba656c15c0a0013950d2afa4e4. --- .../org/schabi/newpipe/player/VideoPlayerImpl.java | 11 ++++++++--- .../schabi/newpipe/player/helper/PlayerHelper.java | 10 ++++++++++ app/src/main/res/values-ar/strings.xml | 2 ++ app/src/main/res/values-b+zh+HANS+CN/strings.xml | 2 ++ app/src/main/res/values-be/strings.xml | 2 ++ app/src/main/res/values-bg/strings.xml | 2 ++ app/src/main/res/values-bn-rBD/strings.xml | 2 ++ app/src/main/res/values-bn-rIN/strings.xml | 2 ++ app/src/main/res/values-bn/strings.xml | 2 ++ app/src/main/res/values-ca/strings.xml | 2 ++ app/src/main/res/values-ckb/strings.xml | 2 ++ app/src/main/res/values-cs/strings.xml | 2 ++ app/src/main/res/values-da/strings.xml | 2 ++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-el/strings.xml | 2 ++ app/src/main/res/values-eo/strings.xml | 2 ++ app/src/main/res/values-es/strings.xml | 2 ++ app/src/main/res/values-et/strings.xml | 2 ++ app/src/main/res/values-eu/strings.xml | 2 ++ app/src/main/res/values-fa/strings.xml | 2 ++ app/src/main/res/values-fi/strings.xml | 2 ++ app/src/main/res/values-fr/strings.xml | 2 ++ app/src/main/res/values-gl/strings.xml | 2 ++ app/src/main/res/values-he/strings.xml | 2 ++ app/src/main/res/values-hi/strings.xml | 2 ++ app/src/main/res/values-hr/strings.xml | 2 ++ app/src/main/res/values-hu/strings.xml | 2 ++ app/src/main/res/values-ia/strings.xml | 2 ++ app/src/main/res/values-in/strings.xml | 2 ++ app/src/main/res/values-it/strings.xml | 2 ++ app/src/main/res/values-ja/strings.xml | 2 ++ app/src/main/res/values-jv/strings.xml | 2 ++ app/src/main/res/values-ko/strings.xml | 2 ++ app/src/main/res/values-ku/strings.xml | 2 ++ app/src/main/res/values-lt/strings.xml | 2 ++ app/src/main/res/values-mk/strings.xml | 2 ++ app/src/main/res/values-ml/strings.xml | 2 ++ app/src/main/res/values-ms/strings.xml | 2 ++ app/src/main/res/values-nb-rNO/strings.xml | 2 ++ app/src/main/res/values-ne/strings.xml | 2 ++ app/src/main/res/values-nl-rBE/strings.xml | 2 ++ app/src/main/res/values-nl/strings.xml | 2 ++ app/src/main/res/values-oc/strings.xml | 2 ++ app/src/main/res/values-pa/strings.xml | 2 ++ app/src/main/res/values-pl/strings.xml | 2 ++ app/src/main/res/values-pt-rBR/strings.xml | 2 ++ app/src/main/res/values-pt-rPT/strings.xml | 2 ++ app/src/main/res/values-pt/strings.xml | 2 ++ app/src/main/res/values-ro/strings.xml | 2 ++ app/src/main/res/values-ru/strings.xml | 2 ++ app/src/main/res/values-sc/strings.xml | 2 ++ app/src/main/res/values-sk/strings.xml | 2 ++ app/src/main/res/values-sl/strings.xml | 2 ++ app/src/main/res/values-sq/strings.xml | 2 ++ app/src/main/res/values-sr/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 2 ++ app/src/main/res/values-ta/strings.xml | 2 ++ app/src/main/res/values-th/strings.xml | 2 ++ app/src/main/res/values-tr/strings.xml | 2 ++ app/src/main/res/values-uk/strings.xml | 2 ++ app/src/main/res/values-ur/strings.xml | 2 ++ app/src/main/res/values-vi/strings.xml | 2 ++ app/src/main/res/values-zh-rCN/strings.xml | 2 ++ app/src/main/res/values-zh-rHK/strings.xml | 2 ++ app/src/main/res/values-zh-rTW/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/video_audio_settings.xml | 7 +++++++ 67 files changed, 153 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java index fa016e158..5b4b987a4 100644 --- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java +++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayerImpl.java @@ -1626,10 +1626,13 @@ public class VideoPlayerImpl extends VideoPlayer updateScreenSize(); + final boolean popupRememberSizeAndPos = PlayerHelper.isRememberingPopupDimensions(service); final float defaultSize = service.getResources().getDimension(R.dimen.popup_default_width); final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(service); - popupWidth = sharedPreferences.getFloat(POPUP_SAVED_WIDTH, defaultSize); + popupWidth = popupRememberSizeAndPos + ? sharedPreferences.getFloat(POPUP_SAVED_WIDTH, defaultSize) + : defaultSize; popupHeight = getMinimumVideoHeight(popupWidth); popupLayoutParams = new WindowManager.LayoutParams( @@ -1643,8 +1646,10 @@ public class VideoPlayerImpl extends VideoPlayer final int centerX = (int) (screenWidth / 2f - popupWidth / 2f); final int centerY = (int) (screenHeight / 2f - popupHeight / 2f); - popupLayoutParams.x = sharedPreferences.getInt(POPUP_SAVED_X, centerX); - popupLayoutParams.y = sharedPreferences.getInt(POPUP_SAVED_Y, centerY); + popupLayoutParams.x = popupRememberSizeAndPos + ? sharedPreferences.getInt(POPUP_SAVED_X, centerX) : centerX; + popupLayoutParams.y = popupRememberSizeAndPos + ? sharedPreferences.getInt(POPUP_SAVED_Y, centerY) : centerY; checkPopupPositionBounds(); diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java index cdd07ba1c..d89b5dd19 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java @@ -210,6 +210,10 @@ public final class PlayerHelper { return isBrightnessGestureEnabled(context, true); } + public static boolean isRememberingPopupDimensions(@NonNull final Context context) { + return isRememberingPopupDimensions(context, true); + } + public static boolean isAutoQueueEnabled(@NonNull final Context context) { return isAutoQueueEnabled(context, false); } @@ -390,6 +394,12 @@ public final class PlayerHelper { .getBoolean(context.getString(R.string.brightness_gesture_control_key), b); } + private static boolean isRememberingPopupDimensions(@NonNull final Context context, + final boolean b) { + return getPreferences(context) + .getBoolean(context.getString(R.string.popup_remember_size_pos_key), b); + } + private static boolean isUsingInexactSeek(@NonNull final Context context) { return getPreferences(context) .getBoolean(context.getString(R.string.use_inexact_seek_key), false); diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 5f3d94e00..87622e580 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -90,6 +90,8 @@ عرض أعلى جودة بعض الأجهزة فقط تدعم تشغيل مقاطع الفيديو 2K/4K تنسيق الفيديو الافتراضي + تذكر خصائص النوافذ المنبثقة + تذكر آخر مكان و حجم للنافذة المنبثقة اعدادات إيماءة المشغل استخدم الإيماءات للتحكم في سطوع وصوت المشغل اقتراحات البحث diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index f2b39535d..d0f2731eb 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -209,6 +209,8 @@ 使用更高的分辨率 仅某些设备支持播放2K / 4K视频 清除 + 记住悬浮窗属性 + 记住最后一次使用悬浮窗的大小和位置 悬浮窗 调整大小 隐藏部分没有音频的分辨率 diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 5f80571ac..89d0b3997 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -58,6 +58,8 @@ Светлая Цёмная Чорная + Аднавіць акно + Запамінаць памер і становішча ўсплываючага акна Хуткі пошук пазіцыі Недакладны пошук дазваляе плэеру шукаць пазіцыю хутчэй, але менш дакладна Загружаць мініяцюры diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index cb2fb3941..73ec90c82 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -52,6 +52,8 @@ Светла Тъмна Черна + Помни размера и позицията на прозореца + Използвай размера и позицията на прозореца от предишния път Контролиране на плейъра чрез жестове Позволи използване на жестове за контрол на яркостта и силата на звука на плейъра Предложения за търсене diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index 1e1ca5009..647160e69 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -44,6 +44,8 @@ উজ্জ্বল অন্ধকার কালো + পপআপ আকার এবং অবস্থান মনে রাখো + শেষ আকার এবং পপআপ সেট অবস্থান মনে রাখো ডাউনলোড পরবর্তী এবং অনুরূপ ভিডিওগুলি দেখাও URL সমর্থিত নয় diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index acf047e87..8cdef4553 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -118,6 +118,8 @@ দ্রুত-ফরওয়ার্ড/-পুনরায় সন্ধান সময়কাল অনির্দিষ্ট সন্ধান প্লেয়ারকে আরো দ্রুত গতিতে সন্ধান করার সুবিধা দেয়, কিন্তু এটি সম্পূর্ণ নির্ভুল নাও হতে পারে ৷ ৫, ১৫ ও ২৫ সেকেন্ডের জন্য এটা কাজ করবে না ৷ দ্রুত টানা ব্যাবহার করুন + শেষ আকার এবং পপআপ সেট অবস্থান মনে রাখো + পপআপ আকার এবং অবস্থান মনে রাখো কালো অন্ধকার উজ্জ্বল diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index d97093c30..8fd2f18ca 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -286,6 +286,8 @@ দ্রুত-ফরওয়ার্ড/-পুনরায় সন্ধান সময়কাল অনির্দিষ্ট সন্ধান প্লেয়ারকে আরো দ্রুত গতিতে সন্ধান করার সুবিধা দেয়, কিন্তু এটি সম্পূর্ণ নির্ভুল নাও হতে পারে ৷ ৫, ১৫ ও ২৫ সেকেন্ডের জন্য এটা কাজ করবে না ৷ দ্রুত টানা ব্যাবহার করুন + শেষ আকার এবং পপআপ সেট অবস্থান মনে রাখো + পপআপ আকার এবং অবস্থান মনে রাখো কালো অন্ধকার উজ্জ্বল diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 7edc68a6b..78ee40d15 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -142,6 +142,8 @@ No s\'ha trobat l\'aplicació Kore. Voleu instal·lar-la\? Mostra «Reprodueix amb el Kodi» Mostra una opció per reproduir un vídeo amb el centre multimèdia Kodi + Reproductor emergent intel·ligent + Recorda la darrera mida i posició del reproductor emergent Cerca ràpida poc precisa La cerca poc precisa permet que el reproductor cerqui una posició més ràpidament amb menys precisió. Cerques de 5, 15 o 25 segons no hi funcionaran. Carrega les miniatures diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index 63c32a6c2..75161746a 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -91,6 +91,7 @@ پەخشی ڕاستەوخۆ پشتگیری ناکرێ لەئێستادا به‌شداریت نەما له‌ كه‌ناڵ ناتوانرێ ئەم پەخشە کارپێبکرێ + بیرهاتنه‌وه‌ی شوێن و قه‌باره‌ی په‌نجه‌ره‌ی بچووک گێڕانەوەی کارپێکەر بۆکاتی پێش کێشە هیچیان بەسوودە بۆ کاتی گۆڕینی هێڵ بۆ داتای مۆبایل, لەگەڵ ئەوەشدا زۆربەی داگرتنەکان ڕاناگرێت @@ -341,6 +342,7 @@ تەواو بەدڵبوون ناتوانرێ مۆڵەت باربکرێ + بیرهاتنه‌وه‌ی كۆتا قه‌باره‌ و شوێنی په‌نجه‌ره‌ی بچووك دروستکردن ئەوە بزانە ئەم کردارە پێویستی بە هێڵێکی گران هەیە. \n diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 44fc02fc2..be3447540 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -120,6 +120,8 @@ Zobrazovat vyšší rozlišení Pouze některá zařízení dokáží přehrát 2K/4K videa Výchozí formát videa + Pamatovat si vlastnosti vyskakovacího okna + Pamatovat si poslední velikost a pozici vyskakovacího okna Režim vyskakovacího okna Odebírat Odebíráno diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 5d1be509c..2b85a2539 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -61,6 +61,8 @@ Lyst Mørkt Sort + Husk størrelse og placering af pop op + Husk sidste størrelse og placering af pop op-afspiller Brug hurtig og upræcis søgning Upræcis søgning lader afspilleren finde placeringer hurtigere, men mindre præcist Indlæs miniaturebilleder diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 01993ba71..d03b85f89 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -128,7 +128,9 @@ Nur manche Geräte können Videos in 2K/4K abspielen Hintergrund Pop-up + Pop-up Eigenschaften merken Entfernt Tonspur bei manchen Auflösungen + Letzte Größe und Position des Pop-ups merken Gestensteuerung Helligkeit und Lautstärke mittels Gesten einstellen Suchvorschläge diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 4bca46114..967d96d25 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -108,6 +108,8 @@ Προεπιλεγμένη ανάλυση αναδυόμενου παραθύρου Εμφάνιση υψηλότερων αναλύσεων Προεπιλεγμένη μορφή βίντεο + Ενθύμιση τις ιδιότητες του αναδυόμενου παραθύρου + Ενθύμιση του τελευταίου μεγέθους και θέσης του παραθύρου Χρήση γρήγορης ανακριβούς αναζήτησης Η μην ακριβής αναζήτηση επιτρέπει στην εφαρμογή να αναζητεί θέσεις στο βίντεο γρηγορότερα με μειωμένη ακρίβεια. Δε λειτουργεί για διαστήματα των 5, 15 ή 25 δευτερολέπτων. Φόρτωση μικρογραφιών diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 2d0cc6f70..2172ec157 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -91,6 +91,8 @@ Nur kelkaj aparatoj povas ludi 2K / 4K filmetojn Defaŭlta fomato de filmeto Nigra + Memoru ŝprucfenestran grandecon kaj pozicion + Memoru lastan grandecon kaj pozicion de ŝprucfenestro Uzi rapide, ne precizan serĉon Ne preciza serĉo permesas al la ludanto serĉi poziciojn pli rapide kun malalta precizeco. Serĉi por 5, 15 kaj 25 sekundoj ne funckios kun tio opcio. Ŝarĝi bildetojn diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 4b6065fe4..6c4b68795 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -130,6 +130,8 @@ Filtro Actualizar Limpiar + Recordar propiedades del reproductor emergente + Recordar el último tamaño y posición del reproductor emergente Emergente Redimensionando Quita el audio en algunas resoluciones diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 472341f5f..9f06f3fee 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -57,6 +57,8 @@ Hele Tume Must + Pea hüpikakna suurus ja asukoht meeles + Pea hüpikakna viimane suurus ja asukoht meeles Kasuta ebatäpset kerimist Ebatäpne kerimine lubab pleieril otsida asukohta kiiremini täpsuse arvel Laadi pisipildid diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 395a9d91d..b45e75de9 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -60,6 +60,8 @@ Hobetsitako bideo-formatua Gaia Beltza + Gogoratu laster-leihoaren tamaina eta posizioa + Gogoratu laster-leihoaren azken tamaina eta posizioa Erreproduzigailuaren keinu bidezko kontrola Erabili keinuak erreproduzigailuaren distira eta bolumena kontrolatzeko Bilaketa-iradokizunak diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 4a99e1a17..4e4cc7a1d 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -287,6 +287,8 @@ حالت تصویر در تصویر اندازه پیش فرض پنجره جداگانه تصویر در تصویر + به یاد نگه داشتن خصوصیات + به یاد داشتن آخرین اندازه و موقعیت قبلی پنجره جداگانه زمان فعلی پخش کننده را به صورت تقریبی و سریع جلو ببر این گزینه باعث می شود هنگام جلو/عقب کردن زمان تصویر، به جای زمان دقیق انتخاب شده، به زمان غیر دقیق و نزدیک به مکان انتخاب شده برود که این کار سریع تر انجام می شود. کاره یا رابط کاربری با خطا مواجه شد diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 4e9b1a5a8..b0a51a515 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -54,6 +54,8 @@ Kirkas Tumma Musta + Muista ponnahdusikkunan ominaisuudet + Muista ponnahdusikkunan viimeisin koko ja sijainti Soittimen eleohjaus Käytä eleitä ohjataksesi soittimen kirkkautta ja äänentasoa Hakuehdotukset diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ede413206..70498ab90 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -125,6 +125,8 @@ Afficher des définitions plus élevées Seuls certains appareils peuvent lire les vidéos 2K et 4K Format vidéo par défaut + Mémoriser les propriétés de la fenêtre flottante + Mémorise les dernières taille et position de la fenêtre flottante Flottant Filtre Rafraîchir diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 4353f90a9..56c3c5165 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -58,6 +58,8 @@ Claro Escuro Negro + Lembrar o tamaño e a posición do «popup» + Lembrar o tamaño e a posición anteriores do «popup» Usar un salto inexacto mais inexacto Busca incorrecta permite ao xogador buscar posicións máis rápidas con precisión reducida. A busca de 5, 15 ou 25 segundos non funciona con isto. Carregar miniaturas diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 564e2631d..2e51f4bd9 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -46,6 +46,8 @@ בהיר כהה שחור + שמירת מאפייני החלון הצף + שמירת המיקום והגודל האחרונים של החלון הצף מחוות מגע לשליטה בנגן שימוש במחוות כדי לשלוט בבהירות ובעצמת השמע של הנגן הצעות חיפוש diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 5f630c2d3..86a111bcf 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -82,6 +82,8 @@ डिफ़ॉल्ट विडियो का फॉर्मेट एप्प का नया रूप काला + विडियो पॉपअप की आकर और उसकी स्थति को याद रखे + विडियो पॉपअप के पहले वाली आकर और उसकी स्थिति को याद रखे प्लेयर इशारा नियंत्रण विडियो प्लेयर की ब्राइटनेस और ध्वनी को नियंत्रण के लिए फ़ोन में इशारो का प्रयोग करे खोज के सुझाव देखे diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 7dcd518a0..7ee165faf 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -54,6 +54,8 @@ Svijetla Tamna Crna + Zapamti veličinu i poziciju skočnog prozora + Zapamti posljednju veličinu i poziciju skočnog prozora Kontroliranje reproduktora gestama Koristi geste za kontrolu svjetline i glasnoće reproduktora Prijedlozi pri traženju diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index a0320d867..273803688 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -121,6 +121,8 @@ Csak néhány eszköz tud lejátszani 2K/4K videókat Alapértelmezett videó formátum Fekete + Jegyezze meg a felugró ablak helyét és méretét + Jegyezze meg a felugró ablak előző helyét és méretét Keresési javaslatok Mutasson javaslatokat keresés közben Keresési előzmények diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index cd7b221d5..01372470d 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -171,6 +171,8 @@ Contento del pagina principal Selige un canal Preste + Rememorar ultime grandor e position del reproductor emergente + Rememorar grandor e position del fenestra emergente %s video %s videos diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 13bad05fc..238b89b5f 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -129,6 +129,8 @@ Bersihkan Filter Menghapus audio pada beberapa resolusi + Ingat properti popup + Ingat ukuran dan posisi terakhir popup Popup Ubah ukuran Kontrol gestur pemutar diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e296e4a0b..d2e6b724b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -125,6 +125,8 @@ Mostra Altre Risoluzioni Solo alcuni dispositivi possono riprodurre video 2K/4K Formato Video Predefinito + Ricorda Poprietà Popup + Ricorda dimensione e posizione della finestra Popup Controllo Gesti Lettore Multimediale Usa i gesti per controllare luminosità e volume del lettore multimediale Suggerimenti Ricerca diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 35c29add7..1375253be 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -129,6 +129,8 @@ フィルター 更新 クリア + ポップアップの属性を記憶 + ポップアップしたサイズと位置を記憶します ポップアップ サイズを変更 一部の解像度では音声がありません diff --git a/app/src/main/res/values-jv/strings.xml b/app/src/main/res/values-jv/strings.xml index 1fedeed8b..8374c6f7c 100644 --- a/app/src/main/res/values-jv/strings.xml +++ b/app/src/main/res/values-jv/strings.xml @@ -20,6 +20,8 @@ Duduhke komentar Duduhke gambar cilik Durasi cepet maju/mundure + Eling-eling ukuran lan posisi ngambang terakhir + Eling-eling ukuran lan posisi ngambang Ireng Peteng Padhang diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 7af445c15..e0fa9becc 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -103,6 +103,8 @@ 일부 기기에서만 2K/4K 해상도 재생이 지원됩니다 기본 비디오 형식 검은 테마 + 팝업 크기 및 위치 기억 + 마지막으로 사용한 팝업 위치 및 크기를 기억합니다 제스처 재생 조작 제스처를 사용해 화면 밝기와 음량을 조절합니다 검색 제안 diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index cabb49987..27219649b 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -57,6 +57,8 @@ ڕۆشن تاریک ڕه‌ش + بیرهاتنه‌وه‌ی شوێن و قه‌باره‌ی په‌نجه‌ره‌ + بیرهاتنه‌وه‌ی كۆتا قه‌باره‌ و شوێنی په‌نجه‌ره‌ی بچووك باركردنی وێنۆچكه‌كان ناچالاكی بكه‌ بۆ ڕاگرتنی وێنۆچكه‌كان له‌ باركردن و پاشه‌كه‌وتبوون له‌سه‌ر بیرگه‌ی ئامێره‌كه‌ت. \nگۆڕینی ئه‌مه‌ ده‌بێته‌ هۆی سڕینه‌وه‌یان له‌سه‌ر بیرگه‌ی مۆبایله‌كه‌ت. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 55d7073d0..74dfa50f3 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -46,6 +46,8 @@ Šviesi Tamsi Juoda + Prisiminti iššokančio lango dydį ir vietą + Prisiminti paskutinį iššokančio lango dydį ir vietą Grotuvo valdymas gestais Naudokite gestus valdyti grotuvo ryškumą ir garsumą Paieškos nuspėjimai diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index d7aef8279..a450b9503 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -58,6 +58,8 @@ Светла Темна Црна + Запамти го местото и големината на малиот прозорец + Запамти ја последната големина и место на прозорчето Брзо, непрецизно премотување Со непрецизното премотување се пребарува побрзо, но со намалена презицност. Прочитај мали видео-сликички diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 09449ec1d..84f4f5ff8 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -397,6 +397,8 @@ ഫാസ്റ്റ്-ഫോർവേർഡ്/റീവൈൻഡ് സമയദൈർഘ്യം Inexact seek ഉപയോഗിക്കുക കുറഞ്ഞ കൃത്യതയോടെ സീക് ചെയ്യാൻ Inexact seek സഹായിക്കുന്നു. 5/15/25 സെക്കൻഡ് സീക്‌ ഈ മോഡിൽ പ്രവർത്തിക്കുകയില്ല. + പോപ്പപ്പിന്റെ അവസാന വലുപ്പവും സ്ഥാനവും ഓർത്തിരിക്കുക + പോപ്പപ്പ് വലുപ്പവും സ്ഥാനവും ഓർത്തിരിക്കുക കട്ട ഇരുട്ട് തീം ഡാർക്ക് തീം ലൈറ്റ് തീം diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index b5971b8ff..3457fda56 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -61,6 +61,8 @@ Cerah Gelap Hitam + Mengingat saiz dan posisi popup + Mengingat saiz dan posisi popup terakhir Gunakan tinjau laju tidak tepat Membolehkan pemain untuk meninjau ke posisi lebih laju dengan kurang ketepatan Muatkan thumbnail diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 2c9370cd2..d4b3ff509 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -134,6 +134,8 @@ Hva er nytt Bakgrunn Oppsprett + Husk oppsprettsegenskaper + Husk siste størrelse og posisjon for oppsprettsvinduet Søkeforslag Vis søkeforslag ved søk Søkehistorikk diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 93790caf6..8b399ff87 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -60,6 +60,8 @@ प्रकाश गाढा कालो + पपअप आकार र स्थिति सम्झना + पछिल्लो आकार र पपअप को स्थिति सम्झना तेज \'inexact\' खोज्न प्रयोग गर्नुहोस \'Inexact\' प्लेयर कम सटीक छिटो स्थितिहरू गर्न खोज्न अनुमति दिन्छ खोज्छन्। 5, 15 वा 25 सेकेन्ड को लागि खोजी यो काम गर्दैन। थम्बनेल लोड diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 3c4e42a43..59fb83b9e 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -59,6 +59,8 @@ 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. 5, 15 en 25 seconden werken niet. Miniatuurvoorbeelden laden diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 9b2e52c42..1cae07326 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -129,6 +129,8 @@ Filter Verversen Wissen + Onthoud de eigenschappen van de pop-up + Onthoud laatste grootte en positie van pop-up Pop-up Bezig met wijzigen van grootte Verwijdert geluid bij sommige resoluties diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml index 4363fb57a..9a172ec2d 100644 --- a/app/src/main/res/values-oc/strings.xml +++ b/app/src/main/res/values-oc/strings.xml @@ -62,6 +62,8 @@ Clar Escur Negre + Se remembrar la talha e la posicion del fenestron + Se remembrar las darrièras talha e posicion del fenestron Utilzar la recèrca rapida inexacta La recèrca inexacta permet a l\'utilizaire de recercar mai rapidament una posicion amb mens de precision Durada d\'avançada/reculada rapida diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index c6f79674a..9f1d56374 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -58,6 +58,8 @@ ਸਫੈਦ ਗੂੜਾ ਕਾਲਾ + ਪੌਪ-ਅਪ ਦਾ ਆਕਾਰ ਅਤੇ ਸਥਿਤੀ ਯਾਦ ਰੱਖੋ + ਪੌਪ-ਅਪ ਦਾ ਆਖਰੀ ਅਕਾਰ ਅਤੇ ਸਥਿਤੀ ਯਾਦ ਰੱਖੋ ਤੇਜ਼ ਪਰ inexact seek ਵਰਤੋ Inexact seek ਵੀਡੀਓ ਨੂੰ ਤੇਜ਼ ਪਰ ਅਣ-ਸਟੀਕ ਢੰਗ ਨਾਲ ਅੱਗੇ-ਪਿੱਛੇ ਲਿਜਾਂਦਾ ਹੈ । ਇਸ ਨਾਲ ਅੱਗੇ-ਪਿੱਛੇ 5,15 ਜਾਂ 25 ਸੈਕੰਡ ਜਾਣਾ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ। ਥੰਬਨੇਲ ਲੋਡ ਕਰੋ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c3c2db320..b94a7e0e8 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -113,6 +113,8 @@ Tylko niektóre urządzenia mogą odtwarzać filmy 2K/4K Domyślny format filmu Czarny + Zapamiętaj właściwości wyskakującego okienka + Zapamiętaj ostatni rozmiar i pozycję trybu okienkowego Sterowanie odtwarzaczem za pomocą gestów Użyj gestów, aby sterować jasnością i głośnością odtwarzacza Podpowiedzi wyszukiwania diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 6619b4823..e08310567 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -129,6 +129,8 @@ Limpar Popup Segundo plano + Lembrar propriedades do popup + Lembra do último tamanho e posição usado no popup Popup Redimensionando Remove o som em algumas resoluções diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index ae9785493..590642311 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -452,6 +452,7 @@ Histórico de pesquisa removido. Limpar histórico de pesquisas Erro + Lembrar propriedades de popup Os ficheiros de vídeo transferidos são armazenados aqui Mudar para principal Esta permissão é necessária @@ -622,6 +623,7 @@ A fila do reprodutor ativo será substituída Mudar de um reprodutor para outro pode substituir a sua fila Solicitar confirmação antes de limpar uma fila + Lembrar do último tamanho e posição do popup Nada Processamento... Baralhar diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 8fb983bd2..860dc20b5 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -125,12 +125,14 @@ Mostrar resoluções mais altas Apenas alguns dispositivos conseguem reproduzir vídeos em 2K/4K Popup + Lembrar propriedades de popup Popup Filtrar Recarregar Limpar Segundo plano Remove o áudio em algumas resoluções + Lembrar do último tamanho e posição do popup Redimensionar Controlo de reprodução por gestos Utilizar gestos para controlar o brilho e o volume do reprodutor diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 5d5413284..fe201910c 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -126,6 +126,8 @@ pentru a deschide în mod pop-up Sunetul poate lipsi la unele rezoluții Fundal Pop-up + Reține dimensiunea și poziția pop-up-ului + Reține ultima dimensiune și poziție a pop-up-ului Gesturi player Folosește gesturile pentru a controla luminozitatea și volumul player-ului Arată sugestii diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 3a3868d9e..5c3ef988d 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -107,6 +107,7 @@ Только некоторые устройства поддерживают видео в 2K/4K Формат видео по умолчанию Чёрная + Запомнить параметры всплывающего окна Изменять яркость и громкость жестами Всплывающее окно Воспроизведение во всплывающем окне @@ -131,6 +132,7 @@ " млрд" " тыс." Разрешение всплывающего окна + Помнить последние размер и позицию всплывающего окна Поисковые предложения Лучшее разрешение Запрос reCAPTCHA diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index a4f6eee80..f7c357f7f 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -551,6 +551,7 @@ Longària de s\'avantzamentu e de sa torrada in segus lestros Su moimentu inesatu permitit a su riproduidore de si mòere cara a una positzione in manera prus lestra ma prus pagu pretzisa. Su de si mòere de 5, 15 o 25 segundos non funtzionat, cun custa optzione. Imprea su moimentu inesatu lestru + Ammenta sas propriedades de sa ventanedda Nieddu Iscuru Craru @@ -645,4 +646,5 @@ Ammustra sos cuntenutos chi diant pòdere no èssere adatos pro sos pitzinnos ca tenent unu lìmite de edade (che a 18+). Pedi a Android de personalizare su colore de sa notìfica sighende su colore printzipale de sa miniadura (ammenta·ti chi custu no est a disponimentu pro totu sos dispositivos) Colora sas notìficas + Ammenta s\'ùrtima mannària e sa positzione in sa ventanedda \ No newline at end of file diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index eed0cfee2..87dd969bc 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -130,6 +130,8 @@ Obnoviť Vyčistiť Odoberie audio pri niektorých rozlíšeniach + Zapamätať si parametre mini okna + Zapamätať si posledné nastavenie veľkosti a pozície mini okna Ovládanie prehrávača gestami Používať gestá pre kontrolu jasu a hlasitosti prehrávača Hľadať návrhy diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index f3266c5f9..83aa56fa2 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -128,6 +128,8 @@ odpiranje v pojavnem načinu Filter Osveži Počisti + Zapomni si položaj in velikost pojavnega okna + Zapomni si položaj in velikost pojavnega okna Pojavno okno Prilagajanje velikosti Pri nekaterih ločljivostih bo posnetek brez zvoka, če je ta možnost omogočena diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 2dbcb907e..1d3daea95 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -570,6 +570,8 @@ Kohëzgjatja e kërkimit me shtytje-përpara/-pas Kërkuesi i pasaktë e lejon luajtësin që të kërkojë pozicionet më shpejt më saktësi të reduktuar. Kërkimi për 5, 15 ose 25 sekonda nuk punon me këtë. Përdor kërkuesin e pasaktë por të shpejtë + Mbaj mend madhësinë e fundit dhe pozicionin e popup + Mbaj mend popup E errët E bardhë Tema diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 3bebcbdeb..1bec9b822 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -129,6 +129,8 @@ Позадина Прозорче Уклања звук на неким резолуцијама + Упамти величину и позицију искачућег прозора + Памти последњу величину и позицију искачућег прозорчета Контроле прејера потезом Користите потезе за управљање осветљајем у јачином звука Предлози у претрази diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index b2963efd1..b4620a3f8 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -43,6 +43,8 @@ Ljust Mörkt Svart + Kom ihåg popupstorlek och position + Kom ihåg popup-rutans senaste storlek och position Gestkontroller för spelare Använd gester för att kontrollera spelarens ljusstyrka och volym Sökförslag diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 2fe785b1e..f889ea2bf 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -55,6 +55,8 @@ வெளிர் அடர் கருப்பு + திரைமேல் அளவையும் இடத்தையும் நினைவுகொள் + திரைமேல் நிலையின் கடைசி அளவையும் இடத்தையும் நினைவுகொள் வில்லைப்படத்தைக் காண்பி பட பதுக்ககம் அழிக்கப்பட்டது மேல்நிலைத்தரவின் பதுக்ககம் அழிக்கப்பட்டது diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 867cd2106..fb92d9150 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -61,6 +61,8 @@ สว่าง มืด สีดำ + จำขนาดและตำแหน่งของป๊อปอัพ + จำขนาดและตำแหน่งสุดท้ายของป๊อปอัพ ใช้การข้ามที่ไม่แม่นยำ การข้ามช่วงที่ไม่แม่นยำจะทำให้เลื่อนไปยังตำแหน่งเวลาที่ต้องการได้เร็วขึ้น แต่จะลดความแม่นยำในการลากตำแหน่งลง โหลดภาพขนาดย่อ diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8125ce123..5a1fc3b28 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -129,6 +129,8 @@ Filtrele Yenile Temizle + Açılır pencere özelliklerini hatırla + Açılan pencerenin son boyutunu ve konumunu hatırla Açılır pencere Yeniden boyutlandırılıyor Bazı çözünürlüklerde sesi kaldırır diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index a2e1e8409..996be7347 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -124,6 +124,8 @@ Лише деякі пристрої можуть відтворювати 2K/4K-відео Показувати вищі роздільні здатності Типовий формат відео + Пам\'ятати розмір і позицію вікна + Пам\'ятати останній розмір і позицію вікна Жести керування програвачем Контролювати яскравость та гучність програвача жестами Пошукові пропозиції diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 1ad5f7347..cd6866e2e 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -58,6 +58,8 @@ روشن تاریک سیاہ + پاپ اپ جسامت اور مقام کو یاد رکھیں + پچھلی جسامت اور پوپ اپ کا مقام یاد رکھیں بالواسطہ رسائی استعمال کریں بالواسطہ تلاش مشکلات کو کم کر کے پلیئر کو تیز رفتاری سے مقامات تک رسائی کرنے دیتی ہے نظرِ انگشتی لوڈ کریں diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 1f13948c1..286a37dc6 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -44,6 +44,8 @@ Sáng Tối Đen + Nhớ kích thước và vị trí của popup + Nhớ kích thước và vị trí lần trước của popup Điều khiển cử chỉ trình phát Sử dụng cử chỉ để điều chỉnh độ sáng và âm lượng Đề xuất tìm kiếm diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 853d8a3d8..a2bccae5a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -208,6 +208,8 @@ 使用更高的分辨率 仅某些设备支持播放2K / 4K视频 清除 + 记住悬浮窗的尺寸与位置 + 记住最后一次使用悬浮窗的大小和位置 悬浮窗 调整大小 隐藏部分没有音频的分辨率 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 2463995af..de10f58b9 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -124,6 +124,8 @@ 移除某些解像度的影片的聲音 背景播放 畫中畫播放 + 記住畫中畫大小及位置 + 記住最近設定的畫中畫大小及位置 以動作控制播放器 使用動作以控制播放器的亮度及音量 搜尋建議 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ac409d840..37fbbf749 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -63,6 +63,8 @@ 僅部份裝置可播放 2K/4K 影片 預設影片格式 純黑 + 記住懸浮視窗屬性 + 記住上次使用時懸浮視窗的大小和位置 播放器手勢控制 使用手勢來控制播放器的亮度及音量 搜尋建議 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 394a78d0c..b24767076 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -81,6 +81,8 @@ Light Dark Black + Remember popup properties + Remember last size and position of popup Use fast inexact seek Inexact seek allows the player to seek to positions faster with reduced precision. Seeking for 5, 15 or 25 seconds doesn\'t work with this. Fast-forward/-rewind seek duration diff --git a/app/src/main/res/xml/video_audio_settings.xml b/app/src/main/res/xml/video_audio_settings.xml index 0b79d6d1c..35f3359da 100644 --- a/app/src/main/res/xml/video_audio_settings.xml +++ b/app/src/main/res/xml/video_audio_settings.xml @@ -142,6 +142,13 @@ android:title="@string/brightness_gesture_control_title" app:iconSpaceReserved="false" /> + + Date: Sun, 15 Nov 2020 23:37:39 +0100 Subject: [PATCH 229/231] Add Uzbek language (O'zbek) and remove Neapolitan Neapolitan only has 43 translated strings, so it should not appear as a possible language --- app/src/main/res/values/settings_keys.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 9c9fa4853..65ad6a1da 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -1048,7 +1048,6 @@ lt mk ms - nap nb-no ne nl @@ -1074,6 +1073,7 @@ tr uk ur + uz vi zh-cn zh-hk @@ -1124,7 +1124,6 @@ Lietuvių kalba македонски јазик Bahasa Melayu - napulitano Norsk bokmål Nनेपाली Nederlands (NL) @@ -1150,6 +1149,7 @@ Türkçe українська мова اردو + O‘zbek Tiếng Việt 简体中文 繁體中文(廣東話) From a79d7c8417bf01c4292b625eea934a690248ad44 Mon Sep 17 00:00:00 2001 From: Bopol Date: Sun, 15 Nov 2020 17:39:53 +0000 Subject: [PATCH 230/231] Translated using Weblate (French) Currently translated at 68.4% (26 of 38 strings) Translation: NewPipe/Metadata Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ --- fastlane/metadata/android/fr/changelogs/957.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 fastlane/metadata/android/fr/changelogs/957.txt diff --git a/fastlane/metadata/android/fr/changelogs/957.txt b/fastlane/metadata/android/fr/changelogs/957.txt new file mode 100644 index 000000000..be1da0da7 --- /dev/null +++ b/fastlane/metadata/android/fr/changelogs/957.txt @@ -0,0 +1,10 @@ +• Unification des différentes listes de lectures spécifiques +• Action à deux doigts pour fermer le lecteur +• Suppression des cookies reCAPTCHA possible +• Option pour ne pas coloriser les notifs. +• Amélioration de l'ouverture de la page d'une vidéo +• Amélioration du temps de chargement des vidéos +• Correction des vidéos avec une limite d'âge +• Sauvegarde de la position du lecteur pop-up +• Corrections de bugs +• Mise à jour des traductions From 493e47f7e653db3f24e9d410e372d39df39732c4 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Wed, 18 Nov 2020 19:59:15 +0100 Subject: [PATCH 231/231] =?UTF-8?q?Add=20Central=20Atlas=20Tamazight=20(Ta?= =?UTF-8?q?mazi=C9=A3t)=20to=20app=20locales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values/settings_keys.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 65ad6a1da..5a0eaa55d 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -1071,6 +1071,7 @@ te th tr + tzm uk ur uz @@ -1147,6 +1148,7 @@ తెలుగు ไทย Türkçe + Tamaziɣt українська мова اردو O‘zbek