mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2026-01-15 22:18:03 +00:00
Compare commits
159 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70b9330b61 | ||
|
|
f1e8667945 | ||
|
|
509f501696 | ||
|
|
3fe0368486 | ||
|
|
8f027e274e | ||
|
|
f6bca68da2 | ||
|
|
d921e2e61b | ||
|
|
0f7ed0ec70 | ||
|
|
49b12ea4f8 | ||
|
|
69fc466323 | ||
|
|
81d00f2e97 | ||
|
|
ded6540422 | ||
|
|
583a028529 | ||
|
|
f1bb56e2fb | ||
|
|
f583dd47ac | ||
|
|
7e3b3453c0 | ||
|
|
abc354f516 | ||
|
|
79efffe12f | ||
|
|
25130db371 | ||
|
|
932eb94f9d | ||
|
|
9bf4eff173 | ||
|
|
9fc3ddeab7 | ||
|
|
98fdbec442 | ||
|
|
332b90d6c1 | ||
|
|
db2e03eb14 | ||
|
|
8ed8b94ec7 | ||
|
|
63c9308f59 | ||
|
|
1306a777fc | ||
|
|
f739ed7581 | ||
|
|
b4d6015464 | ||
|
|
b9aaafdb30 | ||
|
|
71aa6c6e92 | ||
|
|
f98d2631e5 | ||
|
|
9e94c81ef2 | ||
|
|
d025ef11f8 | ||
|
|
fe7536e374 | ||
|
|
14256137e8 | ||
|
|
bc3e43ac58 | ||
|
|
d0d5373be9 | ||
|
|
997267bad1 | ||
|
|
ef6d0cc4b1 | ||
|
|
ffad244e1e | ||
|
|
fdee7c3d06 | ||
|
|
142cde975f | ||
|
|
004907d306 | ||
|
|
05eb0d0fbe | ||
|
|
f13a1b04e6 | ||
|
|
fd4408e572 | ||
|
|
a84ab7413c | ||
|
|
62b593da08 | ||
|
|
0eb69b6659 | ||
|
|
67b83388b1 | ||
|
|
ecc998aea8 | ||
|
|
6956d16f0e | ||
|
|
f1bc4f5c20 | ||
|
|
f134e2d02a | ||
|
|
6ec72ef945 | ||
|
|
e8d518cd6c | ||
|
|
b564433ff6 | ||
|
|
79f7dcd1a3 | ||
|
|
23ee9b7867 | ||
|
|
afbf36900f | ||
|
|
2829851e49 | ||
|
|
2b8fda3511 | ||
|
|
d31959990e | ||
|
|
26c535db84 | ||
|
|
ea1b910d7e | ||
|
|
8f4c6fb6ac | ||
|
|
9b1861417c | ||
|
|
8080c32b1f | ||
|
|
4b27aec196 | ||
|
|
38fb510375 | ||
|
|
6422e31b10 | ||
|
|
c0f47195a2 | ||
|
|
40f66977c7 | ||
|
|
e518c0dc14 | ||
|
|
2e161a1f45 | ||
|
|
5ab6e84044 | ||
|
|
e1a6347c4e | ||
|
|
bf8e8798d9 | ||
|
|
08949ee347 | ||
|
|
92a67bb8cb | ||
|
|
363bbf5fd3 | ||
|
|
77f6940336 | ||
|
|
e8eeac6735 | ||
|
|
775fbc9a75 | ||
|
|
8d0f2d371d | ||
|
|
8efe2859b8 | ||
|
|
441c68ead2 | ||
|
|
882b235a78 | ||
|
|
4cd1f201f5 | ||
|
|
013c59f904 | ||
|
|
57474e2dab | ||
|
|
139ced885d | ||
|
|
10b1da135e | ||
|
|
f0bb2e8687 | ||
|
|
4643ccef6f | ||
|
|
753ca7cb53 | ||
|
|
87d2f33e55 | ||
|
|
fc7944d287 | ||
|
|
376e5c1546 | ||
|
|
e8ad947d37 | ||
|
|
067528211f | ||
|
|
92ab9cae27 | ||
|
|
fa2b11b768 | ||
|
|
82f43ac6a6 | ||
|
|
c7660b8c2d | ||
|
|
847831c195 | ||
|
|
e0b246431f | ||
|
|
c808beec30 | ||
|
|
2d4a3c2554 | ||
|
|
b2b9938484 | ||
|
|
eb1cefe2fa | ||
|
|
5eb5dbddde | ||
|
|
bfe3eff5ff | ||
|
|
e7936e6c9a | ||
|
|
514f92e6f2 | ||
|
|
68fd7a031f | ||
|
|
95f61542b5 | ||
|
|
9fc6f19702 | ||
|
|
4038617d59 | ||
|
|
98ccd577d6 | ||
|
|
1d43a2362c | ||
|
|
0ff675171b | ||
|
|
59594c6637 | ||
|
|
9595733563 | ||
|
|
5eb1d49857 | ||
|
|
fa1fdbf73e | ||
|
|
52e52b3ca1 | ||
|
|
5b4fbe32b1 | ||
|
|
31ea44ccf1 | ||
|
|
d26ca194b3 | ||
|
|
a012e26d63 | ||
|
|
f80b1fb2fe | ||
|
|
38ed07caa7 | ||
|
|
72ee4be495 | ||
|
|
c85b97a484 | ||
|
|
c7510c628f | ||
|
|
3ca1e550fe | ||
|
|
01e8944077 | ||
|
|
d6ab3298a3 | ||
|
|
97b28bba4d | ||
|
|
7f6674a0e6 | ||
|
|
2c1df5f875 | ||
|
|
e7ae215ab0 | ||
|
|
4a9c790652 | ||
|
|
5a5a24bf1a | ||
|
|
3fe80ec5ac | ||
|
|
e52048c69e | ||
|
|
ceb930aed6 | ||
|
|
e775037366 | ||
|
|
4357e02c58 | ||
|
|
67c0ceedc9 | ||
|
|
0039312a64 | ||
|
|
57f1152751 | ||
|
|
bfb9be1225 | ||
|
|
fc4dd4524a | ||
|
|
edf8bf2c9d | ||
|
|
c0c78ae9bb |
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
@@ -41,6 +41,6 @@ You'll see exactly what is sent, be able to add your comments, and then send it.
|
||||
|
||||
## Communication
|
||||
|
||||
* The [#newpipe](irc:irc.freenode.net/newpipe) channel on freenode has the core team and other developers in it. [Click here for webchat](https://webchat.freenode.net/?channels=newpipe)!
|
||||
* You can also use a Matrix account to join the Newpipe channel at [#freenode_#newpipe:matrix.org](https://matrix.to/#/#freenode_#newpipe:matrix.org).
|
||||
* The #newpipe channel on Libera Chat (`ircs://irc.libera.chat:6697/newpipe`) has the core team and other developers in it. [Click here for webchat](https://web.libera.chat/#newpipe)!
|
||||
* You can also use a Matrix account to join the NewPipe channel at [#newpipe:libera.chat](https://matrix.to/#/#newpipe:libera.chat).
|
||||
* Post suggestions, changes, ideas etc. on GitHub or IRC.
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,8 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 💬 IRC
|
||||
url: https://webchat.freenode.net/#newpipe
|
||||
url: https://web.libera.chat/#newpipe
|
||||
about: Chat with us via IRC for quick Q/A
|
||||
- name: 💬 Matrix
|
||||
url: https://matrix.to/#/#freenode_#newpipe:matrix.org
|
||||
url: https://matrix.to/#/#newpipe:libera.chat
|
||||
about: Chat with us via Matrix for quick Q/A
|
||||
|
||||
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@@ -4,6 +4,7 @@ on:
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
- master
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
@@ -25,7 +26,7 @@ jobs:
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: 8
|
||||
distribution: "zulu"
|
||||
distribution: "adopt"
|
||||
|
||||
- name: Cache Gradle dependencies
|
||||
uses: actions/cache@v2
|
||||
@@ -54,7 +55,7 @@ jobs:
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: 8
|
||||
distribution: "zulu"
|
||||
distribution: "adopt"
|
||||
|
||||
- name: Cache Gradle dependencies
|
||||
uses: actions/cache@v2
|
||||
@@ -79,7 +80,7 @@ jobs:
|
||||
# uses: actions/setup-java@v2
|
||||
# with:
|
||||
# java-version: 11 # Sonar requires JDK 11
|
||||
# distribution: "zulu"
|
||||
# distribution: "adopt"
|
||||
|
||||
# - name: Cache SonarCloud packages
|
||||
# uses: actions/cache@v2
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/Licencia-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Build Status"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/es/" alt="Estado de la traducción"><img src="https://hosted.weblate.org/widgets/newpipe/es/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/Canal%20de%20IRC%20-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/Canal%20de%20IRC%20-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource bounties"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -18,7 +18,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">Sitio web</a> • <a href="https://newpipe.net/blog/">Blog</a> • <a href="https://newpipe.net/FAQ/">Preguntas Frecuentes</a> • <a href="https://newpipe.net/press/">Prensa</a></p>
|
||||
<hr>
|
||||
|
||||
*Lea esto en otros idiomas: [English](README.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md) .*
|
||||
*Lea esto en otros idiomas: [English](README.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>AVISO: ESTA ES UNA VERSIÓN BETA, POR LO TANTO, PUEDE ENCONTRAR BUGS (ERRORES). SI ENCUENTRA UNO, ABRA UN ISSUE A TRAVÉS DE NUESTRO REPOSITORIO GITHUB.</b>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="ライセンス: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="ビルド状態"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="翻訳状態"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="IRC チャンネル: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC チャンネル: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource 寄付"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -17,7 +17,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">ウェブサイト</a> • <a href="https://newpipe.net/blog/">ブログ</a> • <a href="https://newpipe.net/FAQ/">FAQ</a> • <a href="https://newpipe.net/press/">ニュース</a></p>
|
||||
<hr>
|
||||
|
||||
*他の言語で読む: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt.br.md), [日本語](README.ja.md), [Română](README.ro.md) 。*
|
||||
*他の言語で読む: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt.br.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md)。*
|
||||
|
||||
<b>注意: これはベータ版のため、バグが発生する可能性があります。もしバグが発生した場合、GitHub のリポジトリで Issue を開いてください。</b>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Build Status"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource bounties"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -17,7 +17,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">Website</a> • <a href="https://newpipe.net/blog/">Blog</a> • <a href="https://newpipe.net/FAQ/">FAQ</a> • <a href="https://newpipe.net/press/">Press</a></p>
|
||||
<hr>
|
||||
|
||||
*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md).*
|
||||
*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>경고: 이 버전은 베타 버전이므로, 버그가 발생할 수도 있습니다. 만약 버그가 발생하였다면, 우리의 GITHUB 저장소에서 ISSUE를 열람하여 주십시오.</b>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Build Status"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource bounties"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -17,7 +17,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">Website</a> • <a href="https://newpipe.net/blog/">Blog</a> • <a href="https://newpipe.net/FAQ/">FAQ</a> • <a href="https://newpipe.net/press/">Press</a></p>
|
||||
<hr>
|
||||
|
||||
*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md) .*
|
||||
*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.</b>
|
||||
|
||||
@@ -45,6 +45,7 @@ NewPipe does not use any Google framework libraries, nor the YouTube API. Websit
|
||||
### Features
|
||||
|
||||
* Search videos
|
||||
* No Login Required
|
||||
* Display general info about videos
|
||||
* Watch YouTube videos
|
||||
* Listen to YouTube videos
|
||||
@@ -94,7 +95,7 @@ You can install NewPipe using one of the following methods:
|
||||
|
||||
We recommend method 1 for most users. APKs installed using method 1 or 2 are compatible with each other, but not with those installed using method 3. This is due to the same signing key (ours) being used for 1 and 2, but a different signing key (F-Droid's) being used for 3. Building a debug APK using method 4 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:
|
||||
In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality breaks and F-Droid doesn't have the latest 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
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Build Status"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource bounties"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -18,7 +18,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">Site</a> • <a href="https://newpipe.net/blog/">Blog</a> • <a href="https://newpipe.net/FAQ/">FAQ</a> • <a href="https://newpipe.net/press/">Press</a></p>
|
||||
<hr>
|
||||
|
||||
*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md).*
|
||||
*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>AVISO: ESTA É UMA VERSÃO BETA, PORTANTO, VOCÊ PODE ENCONTRAR BUGS. ENCONTROU ALGUM, ABRA UM ISSUE ATRAVÉS DO NOSSO REPOSITÓRIO GITHUB.</b>
|
||||
|
||||
@@ -93,7 +93,7 @@ Quando uma alteração no código NewPipe (devido à adição de recursos ou fix
|
||||
Recomendamos o método 2 para a maioria dos usuários. Os APKs instalados usando o método 2 ou 3 são compatíveis entre si, mas não com aqueles instalados usando o método 4. Isso se deve à mesma chave de assinatura (nossa) sendo usada para 2 e 3, mas uma chave de assinatura diferente (F-Droid's) está sendo usada para 4. Construir um APK depuração usando o método 1 exclui totalmente uma chave. Assinar chaves ajudam a garantir que um usuário não seja enganado para instalar uma atualização maliciosa em um aplicativo.
|
||||
|
||||
Enquanto isso, se você quiser trocar de fontes por algum motivo (por exemplo, a funcionalidade principal do NewPipe foi quebrada e o F-Droid ainda não tem a atualização), recomendamos seguir este procedimento:
|
||||
1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlistsFaça backup de seus dados através de Configurações > Conteúdo > Exportar Base de Dados para que você mantenha seu histórico, inscrições e playlists
|
||||
1. Faça backup de seus dados através de Configurações > Conteúdo > Exportar Base de Dados para que você mantenha seu histórico, inscrições e playlists
|
||||
2. Desinstale o NewPipe
|
||||
3. Baixe o APK da nova fonte e instale-o
|
||||
4. Importe os dados da etapa 1 via Configurações > Conteúdo > Inportar Banco de Dados
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Build Status"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource bounties"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -17,7 +17,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">Website</a> • <a href="https://newpipe.net/blog/">Blog</a> • <a href="https://newpipe.net/FAQ/">FAQ</a> • <a href="https://newpipe.net/press/">Presă</a></p>
|
||||
<hr>
|
||||
|
||||
*Citiţi în alte limbi: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md)*
|
||||
*Citiţi în alte limbi: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>Atenţionare: ACEASTA ESTE O VERSIUNE BETA, AŞA CĂ S-AR PUTE SĂ ÎNTÂLNIŢI ERORI. DACĂ SE ÎNTÂMPLĂ ACEST LUCRU, DESCHIDEŢI UN ISSUE PRIN REPSITORY-UL NOSTRU GITHUB.</b>
|
||||
|
||||
@@ -45,6 +45,7 @@ NewPipe nu foloseşte nici-o bibliotecă Google framework sau API-ul Youtube. We
|
||||
### Funcţii
|
||||
|
||||
* Căutarea videoclipurilor
|
||||
* Nu este necesară logarea
|
||||
* Afişarea informaţiilor generale despre videoclipuri
|
||||
* Urmărirea videoclipurilor Youtube
|
||||
* Ascultarea videoclipurilor Youtube
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="Laysinka: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Darajada Dhismaha"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Heerka Turjimaada"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://webchat.freenode.net/#newpipe" alt="Kanaalka IRC: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="Kanaalka IRC: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Kuwa Bountysource "><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
@@ -17,7 +17,7 @@
|
||||
<p align="center"><a href="https://newpipe.net">Website-ka</a> • <a href="https://newpipe.net/blog/">Maqaalada</a> • <a href="https://newpipe.net/FAQ/">Su'aalaha Aalaa La-iswaydiiyo</a> • <a href="https://newpipe.net/press/">Warbaahinta</a></p>
|
||||
<hr>
|
||||
|
||||
*Ku akhri luuqad kale: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md).*
|
||||
*Ku akhri luuqad kale: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>DIGNIIN: MIDKAN, NOOCA APP-KA EE HADDA WALI TIJAABO AYUU KU JIRAA, SIDAA DARTEED CILLADO AYAAD LA KULMI KARTAA. HADAAD LA KULANTO, KA FUR ARIN SHARAXAYA QAYBTANADA ARRIMAHA EE GITHUB-KA.</b>
|
||||
|
||||
|
||||
145
README.tr.md
Normal file
145
README.tr.md
Normal file
@@ -0,0 +1,145 @@
|
||||
<p align="center"><a href="https://newpipe.net"><img src="assets/new_pipe_icon_5.png" width="150"></a></p>
|
||||
<h2 align="center"><b>NewPipe</b></h2>
|
||||
<h4 align="center">Android için hafif ve özgür bir akış arayüzü.</h4>
|
||||
|
||||
<p align="center"><a href="https://f-droid.org/packages/org.schabi.newpipe/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on-tr.svg"></a></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/releases" alt="GitHub sürümleri"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe.svg" ></a>
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="Lisans: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/actions" alt="Derleme Durumu"><img src="https://github.com/TeamNewPipe/NewPipe/workflows/CI/badge.svg?branch=dev&event=push"></a>
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Çeviri Durumu"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
|
||||
<a href="https://web.libera.chat/#newpipe" alt="IRC kanalı: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
|
||||
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource ödülleri"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
|
||||
</p>
|
||||
<hr>
|
||||
<p align="center"><a href="#ekran-fotoğrafları">Ekran fotoğrafları</a> • <a href="#açıklama">Açıklama</a> • <a href="#özellikler">Özellikler</a> • <a href="#kurulum-ve-güncellemeler">Kurulum ve güncellemeler</a> • <a href="#katkıda-bulunma">Katkıda bulunma</a> • <a href="#bağış">Bağış</a> • <a href="#lisans">Lisans</a></p>
|
||||
<p align="center"><a href="https://newpipe.net">Web sitesi</a> • <a href="https://newpipe.net/blog/">Blog</a> • <a href="https://newpipe.net/FAQ/">SSS</a> • <a href="https://newpipe.net/press/">Basın</a></p>
|
||||
<hr>
|
||||
|
||||
*Bu sayfayı diğer dillerde okuyun: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).*
|
||||
|
||||
<b>UYARI: BU SÜRÜM BETA SÜRÜMÜDÜR, BU NEDENLE HATALARLA KARŞILAŞABİLİRSİNİZ. HATA BULURSANIZ BU GITHUB DEPOSUNDA BUNU BİLDİRİN.</b>
|
||||
|
||||
<b>GOOGLE PLAY STORE'A NEWPIPE VEYA BAŞKA BİR KOPYASINI KOYMAK, PLAY STORE ŞARTLARINI VE KOŞULLARINI İHLAL EDER.</b>
|
||||
|
||||
## Ekran fotoğrafları
|
||||
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png" width=160>](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png" width=405>](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png)
|
||||
[<img src="fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png" width=405>](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png)
|
||||
|
||||
## Açıklama
|
||||
|
||||
NewPipe herhangi bir Google çerçeve kütüphanesini, ya da YouTube API hizmetlerini kullanmaz. Gerekli web hizmetleri yalnızca gerekli bilgileri almak için kaynak olarak kullanılır, bu nedenle bu uygulama Google hizmetleri yüklü olmayan cihazlarda da kullanılabilir. Ayrıca, copyleft özgür yazılımı olan NewPipe'ı kullanmak için bir YouTube hesabına ihtiyacınız yoktur.
|
||||
|
||||
### Özellikler
|
||||
|
||||
* Video arama
|
||||
* Videolar hakkında genel bilgileri görüntüleme
|
||||
* YouTube videoları izleme
|
||||
* YouTube videolarını dinleme
|
||||
* Pop-up modu (hareketli oynatıcı)
|
||||
* Video izlemek için akış oynatıcısını seçme
|
||||
* Video indirme
|
||||
* Sadece ses indirme
|
||||
* Videoyu Kodi'de açma
|
||||
* Sonraki video/ilgili videolar
|
||||
* YouTube'u belirli bir dilde arayın
|
||||
* Yaş sınırlı içeriği izleme/engelleme
|
||||
* Kanallar hakkındaki genel bilgileri görüntüleme
|
||||
* Kanal arama
|
||||
* Bir kanaldaki videoları izleme
|
||||
* Orbot/Tor desteği (henüz direkt olarak değil)
|
||||
* 1080p/2K/4K desteği
|
||||
* Geçmişi görme
|
||||
* Kanallara abone olma
|
||||
* Geçmişte arama
|
||||
* Oynatma listesi arama/oynatma
|
||||
* Çalma listelerini sıralayıp oynatın
|
||||
* Videoları sırayla oynatın
|
||||
* Yerel oynatma listeleri
|
||||
* Altyazılar
|
||||
* Canlı yayın desteği
|
||||
* Yorumları görme
|
||||
|
||||
### Desteklenen servisler
|
||||
|
||||
NewPipe birden fazla hizmeti destekler. Uygulamaya ve ayıklayıcıya yeni bir hizmet ekleme konusunda daha fazla bilgiye [kılavuzlarımızdan](https://teamnewpipe.github.io/documentation/) ulaşabilirsiniz. Yeni bir hizmet eklemek istiyorsanız lütfen bizimle iletişime geçin. Şu anda desteklenen hizmetler şunlardır:
|
||||
|
||||
* YouTube
|
||||
* SoundCloud \[beta\]
|
||||
* media.ccc.de \[beta\]
|
||||
* PeerTube \[beta\]
|
||||
* Bandcamp \[beta\]
|
||||
|
||||
<!-- Eski bağlantıları uyumlu tutmak için gizli span. -->
|
||||
<span id="updates"></span>
|
||||
|
||||
## Kurulum ve güncellemeler
|
||||
Aşağıdaki yöntemlerden birini kullanarak NewPipe'ı kurabilirsiniz:
|
||||
1. Özel depomuzu F-Droid'e ekleyin ve oradan yükleyin. Kılavuzu şurada bulabilirsiniz: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
|
||||
2. APK'yı [Github sürümlerinden](https://github.com/TeamNewPipe/NewPipe/releases) indirin ve kurun.
|
||||
3. F-Droid ile güncelleyin. Bu, güncellemeleri almanın en yavaş yöntemidir, çünkü F-Droid değişiklikleri tanımalı, APK'yı kendisi oluşturmalı, imzalamalı ve ardından güncellemeyi kullanıcılara dağıtmalıdır.
|
||||
4. Kendiniz bir APK derleyin. Bu yöntem, cihazınızda yeni özellikler edinmenin en hızlı yoludur, ancak çok daha karmaşıktır, bu nedenle diğer yöntemlerden birini kullanmanızı öneririz.
|
||||
|
||||
Çoğu kullanıcı için yöntem 1'i öneririz. Yöntem 1 veya 2 kullanılarak yüklenen APK'lar birbiriyle uyumludur, ancak yöntem 3 kullanılarak yüklenenlerle uyumlu değildir. Bu durum, 1 ve 2 için kullanılan aynı imzalama anahtarıın (bizim anahtarımız) 3 için kullanılan imzalama anahtarından (F-Droid'in anahtarı) farklı olmasından kaynaklanmaktadır. Yöntem 4 kullanılarak oluşturulan deneysel APK'larda anahtar yoktur. İmzalama anahtarları, bir kullanıcının bir uygulamaya kötü amaçlı bir güncelleme yüklemek için kandırılmadığından emin olmanıza yardımcı olur.
|
||||
|
||||
Bu arada, herhangi bir nedenle kaynakları değiştirmek istiyorsanız (örneğin, NewPipe'ın temel bir işlevi bozuldu ve F-Droid tarafında henüz bir güncelleme yayınlanmadı), bu prosedürü izlemenizi öneririz:
|
||||
1. Verilerinizi yedekleyin. `NewPipe Ayarları > İçerik > Veritabanını dışa aktar` seçeneklerini izleyerek aboneliklerinizi, oynatma listelerinizi ve geçmişinizi yedekleyin.
|
||||
2. NewPipe'ı kaldırın
|
||||
3. APK dosyasını yeni bir kaynaktan indirin ve yükleyin
|
||||
4. `Ayarlar > İçerik > Veritabanını içe aktar` seçeneklerini izleyerek 1. adımdaki verileri içe aktarın
|
||||
|
||||
## Katkıda bulunma
|
||||
Fikirleriniz, çevirileriniz, tasarım değişiklikleriniz, kod temizlemeniz veya ağır kod değişiklikleriniz olsun, yardımınıza her zaman açığız.
|
||||
Yapılan her değişiklikle NewPipe daha da iyi bir konuma geliyor!
|
||||
|
||||
Eğer yer almak istiyorsanız, [katkı sağlayanlar için hazırladığımız notları](.github/CONTRIBUTING.md) kontrol edin.
|
||||
|
||||
<a href="https://hosted.weblate.org/engage/newpipe/">
|
||||
<img src="https://hosted.weblate.org/widgets/newpipe/-/287x66-grey.png" alt="Çeviri istatistikleri" />
|
||||
</a>
|
||||
|
||||
## Bağış
|
||||
NewPipe'ı beğendiyseniz, yapacağınız bağışlar bizi motive eder. Bitcoin gönderebilir veya Bountysource veya Liberapay aracılığıyla bağış yapabilirsiniz. NewPipe'a bağış yapma hakkında daha fazla bilgi için lütfen [web sitemizi](https://newpipe.net/donate) ziyaret edin.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="https://bitcoin.org/img/icons/logotop.svg" alt="Bitcoin"></td>
|
||||
<td><img src="assets/bitcoin_qr_code.png" alt="Bitcoin QR kodu" width="100px"></td>
|
||||
<td><samp>16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh</samp></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://liberapay.com/TeamNewPipe/"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/Liberapay_logo_v2_white-on-yellow.svg" alt="Liberapay" width="80px" ></a></td>
|
||||
<td><a href="https://liberapay.com/TeamNewPipe/"><img src="assets/liberapay_qr_code.png" alt="liberapay.com üzerinde NewPipe'ı ziyaret edin" width="100px"></a></td>
|
||||
<td><a href="https://liberapay.com/TeamNewPipe/donate"><img src="assets/liberapay_donate_button.svg" alt="Liberapay aracılığıyla bağış yapın" height="35px"></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://www.bountysource.com/teams/newpipe"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Bountysource.png/320px-Bountysource.png" alt="Bountysource" width="190px"></a></td>
|
||||
<td><a href="https://www.bountysource.com/teams/newpipe"><img src="assets/bountysource_qr_code.png" alt="bountysource.com üzerinde NewPipe'ı ziyaret edin" width="100px"></a></td>
|
||||
<td><a href="https://www.bountysource.com/teams/newpipe/issues"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f" height="30px" alt="Ne kadar ödül kazanabileceğinizi kontrol edin."></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Gizlilik politikası
|
||||
|
||||
NewPipe projesi, çevrimiçi akış hizmetlerini kullanmak için özel, özgür ve anonim bir deneyim sunmayı amaçlamaktadır.
|
||||
Bu doğrultuda, uygulama sizin izniniz olmadan herhangi bir veri toplamaz. NewPipe'ın Gizlilik Politikası, bir çökme raporu gönderdiğinizde veya blogumuzda yorum yaptığınızda hangi verilerin gönderildiğini ve saklandığını ayrıntılı olarak açıklar. İlgili belgeyi [burada](https://newpipe.net/legal/privacy/) bulabilirsiniz.
|
||||
|
||||
## Lisans
|
||||
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
|
||||
NewPipe özgür bir yazılımdır. Kendi başınıza kullanabilir, öğrenebilir, paylaşabilir
|
||||
ve geliştirebilirsiniz. Free Software Foundation tarafından yayınlanan GNU Genel Kamu Lisansı,
|
||||
Lisansın 3. sürümü veya (isteğe bağlı olarak) daha sonraki bir sürümü şartları ve
|
||||
koşulları altında yeniden dağıtabilir ve/veya değiştirebilirsiniz.
|
||||
@@ -17,8 +17,8 @@ android {
|
||||
resValue "string", "app_name", "NewPipe"
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 29
|
||||
versionCode 968
|
||||
versionName "0.21.2"
|
||||
versionCode 970
|
||||
versionName "0.21.4"
|
||||
|
||||
multiDexEnabled true
|
||||
|
||||
@@ -66,6 +66,9 @@ android {
|
||||
// Or, if you prefer, you can continue to check for errors in release builds,
|
||||
// but continue the build even when errors are found:
|
||||
abortOnError false
|
||||
// suppress false warning ("Resource IDs will be non-final in Android Gradle Plugin version
|
||||
// 5.0, avoid using them in switch case statements"), which affects only library projects
|
||||
disable 'NonConstantResourceId'
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
@@ -102,7 +105,7 @@ ext {
|
||||
androidxRoomVersion = '2.3.0-alpha03'
|
||||
|
||||
icepickVersion = '3.2.0'
|
||||
exoPlayerVersion = '2.13.2'
|
||||
exoPlayerVersion = '2.12.3'
|
||||
googleAutoServiceVersion = '1.0-rc7'
|
||||
groupieVersion = '2.8.1'
|
||||
markwonVersion = '4.6.0'
|
||||
@@ -175,12 +178,12 @@ sonarqube {
|
||||
|
||||
dependencies {
|
||||
/** Desugaring **/
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1'
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
||||
|
||||
/** NewPipe libraries **/
|
||||
// You can use a local version by uncommenting a few lines in settings.gradle
|
||||
implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751'
|
||||
implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.2'
|
||||
implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.4'
|
||||
|
||||
/** Checkstyle **/
|
||||
checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}"
|
||||
@@ -255,7 +258,7 @@ dependencies {
|
||||
implementation "com.jakewharton.rxbinding4:rxbinding:4.0.0"
|
||||
|
||||
// Date and time formatting
|
||||
implementation "org.ocpsoft.prettytime:prettytime:5.0.0.Final"
|
||||
implementation "org.ocpsoft.prettytime:prettytime:5.0.1.Final"
|
||||
|
||||
/** Debugging **/
|
||||
// Memory leak detection
|
||||
@@ -267,7 +270,7 @@ dependencies {
|
||||
debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoVersion}"
|
||||
|
||||
/** Testing **/
|
||||
testImplementation 'junit:junit:4.13.1'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
testImplementation "org.mockito:mockito-core:${mockitoVersion}"
|
||||
testImplementation "org.mockito:mockito-inline:${mockitoVersion}"
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.schabi.newpipe">
|
||||
package="org.schabi.newpipe"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
@@ -318,7 +319,7 @@
|
||||
<data android:pathPrefix="/video-channels/" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- Bandcamp filter -->
|
||||
<!-- Bandcamp filter for tracks, albums and playlists -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
|
||||
@@ -329,10 +330,23 @@
|
||||
|
||||
<data android:scheme="http"/>
|
||||
<data android:scheme="https"/>
|
||||
<data android:host="bandcamp.com"/>
|
||||
<data android:host="*.bandcamp.com"/>
|
||||
<data android:pathPrefix="/"/>
|
||||
</intent-filter>
|
||||
|
||||
<!-- Bandcamp filter for radio -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
|
||||
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
|
||||
<data android:scheme="http"/>
|
||||
<data android:scheme="https"/>
|
||||
<data android:sspPattern="bandcamp.com/?show=*"/>
|
||||
</intent-filter>
|
||||
|
||||
</activity>
|
||||
<service
|
||||
android:name=".RouterActivity$FetcherService"
|
||||
|
||||
@@ -130,7 +130,7 @@ public class App extends MultiDexApplication {
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
|
||||
getApplicationContext());
|
||||
final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key);
|
||||
downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, ""));
|
||||
downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, null));
|
||||
downloader.updateYoutubeRestrictedModeCookies(getApplicationContext());
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
private static final String TAG = "MainActivity";
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
|
||||
|
||||
private ActivityMainBinding mainBinding;
|
||||
|
||||
@@ -466,6 +466,11 @@ public class RouterActivity extends AppCompatActivity {
|
||||
if (capabilities.contains(AUDIO)) {
|
||||
returnList.add(backgroundPlayer);
|
||||
}
|
||||
// download is redundant for linkType CHANNEL AND PLAYLIST (till playlist downloading is
|
||||
// not supported )
|
||||
returnList.add(new AdapterChoiceItem(getString(R.string.download_key),
|
||||
getString(R.string.download),
|
||||
R.drawable.ic_file_download));
|
||||
|
||||
} else {
|
||||
returnList.add(showInfo);
|
||||
@@ -478,10 +483,6 @@ public class RouterActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
returnList.add(new AdapterChoiceItem(getString(R.string.download_key),
|
||||
getString(R.string.download),
|
||||
R.drawable.ic_file_download));
|
||||
|
||||
return returnList;
|
||||
}
|
||||
|
||||
|
||||
@@ -312,25 +312,36 @@ public class DownloadDialog extends DialogFragment
|
||||
|
||||
private void fetchStreamsSize() {
|
||||
disposables.clear();
|
||||
|
||||
disposables.add(StreamSizeWrapper.fetchSizeForWrapper(wrappedVideoStreams)
|
||||
.subscribe(result -> {
|
||||
if (dialogBinding.videoAudioGroup.getCheckedRadioButtonId() == R.id.video_button) {
|
||||
setupVideoSpinner();
|
||||
}
|
||||
}));
|
||||
if (dialogBinding.videoAudioGroup.getCheckedRadioButtonId()
|
||||
== R.id.video_button) {
|
||||
setupVideoSpinner();
|
||||
}
|
||||
}, throwable -> ErrorActivity.reportErrorInSnackbar(context,
|
||||
new ErrorInfo(throwable, UserAction.DOWNLOAD_OPEN_DIALOG,
|
||||
"Downloading video stream size",
|
||||
currentInfo.getServiceId()))));
|
||||
disposables.add(StreamSizeWrapper.fetchSizeForWrapper(wrappedAudioStreams)
|
||||
.subscribe(result -> {
|
||||
if (dialogBinding.videoAudioGroup.getCheckedRadioButtonId() == R.id.audio_button) {
|
||||
setupAudioSpinner();
|
||||
}
|
||||
}));
|
||||
if (dialogBinding.videoAudioGroup.getCheckedRadioButtonId()
|
||||
== R.id.audio_button) {
|
||||
setupAudioSpinner();
|
||||
}
|
||||
}, throwable -> ErrorActivity.reportErrorInSnackbar(context,
|
||||
new ErrorInfo(throwable, UserAction.DOWNLOAD_OPEN_DIALOG,
|
||||
"Downloading audio stream size",
|
||||
currentInfo.getServiceId()))));
|
||||
disposables.add(StreamSizeWrapper.fetchSizeForWrapper(wrappedSubtitleStreams)
|
||||
.subscribe(result -> {
|
||||
if (dialogBinding.videoAudioGroup.getCheckedRadioButtonId() == R.id.subtitle_button) {
|
||||
setupSubtitleSpinner();
|
||||
}
|
||||
}));
|
||||
if (dialogBinding.videoAudioGroup.getCheckedRadioButtonId()
|
||||
== R.id.subtitle_button) {
|
||||
setupSubtitleSpinner();
|
||||
}
|
||||
}, throwable -> ErrorActivity.reportErrorInSnackbar(context,
|
||||
new ErrorInfo(throwable, UserAction.DOWNLOAD_OPEN_DIALOG,
|
||||
"Downloading subtitle stream size",
|
||||
currentInfo.getServiceId()))));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -671,9 +682,6 @@ public class DownloadDialog extends DialogFragment
|
||||
prefs.edit()
|
||||
.putString(getString(R.string.last_used_download_type), selectedMediaType)
|
||||
.apply();
|
||||
|
||||
Toast.makeText(context, getString(R.string.download_has_started),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
private void checkSelectedDownload(final StoredDirectoryHelper mainStorage,
|
||||
@@ -929,6 +937,9 @@ public class DownloadDialog extends DialogFragment
|
||||
DownloadManagerService.startMission(context, urls, storage, kind, threads,
|
||||
currentInfo.getUrl(), psName, psArgs, nearLength, recoveryInfo);
|
||||
|
||||
Toast.makeText(context, getString(R.string.download_has_started),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,15 +190,16 @@ public class ErrorActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(final MenuItem item) {
|
||||
final int id = item.getItemId();
|
||||
if (id == android.R.id.home) {
|
||||
onBackPressed();
|
||||
} else if (id == R.id.menu_item_share_error) {
|
||||
ShareUtils.shareText(this, getString(R.string.error_report_title), buildJson());
|
||||
} else {
|
||||
return false;
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
onBackPressed();
|
||||
return true;
|
||||
case R.id.menu_item_share_error:
|
||||
ShareUtils.shareText(this, getString(R.string.error_report_title), buildJson());
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void openPrivacyPolicyDialog(final Context context, final String action) {
|
||||
|
||||
@@ -11,15 +11,20 @@ import org.schabi.newpipe.BaseFragment;
|
||||
import org.schabi.newpipe.R;
|
||||
|
||||
public class EmptyFragment extends BaseFragment {
|
||||
final boolean showMessage;
|
||||
private static final String SHOW_MESSAGE = "SHOW_MESSAGE";
|
||||
|
||||
public EmptyFragment(final boolean showMessage) {
|
||||
this.showMessage = showMessage;
|
||||
public static final EmptyFragment newInstance(final boolean showMessage) {
|
||||
final EmptyFragment emptyFragment = new EmptyFragment();
|
||||
final Bundle bundle = new Bundle(1);
|
||||
bundle.putBoolean(SHOW_MESSAGE, showMessage);
|
||||
emptyFragment.setArguments(bundle);
|
||||
return emptyFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container,
|
||||
final Bundle savedInstanceState) {
|
||||
final boolean showMessage = getArguments().getBoolean(SHOW_MESSAGE);
|
||||
final View view = inflater.inflate(R.layout.fragment_empty, container, false);
|
||||
view.findViewById(R.id.empty_state_view).setVisibility(
|
||||
showMessage ? View.VISIBLE : View.GONE);
|
||||
|
||||
@@ -4,23 +4,38 @@ import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.widget.TooltipCompat;
|
||||
import androidx.core.text.HtmlCompat;
|
||||
|
||||
import com.google.android.material.chip.Chip;
|
||||
|
||||
import org.schabi.newpipe.BaseFragment;
|
||||
import org.schabi.newpipe.R;
|
||||
import org.schabi.newpipe.databinding.FragmentDescriptionBinding;
|
||||
import org.schabi.newpipe.databinding.ItemMetadataBinding;
|
||||
import org.schabi.newpipe.databinding.ItemMetadataTagsBinding;
|
||||
import org.schabi.newpipe.extractor.stream.Description;
|
||||
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
||||
import org.schabi.newpipe.util.Localization;
|
||||
import org.schabi.newpipe.util.NavigationHelper;
|
||||
import org.schabi.newpipe.util.ShareUtils;
|
||||
import org.schabi.newpipe.util.TextLinkifier;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import icepick.State;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
import static android.text.TextUtils.isEmpty;
|
||||
import static org.schabi.newpipe.extractor.stream.StreamExtractor.NO_AGE_LIMIT;
|
||||
import static org.schabi.newpipe.extractor.utils.Utils.isBlank;
|
||||
|
||||
public class DescriptionFragment extends BaseFragment {
|
||||
|
||||
@@ -28,6 +43,7 @@ public class DescriptionFragment extends BaseFragment {
|
||||
StreamInfo streamInfo = null;
|
||||
@Nullable
|
||||
Disposable descriptionDisposable = null;
|
||||
FragmentDescriptionBinding binding;
|
||||
|
||||
public DescriptionFragment() {
|
||||
}
|
||||
@@ -40,11 +56,11 @@ public class DescriptionFragment extends BaseFragment {
|
||||
public View onCreateView(@NonNull final LayoutInflater inflater,
|
||||
@Nullable final ViewGroup container,
|
||||
@Nullable final Bundle savedInstanceState) {
|
||||
final FragmentDescriptionBinding binding =
|
||||
FragmentDescriptionBinding.inflate(inflater, container, false);
|
||||
binding = FragmentDescriptionBinding.inflate(inflater, container, false);
|
||||
if (streamInfo != null) {
|
||||
setupUploadDate(binding.detailUploadDateView);
|
||||
setupDescription(binding.detailDescriptionView);
|
||||
setupUploadDate();
|
||||
setupDescription();
|
||||
setupMetadata(inflater, binding.detailMetadataLayout);
|
||||
}
|
||||
return binding.getRoot();
|
||||
}
|
||||
@@ -57,37 +73,197 @@ public class DescriptionFragment extends BaseFragment {
|
||||
}
|
||||
}
|
||||
|
||||
private void setupUploadDate(final TextView uploadDateTextView) {
|
||||
|
||||
private void setupUploadDate() {
|
||||
if (streamInfo.getUploadDate() != null) {
|
||||
uploadDateTextView.setText(Localization
|
||||
binding.detailUploadDateView.setText(Localization
|
||||
.localizeUploadDate(activity, streamInfo.getUploadDate().offsetDateTime()));
|
||||
} else {
|
||||
uploadDateTextView.setVisibility(View.GONE);
|
||||
binding.detailUploadDateView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void setupDescription(final TextView descriptionTextView) {
|
||||
|
||||
private void setupDescription() {
|
||||
final Description description = streamInfo.getDescription();
|
||||
if (description == null || isEmpty(description.getContent())
|
||||
|| description == Description.emptyDescription) {
|
||||
descriptionTextView.setText("");
|
||||
binding.detailDescriptionView.setVisibility(View.GONE);
|
||||
binding.detailSelectDescriptionButton.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
|
||||
// start with disabled state. This also loads description content (!)
|
||||
disableDescriptionSelection();
|
||||
|
||||
binding.detailSelectDescriptionButton.setOnClickListener(v -> {
|
||||
if (binding.detailDescriptionNoteView.getVisibility() == View.VISIBLE) {
|
||||
disableDescriptionSelection();
|
||||
} else {
|
||||
// enable selection only when button is clicked to prevent flickering
|
||||
enableDescriptionSelection();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void enableDescriptionSelection() {
|
||||
binding.detailDescriptionNoteView.setVisibility(View.VISIBLE);
|
||||
binding.detailDescriptionView.setTextIsSelectable(true);
|
||||
|
||||
final String buttonLabel = getString(R.string.description_select_disable);
|
||||
binding.detailSelectDescriptionButton.setContentDescription(buttonLabel);
|
||||
TooltipCompat.setTooltipText(binding.detailSelectDescriptionButton, buttonLabel);
|
||||
binding.detailSelectDescriptionButton.setImageResource(R.drawable.ic_close);
|
||||
}
|
||||
|
||||
private void disableDescriptionSelection() {
|
||||
// show description content again, otherwise some links are not clickable
|
||||
loadDescriptionContent();
|
||||
|
||||
binding.detailDescriptionNoteView.setVisibility(View.GONE);
|
||||
binding.detailDescriptionView.setTextIsSelectable(false);
|
||||
|
||||
final String buttonLabel = getString(R.string.description_select_enable);
|
||||
binding.detailSelectDescriptionButton.setContentDescription(buttonLabel);
|
||||
TooltipCompat.setTooltipText(binding.detailSelectDescriptionButton, buttonLabel);
|
||||
binding.detailSelectDescriptionButton.setImageResource(R.drawable.ic_select_all);
|
||||
}
|
||||
|
||||
private void loadDescriptionContent() {
|
||||
final Description description = streamInfo.getDescription();
|
||||
switch (description.getType()) {
|
||||
case Description.HTML:
|
||||
descriptionDisposable = TextLinkifier.createLinksFromHtmlBlock(requireContext(),
|
||||
description.getContent(), descriptionTextView,
|
||||
description.getContent(), binding.detailDescriptionView,
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY);
|
||||
break;
|
||||
case Description.MARKDOWN:
|
||||
descriptionDisposable = TextLinkifier.createLinksFromMarkdownText(requireContext(),
|
||||
description.getContent(), descriptionTextView);
|
||||
description.getContent(), binding.detailDescriptionView);
|
||||
break;
|
||||
case Description.PLAIN_TEXT: default:
|
||||
descriptionDisposable = TextLinkifier.createLinksFromPlainText(requireContext(),
|
||||
description.getContent(), descriptionTextView);
|
||||
description.getContent(), binding.detailDescriptionView);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void setupMetadata(final LayoutInflater inflater,
|
||||
final LinearLayout layout) {
|
||||
addMetadataItem(inflater, layout, false,
|
||||
R.string.metadata_category, streamInfo.getCategory());
|
||||
|
||||
addTagsMetadataItem(inflater, layout);
|
||||
|
||||
addMetadataItem(inflater, layout, false,
|
||||
R.string.metadata_licence, streamInfo.getLicence());
|
||||
|
||||
addPrivacyMetadataItem(inflater, layout);
|
||||
|
||||
if (streamInfo.getAgeLimit() != NO_AGE_LIMIT) {
|
||||
addMetadataItem(inflater, layout, false,
|
||||
R.string.metadata_age_limit, String.valueOf(streamInfo.getAgeLimit()));
|
||||
}
|
||||
|
||||
if (streamInfo.getLanguageInfo() != null) {
|
||||
addMetadataItem(inflater, layout, false,
|
||||
R.string.metadata_language, streamInfo.getLanguageInfo().getDisplayLanguage());
|
||||
}
|
||||
|
||||
addMetadataItem(inflater, layout, true,
|
||||
R.string.metadata_support, streamInfo.getSupportInfo());
|
||||
addMetadataItem(inflater, layout, true,
|
||||
R.string.metadata_host, streamInfo.getHost());
|
||||
addMetadataItem(inflater, layout, true,
|
||||
R.string.metadata_thumbnail_url, streamInfo.getThumbnailUrl());
|
||||
}
|
||||
|
||||
private void addMetadataItem(final LayoutInflater inflater,
|
||||
final LinearLayout layout,
|
||||
final boolean linkifyContent,
|
||||
@StringRes final int type,
|
||||
@Nullable final String content) {
|
||||
if (isBlank(content)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemMetadataBinding itemBinding
|
||||
= ItemMetadataBinding.inflate(inflater, layout, false);
|
||||
|
||||
itemBinding.metadataTypeView.setText(type);
|
||||
itemBinding.metadataTypeView.setOnLongClickListener(v -> {
|
||||
ShareUtils.copyToClipboard(requireContext(), content);
|
||||
return true;
|
||||
});
|
||||
|
||||
if (linkifyContent) {
|
||||
TextLinkifier.createLinksFromPlainText(requireContext(),
|
||||
content, itemBinding.metadataContentView);
|
||||
} else {
|
||||
itemBinding.metadataContentView.setText(content);
|
||||
}
|
||||
|
||||
layout.addView(itemBinding.getRoot());
|
||||
}
|
||||
|
||||
private void addTagsMetadataItem(final LayoutInflater inflater, final LinearLayout layout) {
|
||||
if (streamInfo.getTags() != null && !streamInfo.getTags().isEmpty()) {
|
||||
final ItemMetadataTagsBinding itemBinding
|
||||
= ItemMetadataTagsBinding.inflate(inflater, layout, false);
|
||||
|
||||
final List<String> tags = new ArrayList<>(streamInfo.getTags());
|
||||
Collections.sort(tags);
|
||||
for (final String tag : tags) {
|
||||
final Chip chip = (Chip) inflater.inflate(R.layout.chip,
|
||||
itemBinding.metadataTagsChips, false);
|
||||
chip.setText(tag);
|
||||
chip.setOnClickListener(this::onTagClick);
|
||||
chip.setOnLongClickListener(this::onTagLongClick);
|
||||
itemBinding.metadataTagsChips.addView(chip);
|
||||
}
|
||||
|
||||
layout.addView(itemBinding.getRoot());
|
||||
}
|
||||
}
|
||||
|
||||
private void onTagClick(final View chip) {
|
||||
if (getParentFragment() != null) {
|
||||
NavigationHelper.openSearchFragment(getParentFragment().getParentFragmentManager(),
|
||||
streamInfo.getServiceId(), ((Chip) chip).getText().toString());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean onTagLongClick(final View chip) {
|
||||
ShareUtils.copyToClipboard(requireContext(), ((Chip) chip).getText().toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
private void addPrivacyMetadataItem(final LayoutInflater inflater, final LinearLayout layout) {
|
||||
if (streamInfo.getPrivacy() != null) {
|
||||
@StringRes final int contentRes;
|
||||
switch (streamInfo.getPrivacy()) {
|
||||
case PUBLIC:
|
||||
contentRes = R.string.metadata_privacy_public;
|
||||
break;
|
||||
case UNLISTED:
|
||||
contentRes = R.string.metadata_privacy_unlisted;
|
||||
break;
|
||||
case PRIVATE:
|
||||
contentRes = R.string.metadata_privacy_private;
|
||||
break;
|
||||
case INTERNAL:
|
||||
contentRes = R.string.metadata_privacy_internal;
|
||||
break;
|
||||
case OTHER: default:
|
||||
contentRes = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (contentRes != 0) {
|
||||
addMetadataItem(inflater, layout, false,
|
||||
R.string.metadata_privacy, getString(contentRes));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -929,20 +929,20 @@ public final class VideoDetailFragment
|
||||
|
||||
if (showRelatedItems && binding.relatedItemsLayout == null) {
|
||||
// temp empty fragment. will be updated in handleResult
|
||||
pageAdapter.addFragment(new EmptyFragment(false), RELATED_TAB_TAG);
|
||||
pageAdapter.addFragment(EmptyFragment.newInstance(false), RELATED_TAB_TAG);
|
||||
tabIcons.add(R.drawable.ic_art_track);
|
||||
tabContentDescriptions.add(R.string.related_items_tab_description);
|
||||
}
|
||||
|
||||
if (showDescription) {
|
||||
// temp empty fragment. will be updated in handleResult
|
||||
pageAdapter.addFragment(new EmptyFragment(false), DESCRIPTION_TAB_TAG);
|
||||
pageAdapter.addFragment(EmptyFragment.newInstance(false), DESCRIPTION_TAB_TAG);
|
||||
tabIcons.add(R.drawable.ic_description);
|
||||
tabContentDescriptions.add(R.string.description_tab_description);
|
||||
}
|
||||
|
||||
if (pageAdapter.getCount() == 0) {
|
||||
pageAdapter.addFragment(new EmptyFragment(true), EMPTY_TAB_TAG);
|
||||
pageAdapter.addFragment(EmptyFragment.newInstance(true), EMPTY_TAB_TAG);
|
||||
}
|
||||
pageAdapter.notifyDataSetUpdate();
|
||||
|
||||
|
||||
@@ -370,10 +370,10 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I>
|
||||
StreamDialogEntry.share
|
||||
));
|
||||
}
|
||||
entries.add(StreamDialogEntry.open_in_browser);
|
||||
if (KoreUtil.shouldShowPlayWithKodi(context, item.getServiceId())) {
|
||||
entries.add(StreamDialogEntry.play_with_kodi);
|
||||
}
|
||||
|
||||
if (!isNullOrEmpty(item.getUploaderUrl())) {
|
||||
entries.add(StreamDialogEntry.show_channel_details);
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ import io.reactivex.rxjava3.core.Single;
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty;
|
||||
import static org.schabi.newpipe.ktx.ViewUtils.animate;
|
||||
import static org.schabi.newpipe.ktx.ViewUtils.animateHideRecyclerViewAllowingScrolling;
|
||||
|
||||
@@ -160,9 +161,15 @@ public class PlaylistFragment extends BaseListInfoFragment<PlaylistInfo> {
|
||||
StreamDialogEntry.share
|
||||
));
|
||||
}
|
||||
entries.add(StreamDialogEntry.open_in_browser);
|
||||
if (KoreUtil.shouldShowPlayWithKodi(context, item.getServiceId())) {
|
||||
entries.add(StreamDialogEntry.play_with_kodi);
|
||||
}
|
||||
|
||||
if (!isNullOrEmpty(item.getUploaderUrl())) {
|
||||
entries.add(StreamDialogEntry.show_channel_details);
|
||||
}
|
||||
|
||||
StreamDialogEntry.setEnabledEntries(entries);
|
||||
|
||||
StreamDialogEntry.start_here_on_background.setCustomAction((fragment, infoItem) ->
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.text.Editable;
|
||||
import android.text.Html;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.style.CharacterStyle;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -588,6 +589,11 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(final Editable s) {
|
||||
// Remove rich text formatting
|
||||
for (final CharacterStyle span : s.getSpans(0, s.length(), CharacterStyle.class)) {
|
||||
s.removeSpan(span);
|
||||
}
|
||||
|
||||
final String newText = searchEditText.getText().toString();
|
||||
suggestionPublisher.onNext(newText);
|
||||
}
|
||||
|
||||
@@ -137,7 +137,10 @@ public class CommentsMiniInfoItemHolder extends InfoItemHolder {
|
||||
}
|
||||
|
||||
if (item.getLikeCount() >= 0) {
|
||||
itemLikesCountView.setText(String.valueOf(item.getLikeCount()));
|
||||
itemLikesCountView.setText(
|
||||
Localization.shortCount(
|
||||
itemBuilder.getContext(),
|
||||
item.getLikeCount()));
|
||||
} else {
|
||||
itemLikesCountView.setText("-");
|
||||
}
|
||||
|
||||
@@ -2,13 +2,12 @@
|
||||
|
||||
package org.schabi.newpipe.ktx
|
||||
|
||||
import android.animation.Animator
|
||||
import android.animation.AnimatorListenerAdapter
|
||||
import android.animation.ArgbEvaluator
|
||||
import android.animation.ValueAnimator
|
||||
import android.util.Log
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.ColorInt
|
||||
import androidx.core.animation.addListener
|
||||
import androidx.interpolator.view.animation.FastOutSlowInInterpolator
|
||||
import org.schabi.newpipe.MainActivity
|
||||
|
||||
@@ -34,14 +33,6 @@ fun TextView.animateTextColor(duration: Long, @ColorInt colorStart: Int, @ColorI
|
||||
viewPropertyAnimator.interpolator = FastOutSlowInInterpolator()
|
||||
viewPropertyAnimator.duration = duration
|
||||
viewPropertyAnimator.addUpdateListener { setTextColor(it.animatedValue as Int) }
|
||||
viewPropertyAnimator.addListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationEnd(animation: Animator) {
|
||||
setTextColor(colorEnd)
|
||||
}
|
||||
|
||||
override fun onAnimationCancel(animation: Animator) {
|
||||
setTextColor(colorEnd)
|
||||
}
|
||||
})
|
||||
viewPropertyAnimator.addListener(onCancel = { setTextColor(colorEnd) }, onEnd = { setTextColor(colorEnd) })
|
||||
viewPropertyAnimator.start()
|
||||
}
|
||||
|
||||
@@ -58,10 +58,8 @@ tailrec fun Throwable?.hasCause(checkSubtypes: Boolean, vararg causesToCheck: Cl
|
||||
if (causeClass.isAssignableFrom(this.javaClass)) {
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
if (causeClass == this.javaClass) {
|
||||
return true
|
||||
}
|
||||
} else if (causeClass == this.javaClass) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.annotation.ColorInt
|
||||
import androidx.annotation.FloatRange
|
||||
import androidx.core.animation.addListener
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isInvisible
|
||||
@@ -106,15 +107,10 @@ fun View.animateBackgroundColor(duration: Long, @ColorInt colorStart: Int, @Colo
|
||||
viewPropertyAnimator.addUpdateListener { animation: ValueAnimator ->
|
||||
backgroundTintListCompat = ColorStateList(empty, intArrayOf(animation.animatedValue as Int))
|
||||
}
|
||||
viewPropertyAnimator.addListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationEnd(animation: Animator) {
|
||||
backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd))
|
||||
}
|
||||
|
||||
override fun onAnimationCancel(animation: Animator) {
|
||||
onAnimationEnd(animation)
|
||||
}
|
||||
})
|
||||
viewPropertyAnimator.addListener(
|
||||
onCancel = { backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) },
|
||||
onEnd = { backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) }
|
||||
)
|
||||
viewPropertyAnimator.start()
|
||||
}
|
||||
|
||||
@@ -134,17 +130,16 @@ fun View.animateHeight(duration: Long, targetHeight: Int): ValueAnimator {
|
||||
layoutParams.height = value.toInt()
|
||||
requestLayout()
|
||||
}
|
||||
animator.addListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationEnd(animation: Animator) {
|
||||
animator.addListener(
|
||||
onCancel = {
|
||||
layoutParams.height = targetHeight
|
||||
requestLayout()
|
||||
},
|
||||
onEnd = {
|
||||
layoutParams.height = targetHeight
|
||||
requestLayout()
|
||||
}
|
||||
|
||||
override fun onAnimationCancel(animation: Animator) {
|
||||
layoutParams.height = targetHeight
|
||||
requestLayout()
|
||||
}
|
||||
})
|
||||
)
|
||||
animator.start()
|
||||
return animator
|
||||
}
|
||||
|
||||
@@ -126,8 +126,19 @@ public class LocalItemListAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
|
||||
public void removeItem(final LocalItem data) {
|
||||
final int index = localItems.indexOf(data);
|
||||
localItems.remove(index);
|
||||
notifyItemRemoved(index + (header != null ? 1 : 0));
|
||||
if (index != -1) {
|
||||
localItems.remove(index);
|
||||
notifyItemRemoved(index + (header != null ? 1 : 0));
|
||||
} else {
|
||||
// this happens when
|
||||
// 1) removeItem is called on infoItemDuplicate as in showStreamItemDialog of
|
||||
// LocalPlaylistFragment in this case need to implement delete object by it's duplicate
|
||||
|
||||
// OR
|
||||
|
||||
// 2)data not in itemList and UI is still not updated so notifyDataSetChanged()
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean swapItems(final int fromAdapterPosition, final int toAdapterPosition) {
|
||||
|
||||
@@ -53,6 +53,8 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty;
|
||||
|
||||
public class StatisticsPlaylistFragment
|
||||
extends BaseLocalListFragment<List<StreamStatisticsEntry>, Void> {
|
||||
private final CompositeDisposable disposables = new CompositeDisposable();
|
||||
@@ -356,9 +358,15 @@ public class StatisticsPlaylistFragment
|
||||
StreamDialogEntry.share
|
||||
));
|
||||
}
|
||||
entries.add(StreamDialogEntry.open_in_browser);
|
||||
if (KoreUtil.shouldShowPlayWithKodi(context, infoItem.getServiceId())) {
|
||||
entries.add(StreamDialogEntry.play_with_kodi);
|
||||
}
|
||||
|
||||
if (!isNullOrEmpty(infoItem.getUploaderUrl())) {
|
||||
entries.add(StreamDialogEntry.show_channel_details);
|
||||
}
|
||||
|
||||
StreamDialogEntry.setEnabledEntries(entries);
|
||||
|
||||
StreamDialogEntry.start_here_on_background.setCustomAction((fragment, infoItemDuplicate) ->
|
||||
|
||||
@@ -66,6 +66,7 @@ import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject;
|
||||
|
||||
import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty;
|
||||
import static org.schabi.newpipe.ktx.ViewUtils.animate;
|
||||
|
||||
public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistStreamEntry>, Void> {
|
||||
@@ -768,9 +769,15 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
StreamDialogEntry.share
|
||||
));
|
||||
}
|
||||
entries.add(StreamDialogEntry.open_in_browser);
|
||||
if (KoreUtil.shouldShowPlayWithKodi(context, infoItem.getServiceId())) {
|
||||
entries.add(StreamDialogEntry.play_with_kodi);
|
||||
}
|
||||
|
||||
if (!isNullOrEmpty(infoItem.getUploaderUrl())) {
|
||||
entries.add(StreamDialogEntry.show_channel_details);
|
||||
}
|
||||
|
||||
StreamDialogEntry.setEnabledEntries(entries);
|
||||
|
||||
StreamDialogEntry.start_here_on_background.setCustomAction((fragment, infoItemDuplicate) ->
|
||||
|
||||
@@ -40,7 +40,7 @@ public class ImportConfirmationDialog extends DialogFragment {
|
||||
@Override
|
||||
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
|
||||
assureCorrectAppLanguage(getContext());
|
||||
return new AlertDialog.Builder(getContext())
|
||||
return new AlertDialog.Builder(requireContext())
|
||||
.setMessage(R.string.import_network_expensive_warning)
|
||||
.setCancelable(true)
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
|
||||
@@ -208,7 +208,8 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
|
||||
if (data != null && data.data != null && resultCode == Activity.RESULT_OK) {
|
||||
if (requestCode == REQUEST_EXPORT_CODE) {
|
||||
val exportFile = Utils.getFileForUri(data.data!!)
|
||||
if (!exportFile.parentFile.canWrite() || !exportFile.parentFile.canRead()) {
|
||||
val parentFile = exportFile.parentFile!!
|
||||
if (!parentFile.canWrite() || !parentFile.canRead()) {
|
||||
Toast.makeText(activity, R.string.invalid_directory, Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
activity.startService(
|
||||
@@ -293,12 +294,16 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
|
||||
}
|
||||
|
||||
private fun showLongTapDialog(selectedItem: ChannelInfoItem) {
|
||||
val commands = arrayOf(getString(R.string.share), getString(R.string.unsubscribe))
|
||||
val commands = arrayOf(
|
||||
getString(R.string.share), getString(R.string.open_in_browser),
|
||||
getString(R.string.unsubscribe)
|
||||
)
|
||||
|
||||
val actions = DialogInterface.OnClickListener { _, i ->
|
||||
when (i) {
|
||||
0 -> ShareUtils.shareText(requireContext(), selectedItem.name, selectedItem.url)
|
||||
1 -> deleteChannel(selectedItem)
|
||||
1 -> ShareUtils.openUrlInBrowser(requireContext(), selectedItem.url)
|
||||
2 -> deleteChannel(selectedItem)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.view.isGone
|
||||
@@ -127,7 +128,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
|
||||
// KitKat doesn't apply container's theme to <include> content
|
||||
val contrastColor = ColorStateList.valueOf(resources.getColor(R.color.contrastColor))
|
||||
val contrastColor = ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.contrastColor))
|
||||
searchLayoutBinding.toolbarSearchEditText.setTextColor(contrastColor)
|
||||
searchLayoutBinding.toolbarSearchEditText.setHintTextColor(contrastColor.withAlpha(128))
|
||||
ImageViewCompat.setImageTintList(searchLayoutBinding.toolbarSearchClearIcon, contrastColor)
|
||||
@@ -385,7 +386,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
|
||||
|
||||
private fun setupIconPicker() {
|
||||
val groupAdapter = GroupAdapter<GroupieViewHolder>()
|
||||
groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(requireContext(), it) })
|
||||
groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(it) })
|
||||
|
||||
feedGroupCreateBinding.iconSelector.apply {
|
||||
layoutManager = GridLayoutManager(requireContext(), 7, RecyclerView.VERTICAL, false)
|
||||
|
||||
@@ -15,7 +15,7 @@ class HeaderItem(
|
||||
override fun bind(viewBinding: HeaderItemBinding, position: Int) {
|
||||
viewBinding.headerTitle.text = title
|
||||
|
||||
val listener: OnClickListener? = if (onClickListener != null) OnClickListener { onClickListener.invoke() } else null
|
||||
val listener = onClickListener?.let { OnClickListener { onClickListener.invoke() } }
|
||||
viewBinding.root.setOnClickListener(listener)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.schabi.newpipe.local.subscription.item
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import androidx.annotation.DrawableRes
|
||||
import com.xwray.groupie.viewbinding.BindableItem
|
||||
@@ -9,7 +8,6 @@ import org.schabi.newpipe.databinding.PickerIconItemBinding
|
||||
import org.schabi.newpipe.local.subscription.FeedGroupIcon
|
||||
|
||||
class PickerIconItem(
|
||||
context: Context,
|
||||
val icon: FeedGroupIcon
|
||||
) : BindableItem<PickerIconItemBinding>() {
|
||||
@DrawableRes
|
||||
|
||||
@@ -15,6 +15,7 @@ import android.view.ViewGroup;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.SeekBar;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
@@ -456,6 +457,7 @@ public final class PlayQueueActivity extends AppCompatActivity
|
||||
final boolean playbackSkipSilence) {
|
||||
if (player != null) {
|
||||
player.setPlaybackParameters(playbackTempo, playbackPitch, playbackSkipSilence);
|
||||
onPlaybackParameterChanged(player.getPlaybackParameters());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -639,7 +641,7 @@ public final class PlayQueueActivity extends AppCompatActivity
|
||||
queueControlBinding.controlShuffle.setImageAlpha(shuffleAlpha);
|
||||
}
|
||||
|
||||
private void onPlaybackParameterChanged(final PlaybackParameters parameters) {
|
||||
private void onPlaybackParameterChanged(@Nullable final PlaybackParameters parameters) {
|
||||
if (parameters != null) {
|
||||
if (menu != null && player != null) {
|
||||
final MenuItem item = menu.findItem(R.id.action_playback_speed);
|
||||
|
||||
@@ -91,6 +91,7 @@ import org.schabi.newpipe.databinding.PlayerPopupCloseOverlayBinding;
|
||||
import org.schabi.newpipe.extractor.MediaFormat;
|
||||
import org.schabi.newpipe.extractor.stream.StreamInfo;
|
||||
import org.schabi.newpipe.extractor.stream.StreamSegment;
|
||||
import org.schabi.newpipe.extractor.stream.StreamType;
|
||||
import org.schabi.newpipe.extractor.stream.VideoStream;
|
||||
import org.schabi.newpipe.fragments.OnScrollBelowItemsListener;
|
||||
import org.schabi.newpipe.fragments.detail.VideoDetailFragment;
|
||||
@@ -495,9 +496,13 @@ public final class Player implements
|
||||
simpleExoPlayer.addTextOutput(binding.subtitleView);
|
||||
|
||||
// enable media tunneling
|
||||
if (DeviceUtils.shouldSupportMediaTunneling()) {
|
||||
trackSelector.setParameters(
|
||||
trackSelector.buildUponParameters().setTunnelingEnabled(true));
|
||||
if (DEBUG && PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getBoolean(context.getString(R.string.disable_media_tunneling_key), false)) {
|
||||
Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] "
|
||||
+ "media tunneling disabled in debug preferences");
|
||||
} else if (DeviceUtils.shouldSupportMediaTunneling()) {
|
||||
trackSelector.setParameters(trackSelector.buildUponParameters()
|
||||
.setTunnelingAudioSessionId(C.generateAudioSessionIdV21(context)));
|
||||
} else if (DEBUG) {
|
||||
Log.d(TAG, "[" + Util.DEVICE_DEBUG_INFO + "] does not support media tunneling");
|
||||
}
|
||||
@@ -714,7 +719,12 @@ public final class Player implements
|
||||
// Android TV: without it focus will frame the whole player
|
||||
binding.playPauseButton.requestFocus();
|
||||
|
||||
playPause();
|
||||
// Note: This is for automatically playing (when "Resume playback" is off), see #6179
|
||||
if (getPlayWhenReady()) {
|
||||
play();
|
||||
} else {
|
||||
pause();
|
||||
}
|
||||
}
|
||||
NavigationHelper.sendPlayerStartedEvent(context);
|
||||
}
|
||||
@@ -1623,9 +1633,22 @@ public final class Player implements
|
||||
if (exoPlayerIsNull()) {
|
||||
return;
|
||||
}
|
||||
// Use duration of currentItem for non-live streams,
|
||||
// because HLS streams are fragmented
|
||||
// and thus the whole duration is not available to the player
|
||||
// TODO: revert #6307 when introducing proper HLS support
|
||||
final int duration;
|
||||
if (currentItem != null
|
||||
&& currentItem.getStreamType() != StreamType.AUDIO_LIVE_STREAM
|
||||
&& currentItem.getStreamType() != StreamType.LIVE_STREAM) {
|
||||
// convert seconds to milliseconds
|
||||
duration = (int) (currentItem.getDuration() * 1000);
|
||||
} else {
|
||||
duration = (int) simpleExoPlayer.getDuration();
|
||||
}
|
||||
onUpdateProgress(
|
||||
Math.max((int) simpleExoPlayer.getCurrentPosition(), 0),
|
||||
(int) simpleExoPlayer.getDuration(),
|
||||
duration,
|
||||
simpleExoPlayer.getBufferedPercentage()
|
||||
);
|
||||
}
|
||||
@@ -3006,6 +3029,7 @@ public final class Player implements
|
||||
buildSegments();
|
||||
|
||||
binding.itemsListHeaderTitle.setVisibility(View.VISIBLE);
|
||||
binding.itemsListHeaderDuration.setVisibility(View.GONE);
|
||||
binding.shuffleButton.setVisibility(View.GONE);
|
||||
binding.repeatButton.setVisibility(View.GONE);
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An
|
||||
//////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
@Override
|
||||
public void onAudioSessionIdChanged(final EventTime eventTime, final int audioSessionId) {
|
||||
public void onAudioSessionId(final EventTime eventTime, final int audioSessionId) {
|
||||
if (!PlayerHelper.isUsingDSP()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.google.android.exoplayer2.DefaultLoadControl;
|
||||
import com.google.android.exoplayer2.LoadControl;
|
||||
import com.google.android.exoplayer2.Renderer;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.trackselection.ExoTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
|
||||
public class LoadController implements LoadControl {
|
||||
@@ -48,7 +48,7 @@ public class LoadController implements LoadControl {
|
||||
|
||||
@Override
|
||||
public void onTracksSelected(final Renderer[] renderers, final TrackGroupArray trackGroups,
|
||||
final ExoTrackSelection[] trackSelections) {
|
||||
final TrackSelectionArray trackSelections) {
|
||||
internalLoadControl.onTracksSelected(renderers, trackGroups, trackSelections);
|
||||
}
|
||||
|
||||
@@ -92,12 +92,11 @@ public class LoadController implements LoadControl {
|
||||
|
||||
@Override
|
||||
public boolean shouldStartPlayback(final long bufferedDurationUs, final float playbackSpeed,
|
||||
final boolean rebuffering, final long targetLiveOffsetUs) {
|
||||
final boolean rebuffering) {
|
||||
final boolean isInitialPlaybackBufferFilled
|
||||
= bufferedDurationUs >= this.initialPlaybackBufferUs * playbackSpeed;
|
||||
final boolean isInternalStartingPlayback = internalLoadControl
|
||||
.shouldStartPlayback(bufferedDurationUs, playbackSpeed, rebuffering,
|
||||
targetLiveOffsetUs);
|
||||
.shouldStartPlayback(bufferedDurationUs, playbackSpeed, rebuffering);
|
||||
return isInitialPlaybackBufferFilled || isInternalStartingPlayback;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import com.google.android.exoplayer2.Player.RepeatMode;
|
||||
import com.google.android.exoplayer2.SeekParameters;
|
||||
import com.google.android.exoplayer2.text.CaptionStyleCompat;
|
||||
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.ExoTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout.ResizeMode;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
@@ -297,7 +297,7 @@ public final class PlayerHelper {
|
||||
}
|
||||
|
||||
public static long getPreferredFileSize() {
|
||||
return 512 * 1024L;
|
||||
return 2 * 1024 * 1024L; // ExoPlayer CacheDataSink.MIN_RECOMMENDED_FRAGMENT_SIZE
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -323,7 +323,7 @@ public final class PlayerHelper {
|
||||
return 60000;
|
||||
}
|
||||
|
||||
public static ExoTrackSelection.Factory getQualitySelector() {
|
||||
public static TrackSelection.Factory getQualitySelector() {
|
||||
return new AdaptiveTrackSelection.Factory(
|
||||
1000,
|
||||
AdaptiveTrackSelection.DEFAULT_MAX_DURATION_FOR_QUALITY_DECREASE_MS,
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.google.android.exoplayer2.RendererCapabilities.Capabilities;
|
||||
import com.google.android.exoplayer2.source.TrackGroup;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.ExoTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
|
||||
/**
|
||||
@@ -28,7 +28,7 @@ public class CustomTrackSelector extends DefaultTrackSelector {
|
||||
private String preferredTextLanguage;
|
||||
|
||||
public CustomTrackSelector(final Context context,
|
||||
final ExoTrackSelection.Factory adaptiveTrackSelectionFactory) {
|
||||
final TrackSelection.Factory adaptiveTrackSelectionFactory) {
|
||||
super(context, adaptiveTrackSelectionFactory);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class CustomTrackSelector extends DefaultTrackSelector {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
protected Pair<ExoTrackSelection.Definition, TextTrackScore> selectTextTrack(
|
||||
protected Pair<TrackSelection.Definition, TextTrackScore> selectTextTrack(
|
||||
final TrackGroupArray groups,
|
||||
@NonNull final int[][] formatSupport,
|
||||
@NonNull final Parameters params,
|
||||
@@ -86,7 +86,7 @@ public class CustomTrackSelector extends DefaultTrackSelector {
|
||||
}
|
||||
}
|
||||
return selectedGroup == null ? null
|
||||
: Pair.create(new ExoTrackSelection.Definition(selectedGroup, selectedTrackIndex),
|
||||
: Pair.create(new TrackSelection.Definition(selectedGroup, selectedTrackIndex),
|
||||
Assertions.checkNotNull(selectedTrackScore));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,29 +40,25 @@ import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
*/
|
||||
public abstract class PlayQueue implements Serializable {
|
||||
public static final boolean DEBUG = MainActivity.DEBUG;
|
||||
|
||||
private ArrayList<PlayQueueItem> backup;
|
||||
private ArrayList<PlayQueueItem> streams;
|
||||
|
||||
@NonNull
|
||||
private final AtomicInteger queueIndex;
|
||||
private final ArrayList<PlayQueueItem> history;
|
||||
private final List<PlayQueueItem> history = new ArrayList<>();
|
||||
|
||||
private List<PlayQueueItem> backup;
|
||||
private List<PlayQueueItem> streams;
|
||||
|
||||
private transient BehaviorSubject<PlayQueueEvent> eventBroadcast;
|
||||
private transient Flowable<PlayQueueEvent> broadcastReceiver;
|
||||
|
||||
private transient boolean disposed;
|
||||
private transient boolean disposed = false;
|
||||
|
||||
PlayQueue(final int index, final List<PlayQueueItem> startWith) {
|
||||
streams = new ArrayList<>();
|
||||
streams.addAll(startWith);
|
||||
history = new ArrayList<>();
|
||||
streams = new ArrayList<>(startWith);
|
||||
|
||||
if (streams.size() > index) {
|
||||
history.add(streams.get(index));
|
||||
}
|
||||
|
||||
queueIndex = new AtomicInteger(index);
|
||||
disposed = false;
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////////////////
|
||||
@@ -137,18 +133,36 @@ public abstract class PlayQueue implements Serializable {
|
||||
public synchronized void setIndex(final int index) {
|
||||
final int oldIndex = getIndex();
|
||||
|
||||
int newIndex = index;
|
||||
final int newIndex;
|
||||
|
||||
if (index < 0) {
|
||||
newIndex = 0;
|
||||
} else if (index < streams.size()) {
|
||||
// Regular assignment for index in bounds
|
||||
newIndex = index;
|
||||
} else if (streams.isEmpty()) {
|
||||
// Out of bounds from here on
|
||||
// Need to check if stream is empty to prevent arithmetic error and negative index
|
||||
newIndex = 0;
|
||||
} else if (isComplete()) {
|
||||
// Circular indexing
|
||||
newIndex = index % streams.size();
|
||||
} else {
|
||||
// Index of last element
|
||||
newIndex = streams.size() - 1;
|
||||
}
|
||||
if (index >= streams.size()) {
|
||||
newIndex = isComplete() ? index % streams.size() : streams.size() - 1;
|
||||
}
|
||||
|
||||
queueIndex.set(newIndex);
|
||||
|
||||
if (oldIndex != newIndex) {
|
||||
history.add(streams.get(newIndex));
|
||||
}
|
||||
|
||||
queueIndex.set(newIndex);
|
||||
/*
|
||||
TODO: Documentation states that a SelectEvent will only be emitted if the new index is...
|
||||
different from the old one but this is emitted regardless? Not sure what this what it does
|
||||
exactly so I won't touch it
|
||||
*/
|
||||
broadcast(new SelectEvent(oldIndex, newIndex));
|
||||
}
|
||||
|
||||
@@ -180,8 +194,6 @@ public abstract class PlayQueue implements Serializable {
|
||||
* @return the index of the given item
|
||||
*/
|
||||
public int indexOf(@NonNull final PlayQueueItem item) {
|
||||
// referential equality, can't think of a better way to do this
|
||||
// todo: better than this
|
||||
return streams.indexOf(item);
|
||||
}
|
||||
|
||||
@@ -410,34 +422,42 @@ public abstract class PlayQueue implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Shuffles the current play queue.
|
||||
* Shuffles the current play queue
|
||||
* <p>
|
||||
* This method first backs up the existing play queue and item being played.
|
||||
* Then a newly shuffled play queue will be generated along with currently
|
||||
* playing item placed at the beginning of the queue.
|
||||
* This method first backs up the existing play queue and item being played. Then a newly
|
||||
* shuffled play queue will be generated along with currently playing item placed at the
|
||||
* beginning of the queue. This item will also be added to the history.
|
||||
* </p>
|
||||
* <p>
|
||||
* Will emit a {@link ReorderEvent} in any context.
|
||||
* Will emit a {@link ReorderEvent} if shuffled.
|
||||
* </p>
|
||||
*
|
||||
* @implNote Does nothing if the queue has a size <= 2 (the currently playing video must stay on
|
||||
* top, so shuffling a size-2 list does nothing)
|
||||
*/
|
||||
public synchronized void shuffle() {
|
||||
// Can't shuffle an list that's empty or only has one element
|
||||
if (size() <= 2) {
|
||||
return;
|
||||
}
|
||||
// Create a backup if it doesn't already exist
|
||||
if (backup == null) {
|
||||
backup = new ArrayList<>(streams);
|
||||
}
|
||||
final int originIndex = getIndex();
|
||||
final PlayQueueItem current = getItem();
|
||||
|
||||
final int originalIndex = getIndex();
|
||||
final PlayQueueItem currentItem = getItem();
|
||||
|
||||
Collections.shuffle(streams);
|
||||
|
||||
final int newIndex = streams.indexOf(current);
|
||||
if (newIndex != -1) {
|
||||
streams.add(0, streams.remove(newIndex));
|
||||
}
|
||||
// Move currentItem to the head of the queue
|
||||
streams.remove(currentItem);
|
||||
streams.add(0, currentItem);
|
||||
queueIndex.set(0);
|
||||
if (streams.size() > 0) {
|
||||
history.add(streams.get(0));
|
||||
}
|
||||
|
||||
broadcast(new ReorderEvent(originIndex, queueIndex.get()));
|
||||
history.add(currentItem);
|
||||
|
||||
broadcast(new ReorderEvent(originalIndex, 0));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -457,7 +477,6 @@ public abstract class PlayQueue implements Serializable {
|
||||
final int originIndex = getIndex();
|
||||
final PlayQueueItem current = getItem();
|
||||
|
||||
streams.clear();
|
||||
streams = backup;
|
||||
backup = null;
|
||||
|
||||
@@ -500,22 +519,19 @@ public abstract class PlayQueue implements Serializable {
|
||||
* we don't have to do anything with new queue.
|
||||
* This method also gives a chance to track history of items in a queue in
|
||||
* VideoDetailFragment without duplicating items from two identical queues
|
||||
* */
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(@Nullable final Object obj) {
|
||||
if (!(obj instanceof PlayQueue)
|
||||
|| getStreams().size() != ((PlayQueue) obj).getStreams().size()) {
|
||||
if (!(obj instanceof PlayQueue)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final PlayQueue other = (PlayQueue) obj;
|
||||
for (int i = 0; i < getStreams().size(); i++) {
|
||||
if (!getItem(i).getUrl().equals(other.getItem(i).getUrl())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return streams.equals(other.streams);
|
||||
}
|
||||
|
||||
return true;
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return streams.hashCode();
|
||||
}
|
||||
|
||||
public boolean isDisposed() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.schabi.newpipe.settings;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -25,6 +26,7 @@ import org.schabi.newpipe.error.ReCaptchaActivity;
|
||||
import org.schabi.newpipe.extractor.NewPipe;
|
||||
import org.schabi.newpipe.extractor.localization.ContentCountry;
|
||||
import org.schabi.newpipe.extractor.localization.Localization;
|
||||
import org.schabi.newpipe.util.FilePathUtils;
|
||||
import org.schabi.newpipe.util.FilePickerActivityHelper;
|
||||
import org.schabi.newpipe.util.ZipHelper;
|
||||
|
||||
@@ -41,6 +43,8 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
|
||||
private ContentSettingsManager manager;
|
||||
|
||||
private String importExportDataPathKey;
|
||||
|
||||
private String thumbnailLoadToggleKey;
|
||||
private String youtubeRestrictedModeEnabledKey;
|
||||
|
||||
@@ -56,6 +60,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
|
||||
addPreferencesFromResource(R.xml.content_settings);
|
||||
|
||||
importExportDataPathKey = getString(R.string.import_export_data_path);
|
||||
final Preference importDataPreference = findPreference(getString(R.string.import_data));
|
||||
importDataPreference.setOnPreferenceClickListener(p -> {
|
||||
final Intent i = new Intent(getActivity(), FilePickerActivityHelper.class)
|
||||
@@ -63,6 +68,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
.putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, false)
|
||||
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
|
||||
FilePickerActivityHelper.MODE_FILE);
|
||||
final String path = defaultPreferences.getString(importExportDataPathKey, "");
|
||||
if (FilePathUtils.isValidDirectoryPath(path)) {
|
||||
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
|
||||
}
|
||||
startActivityForResult(i, REQUEST_IMPORT_PATH);
|
||||
return true;
|
||||
});
|
||||
@@ -74,6 +83,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
.putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, true)
|
||||
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
|
||||
FilePickerActivityHelper.MODE_DIR);
|
||||
final String path = defaultPreferences.getString(importExportDataPathKey, "");
|
||||
if (FilePathUtils.isValidDirectoryPath(path)) {
|
||||
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
|
||||
}
|
||||
startActivityForResult(i, REQUEST_EXPORT_PATH);
|
||||
return true;
|
||||
});
|
||||
@@ -164,15 +177,15 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
|
||||
if ((requestCode == REQUEST_IMPORT_PATH || requestCode == REQUEST_EXPORT_PATH)
|
||||
&& resultCode == Activity.RESULT_OK && data.getData() != null) {
|
||||
final String path = Utils.getFileForUri(data.getData()).getAbsolutePath();
|
||||
final File file = Utils.getFileForUri(data.getData());
|
||||
|
||||
if (requestCode == REQUEST_EXPORT_PATH) {
|
||||
final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US);
|
||||
exportDatabase(path + "/NewPipeData-" + sdf.format(new Date()) + ".zip");
|
||||
exportDatabase(file);
|
||||
} else {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
|
||||
builder.setMessage(R.string.override_current_data)
|
||||
.setPositiveButton(getString(R.string.finish),
|
||||
(d, id) -> importDatabase(path))
|
||||
(d, id) -> importDatabase(file))
|
||||
.setNegativeButton(android.R.string.cancel,
|
||||
(d, id) -> d.cancel());
|
||||
builder.create().show();
|
||||
@@ -180,26 +193,34 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
}
|
||||
}
|
||||
|
||||
private void exportDatabase(final String path) {
|
||||
private void exportDatabase(@NonNull final File folder) {
|
||||
try {
|
||||
final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US);
|
||||
final String path = folder.getAbsolutePath() + "/NewPipeData-"
|
||||
+ sdf.format(new Date()) + ".zip";
|
||||
|
||||
//checkpoint before export
|
||||
NewPipeDatabase.checkpoint();
|
||||
|
||||
final SharedPreferences preferences = PreferenceManager
|
||||
.getDefaultSharedPreferences(requireContext());
|
||||
.getDefaultSharedPreferences(requireContext());
|
||||
manager.exportDatabase(preferences, path);
|
||||
|
||||
setImportExportDataPath(folder, false);
|
||||
|
||||
Toast.makeText(getContext(), R.string.export_complete_toast, Toast.LENGTH_SHORT).show();
|
||||
} catch (final Exception e) {
|
||||
ErrorActivity.reportUiErrorInSnackbar(this, "Exporting database", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void importDatabase(final String filePath) {
|
||||
private void importDatabase(@NonNull final File file) {
|
||||
final String filePath = file.getAbsolutePath();
|
||||
|
||||
// check if file is supported
|
||||
if (!ZipHelper.isValidZipFile(filePath)) {
|
||||
Toast.makeText(getContext(), R.string.no_valid_zip_file, Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
.show();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -210,7 +231,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
|
||||
if (!manager.extractDb(filePath)) {
|
||||
Toast.makeText(getContext(), R.string.could_not_import_all_files, Toast.LENGTH_LONG)
|
||||
.show();
|
||||
.show();
|
||||
}
|
||||
|
||||
//If settings file exist, ask if it should be imported.
|
||||
@@ -220,23 +241,58 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||
|
||||
alert.setNegativeButton(android.R.string.no, (dialog, which) -> {
|
||||
dialog.dismiss();
|
||||
// restart app to properly load db
|
||||
System.exit(0);
|
||||
finishImport(file);
|
||||
});
|
||||
alert.setPositiveButton(getString(R.string.finish), (dialog, which) -> {
|
||||
dialog.dismiss();
|
||||
manager.loadSharedPreferences(PreferenceManager
|
||||
.getDefaultSharedPreferences(requireContext()));
|
||||
// restart app to properly load db
|
||||
System.exit(0);
|
||||
.getDefaultSharedPreferences(requireContext()));
|
||||
finishImport(file);
|
||||
});
|
||||
alert.show();
|
||||
} else {
|
||||
// restart app to properly load db
|
||||
System.exit(0);
|
||||
finishImport(file);
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
ErrorActivity.reportUiErrorInSnackbar(this, "Importing database", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save import path and restart system.
|
||||
*
|
||||
* @param file The file of the created backup
|
||||
*/
|
||||
private void finishImport(@NonNull final File file) {
|
||||
if (file.getParentFile() != null) {
|
||||
//immediately because app is about to exit
|
||||
setImportExportDataPath(file.getParentFile(), true);
|
||||
}
|
||||
|
||||
// restart app to properly load db
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
@SuppressLint("ApplySharedPref")
|
||||
private void setImportExportDataPath(@NonNull final File file, final boolean immediately) {
|
||||
final String directoryPath;
|
||||
if (file.isDirectory()) {
|
||||
directoryPath = file.getAbsolutePath();
|
||||
} else {
|
||||
final File parentFile = file.getParentFile();
|
||||
if (parentFile != null) {
|
||||
directoryPath = parentFile.getAbsolutePath();
|
||||
} else {
|
||||
directoryPath = "";
|
||||
}
|
||||
}
|
||||
final SharedPreferences.Editor editor = defaultPreferences
|
||||
.edit()
|
||||
.putString(importExportDataPathKey, directoryPath);
|
||||
if (immediately) {
|
||||
editor.commit();
|
||||
} else {
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -712,7 +712,7 @@ public class WebMWriter implements Closeable {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// TODO: in the adove code, find and select the shortest track for the desired kind
|
||||
// TODO: in the above code, find and select the shortest track for the desired kind
|
||||
for (i = 0; i < infoTracks.length; i++) {
|
||||
if (kind == infoTracks[i].trackType) {
|
||||
return i;
|
||||
|
||||
22
app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
Normal file
22
app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package org.schabi.newpipe.util;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public final class FilePathUtils {
|
||||
private FilePathUtils() { }
|
||||
|
||||
|
||||
/**
|
||||
* Check that the path is a valid directory path and it exists.
|
||||
*
|
||||
* @param path full path of directory,
|
||||
* @return is path valid or not
|
||||
*/
|
||||
public static boolean isValidDirectoryPath(final String path) {
|
||||
if (path == null || path.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
final File file = new File(path);
|
||||
return file.exists() && file.isDirectory();
|
||||
}
|
||||
}
|
||||
@@ -596,6 +596,7 @@ public final class NavigationHelper {
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setPackage(context.getString(R.string.kore_package));
|
||||
intent.setData(videoURL);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,8 @@ public enum StreamDialogEntry {
|
||||
|
||||
show_channel_details(R.string.show_channel_details, (fragment, item) ->
|
||||
// For some reason `getParentFragmentManager()` doesn't work, but this does.
|
||||
NavigationHelper.openChannelFragment(fragment.getActivity().getSupportFragmentManager(),
|
||||
NavigationHelper.openChannelFragment(
|
||||
fragment.requireActivity().getSupportFragmentManager(),
|
||||
item.getServiceId(), item.getUploaderUrl(), item.getUploaderName())
|
||||
),
|
||||
|
||||
@@ -80,14 +81,17 @@ public enum StreamDialogEntry {
|
||||
play_with_kodi(R.string.play_with_kodi_title, (fragment, item) -> {
|
||||
final Uri videoUrl = Uri.parse(item.getUrl());
|
||||
try {
|
||||
NavigationHelper.playWithKore(fragment.getContext(), videoUrl);
|
||||
NavigationHelper.playWithKore(fragment.requireContext(), videoUrl);
|
||||
} catch (final Exception e) {
|
||||
KoreUtil.showInstallKoreDialog(fragment.getActivity());
|
||||
}
|
||||
}),
|
||||
|
||||
share(R.string.share, (fragment, item) ->
|
||||
ShareUtils.shareText(fragment.getContext(), item.getName(), item.getUrl()));
|
||||
ShareUtils.shareText(fragment.getContext(), item.getName(), item.getUrl())),
|
||||
|
||||
open_in_browser(R.string.open_in_browser, (fragment, item) ->
|
||||
ShareUtils.openUrlInBrowser(fragment.getContext(), item.getUrl()));
|
||||
|
||||
|
||||
///////////////
|
||||
|
||||
@@ -275,7 +275,7 @@ public class StoredFileHelper implements Serializable {
|
||||
if (!docTree.canRead() || !docTree.canWrite()) return false;
|
||||
try {
|
||||
docFile = createSAF(context, srcType, srcName);
|
||||
if (docFile == null || docFile.getName() == null) return false;
|
||||
if (docFile.getName() == null) return false;
|
||||
result = true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
@@ -354,7 +354,9 @@ public class StoredFileHelper implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
private DocumentFile createSAF(@Nullable Context context, String mime, String filename) throws IOException {
|
||||
@NonNull
|
||||
private DocumentFile createSAF(@Nullable Context context, String mime, String filename)
|
||||
throws IOException {
|
||||
DocumentFile res = StoredDirectoryHelper.findFileSAFHelper(context, docTree, filename);
|
||||
|
||||
if (res != null && res.exists() && res.isDirectory()) {
|
||||
|
||||
@@ -55,6 +55,14 @@ public class Deleter {
|
||||
}
|
||||
|
||||
public void append(Mission item) {
|
||||
|
||||
/* If a mission is removed from the list while the Snackbar for a previously
|
||||
* removed item is still showing, commit the action for the previous item
|
||||
* immediately. This prevents Snackbars from stacking up in reverse order.
|
||||
*/
|
||||
mHandler.removeCallbacks(rCommit);
|
||||
commit();
|
||||
|
||||
mIterator.hide(item);
|
||||
items.add(0, item);
|
||||
|
||||
|
||||
10
app/src/main/res/drawable-night/ic_select_all.xml
Normal file
10
app/src/main/res/drawable-night/ic_select_all.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="#ffffff">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M3,5h2L5,3c-1.1,0 -2,0.9 -2,2zM3,13h2v-2L3,11v2zM7,21h2v-2L7,19v2zM3,9h2L5,7L3,7v2zM13,3h-2v2h2L13,3zM19,3v2h2c0,-1.1 -0.9,-2 -2,-2zM5,21v-2L3,19c0,1.1 0.9,2 2,2zM3,17h2v-2L3,15v2zM9,3L7,3v2h2L9,3zM11,21h2v-2h-2v2zM19,13h2v-2h-2v2zM19,21c1.1,0 2,-0.9 2,-2h-2v2zM19,9h2L21,7h-2v2zM19,17h2v-2h-2v2zM15,21h2v-2h-2v2zM15,5h2L17,3h-2v2zM7,17h10L17,7L7,7v10zM9,9h6v6L9,15L9,9z"/>
|
||||
</vector>
|
||||
10
app/src/main/res/drawable/ic_select_all.xml
Normal file
10
app/src/main/res/drawable/ic_select_all.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="#000000">
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M3,5h2L5,3c-1.1,0 -2,0.9 -2,2zM3,13h2v-2L3,11v2zM7,21h2v-2L7,19v2zM3,9h2L5,7L3,7v2zM13,3h-2v2h2L13,3zM19,3v2h2c0,-1.1 -0.9,-2 -2,-2zM5,21v-2L3,19c0,1.1 0.9,2 2,2zM3,17h2v-2L3,15v2zM9,3L7,3v2h2L9,3zM11,21h2v-2h-2v2zM19,13h2v-2h-2v2zM19,21c1.1,0 2,-0.9 2,-2h-2v2zM19,9h2L21,7h-2v2zM19,17h2v-2h-2v2zM15,21h2v-2h-2v2zM15,5h2L17,3h-2v2zM7,17h10L17,7L7,7v10zM9,9h6v6L9,15L9,9z"/>
|
||||
</vector>
|
||||
9
app/src/main/res/layout/chip.xml
Normal file
9
app/src/main/res/layout/chip.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- This is used to inflate a chip with a Material theme, otherwise it would crash -->
|
||||
<!-- Theme.MaterialComponents.DayNight is used to guarantee auto day/night switching -->
|
||||
<com.google.android.material.chip.Chip xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/Theme.MaterialComponents.DayNight.Bridge"
|
||||
tools:text="I'm a correctly themed chip!" />
|
||||
@@ -2,14 +2,15 @@
|
||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:scrollbars="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:scrollbars="vertical">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/detail_upload_date_view"
|
||||
@@ -17,32 +18,83 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textSize="@dimen/video_item_detail_upload_date_text_size"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintEnd_toStartOf="@+id/detail_select_description_button"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Published on Oct 2, 2009" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/detail_select_description_button"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/description_select_enable"
|
||||
android:focusable="true"
|
||||
android:padding="5dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/barrier"
|
||||
app:layout_constraintDimensionRatio="1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_select_all" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierAllowsGoneWidgets="false"
|
||||
app:barrierDirection="top"
|
||||
app:constraint_referenced_ids="detail_description_note_view,detail_description_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/detail_description_view"
|
||||
android:layout_width="match_parent"
|
||||
android:id="@+id/detail_description_note_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="@dimen/video_item_detail_description_text_size"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:gravity="center"
|
||||
android:text="@string/description_select_note"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="italic"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/detail_upload_date_view"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/detail_description_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textSize="@dimen/video_item_detail_description_text_size"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/detail_description_note_view"
|
||||
tools:text="Description Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a ultricies ex. Integer sit amet sodales risus. Duis non mi et urna pretium bibendum." />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/detail_metadata_layout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/detail_description_view" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
42
app/src/main/res/layout/item_metadata.xml
Normal file
42
app/src/main/res/layout/item_metadata.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.30" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/metadata_type_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical|end"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/guideline"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Licence" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/metadata_content_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/guideline"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Description Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a ultricies ex. Integer sit amet sodales risus. Duis non mi et urna pretium bibendum." />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
46
app/src/main/res/layout/item_metadata_tags.xml
Normal file
46
app/src/main/res/layout/item_metadata_tags.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.30" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical|end"
|
||||
android:text="@string/metadata_tags"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/guideline"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<HorizontalScrollView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="-8dp"
|
||||
android:layout_marginBottom="-8dp"
|
||||
android:fadeScrollbars="false"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/guideline"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/metadata_tags_chips"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Chip"
|
||||
app:singleLine="true" />
|
||||
</HorizontalScrollView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -34,11 +34,12 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/channel_item_description_to_details_margin"
|
||||
android:ellipsize="end"
|
||||
android:lines="2"
|
||||
android:maxLines="2"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textSize="@dimen/video_item_search_uploader_text_size"
|
||||
app:layout_constraintBottom_toTopOf="@+id/itemAdditionalDetails"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/itemTitleView"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/itemTitleView"
|
||||
app:layout_constraintTop_toBottomOf="@+id/itemTitleView"
|
||||
tools:text="Channel description, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blandit" />
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="@dimen/activity_horizontal_margin"
|
||||
android:paddingEnd="@dimen/activity_horizontal_margin"
|
||||
tools:context=".fragments.detail.VideoDetailFragment">
|
||||
|
||||
<TextView
|
||||
@@ -13,6 +15,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:fontFamily="sans-serif-condensed"
|
||||
android:text="@string/app_name"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
@@ -20,9 +23,10 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/mainBGSubtitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:gravity="center"
|
||||
android:text="@string/main_bg_subtitle"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
|
||||
@@ -55,8 +55,7 @@
|
||||
<string name="general_error">خطأ</string>
|
||||
<string name="parsing_error">تعذر تحليل الموقع</string>
|
||||
<string name="youtube_signature_deobfuscation_error">تعذر فك تشفير توقيع رابط الفيديو</string>
|
||||
<string name="main_bg_subtitle">اضغط\"بحث\" للبدء
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">اضغط على العدسة المكبرة للبدء.</string>
|
||||
<string name="subscribe_button_title">اشتراك</string>
|
||||
<string name="subscribed_button_title">مشترك</string>
|
||||
<string name="tab_main">الرئيسية</string>
|
||||
@@ -719,4 +718,22 @@
|
||||
<string name="auto_device_theme_title">تلقائي (سمة الجهاز)</string>
|
||||
<string name="night_theme_title">الثيم الليلي</string>
|
||||
<string name="show_channel_details">إظهار تفاصيل القناة</string>
|
||||
<string name="disable_media_tunneling_summary">تعطيل نفق الوسائط إذا واجهت شاشة سوداء أو التقطيع في تشغيل الفيديو</string>
|
||||
<string name="disable_media_tunneling_title">تعطيل نفق الوسائط</string>
|
||||
<string name="metadata_privacy_internal">داخلي</string>
|
||||
<string name="metadata_privacy_private">خاص</string>
|
||||
<string name="metadata_privacy_unlisted">غير مدرج</string>
|
||||
<string name="metadata_privacy_public">عامة</string>
|
||||
<string name="metadata_thumbnail_url">عنوان URL للصورة المصغرة</string>
|
||||
<string name="metadata_host">المضيف</string>
|
||||
<string name="metadata_support">الدعم</string>
|
||||
<string name="metadata_language">اللغة</string>
|
||||
<string name="metadata_age_limit">الحد العمري</string>
|
||||
<string name="metadata_privacy">الخصوصيّة</string>
|
||||
<string name="metadata_licence">الرخصة</string>
|
||||
<string name="metadata_tags">الفئة</string>
|
||||
<string name="metadata_category">الصنف</string>
|
||||
<string name="description_select_disable">تعطيل تحديد النص في الوصف</string>
|
||||
<string name="description_select_enable">تمكين تحديد نص في الوصف</string>
|
||||
<string name="description_select_note">يمكنك الآن تحديد نص داخل الوصف. لاحظ أن الصفحة قد تومض وقد لا تكون الروابط قابلة للنقر أثناء وضع التحديد.</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Başlamaq üçün \"Axtarış\" bölməsinə toxunun
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Başlamaq üçün \"Axtarış\" bölməsinə toxunun</string>
|
||||
<string name="view_count_text">%1$s baxış</string>
|
||||
<string name="upload_date_text">%1$s tarixində yayımlanıb</string>
|
||||
<string name="no_player_found">Axın pleyeri tapılmadı. \"VLC\" yüklənilsin\?</string>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<string name="parsing_error">Nun pudo analizase\'l sitiu web</string>
|
||||
<string name="live_streams_not_supported">Los fluxos en direuto entá nun se sofiten</string>
|
||||
<string name="could_not_get_stream">Nun pudo consiguise nengún fluxu</string>
|
||||
<string name="sorry_string">Buff... Esto nun debió asoceder.</string>
|
||||
<string name="sorry_string">Buff… Esto nun debió asoceder.</string>
|
||||
<string name="error_snackbar_message">Perdona mas asocedió daqué malo.</string>
|
||||
<string name="what_device_headline">Información:</string>
|
||||
<string name="error_details_headline">Detalles:</string>
|
||||
@@ -107,7 +107,7 @@
|
||||
<string name="tab_licenses">Llicencies</string>
|
||||
<string name="view_on_github">Ver en GitHub</string>
|
||||
<string name="app_license_title">Llicencia de NewPipe</string>
|
||||
<string name="contribution_encouragement">Si tienes idees, quies traducir, facer dalgún cambéu nel diseñu, acuriosar poco o muncho\'l códigu... Agradecemos l\'ayuda. ¡Cuanto más se faiga, meyor!</string>
|
||||
<string name="contribution_encouragement">Si tienes idees, quies traducir, facer dalgún cambéu nel diseñu, acuriosar poco o muncho\'l códigu… Agradecemos l\'ayuda. ¡Cuanto más se faiga, meyor!</string>
|
||||
<string name="read_full_license">Lleer</string>
|
||||
<string name="contribution_title">Collaboración</string>
|
||||
<string name="title_activity_history">Historial</string>
|
||||
@@ -646,6 +646,5 @@
|
||||
<string name="open_in_popup_mode">Abrir nel mou ventanu</string>
|
||||
<string name="install">Instalar</string>
|
||||
<string name="no_player_found">Nun s\'atopó nengún reproductor de fluxos. ¿Instalar VLC\?</string>
|
||||
<string name="main_bg_subtitle">Toca «Buscar» pa entamar
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Toca «Buscar» pa entamar</string>
|
||||
</resources>
|
||||
@@ -19,8 +19,7 @@
|
||||
<string name="no_player_found">Hech qanday translatsiya pleyeri topilmadi. VLC o\'rnatilsinmi\?</string>
|
||||
<string name="upload_date_text">%1$s tomonidan e‘lon qilingan</string>
|
||||
<string name="view_count_text">%1$s marta ko‘rilgan</string>
|
||||
<string name="main_bg_subtitle">Boshlash uchun \"Izlash\" tugmasini bosing
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Boshlash uchun \"Izlash\" tugmasini bosing</string>
|
||||
<string name="player_gesture_controls_summary">Player yorqinligini va ovoz balandligini boshqarish uchun imo-ishoralardan foydalanish</string>
|
||||
<string name="player_gesture_controls_title">Player imo-ishoralarini boshqarish</string>
|
||||
<string name="volume_gesture_control_summary">Player tovushini boshqarish uchun imo-ishoralardan foydalanish</string>
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">点击 “搜索” 开始使用
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">点击放大镜开始使用。</string>
|
||||
<string name="view_count_text">%1$s 次观看</string>
|
||||
<string name="upload_date_text">发布于 %1$s</string>
|
||||
<string name="open_in_browser">在浏览器中打开</string>
|
||||
<string name="open_in_popup_mode">在悬浮窗中打开</string>
|
||||
<string name="did_you_mean">您要找的是不是:%1$s?</string>
|
||||
<string name="no_player_found_toast">找不到串流播放器. (您可以安装 VLC 进行播放)</string>
|
||||
<string name="did_you_mean">您要找的是不是“%1$s”?</string>
|
||||
<string name="no_player_found_toast">找不到串流播放器(您可以安装 VLC 以播放串流)。</string>
|
||||
<string name="controls_download_desc">下载串流文件</string>
|
||||
<string name="install">安装</string>
|
||||
<string name="cancel">取消</string>
|
||||
@@ -15,7 +14,7 @@
|
||||
<string name="download">下载</string>
|
||||
<string name="search">搜索</string>
|
||||
<string name="settings">设置</string>
|
||||
<string name="share_dialog_title">分享给...</string>
|
||||
<string name="share_dialog_title">分享给</string>
|
||||
<string name="choose_browser">选择浏览器</string>
|
||||
<string name="download_path_title">视频下载路径</string>
|
||||
<string name="download_path_summary">已下载的视频将存储于此</string>
|
||||
@@ -72,23 +71,23 @@
|
||||
<string name="subscribers_count_not_available">无法得知订阅人数</string>
|
||||
<string name="updates_setting_description">发布新版本时,通知我升级应用</string>
|
||||
<string name="grid">网格</string>
|
||||
<string name="app_update_notification_content_title">NewPipe可更新!</string>
|
||||
<string name="app_update_notification_content_title">NewPipe 可更新!</string>
|
||||
<string name="error_http_unsupported_range">服务器不接受多线程下载, 使用 @string/msg_threads = 1 重试</string>
|
||||
<string name="autoplay_title">自动恢复上次播放</string>
|
||||
<string name="settings_category_clear_data_title">清空数据</string>
|
||||
<string name="watch_history_deleted">播放历史已删除</string>
|
||||
<string name="watch_history_deleted">播放历史已删除。</string>
|
||||
<string name="detail_likes_img_view_description">喜欢</string>
|
||||
<string name="detail_dislikes_img_view_description">不喜欢</string>
|
||||
<string name="use_tor_title">使用Tor</string>
|
||||
<string name="use_tor_summary">[实验性]通过 Tor 强制播放以增强隐私(暂不支持串流视频)</string>
|
||||
<string name="use_tor_title">使用 Tor</string>
|
||||
<string name="use_tor_summary">(实验性)强制通过 Tor 下载以增强隐私(暂不支持通过 Tor 串流播放视频)。</string>
|
||||
<string name="report_error">反馈错误</string>
|
||||
<string name="user_report">用户反馈</string>
|
||||
<string name="err_dir_create">无法创建下载目录\"%1$s\"</string>
|
||||
<string name="info_dir_created">已成功创建下载目录「%1$s」</string>
|
||||
<string name="err_dir_create">无法创建下载目录“%1$s”</string>
|
||||
<string name="info_dir_created">已创建下载目录“%1$s”</string>
|
||||
<string name="video">视频</string>
|
||||
<string name="audio">音频</string>
|
||||
<string name="retry">重试</string>
|
||||
<string name="storage_permission_denied">访问存储权限已被拒绝</string>
|
||||
<string name="storage_permission_denied">请先授予访问存储权限</string>
|
||||
<plurals name="views">
|
||||
<item quantity="other">%s 次观看</item>
|
||||
</plurals>
|
||||
@@ -110,11 +109,11 @@
|
||||
<string name="msg_wait">请稍候…</string>
|
||||
<string name="msg_copied">复制至剪贴板</string>
|
||||
<string name="controls_popup_title">悬浮窗播放</string>
|
||||
<string name="title_activity_about">关于NewPipe</string>
|
||||
<string name="title_activity_about">关于 NewPipe</string>
|
||||
<string name="action_settings">设置</string>
|
||||
<string name="action_about">关于</string>
|
||||
<string name="title_licenses">第三方许可</string>
|
||||
<string name="copyright" formatted="true">© %1$s :开发者 %2$s (使用 %3$s 许可证)</string>
|
||||
<string name="copyright" formatted="true">© %1$s 由 %2$s 遵循 %3$s 协议发布</string>
|
||||
<string name="error_unable_to_load_license">无法加载许可证</string>
|
||||
<string name="action_open_website">打开网站</string>
|
||||
<string name="tab_about">关于</string>
|
||||
@@ -126,9 +125,10 @@
|
||||
<string name="charset_letters_and_digits">字母和数字</string>
|
||||
<string name="charset_most_special_characters">特殊字符</string>
|
||||
<string name="search_no_results">没有结果</string>
|
||||
<string name="no_subscribers">无订阅者</string>
|
||||
<string name="no_subscribers">无人订阅</string>
|
||||
<plurals name="subscribers">
|
||||
<item quantity="other">%s 位订阅者</item>
|
||||
<item quantity="one">%s 人订阅</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="no_videos">无视频</string>
|
||||
<string name="detail_drag_description">拖动以重新排序</string>
|
||||
@@ -138,7 +138,7 @@
|
||||
<string name="dismiss">退出</string>
|
||||
<string name="rename">重命名</string>
|
||||
<string name="toast_no_player">未安装可播放此文件的应用程序</string>
|
||||
<string name="one_item_deleted">已删除一项</string>
|
||||
<string name="one_item_deleted">已删除一个项目。</string>
|
||||
<string name="main_page_content_summary">自定义主页显示的标签页</string>
|
||||
<string name="list_view_mode">列表视图模式</string>
|
||||
<string name="missions_header_finished">已完成</string>
|
||||
@@ -152,16 +152,16 @@
|
||||
<string name="download_finished_more">%s 个下载已完成</string>
|
||||
<string name="no_comments">没有评论</string>
|
||||
<string name="drawer_header_description">切换服务,当前选择:</string>
|
||||
<string name="no_player_found">找不到串流播放器\\n需要安装 VLC 吗?</string>
|
||||
<string name="no_player_found">找不到串流播放器。是否安装 VLC?</string>
|
||||
<string name="screen_rotation">旋转</string>
|
||||
<string name="use_external_video_player_title">使用外部视频播放器</string>
|
||||
<string name="use_external_audio_player_title">使用外部音频播放器</string>
|
||||
<string name="download_path_audio_title">音频下载文件夹</string>
|
||||
<string name="autoplay_by_calling_app_summary">从其他应用调用 NewPipe 时播放视频</string>
|
||||
<string name="default_resolution_title">默认分辨率</string>
|
||||
<string name="kore_not_found">未找到 Kore\\n需要安装 Kore ?</string>
|
||||
<string name="show_play_with_kodi_title">显示 \"使用 Kodi 播放\" 选项</string>
|
||||
<string name="show_play_with_kodi_summary">显示 \"通过 Kodi media center 播放视频\" 的选项</string>
|
||||
<string name="kore_not_found">未找到 Kore。是否安装 Kore?</string>
|
||||
<string name="show_play_with_kodi_title">显示“使用 Kodi 播放”选项</string>
|
||||
<string name="show_play_with_kodi_summary">显示“通过 Kodi 媒体中心播放视频”选项</string>
|
||||
<string name="play_audio">音频</string>
|
||||
<string name="default_audio_format_title">默认音频格式</string>
|
||||
<string name="show_next_and_similar_title">显示“接下来”和“相似视频”</string>
|
||||
@@ -184,55 +184,55 @@
|
||||
<string name="could_not_get_stream">无法获得任何串流</string>
|
||||
<string name="could_not_load_image">无法加载图像</string>
|
||||
<string name="app_ui_crash">App/UI 崩溃</string>
|
||||
<string name="sorry_string">抱歉, 这本不该发生</string>
|
||||
<string name="sorry_string">抱歉, 这本不该发生。</string>
|
||||
<string name="error_report_button_text">使用电子邮件反馈错误</string>
|
||||
<string name="error_snackbar_message">抱歉, 发生了一些错误</string>
|
||||
<string name="error_snackbar_message">抱歉, 发生了一些错误。</string>
|
||||
<string name="error_snackbar_action">反馈</string>
|
||||
<string name="what_device_headline">信息:</string>
|
||||
<string name="what_happened_headline">发生了什么:</string>
|
||||
<string name="info_labels">详情:\\n请求:\\n内容语言:\\n内容国家:\\n客户端语言:\\n服务:\\nGMT时间:\\n包名:\\n版本:\\n操作系统版本:</string>
|
||||
<string name="your_comment">您的附加说明(请用英文):</string>
|
||||
<string name="your_comment">您的附加说明(请用英文):</string>
|
||||
<string name="error_details_headline">详细信息:</string>
|
||||
<string name="list_thumbnail_view_description">视频预览缩略图</string>
|
||||
<string name="detail_thumbnail_view_description">播放视频,时长:</string>
|
||||
<string name="detail_thumbnail_view_description">播放视频,时长:</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">视频上传者的头像缩略图</string>
|
||||
<string name="short_billion">十亿</string>
|
||||
<string name="msg_url_malform">错误的 URL 或未联网</string>
|
||||
<string name="msg_running">NewPipe正在下载文件</string>
|
||||
<string name="msg_running">NewPipe 正在下载</string>
|
||||
<string name="no_available_dir">请稍后在设置中设定下载目录</string>
|
||||
<string name="msg_popup_permission">使用悬浮窗模式
|
||||
\n需要该权限</string>
|
||||
<string name="title_activity_recaptcha">reCAPTCHA验证</string>
|
||||
<string name="recaptcha_request_toast">已请求新的CAPTCHA验证</string>
|
||||
<string name="title_activity_recaptcha">reCAPTCHA 验证</string>
|
||||
<string name="recaptcha_request_toast">已请求新的 reCAPTCHA 验证</string>
|
||||
<string name="popup_mode_share_menu_title">NewPipe 悬浮窗模式</string>
|
||||
<string name="popup_playing_toast">在悬浮窗中播放</string>
|
||||
<string name="default_popup_resolution_title">默认分辨率(悬浮窗模式)</string>
|
||||
<string name="show_higher_resolutions_title">使用更高的分辨率</string>
|
||||
<string name="show_higher_resolutions_summary">仅在某些设备上支持播放 2K / 4K 视频</string>
|
||||
<string name="show_higher_resolutions_summary">只有某些设备支持播放 2K 或 4K 视频</string>
|
||||
<string name="clear">清除</string>
|
||||
<string name="popup_remember_size_pos_title">记住悬浮窗属性</string>
|
||||
<string name="popup_remember_size_pos_title">记住悬浮窗属性(大小与位置)</string>
|
||||
<string name="popup_remember_size_pos_summary">记住上一次使用悬浮窗的大小和位置</string>
|
||||
<string name="settings_category_popup_title">悬浮窗</string>
|
||||
<string name="use_external_video_player_summary">在部分分辨率下将没有音频</string>
|
||||
<string name="use_external_video_player_summary">部分分辨率下没有音频</string>
|
||||
<string name="player_gesture_controls_title">手势控制播放器</string>
|
||||
<string name="player_gesture_controls_summary">允许使用手势控制亮度和音量</string>
|
||||
<string name="show_search_suggestions_summary">搜索时显示搜索建议</string>
|
||||
<string name="best_resolution">最佳分辨率</string>
|
||||
<string name="app_description">开源且小巧的 Android 媒体播放器</string>
|
||||
<string name="view_on_github">在GitHub上查看</string>
|
||||
<string name="app_license_title">NewPipe开源许可证</string>
|
||||
<string name="contribution_encouragement">你是否想过要翻译、设计、清理或重构代码 ——我们始终欢迎你来贡献!</string>
|
||||
<string name="app_description">开源且小巧的 Android 媒体播放器。</string>
|
||||
<string name="view_on_github">在 GitHub 上查看</string>
|
||||
<string name="app_license_title">NewPipe 的许可证</string>
|
||||
<string name="contribution_encouragement">你是否想过要翻译、设计、清理或重构代码——我们始终欢迎你来贡献!</string>
|
||||
<string name="read_full_license">阅读许可证</string>
|
||||
<string name="contribution_title">贡献</string>
|
||||
<string name="settings_file_replacement_character_title">替换字符</string>
|
||||
<string name="channel_unsubscribed">取消订阅频道</string>
|
||||
<string name="channel_unsubscribed">已取消订阅频道</string>
|
||||
<string name="subscription_change_failed">无法修改订阅</string>
|
||||
<string name="subscription_update_failed">无法更新订阅</string>
|
||||
<string name="tab_main">主页</string>
|
||||
<string name="tab_subscriptions">订阅</string>
|
||||
<string name="fragment_feed_title">最新</string>
|
||||
<string name="resume_on_audio_focus_gain_title">自动恢复播放</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">在播放被打断(例如突然来电)后恢复播放</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">在播放被打断(例如突然来电)后恢复播放</string>
|
||||
<string name="enable_search_history_title">记录搜索历史</string>
|
||||
<string name="enable_search_history_summary">Newpipe 将在本地存储搜索历史记录</string>
|
||||
<string name="enable_watch_history_summary">Newpipe 将保留播放记录</string>
|
||||
@@ -247,7 +247,7 @@
|
||||
<string name="notification_channel_description">NewPipe 在后台播放和悬浮窗播放时在通知栏中显示通知</string>
|
||||
<string name="default_video_format_title">默认视频格式</string>
|
||||
<string name="settings_category_player_behavior_title">行为</string>
|
||||
<string name="empty_subscription_feed_subtitle">空空如也...</string>
|
||||
<string name="empty_subscription_feed_subtitle">空空如也</string>
|
||||
<string name="no_views">无人观看过</string>
|
||||
<string name="item_deleted">项目已删除</string>
|
||||
<string name="delete_item_search_history">是否删除此条搜索历史记录?</string>
|
||||
@@ -262,9 +262,9 @@
|
||||
<string name="select_a_kiosk">选择一个时下流行页</string>
|
||||
<string name="kiosk">『时下流行』</string>
|
||||
<string name="trending">趋势</string>
|
||||
<string name="top_50">前50</string>
|
||||
<string name="top_50">前 50</string>
|
||||
<string name="new_and_hot">最新与热门</string>
|
||||
<string name="show_hold_to_append_title">显示 \"长按添加\" 说明</string>
|
||||
<string name="show_hold_to_append_title">显示“长按添加”说明</string>
|
||||
<string name="show_hold_to_append_summary">在视频详情页中,长按背景播放或悬浮窗播放按钮时显示提示</string>
|
||||
<string name="background_player_append">已加入后台播放播放列表</string>
|
||||
<string name="popup_playing_append">已加入悬浮窗播放列表</string>
|
||||
@@ -280,10 +280,10 @@
|
||||
<string name="start_here_on_background">开始后台播放</string>
|
||||
<string name="start_here_on_popup">开始在悬浮窗中播放</string>
|
||||
<string name="donation_title">捐赠</string>
|
||||
<string name="donation_encouragement">NewPipe是由志愿者开发的,他们利用自己的空闲时间为您带来最佳的用户体验。在开发者享受一杯咖啡的时候,回报他们,帮助他们让NewPipe变得更好。</string>
|
||||
<string name="give_back">反馈</string>
|
||||
<string name="donation_encouragement">NewPipe 由志愿者开发,他们利用自己的空闲时间,为您带来最佳的用户体验。是时候回馈他们,让他们享受一杯咖啡,帮助开发者们让 NewPipe 变得更好。</string>
|
||||
<string name="give_back">回馈</string>
|
||||
<string name="website_title">官网</string>
|
||||
<string name="website_encouragement">请访问 NewPipe 网站了解更多信息和讯息</string>
|
||||
<string name="website_encouragement">请访问 NewPipe 网站以了解更多信息和新闻。</string>
|
||||
<string name="default_content_country_title">视频默认国家/地区</string>
|
||||
<string name="toggle_orientation">切换方向</string>
|
||||
<string name="switch_to_background">切换到后台播放</string>
|
||||
@@ -303,17 +303,17 @@
|
||||
<string name="preferred_player_fetcher_notification_message">正在加载请求的内容</string>
|
||||
<string name="import_data_title">导入数据库</string>
|
||||
<string name="export_data_title">导出数据库</string>
|
||||
<string name="import_data_summary">覆盖您的当前播放历史、订阅、播放列表和设置(可选)</string>
|
||||
<string name="import_data_summary">覆盖您的当前播放历史、订阅、播放列表和设置(可选)</string>
|
||||
<string name="export_data_summary">导出历史记录、订阅、播放列表和设置</string>
|
||||
<string name="export_complete_toast">导出成功</string>
|
||||
<string name="import_complete_toast">导入成功</string>
|
||||
<string name="no_valid_zip_file">没有有效的ZIP文件</string>
|
||||
<string name="could_not_import_all_files">警告: 无法导入所有文件</string>
|
||||
<string name="no_valid_zip_file">没有有效的 ZIP 文件</string>
|
||||
<string name="could_not_import_all_files">警告:无法导入所有文件</string>
|
||||
<string name="override_current_data">此操作会<b>覆盖当前设置</b>。</string>
|
||||
<string name="show_info">显示信息</string>
|
||||
<string name="tab_bookmarks">收藏</string>
|
||||
<string name="delete_stream_history_prompt">是否删除该条搜索历史记录吗?</string>
|
||||
<string name="delete_all_history_prompt">是否确定删除所有历史记录?</string>
|
||||
<string name="delete_stream_history_prompt">是否删除这条观看历史记录?</string>
|
||||
<string name="delete_all_history_prompt">是否删除所有历史记录?</string>
|
||||
<string name="title_last_played">最近观看</string>
|
||||
<string name="title_most_played">最多观看</string>
|
||||
<string name="always_ask_open_action">每次询问</string>
|
||||
@@ -334,50 +334,50 @@
|
||||
<string name="resize_fit">适应屏幕</string>
|
||||
<string name="resize_fill">填充屏幕</string>
|
||||
<string name="resize_zoom">缩放画面</string>
|
||||
<string name="drawer_header_action_paceholder_text">敬请期待</string>
|
||||
<string name="drawer_header_action_paceholder_text">敬请期待 ;D</string>
|
||||
<string name="settings_category_debug_title">调试</string>
|
||||
<string name="caption_auto_generated">自动生成</string>
|
||||
<string name="enable_leak_canary_summary">『内存泄漏监视』可能导致应用在『核心转储』时无响应</string>
|
||||
<string name="enable_disposed_exceptions_title">报告『提前结束Android生命周期』错误</string>
|
||||
<string name="enable_disposed_exceptions_summary">强制报告处理后的未送达的Activity或Fragment生命周期之外的Rx异常</string>
|
||||
<string name="use_inexact_seek_title">使用快速寻址(不精确)</string>
|
||||
<string name="use_inexact_seek_summary">快速寻址定位允许播放器以较低精确度为代价换取更快的寻址定位速度\\n此功能不适用于以5、15或25秒为隔的寻址定位</string>
|
||||
<string name="enable_disposed_exceptions_summary">强制报告处理后的未送达的 Activity 或 Fragment 生命周期之外的 Rx 异常</string>
|
||||
<string name="use_inexact_seek_title">使用快速寻址(不精确)</string>
|
||||
<string name="use_inexact_seek_summary">快速寻址定位允许播放器以较低精确度为代价换取更快的寻址定位速度。此功能不适用于以 5、15 或 25 秒为隔的寻址定位。</string>
|
||||
<string name="auto_queue_title">自动将“接下来”视频加入播放列表</string>
|
||||
<string name="auto_queue_summary">播放完(非循环)列表中的最后一个视频后,自动将一个相关视频添加到当前播放列表</string>
|
||||
<string name="auto_queue_summary">播放完(非循环)列表中的最后一个视频后,自动将一个相关视频添加到当前播放列表</string>
|
||||
<string name="invalid_directory">没有该文件夹</string>
|
||||
<string name="invalid_source">无相似文件/内容源</string>
|
||||
<string name="invalid_file">该文件不存在 或 缺少读写文件权限</string>
|
||||
<string name="invalid_file">文件不存在,或缺少读写文件权限</string>
|
||||
<string name="file_name_empty_error">文件名不能为空</string>
|
||||
<string name="error_occurred_detail">发生错误: %1$s</string>
|
||||
<string name="error_occurred_detail">发生错误:%1$s</string>
|
||||
<string name="import_export_title">导入/导出</string>
|
||||
<string name="import_title">导入</string>
|
||||
<string name="import_from">导入自…</string>
|
||||
<string name="export_to">导出到...</string>
|
||||
<string name="export_to">导出到…</string>
|
||||
<string name="import_ongoing">正在导入…</string>
|
||||
<string name="export_ongoing">正在导出…</string>
|
||||
<string name="import_file_title">导入文件</string>
|
||||
<string name="previous_export">先前的导出</string>
|
||||
<string name="subscriptions_import_unsuccessful">无法导入订阅</string>
|
||||
<string name="subscriptions_export_unsuccessful">无法导出订阅</string>
|
||||
<string name="import_youtube_instructions">从 Google takeout 导入YouTube 订阅:
|
||||
<string name="import_youtube_instructions">从 Google takeout 导入 YouTube 订阅:
|
||||
\n
|
||||
\n1. 打开这个网页:%1$s;
|
||||
\n2. 登录谷歌账号;
|
||||
\n3.选择“YouTube 和 YouTube Music” ,然后点击“已包含所有YouTube数据”,然后取消全选,仅选择“订阅内容”,然后点击“确定”
|
||||
\n4. 点击“下一步”,可以保持默认,然后点击“创建导出作业”;
|
||||
\n5. 通过所指定的方式,下载takeout数据;
|
||||
\n6. 从下载的takeout压缩包提取.json文件 (通常位于\"YouTube and YouTube Music/subscriptions/subscriptions.json\")然后在此导入</string>
|
||||
\n1. 打开这个网页:%1$s;
|
||||
\n2. 登录谷歌帐号;
|
||||
\n3. 选择“YouTube 和 YouTube Music”,然后点击“已包含所有 YouTube 数据”,然后取消全选,仅选择“订阅内容”,然后点击“确定”;
|
||||
\n4. 点击“下一步”,可以保持默认,然后点击“创建导出作业”;
|
||||
\n5. 通过所指定的方式,下载 takeout 数据;
|
||||
\n6. 从下载的 takeout 压缩包提取 .json 文件(通常位于“YouTube and YouTube Music/subscriptions/subscriptions.json”)然后在此导入。</string>
|
||||
<string name="import_soundcloud_instructions">通过输入网址或你的 ID 导入 SoundCloud 配置文件:
|
||||
\n
|
||||
\n1. 在浏览器中启用\"电脑模式\" (该网站未适配移动设备) ;
|
||||
\n2. 打开该网站: %1$s;
|
||||
\n3. 登录(如果需要);
|
||||
\n4. 复制得到的配置文件下载地址</string>
|
||||
<string name="import_soundcloud_instructions_hint">你的 ID:soundcloud.com/[你的ID]</string>
|
||||
\n1. 在浏览器中启用“电脑模式“(该网站未适配移动设备);
|
||||
\n2. 打开该网站:%1$s;
|
||||
\n3. 登录(如果需要);
|
||||
\n4. 复制得到的配置文件下载地址。</string>
|
||||
<string name="import_soundcloud_instructions_hint">你的 ID:soundcloud.com/[你的ID]</string>
|
||||
<string name="import_network_expensive_warning">该操作消耗大量流量,
|
||||
\n
|
||||
\n你想继续吗?</string>
|
||||
<string name="download_thumbnail_summary">关闭可禁止加载封面,节省流量和内存使用(现在更改该选项将清除内存与储存中全部缓存)</string>
|
||||
<string name="download_thumbnail_summary">关闭可禁止加载封面,节省流量和内存使用(现在更改该选项将清除内存与储存中全部缓存)</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">清空图像缓存成功</string>
|
||||
<string name="metadata_cache_wipe_title">清空已缓存的元数据</string>
|
||||
<string name="metadata_cache_wipe_summary">清空已缓存的网页数据</string>
|
||||
@@ -385,32 +385,32 @@
|
||||
<string name="playback_speed_control">播放速度控制</string>
|
||||
<string name="playback_tempo">节奏</string>
|
||||
<string name="playback_pitch">音调</string>
|
||||
<string name="unhook_checkbox">解除音视挂钩(可能导致失真)</string>
|
||||
<string name="unhook_checkbox">解除音视挂钩(可能导致失真)</string>
|
||||
<string name="preferred_open_action_settings_title">首选“打开”操作</string>
|
||||
<string name="preferred_open_action_settings_summary">打开内容时默认操作:- %s</string>
|
||||
<string name="no_streams_available_download">无可下载的串流</string>
|
||||
<string name="preferred_open_action_settings_summary">打开内容时的默认操作 — %s</string>
|
||||
<string name="no_streams_available_download">没有可下载的串流</string>
|
||||
<string name="caption_setting_title">字幕</string>
|
||||
<string name="caption_setting_description">修改播放器字幕比例和背景样式, 重启应用生效</string>
|
||||
<string name="caption_setting_description">修改播放器字幕比例和背景样式。重启应用生效。</string>
|
||||
<string name="clear_views_history_summary">删除串流播放历史和播放痕迹记录</string>
|
||||
<string name="delete_view_history_alert">删除全部播放历史?</string>
|
||||
<string name="clear_search_history_title">清空搜索历史</string>
|
||||
<string name="clear_search_history_summary">清空搜索历史关键词</string>
|
||||
<string name="delete_search_history_alert">是否删除全部搜索历史?</string>
|
||||
<string name="search_history_deleted">搜索历史已删除</string>
|
||||
<string name="app_license">NewPipe 是版权自由软件:您可以随时使用、研究共享和改进它。您可以根据自由软件基金会发布的 GNU 通用公共许可证GPLv3或(由您选择的)任何更高版本的许可证重新分发或修改该许可证。</string>
|
||||
<string name="search_history_deleted">搜索历史已删除。</string>
|
||||
<string name="app_license">NewPipe 是版权自由软件:您可以随时使用、研究共享和改进它。您可以根据自由软件基金会发布的 GNU 通用公共许可证 GPLv3 或(由您选择的)任何更高版本的许可证重新分发或修改该许可证。</string>
|
||||
<string name="import_settings">是否要导入设置?</string>
|
||||
<string name="privacy_policy_title">NewPipe 隐私政策</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe 项目非常重视您的隐私。因此,未经您的同意,应用程序不会收集任何数据。
|
||||
\nNewPipe 的隐私政策详细解释了在发送崩溃报告时发送和存储的数据。</string>
|
||||
\nNewPipe 的隐私政策详细解释了发送崩溃报告时会发送和存储的数据。</string>
|
||||
<string name="read_privacy_policy">阅读隐私政策</string>
|
||||
<string name="start_accept_privacy_policy">为了遵守欧盟的《通用数据保护条例 (GDPR)》,我们特此提醒您注意 NewPipe 的隐私政策,请您仔细阅读,
|
||||
\n您必须在同意以后才能向我们发送错误报告!</string>
|
||||
<string name="start_accept_privacy_policy">为了遵守欧盟的《通用数据保护条例 (GDPR)》,我们特此提醒您注意 NewPipe 的隐私政策,请您仔细阅读。
|
||||
\n您必须在同意以后才能向我们发送错误报告!</string>
|
||||
<string name="accept">接受</string>
|
||||
<string name="decline">拒绝</string>
|
||||
<string name="limit_data_usage_none_description">无限制</string>
|
||||
<string name="limit_mobile_data_usage_title">使用移动数据播放时降低分辨率</string>
|
||||
<string name="minimize_on_exit_title">退出应用时最小化</string>
|
||||
<string name="minimize_on_exit_summary">从主播放器切换到其他应用时的操作 - %s</string>
|
||||
<string name="minimize_on_exit_summary">从主播放器切换到其他应用时的操作 — %s</string>
|
||||
<string name="skip_silence_checkbox">静音时快进</string>
|
||||
<string name="playback_step">比例调整</string>
|
||||
<string name="playback_reset">重置</string>
|
||||
@@ -423,7 +423,7 @@
|
||||
<string name="brightness_gesture_control_summary">使用手势控制播放器的亮度</string>
|
||||
<string name="content_language_title">视频默认语言</string>
|
||||
<string name="app_update_notification_channel_name">应用更新通知</string>
|
||||
<string name="app_update_notification_channel_description">NewPipe有新版本的通知</string>
|
||||
<string name="app_update_notification_channel_description">当 NewPipe 有新版本时发送通知</string>
|
||||
<string name="download_to_sdcard_error_title">外置存储不可用</string>
|
||||
<string name="download_to_sdcard_error_message">无法下载到外部 SD 卡,修改下载文件夹位置?</string>
|
||||
<string name="saved_tabs_invalid_json">读取已保存标签时发生错误,因此使用默认标签</string>
|
||||
@@ -463,12 +463,12 @@
|
||||
<string name="close">关闭</string>
|
||||
<string name="enable_playback_resume_title">记录播放痕迹历史</string>
|
||||
<string name="enable_playback_resume_summary">再次打开播放过的视频时, 自动定位到上次播放时位置</string>
|
||||
<string name="enable_playback_state_lists_title">播放痕迹显示</string>
|
||||
<string name="enable_playback_state_lists_title">在列表中显示历史播放位置</string>
|
||||
<string name="enable_playback_state_lists_summary">在列表中,使用底端进度条显示某一视频上次播放时的播放位置</string>
|
||||
<string name="watch_history_states_deleted">已删除播放痕迹历史</string>
|
||||
<string name="watch_history_states_deleted">已删除播放痕迹历史。</string>
|
||||
<string name="missing_file">文件已被移动或被删除</string>
|
||||
<string name="overwrite_unrelated_warning">该名称的文件已经存在</string>
|
||||
<string name="overwrite_finished_warning">命名冲突,已存在具有该名称的文件</string>
|
||||
<string name="overwrite_unrelated_warning">同名文件已存在</string>
|
||||
<string name="overwrite_finished_warning">同名的已下载文件已经存在</string>
|
||||
<string name="overwrite_failed">无法覆盖文件</string>
|
||||
<string name="download_already_pending">已暂停下载包含此名称的任务</string>
|
||||
<string name="error_postprocessing_stopped">NewPipe 在处理文件时被关闭</string>
|
||||
@@ -482,11 +482,11 @@
|
||||
<string name="pause_downloads">暂停下载</string>
|
||||
<string name="downloads_storage_ask_title">总是询问下载位置</string>
|
||||
<string name="downloads_storage_ask_summary">系统将询问您将每次下载的保存位置</string>
|
||||
<string name="downloads_storage_ask_summary_kitkat">系统将询问您将每次下载的保存位置
|
||||
\n(如果要下载到外部 SD 卡,请选择 SAF)</string>
|
||||
<string name="downloads_storage_ask_summary_kitkat">系统将询问您将每次下载的保存位置。
|
||||
\n如果要下载到外部 SD 卡,请选择 SAF</string>
|
||||
<string name="downloads_storage_use_saf_title">使用 SAF</string>
|
||||
<string name="downloads_storage_use_saf_summary">存储访问框架(SAF)允许下载文件到外部SD卡。
|
||||
\n一些设备不兼容SAF</string>
|
||||
<string name="downloads_storage_use_saf_summary">存储访问框架(SAF)允许下载文件到外部 SD 卡。
|
||||
\n部分设备不兼容 SAF</string>
|
||||
<string name="clear_playback_states_title">删除播放痕迹历史</string>
|
||||
<string name="clear_playback_states_summary">删除所有播放痕迹历史</string>
|
||||
<string name="delete_playback_states_alert">是否删除全部播放痕迹历史?</string>
|
||||
@@ -501,95 +501,98 @@
|
||||
<item quantity="one">%s 位听众</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="localization_changes_requires_app_restart">语言更改 将在 重启应用 后生效</string>
|
||||
<string name="localization_changes_requires_app_restart">语言更改将在重启应用后生效。</string>
|
||||
<string name="peertube_instance_url_title">PeerTube 服务器</string>
|
||||
<string name="peertube_instance_url_summary">设置自定义PeerTube服务器</string>
|
||||
<string name="peertube_instance_url_help">查找你需要的服务器%s</string>
|
||||
<string name="peertube_instance_url_summary">设置自定义 PeerTube 服务器</string>
|
||||
<string name="peertube_instance_url_help">查找你需要的服务器 %s</string>
|
||||
<string name="peertube_instance_add_title">添加服务器</string>
|
||||
<string name="peertube_instance_add_help">输入服务器网址(URL)</string>
|
||||
<string name="peertube_instance_add_help">输入服务器网址(URL)</string>
|
||||
<string name="peertube_instance_add_fail">无法验证服务器</string>
|
||||
<string name="peertube_instance_add_https_only">仅支持 HTTPS URL</string>
|
||||
<string name="peertube_instance_add_exists">该服务器已存在</string>
|
||||
<string name="local">本地</string>
|
||||
<string name="recently_added">最近添加</string>
|
||||
<string name="most_liked">最受欢迎</string>
|
||||
<string name="playlist_no_uploader">自动生成的(找不到上传者)</string>
|
||||
<string name="playlist_no_uploader">自动生成的(找不到上传者)</string>
|
||||
<string name="recovering">正在恢复</string>
|
||||
<string name="error_download_resource_gone">无法恢复此下载</string>
|
||||
<string name="choose_instance_prompt">选择一个服务器</string>
|
||||
<string name="seek_duration_title">快进 / 快退的寻址定位时间间隔</string>
|
||||
<string name="clear_download_history">清空下载记录</string>
|
||||
<string name="delete_downloaded_files">删除下载文件</string>
|
||||
<string name="deleted_downloads">已删除 %1$d 下载</string>
|
||||
<string name="deleted_downloads">已删除 %1$d 个下载</string>
|
||||
<string name="permission_display_over_apps">授予在其他应用上层显示的权限</string>
|
||||
<string name="app_language_title">Newpipe应用语言</string>
|
||||
<string name="systems_language">[系统默认]</string>
|
||||
<string name="subtitle_activity_recaptcha">完成后请按“完成”</string>
|
||||
<string name="app_language_title">应用语言</string>
|
||||
<string name="systems_language">系统默认</string>
|
||||
<string name="subtitle_activity_recaptcha">完成后请点击“完成”</string>
|
||||
<string name="recaptcha_done_button">完成</string>
|
||||
<string name="videos_string">视频</string>
|
||||
<plurals name="seconds">
|
||||
<item quantity="other">%d秒</item>
|
||||
<item quantity="one">%d 秒</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="new_seek_duration_toast">由于ExoPlayer的限制,寻址间隔置为%d秒</string>
|
||||
<string name="new_seek_duration_toast">由于 ExoPlayer 的限制,寻址间隔置为 %d 秒</string>
|
||||
<string name="mute">静音</string>
|
||||
<string name="unmute">取消静音</string>
|
||||
<string name="help">帮助</string>
|
||||
<plurals name="minutes">
|
||||
<item quantity="other">%d分钟</item>
|
||||
<item quantity="one">%d 分钟</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="hours">
|
||||
<item quantity="other">%d小时</item>
|
||||
<item quantity="one">%d 小时</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="days">
|
||||
<item quantity="other">%d天</item>
|
||||
<item quantity="one">%d 天</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="feed_groups_header_title">频道组</string>
|
||||
<string name="feed_oldest_subscription_update">订阅最后更新:%s</string>
|
||||
<string name="feed_subscription_not_loaded_count">未加载: %d</string>
|
||||
<string name="feed_notification_loading">正在加载feed…</string>
|
||||
<string name="feed_processing_message">正在处理feed…</string>
|
||||
<string name="feed_oldest_subscription_update">订阅最后更新:%s</string>
|
||||
<string name="feed_subscription_not_loaded_count">未加载:%d</string>
|
||||
<string name="feed_notification_loading">正在加载 feed…</string>
|
||||
<string name="feed_processing_message">正在处理 feed…</string>
|
||||
<string name="feed_group_dialog_select_subscriptions">选择订阅</string>
|
||||
<string name="feed_group_dialog_empty_selection">未选中任何订阅</string>
|
||||
<plurals name="feed_group_dialog_selection_count">
|
||||
<item quantity="other">已选中%d</item>
|
||||
<item quantity="one">已选中 %d</item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_empty_name">清空组名</string>
|
||||
<string name="feed_group_dialog_delete_message">您要删除该组吗?</string>
|
||||
<string name="feed_create_new_group_button_title">新建</string>
|
||||
<string name="settings_category_feed_title">Feed</string>
|
||||
<string name="feed_update_threshold_title">Feed更新阈值</string>
|
||||
<string name="feed_update_threshold_summary">上次更新后,订阅被视为过期的时间-%s</string>
|
||||
<string name="feed_update_threshold_title">Feed 更新阈值</string>
|
||||
<string name="feed_update_threshold_summary">上次更新后,订阅被视为过期的时间 — %s</string>
|
||||
<string name="feed_update_threshold_option_always_update">始终更新</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">可用时使用专用feed获取</string>
|
||||
<string name="feed_use_dedicated_fetch_method_summary">仅在某些服务中可用,通常速度更快,但返回的视频数量可能有限,而且信息通常不完整(如,无视频持续时间,类型与没有直播状态)</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">可用时使用专用 feed 获取</string>
|
||||
<string name="feed_use_dedicated_fetch_method_summary">仅在某些服务中可用,通常速度更快,但返回的视频数量可能有限,而且信息通常不完整(如无视频时长、类型,无直播状态)。</string>
|
||||
<string name="feed_use_dedicated_fetch_method_enable_button">启用快速模式</string>
|
||||
<string name="feed_use_dedicated_fetch_method_disable_button">禁用快速模式</string>
|
||||
<string name="feed_use_dedicated_fetch_method_help_text">您是否觉得Feed加载太慢?如果是这样,请尝试启用快速加载(可在设置中修改,也可使用下面的按钮修改)
|
||||
<string name="feed_use_dedicated_fetch_method_help_text">您是否觉得 feed 加载太慢?如果是这样,请尝试启用快速加载(可在设置中修改,也可使用下面的按钮修改)
|
||||
\n
|
||||
\nNewPipe 提供两种 feed 加载策略:
|
||||
\n•获取整个订阅频道,很慢但是很完整。
|
||||
\n•使用专用的服务端点,比较快但通常不完整
|
||||
\n
|
||||
\n两者之间的区别在于,后者通常缺少一些信息,如视频的持续时间或类型(无法区分直播视频和普通视频),并且可能返回更少的视频条目
|
||||
\n两者之间的区别在于,后者通常缺少一些信息,如视频的持续时间或类型(无法区分直播视频和普通视频),并且可能返回更少的视频条目。
|
||||
\n
|
||||
\nYouTube 是一个通过其 RSS feed 提供此快速方法的服务示例。
|
||||
\n
|
||||
\n因此,选择哪种方式取决于您的偏好:
|
||||
\n加载速度还是信息准确。</string>
|
||||
<string name="content_not_supported">NewPipe尚不支持该内容。
|
||||
\nYouTube 是一个通过其 RSS feed 提供这种快速方法的服务示例。
|
||||
\n
|
||||
\n因此,选择哪种方式取决于您的偏好:加载速度还是信息准确。</string>
|
||||
<string name="content_not_supported">NewPipe 尚不支持该内容。
|
||||
\n
|
||||
\n也许未来版本会支持它。</string>
|
||||
<string name="infinite_videos">∞ 部视频</string>
|
||||
<string name="more_than_100_videos">100+部视频</string>
|
||||
<string name="more_than_100_videos">100+ 部视频</string>
|
||||
<string name="artists">艺术家</string>
|
||||
<string name="albums">专辑</string>
|
||||
<string name="songs">歌曲</string>
|
||||
<string name="restricted_video">该视频有年龄限制!
|
||||
\n
|
||||
\n如果您想要观看,请在设置中启用\"%1$s\"</string>
|
||||
\n如果您想要观看,请在设置中启用“%1$s”。</string>
|
||||
<string name="video_detail_by">由 %s</string>
|
||||
<string name="channel_created_by">由%s创建</string>
|
||||
<string name="channel_created_by">由 %s 创建</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">频道的头像缩略图</string>
|
||||
<string name="remove_watched_popup_yes_and_partially_watched_videos">是的,包括没看完的视频</string>
|
||||
<string name="remove_watched_popup_warning">已经看过且在之后被加入播放列表的视频将被删除。
|
||||
@@ -598,53 +601,53 @@
|
||||
<string name="remove_watched">移除看过的视频</string>
|
||||
<string name="show_original_time_ago_summary">来自服务的原始文本将在串流项目中可见</string>
|
||||
<string name="show_original_time_ago_title">显示原始时间</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">打开YouTube\"受限模式\"</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">启用 YouTube“受限模式”</string>
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">仅显示未分组订阅</string>
|
||||
<string name="playlist_page_summary">播放列表页</string>
|
||||
<string name="no_playlist_bookmarked_yet">尚无收藏</string>
|
||||
<string name="select_a_playlist">选择播放列表</string>
|
||||
<string name="error_report_open_github_notice">请检查您的问题是否已经存在\\n创建重复票证时, 您需要从我们那里花些时间来让我们修复真正的bug</string>
|
||||
<string name="error_report_open_issue_button_text">在GitHub上反馈</string>
|
||||
<string name="error_report_open_github_notice">请先检查您的要提交的问题是否已经存在。如果你创建了重复的反馈, 就会额外耗费我们用来修复这个问题的宝贵时间。</string>
|
||||
<string name="error_report_open_issue_button_text">在 GitHub 上反馈</string>
|
||||
<string name="copy_for_github">复制已整理的报告</string>
|
||||
<string name="search_showing_result_for">显示结果: %s</string>
|
||||
<string name="search_showing_result_for">显示结果:%s</string>
|
||||
<string name="never">从不</string>
|
||||
<string name="wifi_only">仅在Wi-Fi下</string>
|
||||
<string name="wifi_only">仅在 Wi-Fi 下</string>
|
||||
<string name="autoplay_summary">视频开始播放后,自动定位到上次播放时的位置 — %s</string>
|
||||
<string name="title_activity_play_queue">播放列表</string>
|
||||
<string name="unsupported_url_dialog_message">无法识别该URL,用其他应用打开\?</string>
|
||||
<string name="unsupported_url_dialog_message">无法识别此 URL。是否用其他应用打开\?</string>
|
||||
<string name="auto_queue_toggle">自动加入播放列表</string>
|
||||
<string name="clear_queue_confirmation_description">活跃播放列表将被替换</string>
|
||||
<string name="clear_queue_confirmation_description">当前播放列表将被替换</string>
|
||||
<string name="clear_queue_confirmation_summary">从一个播放器切换到另一个播放器后,你的播放列表可能会被替换</string>
|
||||
<string name="clear_queue_confirmation_title">清空播放列表前再次确认</string>
|
||||
<string name="notification_action_nothing">无</string>
|
||||
<string name="notification_action_buffering">缓冲</string>
|
||||
<string name="notification_action_buffering">正在缓冲</string>
|
||||
<string name="notification_action_shuffle">随机播放</string>
|
||||
<string name="notification_action_repeat">单曲循环</string>
|
||||
<string name="notification_actions_at_most_three">您最多可以选择显示在紧凑通知中的三个操作选项!</string>
|
||||
<string name="notification_actions_summary">点击编辑下面的每个通知动作\\n使用右方的复选框,选择显示在紧凑通知中的动作,最多三个</string>
|
||||
<string name="notification_actions_at_most_three">最多可以选择三个操作显示在紧凑通知中!</string>
|
||||
<string name="notification_actions_summary">点击编辑下面的每一个通知操作。使用右方的复选框选择在紧凑通知中显示的动作,最多可以选择三个。</string>
|
||||
<string name="notification_action_4_title">第五操作按钮</string>
|
||||
<string name="notification_action_3_title">第四操作按钮</string>
|
||||
<string name="notification_action_2_title">第三操作按钮</string>
|
||||
<string name="notification_action_1_title">第二操作按钮</string>
|
||||
<string name="notification_action_0_title">第一操作按钮</string>
|
||||
<string name="notification_scale_to_square_image_summary">将通知中视频缩略图长宽比从 16:9 强制缩放到 1:1 (可能导致失真)</string>
|
||||
<string name="notification_scale_to_square_image_summary">将通知中视频缩略图的长宽比从 16:9 强制缩放到 1:1(可能会导致失真)</string>
|
||||
<string name="notification_scale_to_square_image_title">强制缩放缩略图至 1:1 比例</string>
|
||||
<string name="settings_category_notification_title">通知栏</string>
|
||||
<string name="settings_category_notification_title">通知</string>
|
||||
<string name="show_memory_leaks">显示内存泄漏</string>
|
||||
<string name="enqueued">已加入队列</string>
|
||||
<string name="enqueue_stream">加入队列</string>
|
||||
<string name="clear_cookie_summary">清空本地存储的reCAPTCHA验证码相关cookies</string>
|
||||
<string name="recaptcha_cookies_cleared">reCAPTCHA cookies 已被清空</string>
|
||||
<string name="clear_cookie_title">清空 reCAPTCHA cookies</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">YouTube提供了“受限模式”,将隐藏潜在的成人内容</string>
|
||||
<string name="show_age_restricted_content_summary">展示可能不适合儿童观看的内容,因为有年龄限制(比如18岁以上)</string>
|
||||
<string name="notification_colorize_summary">让Android系统根据视频缩略图的主色彩自主决定通知颜色(注意,该特性仅在部分设备上可用)</string>
|
||||
<string name="clear_cookie_summary">清空与本地存储的 reCAPTCHA 验证码有关的 cookie</string>
|
||||
<string name="recaptcha_cookies_cleared">reCAPTCHA cookie 已被清空</string>
|
||||
<string name="clear_cookie_title">清空 reCAPTCHA cookie</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">YouTube提供了“受限模式”,可以隐藏潜在的成人内容</string>
|
||||
<string name="show_age_restricted_content_summary">展示有年龄限制的、可能不适合儿童观看的内容(比如 18+)</string>
|
||||
<string name="notification_colorize_summary">让 Android 系统根据视频缩略图的主色彩给通知着色(注意,该特性仅在部分设备上可用)</string>
|
||||
<string name="notification_colorize_title">自动着色通知</string>
|
||||
<string name="show_thumbnail_summary">锁屏背景和通知中使用缩略图</string>
|
||||
<string name="show_thumbnail_title">显示缩略图</string>
|
||||
<string name="hash_channel_name">视频哈希值计算通知</string>
|
||||
<string name="hash_channel_description">视频正在哈希值计算时显示的通知</string>
|
||||
<string name="msg_calculating_hash">计算哈希值中</string>
|
||||
<string name="hash_channel_description">正在计算视频哈希值时显示的通知</string>
|
||||
<string name="msg_calculating_hash">正在计算哈希值</string>
|
||||
<string name="recent">最近</string>
|
||||
<string name="show_meta_info_summary">打开显示关于视频创建者及内容或搜索请求的额外元信息框</string>
|
||||
<string name="show_meta_info_title">显示元数据信息</string>
|
||||
@@ -657,19 +660,38 @@
|
||||
<string name="open_with">用…打开</string>
|
||||
<string name="no_app_to_open_intent">设备上没有应用可以打开</string>
|
||||
<string name="crash_the_app">让应用崩溃</string>
|
||||
<string name="paid_content">此内容仅对已付费的用户可用,因此NewPipe 无法流式传输或下载该内容。</string>
|
||||
<string name="paid_content">此内容仅对已付费的用户可用,因此 NewPipe 无法流式传输或下载该内容。</string>
|
||||
<string name="youtube_music_premium_content">该视频仅供 YouTube Music Premium 会员使用,NewPipe 无法流式传输或下载该视频。</string>
|
||||
<string name="private_content">此内容是私有的,因此 NewPipe 无法流式传输或下载该内容。</string>
|
||||
<string name="soundcloud_go_plus_content">这是 SoundCloud Go +曲目,至少在你所在的国家/地区如此 NewPipe 无法流式传输或下载它。</string>
|
||||
<string name="soundcloud_go_plus_content">这是 SoundCloud Go +曲目,至少在你所在的国家/地区是这样,因此 NewPipe 无法流式传输或下载它。</string>
|
||||
<string name="georestricted_content">此内容在你所在的国家/地区不可用。</string>
|
||||
<string name="restricted_video_no_stream">这个视频有年龄限制\\n由于 YouTube 新的针对此类视频的政策,NewPipe 无法访问其任何视频流,因此无法播放该视频</string>
|
||||
<string name="restricted_video_no_stream">这个视频有年龄限制。
|
||||
\n由于 YouTube 针对此类视频的新政策,NewPipe 无法访问其任何视频流,因此无法播放该视频。</string>
|
||||
<string name="recaptcha_solve">处理</string>
|
||||
<string name="radio">电台</string>
|
||||
<string name="featured">精选</string>
|
||||
<string name="auto_device_theme_title">自动(系统主题)</string>
|
||||
<string name="auto_device_theme_title">自动(系统主题)</string>
|
||||
<string name="download_has_started">下载已开始</string>
|
||||
<string name="select_night_theme_toast">在此选择您最喜欢的夜间主题</string>
|
||||
<string name="night_theme_summary">选择你最喜欢的夜间主题 - %s</string>
|
||||
<string name="night_theme_summary">选择你最喜欢的夜间主题 — %s</string>
|
||||
<string name="night_theme_title">夜间主题</string>
|
||||
<string name="show_channel_details">显示频道详情</string>
|
||||
<string name="disable_media_tunneling_summary">如果遇到黑屏或视频播放卡顿的情况,请禁用媒体隧道</string>
|
||||
<string name="disable_media_tunneling_title">禁用媒体隧道</string>
|
||||
<string name="description_select_disable">关闭简介中的文本选择功能</string>
|
||||
<string name="metadata_privacy_internal">内部</string>
|
||||
<string name="metadata_privacy_private">私享</string>
|
||||
<string name="metadata_privacy_unlisted">未分类</string>
|
||||
<string name="metadata_privacy_public">公开</string>
|
||||
<string name="metadata_thumbnail_url">缩略图 URL</string>
|
||||
<string name="metadata_host">所在服务器</string>
|
||||
<string name="metadata_support">支持</string>
|
||||
<string name="metadata_language">语言</string>
|
||||
<string name="metadata_age_limit">年龄限制</string>
|
||||
<string name="metadata_privacy">私有性</string>
|
||||
<string name="metadata_licence">发行许可</string>
|
||||
<string name="metadata_tags">标签</string>
|
||||
<string name="metadata_category">类别</string>
|
||||
<string name="description_select_enable">开启简介中的文本选择功能</string>
|
||||
<string name="description_select_note">你现在可以选择简介中的文本,注意,在选择模式下,页面可能会闪烁,链接可能无法点击。</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Націсніце \"Пошук\", каб пачаць
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Націсніце \"Пошук\", каб пачаць</string>
|
||||
<string name="view_count_text">%1$s праглядаў</string>
|
||||
<string name="upload_date_text">Апублікавана %1$s</string>
|
||||
<string name="no_player_found">Патокавы плэер не знойдзены. Усталяваць VLC?</string>
|
||||
|
||||
@@ -126,8 +126,7 @@
|
||||
<string name="search_showing_result_for">ⴰⵙⵎⴰⵍ ⵏ ⵜⴰⵢⴰⴼⵓⵜ ⵉ: %s</string>
|
||||
<string name="did_you_mean">ⵎⵉⵏ ⵜⵅⵙⴷ ⴰⴷ ⵜⵉⵏⵉⴷ:\"%1$s\"\?</string>
|
||||
<string name="view_count_text">%1$s ⵏ ⵜⴰⵏⵏⴰⵢⵉⵏ</string>
|
||||
<string name="main_bg_subtitle">ⴰⴷⵔ ⵅ \"ⵔⵣⵓ\"ⴰⴼⴰⴷ ⴰⴷ ⵜⵜⴰⵡⵍⴷ
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">ⴰⴷⵔ ⵅ \"ⵔⵣⵓ\"ⴰⴼⴰⴷ ⴰⴷ ⵜⵜⴰⵡⵍⴷ</string>
|
||||
<string name="show_comments_title">ⵙⴽⵏ ⵉⵅⴼⴰⵡⴰⵍⵏ</string>
|
||||
<string name="theme_title">ⴰⵙⴳⵓⵎ</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Докоснете търсачката, за да започнете
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Докоснете търсачката, за да започнете</string>
|
||||
<string name="view_count_text">%1$s гледания</string>
|
||||
<string name="upload_date_text">Публикувано на %1$s</string>
|
||||
<string name="no_player_found">Не е намерен стрийм плейър. Желаете ли да инсталирате VLC?</string>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">অনুসন্ধান এ চাপ দিয়ে শুরু করুন
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">অনুসন্ধান এ চাপ দিয়ে শুরু করুন</string>
|
||||
<string name="view_count_text">%1$s জন দেখছে</string>
|
||||
<string name="upload_date_text">প্রকাশকাল %1$s</string>
|
||||
<string name="no_player_found">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চাও\?</string>
|
||||
@@ -320,7 +319,7 @@
|
||||
<string name="recaptcha_done_button">হয়েছে</string>
|
||||
<string name="events">ইভেন্টগুলো</string>
|
||||
<string name="settings_category_updates_title">আপডেট</string>
|
||||
<string name="minimize_on_exit_none_description">কোনটি না</string>
|
||||
<string name="minimize_on_exit_none_description">কোনোটি না</string>
|
||||
<string name="accept">স্বীকার করো</string>
|
||||
<string name="decline">অস্বীকার করো</string>
|
||||
<string name="caption_setting_title">ক্যাপশন</string>
|
||||
|
||||
@@ -178,8 +178,7 @@
|
||||
<string name="no_player_found">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চান\?</string>
|
||||
<string name="upload_date_text">প্রকাশকাল %1$s</string>
|
||||
<string name="view_count_text">%1$s জন দেখেছে</string>
|
||||
<string name="main_bg_subtitle">অনুসন্ধান এ চাপ দিয়ে শুরু করুন
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">অনুসন্ধান এ চাপ দিয়ে শুরু করুন</string>
|
||||
<string name="feed_create_new_group_button_title">নতুন</string>
|
||||
<string name="fragment_feed_title">নতুন কি</string>
|
||||
<string name="app_language_title">অ্যাপ এর ভাষা</string>
|
||||
|
||||
@@ -222,8 +222,8 @@
|
||||
<string name="events">ইভেন্টগুলো</string>
|
||||
<string name="tracks">ট্র্যাক</string>
|
||||
<string name="videos_string">ভিডিও গুলি</string>
|
||||
<string name="playlists">প্লেলিস্ট</string>
|
||||
<string name="playlist">প্লেলিস্ট</string>
|
||||
<string name="playlists">চালু তালিকা</string>
|
||||
<string name="playlist">চালু তালিকা</string>
|
||||
<string name="channels">চ্যানেলগুলো</string>
|
||||
<string name="channel">চ্যানেল</string>
|
||||
<string name="all">সবগুলি</string>
|
||||
@@ -231,7 +231,7 @@
|
||||
<string name="downloads_title">ডাউনলোডগুলি</string>
|
||||
<string name="downloads">ডাউনলোডগুলি</string>
|
||||
<string name="duration_live">লাইভ</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">YouTube নিষিদ্ধ মোড</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">YouTube \"নিষিদ্ধ মোড\" চালু করুন</string>
|
||||
<string name="show_age_restricted_content_title">বয়স সীমাবদ্ধ কন্টেন্ট দেখাও</string>
|
||||
<string name="content">কন্টেন্ট</string>
|
||||
<string name="popup_playing_toast">পপআপ মোডে চলছে</string>
|
||||
@@ -299,40 +299,40 @@
|
||||
<string name="notification_action_0_title">প্রথম ক্রিয়া বোতাম</string>
|
||||
<string name="notification_scale_to_square_image_title">থাম্বনেলে ১:১ অনুপাতে করো</string>
|
||||
<string name="show_play_with_kodi_summary">Kodi মিডিয়া সেন্টারে এর মাধ্যমে ভিডিও প্লে করার জন্য একটি বিকল্প প্রদর্শন কর</string>
|
||||
<string name="show_play_with_kodi_title">দেখাও \"Kodi এর মাধ্যমে চালাও \" বিকল্প</string>
|
||||
<string name="show_play_with_kodi_title">\"Kodi দ্বারা চালান\" বিকল্পটি প্রদর্শন কর</string>
|
||||
<string name="kore_not_found">হারানো কোর ইনস্টল করবেন\?</string>
|
||||
<string name="play_with_kodi_title">Kodi এর মাধ্যমে চালাও</string>
|
||||
<string name="play_with_kodi_title">Kodi দ্বারা চালাও</string>
|
||||
<string name="show_higher_resolutions_summary">শুধুমাত্র কিছু ডিভাইস 2K/4K ভিডিও চালাতে পারে</string>
|
||||
<string name="show_higher_resolutions_title">উচ্চ রেজোল্যুশন দেখাও</string>
|
||||
<string name="default_popup_resolution_title">ডিফল্ট পপআপ রেজোল্যুশন</string>
|
||||
<string name="show_higher_resolutions_title">উচ্চতর রেজুলেশন প্রদর্শন করা হবে</string>
|
||||
<string name="default_popup_resolution_title">ডিফল্ট পপ-আপ রেজোল্যুশন</string>
|
||||
<string name="default_resolution_title">ডিফল্ট রেজোল্যুশন</string>
|
||||
<string name="autoplay_by_calling_app_summary">স্বয়ংক্রিয়ভাবে একটি ভিডিও প্লে করো যখন NewPipe অন্য অ্যাপ্লিকেশন থেকে চালু করা হয়</string>
|
||||
<string name="autoplay_by_calling_app_title">স্বয়ংক্রিয়ভাবে প্লে করো যখন অন্য অ্যাপ্লিকেশন থেকে চালু করা হয়</string>
|
||||
<string name="autoplay_by_calling_app_summary">স্বয়ংক্রিয়ভাবে একটি ভিডিও প্লে করে যখন NewPipe অন্য অ্যাপ্লিকেশন থেকে চালু করা হয়</string>
|
||||
<string name="autoplay_by_calling_app_title">স্বয়ংক্রিয় চালু</string>
|
||||
<string name="download_choose_new_path">প্রভাব দৃশ্যমান করার জন্য ডাউনলোড ফোল্ডার পরিবর্তন করুন</string>
|
||||
<string name="download_path_audio_dialog_title">অডিও ফাইলগুলির জন্য ডাউনলোডের ফোল্ডার নির্বাচন করুন</string>
|
||||
<string name="download_path_audio_summary">ডাউনলোড করা অডিও এখানে রাখা হয়</string>
|
||||
<string name="download_path_audio_summary">ডাউনলোড করা অডিও ফাইলগুলি এখানে সঞ্চিত থাকে</string>
|
||||
<string name="download_path_audio_title">অডিও ডাউনলোড ফোল্ডার</string>
|
||||
<string name="download_path_dialog_title">ভিডিওগুলির জন্য ডাউনলোডের পাথ নির্বাচন কর</string>
|
||||
<string name="download_path_dialog_title">ভিডিওগুলি ডাউনলোডের জন্য ফোল্ডার নির্বাচন করুন</string>
|
||||
<string name="download_path_summary">ডাউনলোড করা ভিডিওগুলো এখানে থাকে</string>
|
||||
<string name="download_path_title">ভিডিও ডাউনলোড করার ফোল্ডার</string>
|
||||
<string name="controls_add_to_playlist_title">যুক্ত করুন</string>
|
||||
<string name="controls_popup_title">পপআপ</string>
|
||||
<string name="controls_popup_title">পপ-আপ</string>
|
||||
<string name="controls_background_title">ব্যাকগ্রাউন্ড</string>
|
||||
<string name="tab_choose">ট্যাব পছন্দ করুন</string>
|
||||
<string name="tab_new">নতুন ট্যাব</string>
|
||||
<string name="tab_bookmarks">বুকমার্ককৃত প্লেলিস্টসমূহ</string>
|
||||
<string name="tab_subscriptions">সাবস্ক্রিপশন</string>
|
||||
<string name="tab_bookmarks">বুকমার্ক করা প্লেলিস্টসমূহ</string>
|
||||
<string name="tab_subscriptions">সদস্যতা</string>
|
||||
<string name="tab_main">প্রধান</string>
|
||||
<string name="show_info">তথ্য দেখুন</string>
|
||||
<string name="subscription_update_failed">সাবস্ক্রিপশন আপডেটে ব্যার্থ</string>
|
||||
<string name="subscription_change_failed">সাবস্ক্রিপশন পরিবর্তন করা যায়নি</string>
|
||||
<string name="subscription_update_failed">সদস্যতা হালনাগাদে ব্যর্থ</string>
|
||||
<string name="subscription_change_failed">সদস্যতা পরিবর্তন করা যায়নি</string>
|
||||
<string name="channel_unsubscribed">চ্যানেল থেকে আনসাবস্ক্রাইব্ড</string>
|
||||
<string name="unsubscribe">আনসাবস্ক্রাইব</string>
|
||||
<string name="subscribed_button_title">সাবস্ক্রাইব করা আছে</string>
|
||||
<string name="subscribe_button_title">সাবস্ক্রাইব</string>
|
||||
<string name="popup_mode_share_menu_title">পপআপ মোড</string>
|
||||
<string name="popup_mode_share_menu_title">পপ-আপ মোড</string>
|
||||
<string name="use_external_audio_player_title">বহির্গত অডিও প্লেয়ার ব্যবহার করুন</string>
|
||||
<string name="use_external_video_player_summary">কিছু কিছু রেজোলিউশনে অডিও বন্ধ করে দেয়</string>
|
||||
<string name="use_external_video_player_summary">কিছু রেজোলিউশনে অডিও অপসারণ করে দেয়</string>
|
||||
<string name="use_external_video_player_title">বাইরের ভিডিও প্লেয়ার ব্যবহার করুন</string>
|
||||
<string name="screen_rotation">ঘূর্ণন</string>
|
||||
<string name="choose_browser">ব্রাউজার বাছাই করুন</string>
|
||||
@@ -346,14 +346,13 @@
|
||||
<string name="share">শেয়ার</string>
|
||||
<string name="open_in_popup_mode">পপ-আপ মোডে ওপেন করো</string>
|
||||
<string name="open_in_browser">ব্রাউজারে ওপেন করো</string>
|
||||
<string name="cancel">বাদ দিন</string>
|
||||
<string name="cancel">বাতিল</string>
|
||||
<string name="install">ইনস্টল</string>
|
||||
<string name="no_player_found_toast">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি (প্লে করতে VLC ইন্সটল করতে পারেন).</string>
|
||||
<string name="no_player_found">কোন স্ট্রিম প্লেয়ার পাওয়া যায়নি। VLC ইনস্টল করতে চাও\?</string>
|
||||
<string name="upload_date_text">প্রকাশকাল %1$s</string>
|
||||
<string name="view_count_text">%1$s জন দেখছে</string>
|
||||
<string name="main_bg_subtitle">\"অনুসন্ধান\" এ চাপ দিয়ে শুরু করুন
|
||||
\n</string>
|
||||
<string name="view_count_text">%1$s জন দেখেছে</string>
|
||||
<string name="main_bg_subtitle">\"অনুসন্ধান\" এ চাপ দিয়ে শুরু করুন</string>
|
||||
<string name="notification_action_buffering">বাফারিং</string>
|
||||
<string name="notification_action_shuffle">সাফল</string>
|
||||
<string name="notification_action_4_title">পঞ্চম অ্যাকশন বাটন</string>
|
||||
@@ -390,20 +389,20 @@
|
||||
<string name="settings_category_notification_title">বিজ্ঞপ্তি</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">বাধার পর প্লে চালিয়ে যাও (উদাহরণস্বরূপ ফোনকল)</string>
|
||||
<string name="subscriptions_export_unsuccessful">সদস্যতা রপ্তানি করা যায়নি</string>
|
||||
<string name="subscriptions_import_unsuccessful">সদস্যতা/সাবস্ক্রিপশন আমদানি করা যায়নি</string>
|
||||
<string name="subscriptions_import_unsuccessful">সদস্যতা আমদানি করা যায়নি</string>
|
||||
<string name="playlist_no_uploader">স্বয়ংক্রিয়ভাবে উৎপাদিত (কোনও আপলোডার পাওয়া যায়নি)</string>
|
||||
<string name="playlist_delete_failure">পছন্দ-তালিকা মুছে ফেলা যায়নি।</string>
|
||||
<string name="set_as_playlist_thumbnail">প্লে-তালিকা থাম্বনেইল হিসেবে সেট করো</string>
|
||||
<string name="no_valid_zip_file">কোনও বৈধ জিপ ফাইল নেই</string>
|
||||
<string name="no_playlist_bookmarked_yet">এখনো কোন প্লে-তালিকা বুকমার্ক নেই</string>
|
||||
<string name="no_channel_subscribed_yet">এখনও কোনও চ্যানেল সাবস্ক্রিপশন নেই</string>
|
||||
<string name="no_channel_subscribed_yet">এখনও কোনও চ্যানেল সদস্যতা নেই</string>
|
||||
<string name="main_page_content">মূল পৃষ্ঠার বিষয়বস্তু</string>
|
||||
<string name="settings_file_charset_title">ফাইলের নামে অনুমোদিত অক্ষরসমূহ</string>
|
||||
<string name="subtitle_activity_recaptcha">সমাধান হয়ে গেলে \"সম্পন্ন\" টিপো</string>
|
||||
<string name="no_one_listening">কেউ শুনছে না</string>
|
||||
<string name="no_one_watching">কেউ দেখছে না</string>
|
||||
<string name="drawer_header_description">সেবাটি পরিবর্তন করো, বর্তমানে নির্বাচিত:</string>
|
||||
<string name="empty_subscription_feed_subtitle">এখানে ঝিঝিপোকা ছাড়া আর কিছু নেই</string>
|
||||
<string name="empty_subscription_feed_subtitle">ঝিঝিপোকা ছাড়া কিছুই নেই এখানে</string>
|
||||
<string name="invalid_source">এই ধরনের কোন ফাইল/বিষয়বস্তুর উৎস নেই</string>
|
||||
<string name="player_unrecoverable_failure">অপুনরুদ্ধারযোগ্য প্লেয়ার ত্রুটি ঘটেছে</string>
|
||||
<string name="popup_playing_append">পপআপ প্লেয়ারে সারিবদ্ধ</string>
|
||||
@@ -417,7 +416,7 @@
|
||||
<string name="start_here_on_popup">একটি পপ-আপে প্লে শুরু করো</string>
|
||||
<string name="start_here_on_background">পটভূমিতে প্লে শুরু করো</string>
|
||||
<string name="app_description">অ্যান্ড্রয়েডে মুক্তভাবে ও সহজে প্রচার দেখার অ্যাপ।</string>
|
||||
<string name="export_data_summary">ইতিহাস, সদস্যতা এবং পছন্দ-তালিকা রপ্তানি করো</string>
|
||||
<string name="export_data_summary">ইতিহাস, সদস্যতা, চালুতালিকা এবং পছন্দসমূহ রপ্তানি করুন</string>
|
||||
<string name="show_hold_to_append_title">\"সংযোজন করতে ধরে রাখো\" পরামর্শ দেখাও</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">উপলব্ধ হলে আলাদা ফিড থেকে এনো</string>
|
||||
<string name="error_http_no_content">সার্ভার ডেটা পাঠায় না</string>
|
||||
@@ -502,16 +501,16 @@
|
||||
<item quantity="one">%d নির্বাচিত</item>
|
||||
<item quantity="other">%d সমূহ নির্বাচিত</item>
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_select_subscriptions">সাবস্ক্রিপশন নির্বাচন করো</string>
|
||||
<string name="feed_group_dialog_select_subscriptions">সদস্যতা নির্বাচন করো</string>
|
||||
<string name="feed_processing_message">ফিড প্রক্রিয়া করা হচ্ছে…</string>
|
||||
<string name="feed_groups_header_title">চ্যানেল গ্রুপ</string>
|
||||
<string name="chapters">অধ্যায়</string>
|
||||
<string name="comments_tab_description">মতামত</string>
|
||||
<string name="description_tab_description">বর্ণনা</string>
|
||||
<string name="open_with">দিয়ে খুলো</string>
|
||||
<string name="open_with">দিয়ে খুলুন</string>
|
||||
<string name="feed_update_threshold_title">ফিড হালনাগাদ সীমা</string>
|
||||
<string name="feed_group_dialog_empty_name">খালি গ্রুপ নাম</string>
|
||||
<string name="feed_group_dialog_empty_selection">কোনো সাবস্ক্রিপশন নির্বাচিত হয়নি</string>
|
||||
<string name="feed_group_dialog_empty_selection">কোনো সদস্যতা নির্বাচিত হয়নি</string>
|
||||
<string name="feed_subscription_not_loaded_count">%d: লোড হয়নি</string>
|
||||
<string name="remove_watched_popup_title">দেখা ভিডিওগুলো সরাও\?</string>
|
||||
<string name="choose_instance_prompt">একটি ইন্সট্যান্স নাও</string>
|
||||
@@ -535,7 +534,7 @@
|
||||
<string name="detail_drag_description">সাজাতে টানো</string>
|
||||
<string name="copy_for_github">প্রতিবেদন অনুলিপি করো</string>
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">শুধুমাত্র অদলবদ্ধ সদস্যতা দেখাও</string>
|
||||
<string name="feed_oldest_subscription_update">ফিড শেষে হালনাগাদ করা হয়েছে: %s</string>
|
||||
<string name="feed_oldest_subscription_update">ফিড শেষ হালনাগাদ করা হয়েছে: %s</string>
|
||||
<string name="downloads_storage_ask_title">কোথায় ডাইনলোড করবো জিজ্ঞেস করো</string>
|
||||
<string name="pause_downloads_on_mobile">পরিমাপকৃত নেটওয়ার্কে বাধা দাও</string>
|
||||
<string name="error_download_resource_gone">এই ডাউনলোড উদ্ধার করা যাচ্ছে না</string>
|
||||
@@ -587,5 +586,37 @@
|
||||
<string name="import_settings">পছন্দসমূহ কি আমদানি করতে চাও\?</string>
|
||||
<string name="settings_file_replacement_character_summary">অবৈধ অক্ষরগুলো এই মান দ্বারা প্রতিস্থাপিত</string>
|
||||
<string name="permission_display_over_apps">অন্য অ্যাপের উপরে দেখাতে অনুমতি দাও</string>
|
||||
<string name="peertube_instance_url_help">%s-এ তোমার পছন্দের ইন্সট্যান্স খুঁজো</string>
|
||||
<string name="peertube_instance_url_help">%s-এ আপনার পছন্দের ইন্সট্যান্স খুঁজুন</string>
|
||||
<string name="clear_views_history_summary">প্লে করা স্ট্রিমের ইতিহাস এবং প্লেব্যাক অবস্থানগুলি মুছে দেয়</string>
|
||||
<string name="restricted_video">এই ভিডিওটি বয়সসীমাবদ্ধ ।
|
||||
\n
|
||||
\nআপনি এটি দেখতে চাইলে সেটটিংসে \"%1$s\" চালু করুন ।</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">Youtube একটি \"সীমাবদ্ধ মোড\" সরবরাহ করে যা সম্ভাব্য বয়সসীমাবদ্ধ বিষয়গুলি গুপ্ত রাখে</string>
|
||||
<string name="show_age_restricted_content_summary">শিশুদের জন্যে সম্ভবত অনুপযুক্ত বিষয়গুলোও দেখান যেগুলির একটি বয়সসীমা রয়েছে (যেমন ১৮+ বিষয়সমূহ)</string>
|
||||
<string name="unsupported_url_dialog_message">ইউআরএলটি চিন্থিত করা যায়নি | অন্য এপ্লিকেশন এ খুলতে চান \?</string>
|
||||
<string name="error_postprocessing_stopped">এই ফাইলে কাজ করার সময় নিউপাইপ বন্ধ করা হয়েছে</string>
|
||||
<string name="download_already_pending">এই নামের একটি ডাউনলোড প্রক্রিয়ারত</string>
|
||||
<string name="saved_tabs_invalid_json">সংরক্ষিত ট্যাব পড়া যায় নি, তাই সহজাতটি ব্যবহার করা হচ্ছে</string>
|
||||
<string name="import_data_summary">তোমার ইতিহাস, সদস্যতা, চালুতালিকা আর (ঐচ্ছিকভাবে) পছন্দসমূহ উপেক্ষা করো</string>
|
||||
<string name="select_night_theme_toast">তোমার পছন্দের অন্ধকার রঙ নির্বাচন করো</string>
|
||||
<string name="georestricted_content">তোমার দেশে এটি অনুপলুব্ধ।</string>
|
||||
<string name="no_app_to_open_intent">তোমার ডিভাইসের কোনো অ্যাপ এটি খুলতে পারে না</string>
|
||||
<string name="enable_queue_limit_desc">একটি ডাউনলোড একই সময়ে চলতে পারবে</string>
|
||||
<string name="max_retry_desc">ডাউনলোড বাতিল করার আগে সর্বোচ্চ চেষ্টা</string>
|
||||
<string name="private_content">এই তথ্যটি ব্যক্তিগত, তাই নিউপাইপ এটির ধারাপ্রচার বা ডাউনলোড করতে পারবে না।</string>
|
||||
<string name="delete_all_history_prompt">ইতিহাসের সব ভুক্তি কি আসলেই মুছতে চাও\?</string>
|
||||
<string name="download_to_sdcard_error_message">এসডি কার্ডে নামানো যাচ্ছে না। ডাউনলোড স্থান ফিরাবে বা পাল্টাবে\?</string>
|
||||
<string name="show_thumbnail_summary">বন্ধ পর্দার পটভূমি ও বিজ্ঞপ্তির পটভূমি উভয় জায়গায় এই প্রতিচ্ছবি ব্যবহার করো</string>
|
||||
<string name="downloads_storage_ask_summary_kitkat">কোথায় প্রত্যেক ডাউনলোড সংরক্ষণ করা হবে তা জিজ্ঞেস করা হবে।
|
||||
\nএসডি কার্ডে নামাতে চাইলে স্যাফ(SAF) নির্বাচন করো</string>
|
||||
<string name="privacy_policy_encouragement">নিউপাইপ প্রকল্প তোমার গোপনীয়তা গুরুত্বের সাথে নেয়। তাই এই অ্যাপ তোমার অনুমতি ছাড়া কোনো তথ্য পাঠায় না।
|
||||
\nনিউপাইপের গোপনীয়তা নীতিমালা কোন তথ্য পাঠানো হয় ও সংরক্ষণ হয় তা ব্যাখ্যা করে।</string>
|
||||
<string name="clear_cookie_summary">রিক্যাপচা পূরণ করলে নিউপাইপ যেসব কুকি রাখে তা মুছো</string>
|
||||
<string name="show_original_time_ago_summary">ধারা ভুক্তিতে সেবাগুলোর মূল লেখা দৃশ্যমান হবে</string>
|
||||
<string name="delete_stream_history_prompt">দেখার ইতিহাস থেকে এই ভুক্তিটি মুছবে\?</string>
|
||||
<string name="delete_item_search_history">অনুসন্ধান ইতিহাস থেকে এই ভুক্তিটি মুছবে\?</string>
|
||||
<string name="downloads_storage_ask_summary">প্রত্যেক ডাউনলোড কোথায় রাখা হবে তা জিজ্ঞেস করা হবে</string>
|
||||
<string name="download_already_running">এই নামের একটি ডাউনলোড চলমান</string>
|
||||
<string name="localization_changes_requires_app_restart">অ্যাপ আবার শুরু হলে ভাষা পাল্টাবে।</string>
|
||||
<string name="disable_media_tunneling_title">মিডিয়া সুরঙ্গকরণ অক্ষম</string>
|
||||
</resources>
|
||||
@@ -267,8 +267,7 @@
|
||||
<string name="playback_speed_control">Controls de la velocitat de reproducció</string>
|
||||
<string name="playback_tempo">Tempo</string>
|
||||
<string name="playback_pitch">To</string>
|
||||
<string name="main_bg_subtitle">Toca \"Cerca\" per començar
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Toca \"Cerca\" per començar</string>
|
||||
<string name="use_external_video_player_summary">Elimina l\'àudio en algunes resolucions</string>
|
||||
<string name="use_external_audio_player_title">Reproductor d\'àudio extern</string>
|
||||
<string name="download_thumbnail_summary">Desactiveu-ho per no generar miniatures i estalviar dades i memòria. Canviant aquesta opció, s\'eliminarà la memòria cau d\'imatges tant de la memòria com de l\'emmagatzematge.</string>
|
||||
@@ -554,7 +553,7 @@
|
||||
\nEn definitiva, l\'elecció depèn de si preferiu rapidesa a assegurar-vos que l\'informació és precisa.</string>
|
||||
<string name="feed_use_dedicated_fetch_method_disable_button">Desactiva el mode ràpid</string>
|
||||
<string name="feed_use_dedicated_fetch_method_enable_button">Activa el mode ràpid</string>
|
||||
<string name="feed_use_dedicated_fetch_method_summary">Disponible en alguns serveis, normalment és més ràpid, però podria només incloure un nombre limitat de contingut i sovint informació incomplerta (per exemple, sense durada, tipus...).</string>
|
||||
<string name="feed_use_dedicated_fetch_method_summary">Disponible en alguns serveis, normalment és més ràpid, però podria només incloure un nombre limitat de contingut i sovint informació incomplerta (per exemple, sense durada, tipus…).</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">Recupera des d\'un feed dedicat si és possible</string>
|
||||
<string name="feed_update_threshold_option_always_update">Actualitza sempre</string>
|
||||
<string name="feed_update_threshold_summary">Temps que ha de passar perquè una subscripció es consideri obsoleta — %s</string>
|
||||
|
||||
@@ -497,8 +497,7 @@
|
||||
<string name="drawer_header_description">خزمەتگوزاری چەسپاو، ئێستا هەڵبژێردراو:</string>
|
||||
<string name="delete_search_history_alert">تەواوی گەڕانەکانت بسڕدرێنەوە؟</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">بەردەوام بوونی ڤیدیۆ لەدوای هەبوونی هەر بڕینێک (وەک پەیوەندی تەلەفۆنی)</string>
|
||||
<string name="main_bg_subtitle">کرته له \"گهڕان\" بكه بۆ دهستپێكردن
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">کرته له \"گهڕان\" بكه بۆ دهستپێكردن</string>
|
||||
<string name="enable_search_history_summary">کۆگای گەڕانی نێوخۆیی</string>
|
||||
<string name="settings_category_video_audio_title">ڤیدیۆ وە دەنگ</string>
|
||||
<string name="share">هاوبهشپێكردن</string>
|
||||
|
||||
@@ -61,8 +61,7 @@
|
||||
<string name="show_age_restricted_content_title">Zobrazit věkově omezený obsah</string>
|
||||
<string name="duration_live">Živě</string>
|
||||
<string name="light_parsing_error">Nebylo možné kompletně analyzovat stránku</string>
|
||||
<string name="main_bg_subtitle">Začít klepnutím na \"Hledat\"
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Začněte klepnutím na lupu.</string>
|
||||
<string name="msg_copied">Zkopírováno do schránky</string>
|
||||
<string name="msg_wait">Počkejte prosím…</string>
|
||||
<string name="msg_running">NewPipe stahuje</string>
|
||||
@@ -689,4 +688,6 @@
|
||||
<string name="restricted_video_no_stream">Toto video je věkově omezeno.
|
||||
\nKvůli novým pravidlům YouTube ohledně věkově omezených videí nemůže NewPipe získat přístup na streamy videa, a tak je nemůže přehrát.</string>
|
||||
<string name="night_theme_title">Noční motiv</string>
|
||||
<string name="disable_media_tunneling_summary">Vypněte media-tunelling, pokud zaznamenáte temnou obrazovku nebo zadrhávání během playbacku</string>
|
||||
<string name="disable_media_tunneling_title">Vypnout media-tunelling</string>
|
||||
</resources>
|
||||
@@ -81,8 +81,7 @@
|
||||
<string name="report_error">Fehler melden</string>
|
||||
<string name="user_report">Anwenderbericht</string>
|
||||
<string name="duration_live">Live</string>
|
||||
<string name="main_bg_subtitle">„Suchen“ antippen, um zu beginnen
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Tippe auf die Lupe, um zu beginnen.</string>
|
||||
<string name="downloads">Downloads</string>
|
||||
<string name="downloads_title">Downloads</string>
|
||||
<string name="error_report_title">Fehlerbericht</string>
|
||||
@@ -252,7 +251,7 @@
|
||||
<string name="switch_to_background">In den Hintergrund wechseln</string>
|
||||
<string name="switch_to_popup">Zum Pop-up wechseln</string>
|
||||
<string name="switch_to_main">Zur normalen Wiedergabe wechseln</string>
|
||||
<string name="external_player_unsupported_link_type">Externe Abspielprogramme unterstützen diese Art von Links nicht</string>
|
||||
<string name="external_player_unsupported_link_type">Externe Player unterstützen diese Art von Links nicht</string>
|
||||
<string name="invalid_url_toast">Ungültige URL</string>
|
||||
<string name="video_streams_empty">Keine Video-Streams gefunden</string>
|
||||
<string name="audio_streams_empty">Keine Audio-Streams gefunden</string>
|
||||
@@ -633,7 +632,7 @@
|
||||
<string name="notification_action_nothing">Nichts</string>
|
||||
<string name="title_activity_play_queue">Warteschlange abspielen</string>
|
||||
<string name="auto_queue_toggle">Automatische Warteschlange</string>
|
||||
<string name="clear_queue_confirmation_summary">Der Wechsel von einem Abspielprogramm zu einem anderen kann Ihre Warteschlange überschreiben</string>
|
||||
<string name="clear_queue_confirmation_summary">Der Wechsel von einem Player zu einem anderen kann deine Warteschlange überschreiben</string>
|
||||
<string name="clear_queue_confirmation_title">Überschreiben der Warteschlange bestätigen</string>
|
||||
<string name="clear_queue_confirmation_description">Die aktive Player-Warteschlange wird ersetzt</string>
|
||||
<string name="enqueued">Eingereiht</string>
|
||||
@@ -679,4 +678,22 @@
|
||||
<string name="auto_device_theme_title">Automatisch (Gerätedesign)</string>
|
||||
<string name="night_theme_title">Nachtdesign</string>
|
||||
<string name="show_channel_details">Kanal-Details anzeigen</string>
|
||||
<string name="disable_media_tunneling_summary">Deaktiviere das Media-Tunneling, wenn bei der Videowiedergabe ein schwarzer Bildschirm oder Stottern auftritt</string>
|
||||
<string name="disable_media_tunneling_title">Media-Tunneling deaktivieren</string>
|
||||
<string name="metadata_privacy_internal">Intern</string>
|
||||
<string name="metadata_privacy_private">Privat</string>
|
||||
<string name="metadata_privacy_public">Öffentlich</string>
|
||||
<string name="metadata_language">Sprache</string>
|
||||
<string name="metadata_age_limit">Altersbeschränkung</string>
|
||||
<string name="metadata_privacy">Sichtbarkeit</string>
|
||||
<string name="metadata_licence">Lizenz</string>
|
||||
<string name="metadata_tags">Tags</string>
|
||||
<string name="metadata_category">Kategorie</string>
|
||||
<string name="metadata_privacy_unlisted">Nicht gelistet</string>
|
||||
<string name="metadata_thumbnail_url">Vorschaubild-URL</string>
|
||||
<string name="metadata_host">Server</string>
|
||||
<string name="metadata_support">Unterstützung</string>
|
||||
<string name="description_select_disable">Auswählen von Text in der Beschreibung deaktivieren</string>
|
||||
<string name="description_select_enable">Auswählen von Text in der Beschreibung aktivieren</string>
|
||||
<string name="description_select_note">Du kannst nun Text innerhalb der Beschreibung auswählen. Beachte, dass die Seite flackern kann und Links im Auswahlmodus möglicherweise nicht anklickbar sind.</string>
|
||||
</resources>
|
||||
@@ -87,8 +87,7 @@
|
||||
<string name="title_activity_history">Ιστορικό</string>
|
||||
<string name="action_history">Ιστορικό</string>
|
||||
<string name="show_info">Εμφάνιση πληροφοριών</string>
|
||||
<string name="main_bg_subtitle">Πατήστε «Αναζήτηση» για να ξεκινήσετε
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Πατήστε το μεγενθυτικό φακό για να ξεκινήσετε.</string>
|
||||
<string name="no_player_found_toast">Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή).</string>
|
||||
<string name="controls_download_desc">Λήψη του αρχείου ροής</string>
|
||||
<string name="use_external_video_player_summary">Αφαιρείται ο ήχος από κάποιες αναλύσεις</string>
|
||||
@@ -646,7 +645,7 @@
|
||||
<string name="peertube_instance_url_title">Στιγμιότυπα PeerTube</string>
|
||||
<string name="notification_colorize_title">Χρωματισμός ειδοποιήσεων</string>
|
||||
<string name="notification_colorize_summary">Επιτρέπει στο Android να τροποποιήσει το χρώμα της ειδοποίησης, σύμφωνα με το κύριο χρώμα του εικονιδίου (δεν διατίθεται σε όλες τις συσκευές)</string>
|
||||
<string name="show_thumbnail_summary">Χρήση των εικονιδίων στην οθόνη κλειδώματοςως φόντο και στις ειδοποιήσεις</string>
|
||||
<string name="show_thumbnail_summary">Χρήση των εικονιδίων ως φόντο στην οθόνη κλειδώματος και στις ειδοποιήσεις</string>
|
||||
<string name="show_thumbnail_title">Εμφάνιση</string>
|
||||
<string name="msg_calculating_hash">Υπολογισμός hash</string>
|
||||
<string name="hash_channel_description">Ειδοποιήσεις για πρόοδο βίντεο hashing</string>
|
||||
@@ -679,4 +678,21 @@
|
||||
<string name="auto_device_theme_title">Αυτόματο (θέμα συσκευής)</string>
|
||||
<string name="night_theme_title">Νυχτερινό θέμα</string>
|
||||
<string name="show_channel_details">Εμφάνιση λεπτομερειών καναλιού</string>
|
||||
<string name="disable_media_tunneling_summary">Απενεργοποιήστε το media tunneling, αν εμφανίζεται μαύρη οθόνη ή διακοπτόμενος ήχος κατά την αναπαραγωγή βίντεο</string>
|
||||
<string name="disable_media_tunneling_title">Απενεργοποίηση media tunneling</string>
|
||||
<string name="metadata_privacy_internal">Εσωτερικό</string>
|
||||
<string name="metadata_privacy_private">Ιδιωτικό</string>
|
||||
<string name="metadata_privacy_unlisted">Εκτός λίστας</string>
|
||||
<string name="metadata_privacy_public">Δημόσιο</string>
|
||||
<string name="metadata_thumbnail_url">URL εικονιδίου</string>
|
||||
<string name="metadata_support">Υποστήριξη</string>
|
||||
<string name="metadata_language">Γλώσσα</string>
|
||||
<string name="metadata_age_limit">Όριο ηλικίας</string>
|
||||
<string name="metadata_privacy">Ιδιωτικότητα</string>
|
||||
<string name="metadata_licence">Άδεια</string>
|
||||
<string name="metadata_tags">Ετικέτες</string>
|
||||
<string name="metadata_category">Κατηγορία</string>
|
||||
<string name="description_select_disable">Απενεργοποίηση επιλογής κειμένου στην περιγραφή</string>
|
||||
<string name="description_select_enable">Ενεργοποίηση επιλογής κειμένου στην περιγραφή</string>
|
||||
<string name="description_select_note">Τώρα μπορείτε να επιλέξετε κείμενο εντός της περιγραφής. Σημειώστε ότι, η σελίδα μπορεί να παρουσιάζει αστάθεια κατά τη διάρκεια της κατάστασης επιλογής κειμένου.</string>
|
||||
</resources>
|
||||
@@ -28,8 +28,7 @@
|
||||
<string name="show_hold_to_append_title">Show ‘Hold to append’ tip</string>
|
||||
<string name="show_play_with_kodi_title">Show ‘Play with Kodi’ option</string>
|
||||
<string name="did_you_mean">Did you mean ‘%1$s’\?</string>
|
||||
<string name="main_bg_subtitle">Tap ‘Search’ to get started
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Tap the magnifying glass to get started.</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">Channel’s avatar thumbnail</string>
|
||||
<string name="feed_update_threshold_summary">Time after last update before a subscription is considered outdated – %s</string>
|
||||
<string name="autoplay_summary">Start playback automatically – %s</string>
|
||||
|
||||
@@ -65,8 +65,7 @@
|
||||
<string name="report_error">Signali eraron</string>
|
||||
<string name="video">Filmeto</string>
|
||||
<string name="retry">Reprovi</string>
|
||||
<string name="main_bg_subtitle">Premi \"Serĉi\" por komenci
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Premi \"Serĉi\" por komenci</string>
|
||||
<string name="no_player_found_toast">Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin).</string>
|
||||
<string name="open_in_popup_mode">Malfermi en ŝprucfenestran modon</string>
|
||||
<string name="use_external_video_player_summary">Forigas aŭdon ĉe kelkaj rezolucioj</string>
|
||||
|
||||
@@ -59,8 +59,7 @@
|
||||
<string name="live_streams_not_supported">Las transmisiones en vivo no son soportadas aún</string>
|
||||
<string name="content">Contenido</string>
|
||||
<string name="show_age_restricted_content_title">Mostrar contenido con restricción de edad</string>
|
||||
<string name="main_bg_subtitle">Toca en «Buscar» para comenzar
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Toca en «Buscar» para comenzar.</string>
|
||||
<string name="autoplay_by_calling_app_title">Reproducción automática</string>
|
||||
<string name="autoplay_by_calling_app_summary">Reproducir un vídeo cuando NewPipe es llamado desde otra aplicación</string>
|
||||
<string name="duration_live">En directo</string>
|
||||
@@ -681,4 +680,5 @@
|
||||
<string name="night_theme_summary">Selecciona tu tema nocturno favorito — %s</string>
|
||||
<string name="auto_device_theme_title">Automático (tema del dispositivo)</string>
|
||||
<string name="show_channel_details">Mostrar detalles del canal</string>
|
||||
<string name="featured">Destacado</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Alustamiseks toksa \"Otsi\"
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Alustamiseks toksa suurendusklaasi ikooni.</string>
|
||||
<string name="view_count_text">%1$s vaatamist</string>
|
||||
<string name="upload_date_text">Avaldatud %1$s</string>
|
||||
<string name="no_player_found">Voogesituseks puudub pleier. Kas paigaldada VLC?</string>
|
||||
@@ -314,8 +313,8 @@
|
||||
<string name="delete_playlist">Kustuta</string>
|
||||
<string name="rename_playlist">Nimeta ümber</string>
|
||||
<string name="name">Nimi</string>
|
||||
<string name="append_playlist">Lisa pleilisti</string>
|
||||
<string name="set_as_playlist_thumbnail">Määra pleilisti pisipildiks</string>
|
||||
<string name="append_playlist">Lisa esitusloendisse</string>
|
||||
<string name="set_as_playlist_thumbnail">Määra esitusloendi pisipildiks</string>
|
||||
<string name="bookmark_playlist">Lisa pleilist järjehoidjaks</string>
|
||||
<string name="unbookmark_playlist">Eemalda järjehoidja</string>
|
||||
<string name="delete_playlist_prompt">Kas kustutada see pleilist?</string>
|
||||
@@ -498,4 +497,147 @@
|
||||
<string name="notification_scale_to_square_image_summary">Skaleeri teavituses kuvatav video pisipilt 16:9 külgede suhtest 1:1 suhtesse (võib põhjustada häireid)</string>
|
||||
<string name="notification_scale_to_square_image_title">Skaleeri pisipilt 1:1 küljesuhtesse</string>
|
||||
<string name="download_choose_new_path">Vaheta alla laadimise kaust, et muudatused rakendada</string>
|
||||
<string name="msg_calculating_hash">Arvutan räsi</string>
|
||||
<string name="recent">Hiljutised</string>
|
||||
<string name="description_tab_description">Kirjeldus</string>
|
||||
<string name="chapters">Peatükid</string>
|
||||
<string name="no_app_to_open_intent">Ükski sinu seadme rakendus ei saa seda avada</string>
|
||||
<string name="crash_the_app">Jooksuta rakendus kokku</string>
|
||||
<string name="georestricted_content">See sisu ei ole sinu riigis saadaval.</string>
|
||||
<string name="soundcloud_go_plus_content">Vähemalt sinu riigis on see SoundCloud Go+ teenuse lugu, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida.</string>
|
||||
<string name="private_content">See sisu on privaatne, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida.</string>
|
||||
<string name="youtube_music_premium_content">See video on saadaval ainult YouTube Music Premium teenuse tellijatele, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida.</string>
|
||||
<string name="paid_content">See sisu on kättesaadav ainult tasulise teenuse kasutajatele, seega ei saa seda NewPipe\'i kaudu voogedastada ega alla laadida.</string>
|
||||
<string name="recaptcha_solve">Lahenda</string>
|
||||
<string name="featured">Esiletõstetud</string>
|
||||
<string name="radio">Raadio</string>
|
||||
<string name="auto_device_theme_title">Automaatne (seadme teema)</string>
|
||||
<string name="night_theme_summary">Vali eelistatud teema öiseks kasutuseks — %s</string>
|
||||
<string name="select_night_theme_toast">Järgnevalt saad sa valida sobiva teema öiseks kasutuseks</string>
|
||||
<string name="download_has_started">Allalaadimine algas</string>
|
||||
<string name="related_items_tab_description">Sarnane meedia</string>
|
||||
<string name="show_channel_details">Näita kanali lisateavet</string>
|
||||
<string name="permission_display_over_apps">Luba rakendust kuvada teiste rakenduste peal</string>
|
||||
<string name="error_report_open_issue_button_text">Teata sellest GitHub\'is</string>
|
||||
<string name="comments_tab_description">Kommentaarid</string>
|
||||
<string name="no_one_watching">Mitte keegi hetkel seda videot ei vaata</string>
|
||||
<plurals name="watching">
|
||||
<item quantity="one">%s vaataja</item>
|
||||
<item quantity="other">%s vaatajat</item>
|
||||
</plurals>
|
||||
<string name="no_one_listening">Mitte keegi hetkel seda pala ei kuula</string>
|
||||
<plurals name="listening">
|
||||
<item quantity="one">%s kuulaja</item>
|
||||
<item quantity="other">%s kuulajat</item>
|
||||
</plurals>
|
||||
<string name="hash_channel_description">Teavitused video räsimise edenemise kohta</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Võta kasutusele YouTube\'i „Piiratud režiim“</string>
|
||||
<string name="missing_file">Faili asukoht on muutunud või on ta kustutatud</string>
|
||||
<string name="watch_history_states_deleted">Taasesituste asukohad on kustutatud.</string>
|
||||
<string name="help">Abiteave</string>
|
||||
<string name="delete_playback_states_alert">Kas kustutame kõik taasesituste asukohad\?</string>
|
||||
<string name="clear_playback_states_summary">Kustutab kõik taasesituse käigus salvestatud asukohad</string>
|
||||
<string name="clear_playback_states_title">Kustuta taasesituste asukohad</string>
|
||||
<string name="clear_cookie_summary">Kustuta küpsised, mille NewPipe on reCAPTCHA vastamise ajal salvestanud</string>
|
||||
<string name="recaptcha_cookies_cleared">reCAPTCHA küpsised on kustutatud</string>
|
||||
<string name="clear_cookie_title">Kustuta reCAPTCHA küpsised</string>
|
||||
<string name="hash_channel_name">Teavitus video räsi kohta</string>
|
||||
<string name="artists">Esitajad</string>
|
||||
<string name="albums">Albumid</string>
|
||||
<string name="songs">Laulud</string>
|
||||
<string name="videos_string">Videod</string>
|
||||
<string name="restricted_video_no_stream">Sellel videol on vanusepiirang.
|
||||
\nVastavalt YouTube uuetele reeglitele, mis käitlevad vanusepiirangutega materjali, NewPipe ei saa seda kätte ning vastavalt ei suuda seda ka esitada.</string>
|
||||
<string name="restricted_video">Sellel videol on vanusepiirang.
|
||||
\n
|
||||
\nKui sa soovid seda näha, siis lülita seadistustest „%1$s“ sisse.</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">YouTube\'is leiduv „Piiratud režiim“ peidab võimaliku täiskasvanutele mõeldud sisu</string>
|
||||
<string name="show_age_restricted_content_summary">Näita sisu, mis vanusepiirangu tõttu ilmselt ei sobi lastele (näiteks 18+)</string>
|
||||
<string name="settings_category_notification_title">Teavitus</string>
|
||||
<string name="peertube_instance_add_https_only">Sa saad kasutada vaid HTTPS-urle</string>
|
||||
<string name="night_theme_title">Öine teema</string>
|
||||
<string name="never">Ei iialgi</string>
|
||||
<string name="wifi_only">Vaid Wi-Fi võrgus</string>
|
||||
<string name="autoplay_summary">Alusta esitamist automaatselt — %s</string>
|
||||
<string name="show_memory_leaks">Näita mälulekkeid</string>
|
||||
<string name="playlist_no_uploader">Automaatselt loodud (üleslaadita ei leidu)</string>
|
||||
<string name="unmute">Lõpeta summutamine</string>
|
||||
<string name="mute">Summuta</string>
|
||||
<string name="enqueued">Esitusjärjekorda lisatud</string>
|
||||
<string name="most_liked">Enim meeldimisi</string>
|
||||
<string name="title_activity_play_queue">Esitusjärjekord</string>
|
||||
<string name="enqueue_stream">Lisa esitusjärjekorda</string>
|
||||
<string name="recently_added">Hiljuti lisatud</string>
|
||||
<string name="local">Kohalikud</string>
|
||||
<string name="localization_changes_requires_app_restart">Keele muutus jõustub rakenduse uuesti käivitamisel.</string>
|
||||
<string name="error_unable_to_load_comments">Kommentaaride laadimine ei õnnestunud</string>
|
||||
<string name="no_playlist_bookmarked_yet">Esitusloendi järjehoidjaid veel pole</string>
|
||||
<string name="select_a_playlist">Vali esitusloend</string>
|
||||
<string name="default_kiosk_page_summary">Vaikimisi seadistatud kiosk</string>
|
||||
<string name="recaptcha_done_button">Valmis</string>
|
||||
<string name="subtitle_activity_recaptcha">Kui oled lõpetanud, siis vajuta „Valmis“ nuppu</string>
|
||||
<string name="no_comments">Kommentaare pole</string>
|
||||
<string name="infinite_videos">∞ videot</string>
|
||||
<string name="more_than_100_videos">100+ videot</string>
|
||||
<string name="close">Sulge</string>
|
||||
<string name="deleted_downloads">Kustutasin %1$d allalaaditud faili</string>
|
||||
<string name="delete_downloaded_files">Kustuta allalaaditud failid</string>
|
||||
<string name="confirm_prompt">Kas sa soovid kustutada allalaadimiste ajaloo või allalaaditud failid\?</string>
|
||||
<string name="clear_download_history">Kustuta allalaadimiste ajalugu</string>
|
||||
<string name="error_download_resource_gone">Seda allalaadimist ei saa uuesti alustada</string>
|
||||
<string name="error_timeout">Ühendus aegus</string>
|
||||
<string name="error_insufficient_storage">Seadmes pole enam ruumi</string>
|
||||
<string name="download_already_pending">Sellise nimega allalaadimine on juba pooleli</string>
|
||||
<string name="overwrite_failed">faili asendamine ei õnnestu</string>
|
||||
<string name="feed_create_new_group_button_title">Uus</string>
|
||||
<plurals name="feed_group_dialog_selection_count">
|
||||
<item quantity="one">%d valitud</item>
|
||||
<item quantity="other">%d valitud</item>
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_empty_selection">Sa pole tellimusi valinud</string>
|
||||
<string name="feed_group_dialog_select_subscriptions">Vali tellimused</string>
|
||||
<string name="feed_processing_message">Töötlen andmevoogu…</string>
|
||||
<string name="feed_notification_loading">Laadin andmevoogu…</string>
|
||||
<string name="feed_subscription_not_loaded_count">Pole laaditud: %d</string>
|
||||
<string name="feed_oldest_subscription_update">Andmevoo viimane uuendus: %s</string>
|
||||
<string name="feed_groups_header_title">Kanalite rühmad</string>
|
||||
<plurals name="days">
|
||||
<item quantity="one">%d päev</item>
|
||||
<item quantity="other">%d päeva</item>
|
||||
</plurals>
|
||||
<plurals name="hours">
|
||||
<item quantity="one">%d tund</item>
|
||||
<item quantity="other">%d tundi</item>
|
||||
</plurals>
|
||||
<plurals name="minutes">
|
||||
<item quantity="one">%d minut</item>
|
||||
<item quantity="other">%d minutit</item>
|
||||
</plurals>
|
||||
<plurals name="seconds">
|
||||
<item quantity="one">%d sekund</item>
|
||||
<item quantity="other">%d sekundit</item>
|
||||
</plurals>
|
||||
<string name="remove_watched_popup_warning">Sellega eemaldame vaadatud videod ja esitusloendisse lisatud videod.
|
||||
\nKas sa oled kindel\? Seda tegevuste ei saa hiljem tagasi pöörata!</string>
|
||||
<string name="remove_watched_popup_yes_and_partially_watched_videos">Jah, sealhulgas videod, mille vaatmine jäi pooleli</string>
|
||||
<string name="remove_watched_popup_title">Kas eemaldame vaadatud videod\?</string>
|
||||
<string name="remove_watched">Eemalda vaadatud videod</string>
|
||||
<string name="systems_language">Kasuta süsteemi keelt</string>
|
||||
<string name="app_language_title">Rakenduse keel</string>
|
||||
<string name="downloads_storage_ask_summary">Alati küsime kuhu kausta soovid faile alla laadida</string>
|
||||
<string name="downloads_storage_ask_title">Küsi allalaaditavate failide salvestamise kausta</string>
|
||||
<string name="pause_downloads">Peata allalaadimised</string>
|
||||
<string name="start_downloads">Alusta allalaadimistega</string>
|
||||
<string name="copy_for_github">Kopeeri vormindatud aruanne</string>
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">Näita vaid rühmitamata tellimus</string>
|
||||
<string name="feed_group_dialog_delete_message">Kas sa soovid selle kanalite rühma kustutada\?</string>
|
||||
<string name="feed_group_dialog_empty_name">Rühmal puudub nimi</string>
|
||||
<string name="new_seek_duration_toast">ExoPlayer\'i piirangute tõttu seadistasime otsingusammu %d sekundile</string>
|
||||
<string name="enable_queue_limit_desc">Luba korraga vaid üks allalaadimine</string>
|
||||
<string name="enable_queue_limit">Piira allalaadimiste järjekorda</string>
|
||||
<string name="error_progress_lost">Faili kustutamisega läks ka tööjärg kautsi</string>
|
||||
<string name="error_postprocessing_stopped">Faili töötlemisel NewPipe lõpetas töö</string>
|
||||
<string name="disable_media_tunneling_summary">Lülita meedia tunneldamine välja juhul, kui esitamisel tekib must ekraan või pildi kuvamine on katkendlik</string>
|
||||
<string name="disable_media_tunneling_title">Lülita meedia tunneldamine välja</string>
|
||||
<string name="drawer_header_description">Vaheta teenust, hetkel on kasutusel:</string>
|
||||
</resources>
|
||||
@@ -39,8 +39,7 @@
|
||||
<string name="use_external_video_player_title">Erabili kanpo bideo-erreproduzigailua</string>
|
||||
<string name="use_external_audio_player_title">Erabili kanpo audio-erreproduzigailua</string>
|
||||
<string name="background_player_playing_toast">Atzeko planoan erreproduzitzen</string>
|
||||
<string name="main_bg_subtitle">Sakatu \"Bilatu\" hasteko
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Sakatu «bilatu» atalean hasteko.</string>
|
||||
<string name="download_path_audio_title">Audioa deskargatzeko karpeta</string>
|
||||
<string name="download_path_audio_dialog_title">Aukeratu audio fitxategiak deskargatzeko karpeta</string>
|
||||
<string name="download_path_audio_summary">Deskargatutako audio fitxategiak hemen gordetzen dira</string>
|
||||
@@ -661,7 +660,7 @@
|
||||
<string name="comments_tab_description">Iruzkinak</string>
|
||||
<string name="show_description_summary">Desaktibatu bideoaren deskribapena eta informazio gehigarria ezkutatzeko</string>
|
||||
<string name="show_description_title">Erakutsi deskribapena</string>
|
||||
<string name="open_with">Ireki honekin...</string>
|
||||
<string name="open_with">Ireki honekin…</string>
|
||||
<string name="radio">Irratia</string>
|
||||
<string name="featured">Nabarmenduak</string>
|
||||
<string name="paid_content">Eduki hau ordaindu duten erabiltzaileentzat soilik dago eskuragarri, eta NewPipe-k ezin du tramsmititu edo deskargatu.</string>
|
||||
@@ -679,4 +678,6 @@
|
||||
<string name="auto_device_theme_title">Automatikoa (gailuaren gaia)</string>
|
||||
<string name="night_theme_title">Gau Gaia</string>
|
||||
<string name="show_channel_details">kanalaren xehetasunak erakutsi</string>
|
||||
<string name="disable_media_tunneling_summary">Desaktibatu hedabideen tunela bideo-erreprodukzioan pantaila beltz bat edo totelka ari bada</string>
|
||||
<string name="disable_media_tunneling_title">Hedabideen tunela desaktibatu</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Napauta hakua aloittaaksesi
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Napauta hakua aloittaaksesi</string>
|
||||
<string name="view_count_text">%1$s näyttökertaa</string>
|
||||
<string name="upload_date_text">Julkaistu %1$s</string>
|
||||
<string name="no_player_found">Ei löytynyt suoratoistosoitinta. Asennetaanko VLC\?</string>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Pindutin ang \'hanap\' upang magsimula
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Pindutin ang \'hanap\' upang magsimula</string>
|
||||
<string name="view_count_text">%1$s view</string>
|
||||
<string name="upload_date_text">Nai-publish noong %1$s</string>
|
||||
<string name="no_player_found">Walang nakitang stream player. Mag-install ng VLC\?</string>
|
||||
|
||||
@@ -75,8 +75,7 @@
|
||||
<string name="audio">Audio</string>
|
||||
<string name="retry">Réessayer</string>
|
||||
<string name="storage_permission_denied">Veuillez d’abord accorder l’accès au stockage</string>
|
||||
<string name="main_bg_subtitle">Appuyez sur la loupe pour commencer
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Appuyez sur la loupe pour commencer.</string>
|
||||
<string name="autoplay_by_calling_app_title">Lecture automatique</string>
|
||||
<string name="user_report">Rapport utilisateur</string>
|
||||
<string name="error_snackbar_action">Signaler</string>
|
||||
@@ -98,7 +97,7 @@
|
||||
<string name="msg_server_unsupported">Serveur non pris en charge</string>
|
||||
<string name="msg_exists">Fichier déjà existant</string>
|
||||
<string name="msg_url_malform">Lien malformé ou accès à Internet indisponible</string>
|
||||
<string name="msg_running">NewPipe télécharge …</string>
|
||||
<string name="msg_running">NewPipe télécharge…</string>
|
||||
<string name="msg_running_detail">Appuyer pour plus de détails</string>
|
||||
<string name="msg_wait">Veuillez patienter…</string>
|
||||
<string name="msg_copied">Copié dans le presse-papiers</string>
|
||||
@@ -115,7 +114,7 @@
|
||||
<string name="yes">Oui</string>
|
||||
<string name="later">Plus tard</string>
|
||||
<string name="disabled">Désactivés</string>
|
||||
<string name="info_labels">Quoi :\\nRequête :\\nLangue du contenu :\\nPays du contenu :\\nLangue de l’application :\\nService :\\nDate UTC :\\nPaquet :\\nVersion :\\nVersion du système d’exploitation :</string>
|
||||
<string name="info_labels">Quoi :\\nRequest :\\nContent Language :\\nContent Country :\\nApp Language :\\nService :\\nGMT Time :\\nPackage :\\nVersion :\\nOS version :</string>
|
||||
<string name="short_thousand">k</string>
|
||||
<string name="short_million">M</string>
|
||||
<string name="msg_popup_permission">Cette autorisation est nécessaire pour
|
||||
@@ -681,4 +680,22 @@
|
||||
<string name="select_night_theme_toast">Vous pouvez choisir votre thème nuit favori</string>
|
||||
<string name="download_has_started">Le téléchargement a démarré</string>
|
||||
<string name="show_channel_details">Afficher les détails de la chaîne</string>
|
||||
<string name="disable_media_tunneling_summary">Désactivez le tunnelage multimédia si vous constatez un écran noir ou un bégaiement lors de la lecture d\'une vidéo</string>
|
||||
<string name="disable_media_tunneling_title">Désactiver le tunnelage média</string>
|
||||
<string name="description_select_disable">Désactiver la sélection de texte dans la description</string>
|
||||
<string name="description_select_enable">Permettre la sélection de texte dans la description</string>
|
||||
<string name="metadata_privacy_internal">Interne</string>
|
||||
<string name="metadata_privacy_private">Privé</string>
|
||||
<string name="metadata_privacy_unlisted">Non répertorié</string>
|
||||
<string name="metadata_privacy_public">Public</string>
|
||||
<string name="metadata_thumbnail_url">URL de la miniature</string>
|
||||
<string name="metadata_host">Hôte</string>
|
||||
<string name="metadata_support">Support</string>
|
||||
<string name="metadata_language">Langue</string>
|
||||
<string name="metadata_age_limit">Limite d\'âge</string>
|
||||
<string name="metadata_privacy">Confidentialité</string>
|
||||
<string name="metadata_licence">Licence</string>
|
||||
<string name="metadata_tags">Étiquettes</string>
|
||||
<string name="metadata_category">Catégorie</string>
|
||||
<string name="description_select_note">Vous pouvez maintenant sélectionner du texte à l\'intérieur de la description. Notez que la page peut scintiller et que les liens peuvent ne pas être cliquables en mode sélection.</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Toque en \"Buscar\" para comezar
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Toque en \"Buscar\" para comezar</string>
|
||||
<string name="view_count_text">%1$s visualizacións</string>
|
||||
<string name="upload_date_text">Publicado o día %1$s</string>
|
||||
<string name="no_player_found">Non foi encontrado ningún reprodutor. Quere instalar o VLC\?</string>
|
||||
@@ -586,7 +585,7 @@
|
||||
<string name="videos_string">Vídeos</string>
|
||||
<string name="restricted_video">Este vídeo está restrinxido por idade.
|
||||
\n
|
||||
\nSe desexa visualizalo, habilite \"Contido restrinxido por idade\" nos axustes.</string>
|
||||
\nSe desexa visualizalo, habilite \"%1$s\" nos axustes.</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Modo restrinxido de YouTube</string>
|
||||
<string name="settings_category_updates_title">Actualizacións</string>
|
||||
<string name="peertube_instance_add_exists">A instancia xa existe</string>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">יש לגעת ב־„חיפוש” כדי להתחיל
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">יש לגעת בזכוכית המגדלת כדי להתחיל.</string>
|
||||
<string name="view_count_text">%1$s צפיות</string>
|
||||
<string name="upload_date_text">פורסם ב־%1$s</string>
|
||||
<string name="no_player_found">לא נמצאו נגני הזרמה, להתקין VLC\?</string>
|
||||
@@ -699,4 +698,22 @@
|
||||
<string name="recaptcha_solve">לפתור</string>
|
||||
<string name="night_theme_title">ערכת עיצוב לילית</string>
|
||||
<string name="show_channel_details">להציג את פרטי הערוץ</string>
|
||||
<string name="disable_media_tunneling_summary">כדאי להשבית תיעול מדיה אם הופיעה תופעה של מסך שחור או גמגום בנגינת וידאו</string>
|
||||
<string name="disable_media_tunneling_title">השבתת תיעול מדיה</string>
|
||||
<string name="metadata_privacy_internal">פנימי</string>
|
||||
<string name="metadata_privacy_private">פרטי</string>
|
||||
<string name="metadata_privacy_unlisted">לא מופיע ברשימות</string>
|
||||
<string name="metadata_privacy_public">ציבורי</string>
|
||||
<string name="metadata_thumbnail_url">כתובת תמונה ממוזערת</string>
|
||||
<string name="metadata_host">אירוח</string>
|
||||
<string name="metadata_support">תמיכה</string>
|
||||
<string name="metadata_language">שפה</string>
|
||||
<string name="metadata_age_limit">הגבלת גיל</string>
|
||||
<string name="metadata_privacy">פרטיות</string>
|
||||
<string name="metadata_licence">רישיון</string>
|
||||
<string name="metadata_tags">תגיות</string>
|
||||
<string name="metadata_category">קטגוריה</string>
|
||||
<string name="description_select_disable">השבתת בחירת טקסט בתיאור</string>
|
||||
<string name="description_select_enable">הפעלת בחירת טקסט בתיאור</string>
|
||||
<string name="description_select_note">מעתה ניתן לבחור טקסט בתוך התיאור. נא לשים לב שהעמוד עשוי להבהב והקישורים לא יהיו לחיצים בזמן מצב הבחירה.</string>
|
||||
</resources>
|
||||
@@ -2,29 +2,29 @@
|
||||
<resources>
|
||||
<string name="view_count_text">%1$s व्यूज</string>
|
||||
<string name="upload_date_text">%1$s को प्रकाशित हुआ</string>
|
||||
<string name="no_player_found">कोई स्ट्रीम प्लेयर नहीं मिला। क्या आप VLC इंस्टॉल करना चाहेंगे\?</string>
|
||||
<string name="no_player_found">स्ट्रीमिंग के लिए प्लेयर नहीं मिला। क्या आप VLC इंस्टॉल करना चाहेंगे\?</string>
|
||||
<string name="install">इंस्टॉल करें</string>
|
||||
<string name="open_in_browser">ब्राउज़र में खोलें</string>
|
||||
<string name="open_in_popup_mode">पॉपअप मोड में खोलें</string>
|
||||
<string name="share">शेयर करें</string>
|
||||
<string name="download">डाउनलोड</string>
|
||||
<string name="download">डाउनलोड करे</string>
|
||||
<string name="search">सर्च करे</string>
|
||||
<string name="settings">सेटिंग्स</string>
|
||||
<string name="choose_browser">ब्राउज़र चुनें</string>
|
||||
<string name="screen_rotation">स्क्रीन रोटेशन</string>
|
||||
<string name="popup_mode_share_menu_title">पॉपअप mode</string>
|
||||
<string name="popup_mode_share_menu_title">पॉपअप मोड</string>
|
||||
<string name="subscribe_button_title">सब्सक्राइब करें</string>
|
||||
<string name="subscribed_button_title">Subscribed</string>
|
||||
<string name="channel_unsubscribed">Channel unsubscribed</string>
|
||||
<string name="tab_subscriptions">सदस्यता</string>
|
||||
<string name="controls_background_title">पीछे</string>
|
||||
<string name="subscribed_button_title">सब्सक्राइबड</string>
|
||||
<string name="channel_unsubscribed">चैनल अनसब्सक्राइब हुआ</string>
|
||||
<string name="tab_subscriptions">सब्सक्रिप्शनस</string>
|
||||
<string name="controls_background_title">बैकग्राउंड</string>
|
||||
<string name="controls_popup_title">पॉपअप</string>
|
||||
<string name="autoplay_by_calling_app_title">ऑटोप्ले करें</string>
|
||||
<string name="play_audio">ऑडियो</string>
|
||||
<string name="light_theme_title">हलका</string>
|
||||
<string name="black_theme_title">काली</string>
|
||||
<string name="enable_watch_history_title">देखे हुए वीडियो की सूची</string>
|
||||
<string name="download_dialog_title">डाउनलोड</string>
|
||||
<string name="light_theme_title">लाइट</string>
|
||||
<string name="black_theme_title">ब्लैक</string>
|
||||
<string name="enable_watch_history_title">देखे हुए विडियोज का इतिहास</string>
|
||||
<string name="download_dialog_title">डाउनलोड करे</string>
|
||||
<string name="settings_category_video_audio_title">वीडियो और ऑडियो</string>
|
||||
<string name="settings_category_history_title">History and cache</string>
|
||||
<string name="background_player_playing_toast">बैकग्राउंड में चल रहा है</string>
|
||||
@@ -51,52 +51,51 @@
|
||||
<string name="item_deleted">Item हटा दिया गया है</string>
|
||||
<string name="trending">फ़िलहाल चर्चा में है</string>
|
||||
<string name="play_queue_audio_settings">ऑडियो सेटिंग</string>
|
||||
<string name="main_bg_subtitle">शुरू करने के लिए \"सर्च\" बटन दबाएं
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">शुरू करने के लिए \"सर्च\" बटन दबाएं</string>
|
||||
<string name="cancel">कैंसल करे</string>
|
||||
<string name="did_you_mean">क्या आप का मतलब \"%1$s\" था\?</string>
|
||||
<string name="share_dialog_title">किस से शेयर करे</string>
|
||||
<string name="use_external_video_player_title">कोई दूसरा विडियो प्लेयर उपयोग करें</string>
|
||||
<string name="share_dialog_title">के साथ शेयर करे</string>
|
||||
<string name="use_external_video_player_title">कोई दूसरा विडियो प्लेयर इस्तेमाल करें</string>
|
||||
<string name="use_external_video_player_summary">कुछ विडियो रिजॉल्यूशनस पर ऑडियो हट सकती है</string>
|
||||
<string name="use_external_audio_player_title">कोई दूसरा ऑडियो प्लेयर उपयोग करें</string>
|
||||
<string name="tab_main">मुख्य</string>
|
||||
<string name="subscription_change_failed">Subscription बदला नहीं जा सका</string>
|
||||
<string name="subscription_update_failed">सदस्यता का अद्यतन नहीं हो सका</string>
|
||||
<string name="subscription_change_failed">सब्सक्रिप्शन बदला नहीं जा सका</string>
|
||||
<string name="subscription_update_failed">सब्सक्रिप्शन अपडेट नहीं किया जा सका</string>
|
||||
<string name="fragment_feed_title">देखे की क्या नया है</string>
|
||||
<string name="download_path_title">वीडियो डाउनलोड फ़ोल्डर</string>
|
||||
<string name="download_path_title">वीडियो डाउनलोड का फ़ोल्डर</string>
|
||||
<string name="download_path_summary">डाउनलोड की गई वीडियो फ़ाइलें यहां संग्रहीत हैं</string>
|
||||
<string name="download_path_dialog_title">वीडियो फ़ाइलों के लिए डाउनलोड फ़ोल्डर चुनें</string>
|
||||
<string name="download_path_audio_title">ऑडियो डाउनलोड फ़ोल्डर</string>
|
||||
<string name="download_path_audio_summary">डाउनलोड की गई वीडियो फ़ाइलें यहां संग्रहीत हैं</string>
|
||||
<string name="download_path_audio_summary">डाउनलोड की गई ऑडियो फ़ाइलें यहां संग्रहीत हैं</string>
|
||||
<string name="download_path_audio_dialog_title">ऑडियो फ़ाइलों के लिए डाउनलोड फ़ोल्डर चुनें</string>
|
||||
<string name="autoplay_by_calling_app_summary">अन्य अप्प के द्वारा NewPipe के आह्वान पर वीडियो तुरंत चले</string>
|
||||
<string name="default_resolution_title">वीडियो का डिफ़ॉल्ट रिज़ॉल्यूशन</string>
|
||||
<string name="default_popup_resolution_title">विडियो पॉपअप का डिफ़ॉल्ट रिज़ॉल्यूशन</string>
|
||||
<string name="show_higher_resolutions_title">उच्च रिज़ॉल्यूशन दिखाएं</string>
|
||||
<string name="show_higher_resolutions_summary">केवल कुछ ही यंत्र है जो 2K/4K विडियो चला सकते हैं</string>
|
||||
<string name="autoplay_by_calling_app_summary">दूसरे ऐप द्वारा न्यूपाइप को बुलाने पर तुरंत वीडियो चलाएं</string>
|
||||
<string name="default_resolution_title">डिफ़ॉल्ट रिज़ॉल्यूशन</string>
|
||||
<string name="default_popup_resolution_title">पॉपअप का डिफ़ॉल्ट रिज़ॉल्यूशन</string>
|
||||
<string name="show_higher_resolutions_title">उच्च रिज़ॉल्यूशनस दिखाएं</string>
|
||||
<string name="show_higher_resolutions_summary">केवल कुछ ही डिवाइस 2K/4K मे विडियो चला सकते हैं</string>
|
||||
<string name="play_with_kodi_title">Kodi से चलायें</string>
|
||||
<string name="kore_not_found">Kore एप्प नहीं मिली, इसे इनस्टॉल करें\?</string>
|
||||
<string name="kore_not_found">Kore ऐप नहीं मिली, इसे इनस्टॉल करें\?</string>
|
||||
<string name="show_play_with_kodi_title">\"Kodi से चलायें\" वाला विकल्प दिखाएँ</string>
|
||||
<string name="show_play_with_kodi_summary">कोडी मीडिया सेंटर के माध्यम से वीडियो चलाने के लिए एक विकल्प प्रदर्शित करें</string>
|
||||
<string name="default_audio_format_title">डिफ़ॉल्ट ऑडियो का फॉर्मेट</string>
|
||||
<string name="default_video_format_title">डिफ़ॉल्ट विडियो का फॉर्मेट</string>
|
||||
<string name="theme_title">एप्प का नया रूप</string>
|
||||
<string name="dark_theme_title">काला</string>
|
||||
<string name="popup_remember_size_pos_title">विडियो पॉपअप की आकर और उसकी स्थति को याद रखे</string>
|
||||
<string name="popup_remember_size_pos_summary">विडियो पॉपअप के पहले वाली आकर और उसकी स्थिति को याद रखे</string>
|
||||
<string name="player_gesture_controls_title">प्लेयर इशारा नियंत्रण</string>
|
||||
<string name="player_gesture_controls_summary">प्लेयर की ब्राइटनेस और ध्वनी को नियंत्रण के लिए फ़ोन में इशारो का प्रयोग करे</string>
|
||||
<string name="show_search_suggestions_title">खोज के सुझाव देखे</string>
|
||||
<string name="show_search_suggestions_summary">जब कुछ ढूंड रहे हो तो सुझाव दिखाये</string>
|
||||
<string name="enable_search_history_title">खोज के इतिहास को देखे</string>
|
||||
<string name="enable_search_history_summary">खोज के query को फ़ोन की मेमोरी में ही रखे</string>
|
||||
<string name="enable_watch_history_summary">देखे हुए विडियो की सूची रखे</string>
|
||||
<string name="resume_on_audio_focus_gain_title">वीडियो ज़ारी रखें</string>
|
||||
<string name="show_play_with_kodi_summary">Kodi मीडिया सेंटर से विडियो चलाने के लिए विकल्प प्रदर्शित करें</string>
|
||||
<string name="default_audio_format_title">डिफ़ॉल्ट ऑडियो फॉर्मेट</string>
|
||||
<string name="default_video_format_title">डिफ़ॉल्ट विडियो फॉर्मेट</string>
|
||||
<string name="theme_title">ऐप थीम</string>
|
||||
<string name="dark_theme_title">डार्क</string>
|
||||
<string name="popup_remember_size_pos_title">विडियो पॉपअप का आकर और उसकी स्थति को याद रखे</string>
|
||||
<string name="popup_remember_size_pos_summary">विडियो पॉपअप की आखिरी स्थिति और आकर को याद रखे</string>
|
||||
<string name="player_gesture_controls_title">प्लेयर के गेस्चर कंट्रोल</string>
|
||||
<string name="player_gesture_controls_summary">प्लेयर की चमक और आवाज को नियंत्रित करने के लिए गेस्चर्स का इस्तेमाल करे</string>
|
||||
<string name="show_search_suggestions_title">खोज के सुझाव</string>
|
||||
<string name="show_search_suggestions_summary">खोज के दौरान सुझाव दिखाये</string>
|
||||
<string name="enable_search_history_title">खोज का इतिहास</string>
|
||||
<string name="enable_search_history_summary">खोज के डेटा को सिर्फ डिवाइस मेमोरी में रखे</string>
|
||||
<string name="enable_watch_history_summary">देखे गए विडियोज की सूची रखे</string>
|
||||
<string name="resume_on_audio_focus_gain_title">वीडियो</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">रूकावटे खत्म होने के बाद विडियो प्ले करे (जैसे - फ़ोन कॉल)</string>
|
||||
<string name="show_next_and_similar_title">\'अगला\' और \'पहले समान\' वीडियो दिखाए</string>
|
||||
<string name="show_next_and_similar_title">\'अगला\' और \'समान\' वीडियो दिखाए</string>
|
||||
<string name="show_hold_to_append_title">\"जोड़ने के लिए पकड़ें रहे\" दिखाए</string>
|
||||
<string name="show_hold_to_append_summary">जब बैकग्राउंड और पॉपअप बटन विडियो के विवरण पन्ने में दबाई जाए तो tip को दिखाए</string>
|
||||
<string name="unsupported_url">ये वाला URL इसमें नहीं चलेगा</string>
|
||||
<string name="unsupported_url">असमर्थित URL</string>
|
||||
<string name="content_language_title">डिफ़ॉल्ट विषय की भाषा</string>
|
||||
<string name="settings_category_player_title">प्लेयर</string>
|
||||
<string name="settings_category_player_behavior_title">चाल चलन</string>
|
||||
@@ -235,8 +234,8 @@
|
||||
<string name="start_here_on_main">यंहा से चलाना शुरू करे</string>
|
||||
<string name="start_here_on_background">पृष्टभूमि में चलाना शुरू करे</string>
|
||||
<string name="start_here_on_popup">पॉपअप में चलाना शुरू करे</string>
|
||||
<string name="no_player_found_toast">स्ट्रीम करने के लिए प्लेयर उपलब्ध नहीं है (आप इसे चलाने के लिए VLC प्लेयर इंस्टॉल कर सकते हैं)।</string>
|
||||
<string name="controls_download_desc">स्ट्रीम डाउनलोड करें</string>
|
||||
<string name="no_player_found_toast">स्ट्रीमिंग करने के लिए कोई प्लेयर उपलब्ध नहीं है (आप इसे चलाने के लिए VLC प्लेयर इंस्टॉल कर सकते हैं)।</string>
|
||||
<string name="controls_download_desc">स्ट्रीम फाइल डाउनलोड करें</string>
|
||||
<string name="show_info">जानकारी दिखाएं</string>
|
||||
<string name="tab_bookmarks">बुकमार्क किये गए प्लेलिस्टस</string>
|
||||
<string name="controls_add_to_playlist_title">में जोड़े</string>
|
||||
@@ -306,15 +305,15 @@
|
||||
<string name="caption_auto_generated">ऑटो-जनरेटेड</string>
|
||||
<string name="enable_leak_canary_summary">हीप डंप करने के दौरान मेमोरी लीक मॉनिटरिंग ऐप को अनुत्तरदायी बना सकता है</string>
|
||||
<string name="enable_disposed_exceptions_title">Out-of-Lifecycle त्रुटियों की रिपोर्ट करें</string>
|
||||
<string name="download_thumbnail_title">छायाप्रारुप लोड करें</string>
|
||||
<string name="use_inexact_seek_title">तेजी से अचूक तलाश का प्रयोग करें</string>
|
||||
<string name="use_inexact_seek_summary">अचूक खोज प्लेयर को कम परिशुद्धता के साथ तेजी से पदों की तलाश करने की अनुमति देता है|</string>
|
||||
<string name="download_thumbnail_title">थंबनेल लोड करें</string>
|
||||
<string name="use_inexact_seek_title">तेज और अनिश्चित तलाश का प्रयोग करें</string>
|
||||
<string name="use_inexact_seek_summary">अनिश्चित खोज के कारण वीडियो प्लेयर कम सटीकता से लेकिन तेजी से वीडियो पोजीशन्स की तलाश कर सकता है। 5,15 या 25 सेकंड की तलाश में यह काम नहीं करता।</string>
|
||||
<string name="download_thumbnail_summary">थंबनेल लोड करने, डेटा और मेमोरी उपयोग को रोकने के लिए बंद करें। इन-मेमोरी और ऑन-डिस्क छवि कैश दोनों को बदलता है|</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">छवि कैश मिटा दिया</string>
|
||||
<string name="metadata_cache_wipe_title">कैश मेटाडेटा वाइप करें</string>
|
||||
<string name="metadata_cache_wipe_summary">सभी कैश किए गए वेबपृष्ठ डेटा हटाएं</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">मेटाडाटा कैश मिटा दिया गया</string>
|
||||
<string name="auto_queue_title">अगली स्ट्रीम को स्वचालित रूप से जोड़ें</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">इमेज कैश मिटाया गया</string>
|
||||
<string name="metadata_cache_wipe_title">कैश मेटाडेटा मिटाएं</string>
|
||||
<string name="metadata_cache_wipe_summary">कैश किए गए सभी वेबपेज का डेटा हटाएं</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">मेटाडाटा कैश मिटाया गया</string>
|
||||
<string name="auto_queue_title">अगली स्ट्रीम को ऑटोमैटिकली जोड़ें</string>
|
||||
<string name="auto_queue_summary">गैर-दोहराने वाली कतार में अंतिम स्ट्रीम चलाते समय संबंधित स्ट्रीम को स्वतः संलग्न करें</string>
|
||||
<string name="file">फाइल</string>
|
||||
<string name="channels">चेनल्स</string>
|
||||
@@ -382,14 +381,14 @@
|
||||
<string name="minimize_on_exit_background_description">पृष्ठभूमि प्लेयर में बदले</string>
|
||||
<string name="minimize_on_exit_popup_description">पॉप अप प्लेयर में बदले</string>
|
||||
<string name="app_license">न्यूपाइप एक काॅपीलेफ़्ट फ़्री साॅफ़्टवेर है: इसे आप अपनी इच्छा के अनुसार इस्तेमाल, जाँच, बाँट तथा और बेहतर बना सकते है। खास तौर पर आप इसे फ़्री साॅफ़्टवेर फ़ाउंडेशन के द्वारा जारी जीएनयू जनरल पब्लिक लाइसेंस के तीसरे या उसके बाद आने वाले कोई भी वर्णन के शर्तों के मुताबिक फिर से बाँट या बदल सकते हैं।</string>
|
||||
<string name="unsubscribe">सदस्यता वापस ले ली</string>
|
||||
<string name="tab_new">नया टॅब</string>
|
||||
<string name="tab_choose">टॅब चुने</string>
|
||||
<string name="volume_gesture_control_title">वॉल्यूम नियंत्रण</string>
|
||||
<string name="unsubscribe">अनसब्सक्राइब करे</string>
|
||||
<string name="tab_new">नया टैब</string>
|
||||
<string name="tab_choose">टैब चुने</string>
|
||||
<string name="volume_gesture_control_title">गेस्चर वॉल्यूम नियंत्रण</string>
|
||||
<string name="enqueue">कतार</string>
|
||||
<string name="volume_gesture_control_summary">वीडियो प्लेयर की आवाज नियंत्रित करने के लिए गेस्चरस का इस्तेमाल करे</string>
|
||||
<string name="brightness_gesture_control_title">चमक बदलने का इशारा</string>
|
||||
<string name="brightness_gesture_control_summary">वीडियो प्लेयर की चमक नियंत्रित करने के लिए गेस्चरस का इस्तेमाल करें</string>
|
||||
<string name="brightness_gesture_control_title">गेस्चर से चमक कंट्रोल करे</string>
|
||||
<string name="brightness_gesture_control_summary">वीडियो प्लेयर की चमक को नियंत्रित करने के लिए गेस्चरस का इस्तेमाल करें</string>
|
||||
<string name="settings_category_updates_title">अपडेट</string>
|
||||
<string name="file_deleted">फाइल मिटा दी गयी</string>
|
||||
<string name="app_update_notification_channel_name">अप्प अपडेट अधिसूचना</string>
|
||||
@@ -435,16 +434,16 @@
|
||||
<string name="pause_downloads_on_mobile_desc">मोबाइल डाटा का इस्तेमाल करते समय उपयोगी है, परन्तु कुछ डौन्लोडस रोके नहीं जा सकते है</string>
|
||||
<string name="events">घटनायें</string>
|
||||
<string name="conferences">सम्मेलनों</string>
|
||||
<string name="show_comments_title">टिप्पणियाँ दिखाएं</string>
|
||||
<string name="show_comments_summary">टिप्पणियाँ छिपाने के लिए इसे बंद करे</string>
|
||||
<string name="autoplay_title">ऑटोप्ले</string>
|
||||
<string name="show_comments_title">कॉमेंट्स दिखाएं</string>
|
||||
<string name="show_comments_summary">कॉमेंट्स छिपाने के लिए इसे बंद करे</string>
|
||||
<string name="autoplay_title">ऑटोप्ले करे</string>
|
||||
<string name="no_comments">कोई टिपण्णी नहीं</string>
|
||||
<string name="error_unable_to_load_comments">टिप्पणियाँ लोड नहीं कर सका</string>
|
||||
<string name="close">बंद करे</string>
|
||||
<string name="enable_playback_resume_title">फिर से शुरू करे</string>
|
||||
<string name="enable_playback_resume_summary">आखरी प्लेबैक स्थान पर लौटे</string>
|
||||
<string name="enable_playback_resume_title">प्लेबैक वापस चालू करें</string>
|
||||
<string name="enable_playback_resume_summary">आखिरी प्लेबैक पोजिशन पर वापस लौटे</string>
|
||||
<string name="enable_playback_state_lists_title">सूचियों में स्थान</string>
|
||||
<string name="enable_playback_state_lists_summary">प्लेबैक स्थान निशान सूचियों में दिखाए</string>
|
||||
<string name="enable_playback_state_lists_summary">प्लेबैक पोजिशन के निशान सूचियों में दिखाए</string>
|
||||
<string name="settings_category_clear_data_title">डाटा मिटायें</string>
|
||||
<string name="watch_history_states_deleted">प्लेबैक स्थान मिटा दिए गए|</string>
|
||||
<string name="missing_file">फाइल की जगह बदली गयी या फिर फाइल मिटा दी गयी</string>
|
||||
@@ -520,7 +519,7 @@
|
||||
<string name="video_detail_by">%s के द्वारा</string>
|
||||
<string name="channel_created_by">%s के द्वारा बनाया गया</string>
|
||||
<string name="playlist_page_summary">प्लेलिस्ट पृष्ठ</string>
|
||||
<string name="search_showing_result_for">परिणाम दिखा रहे हैं : %s</string>
|
||||
<string name="search_showing_result_for">%s : के लिए परिणाम दिखया जा रहा है</string>
|
||||
<string name="recaptcha_done_button">हो गया</string>
|
||||
<string name="artists">कलाकार</string>
|
||||
<string name="songs">गाने</string>
|
||||
@@ -538,25 +537,25 @@
|
||||
<string name="show_age_restricted_content_summary">बच्चों के लिए अनुपयुक्त सामग्री दिखाएं क्योंकि इसकी आयु सीमा है (जैसे 18)</string>
|
||||
<string name="settings_category_notification_title">अधिसूचना</string>
|
||||
<string name="peertube_instance_add_https_only">केवल HTTPS यूआरएल ही समर्थित हैं</string>
|
||||
<string name="unsupported_url_dialog_message">यूआरएल को नहीं पहचान पाये। दूसरे ऐप से खोलें\?</string>
|
||||
<string name="auto_queue_toggle">ऑटोमैटिक कतार करे</string>
|
||||
<string name="clear_queue_confirmation_title">कतार को साफ़ करने से पहले पुष्टि के लिए पूछें</string>
|
||||
<string name="seek_duration_title">फास्ट-फ़ॉरवर्ड /- रिवाइंड अवधि की तलाश करें</string>
|
||||
<string name="unsupported_url_dialog_message">URL की पहचान नहीं हो सकी। दूसरे ऐप से खोलें\?</string>
|
||||
<string name="auto_queue_toggle">ऑटोमैटिकली कतार करे</string>
|
||||
<string name="clear_queue_confirmation_title">कतार को मिटाने से पहले सत्यापन के लिए पूछें</string>
|
||||
<string name="seek_duration_title">तलाश अवधि फास्ट-फ़ॉरवर्ड /- रिवाइंड करे</string>
|
||||
<string name="notification_colorize_summary">एंड्रॉइड को थंबनेल में मुख्य रंग के अनुसार अधिसूचना के रंग को अनुकूलित करने दें (ध्यान दें कि यह सभी फोन पर उपलब्ध नहीं है)</string>
|
||||
<string name="notification_colorize_title">अधिसूचना को रंग दें</string>
|
||||
<string name="notification_colorize_title">नोटीफिकेशन को रंगीन करें</string>
|
||||
<string name="notification_action_nothing">कुछ नहीं</string>
|
||||
<string name="notification_action_buffering">बफरिंग</string>
|
||||
<string name="notification_action_shuffle">Shuffle करे</string>
|
||||
<string name="notification_action_repeat">दोहराएं</string>
|
||||
<string name="notification_actions_at_most_three">कॉम्पैक्ट अधिसूचना में दिखाने के लिए आप अधिकतम तीन क्रियाओं का चयन कर सकते हैं!</string>
|
||||
<string name="notification_actions_summary">इस पर टैप करके नीचे दी गई प्रत्येक सूचना को संपादित करें। दाईं ओर चेकबॉक्स का उपयोग करके कॉम्पैक्ट अधिसूचना में दिखाए जाने के लिए उनमें से तीन तक का चयन करें।</string>
|
||||
<string name="notification_actions_at_most_three">आप कॉम्पैक्ट नोटिफिकेशन में दिखाए जाने वाले ऑप्शन्स में से अधिकतम 3 को चुन सकते है !</string>
|
||||
<string name="notification_actions_summary">प्रत्येक नोटिफिकेशन को संपादित करने के लिए उस पर क्लिक करें। दाईं तरफ के चेकबॉक्स का इस्तेमाल करके नोटिफिकेशन में दिखाए जाने वाले अधिकतम 3 ऑप्शंस को चुना जा सकता है।</string>
|
||||
<string name="notification_action_4_title">पांचवा एक्शन बटन</string>
|
||||
<string name="notification_action_3_title">चौथा एक्शन बटन</string>
|
||||
<string name="notification_action_2_title">तीसरा एक्शन बटन</string>
|
||||
<string name="notification_action_1_title">दूसरा एक्शन बटन</string>
|
||||
<string name="notification_action_0_title">पहला एक्शन बटन</string>
|
||||
<string name="notification_scale_to_square_image_summary">अधिसूचना में दिखाए गए वीडियो थंबनेल को 16: 9 से 1: 1 के अनुपात में दिखाया गया है (विकृतियों का परिचय दे सकता है)</string>
|
||||
<string name="notification_scale_to_square_image_title">वीडियो छवि को 1:1 के आस्पेक्ट अनुपात मैं देखें</string>
|
||||
<string name="notification_scale_to_square_image_summary">नोटिफिकेशन में दिखाए गए वीडियो थंबनेल को 16: 9 के बजाय 1: 1 के अनुपात में दिखाए (इस कारण कुछ परेशानियां हो सकती हैं)</string>
|
||||
<string name="notification_scale_to_square_image_title">थंबनेल को 1:1 के अनुपात मैं दिखाएं</string>
|
||||
<plurals name="hours">
|
||||
<item quantity="one">%dघंटा</item>
|
||||
<item quantity="other">%dघंटे</item>
|
||||
@@ -594,11 +593,11 @@
|
||||
<string name="hash_channel_name">वीडियो हैश अधिसूचना</string>
|
||||
<string name="show_meta_info_summary">स्ट्रीम निर्माता, स्ट्रीम विषय सूची या खोज अनुरोध के बारे में अतिरिक्त जानकारी के साथ मेटा जानकारी बक्से को छिपाने के लिए बंद करें.</string>
|
||||
<string name="show_meta_info_title">मेटा जानकारी दिखाएँ</string>
|
||||
<string name="show_description_summary">वीडियो विवरण और अतिरिक्त जानकारी छिपाने के लिए इसे बंद करें</string>
|
||||
<string name="show_description_summary">वीडियो का विवरण और अतिरिक्त जानकारी छिपाने के लिए इसे बंद करें</string>
|
||||
<string name="show_description_title">विवरण दिखाएं</string>
|
||||
<string name="clear_queue_confirmation_description">सक्रिय प्लेअर की क़तार बदल दी जाएगी</string>
|
||||
<string name="clear_queue_confirmation_summary">एक प्लेअर से दूसरे प्लेअर में जाने से आपकी कतार बदल सकती है</string>
|
||||
<string name="open_with">के साथ खोलें</string>
|
||||
<string name="open_with">मे खोलें</string>
|
||||
<string name="show_thumbnail_title">थंबनेल दिखाएं</string>
|
||||
<string name="show_thumbnail_summary">लॉक स्क्रीन और नोटिफिकेशन दोनों के लिए थंबनेल का इस्तेमाल करे</string>
|
||||
<string name="chapters">पाठ</string>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Za početak dodirnite \"Pretraži\"
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Za početak dodirnite \"Lupo\"</string>
|
||||
<string name="view_count_text">%1$s pregleda</string>
|
||||
<string name="upload_date_text">Objavljeno %1$s</string>
|
||||
<string name="no_player_found">Reproduktor za stream nije pronađen. Instalirati VLC\?</string>
|
||||
@@ -32,7 +31,7 @@
|
||||
<string name="controls_background_title">Pozadina</string>
|
||||
<string name="controls_popup_title">Skočni prozor</string>
|
||||
<string name="download_path_title">Mapa za preuzimanje videozapisa</string>
|
||||
<string name="download_path_summary">Preuzete video datoteke se spremaju ovdje</string>
|
||||
<string name="download_path_summary">Ovdje se spremaju preuzete video datoteke</string>
|
||||
<string name="download_path_dialog_title">Odaberi mapu za preuzimanje video datoteka</string>
|
||||
<string name="download_path_audio_title">Mapa za preuzimanje zvuka</string>
|
||||
<string name="download_path_audio_summary">Preuzete audio datoteke se spremaju ovdje</string>
|
||||
@@ -263,8 +262,8 @@
|
||||
<string name="playlist_add_stream_success">Dodano kao playlistu</string>
|
||||
<string name="playlist_thumbnail_change_success">Minijatura playliste se promijenila.</string>
|
||||
<string name="playlist_delete_failure">Greška prilikom brisanja playliste.</string>
|
||||
<string name="caption_none">Bez naslova</string>
|
||||
<string name="resize_fit">Podesno</string>
|
||||
<string name="caption_none">Bez titlova</string>
|
||||
<string name="resize_fit">Popuni</string>
|
||||
<string name="resize_fill">Ispuniti</string>
|
||||
<string name="resize_zoom">Povećaj</string>
|
||||
<string name="caption_auto_generated">Auto generirano</string>
|
||||
@@ -287,8 +286,8 @@
|
||||
<string name="switch_to_background">Prijeđi na pozadinu</string>
|
||||
<string name="switch_to_popup">Prijeđi na skočni prozor</string>
|
||||
<string name="switch_to_main">Prijeđi na glavni</string>
|
||||
<string name="import_data_title">Uvoz baze podataka</string>
|
||||
<string name="export_data_title">Izvoz baze podataka</string>
|
||||
<string name="import_data_title">Uvezi bazu podataka</string>
|
||||
<string name="export_data_title">Izvezi bazu podataka</string>
|
||||
<string name="import_data_summary">Poništava vašu trenutačnu povijest, pretplate, playliste i (opcionalno) postavke</string>
|
||||
<string name="export_data_summary">Izvezi povijest, pretplate, playliste i postavke</string>
|
||||
<string name="clear_views_history_title">Izbriši povijest gledanja</string>
|
||||
@@ -318,8 +317,8 @@
|
||||
<string name="delete_all_history_prompt">Jeste li sigurni da želite izbrisati sve stavke iz povijesti?</string>
|
||||
<string name="title_last_played">Zadnje svirano</string>
|
||||
<string name="title_most_played">Najviše svirano</string>
|
||||
<string name="export_complete_toast">Izvoz završen</string>
|
||||
<string name="import_complete_toast">Uvoz završen</string>
|
||||
<string name="export_complete_toast">Izvezeno</string>
|
||||
<string name="import_complete_toast">Uvezeno</string>
|
||||
<string name="no_valid_zip_file">Nema važeće ZIP datoteke</string>
|
||||
<string name="could_not_import_all_files">Upozorenje: Nije moguće uvesti sve datoteke.</string>
|
||||
<string name="override_current_data">Ovo će poništiti vaše trenutne postavke.</string>
|
||||
@@ -331,9 +330,9 @@
|
||||
<string name="import_ongoing">Uvoz…</string>
|
||||
<string name="export_ongoing">Izvoz…</string>
|
||||
<string name="import_file_title">Uvoz datoteke</string>
|
||||
<string name="previous_export">Prethodni izvozi</string>
|
||||
<string name="subscriptions_import_unsuccessful">Nije moguće uvesti pretplatnike</string>
|
||||
<string name="subscriptions_export_unsuccessful">Nije moguće izvesti pretplatnike</string>
|
||||
<string name="previous_export">Prethodni izvoz</string>
|
||||
<string name="subscriptions_import_unsuccessful">Nije bilo moguće uvesti pretplate</string>
|
||||
<string name="subscriptions_export_unsuccessful">Nije bilo moguće izvesti pretplate</string>
|
||||
<string name="import_youtube_instructions">Uvezite YouTube pretplatnike preuzimanjem izvozne datoteke Google-a:
|
||||
\n
|
||||
\n1. Idite na ovaj URL: %1$s
|
||||
@@ -390,7 +389,7 @@
|
||||
<string name="default_content_country_title">Zadana zemlja sadržaja</string>
|
||||
<string name="settings_category_debug_title">Otkrivanje grešaka</string>
|
||||
<string name="app_update_notification_channel_name">Obavijest o ažuriranju aplikacije</string>
|
||||
<string name="toggle_orientation">Uključite ili isključite orijentaciju</string>
|
||||
<string name="toggle_orientation">Uklj/isklj orijentaciju</string>
|
||||
<string name="download_to_sdcard_error_message">Preuzimanje na vanjsku SD karticu nije moguće. Ponovo postaviti lokaciju mape za preuzimanje\?</string>
|
||||
<string name="external_player_unsupported_link_type">Vanjski playeri ne podržavaju ove vrste veza</string>
|
||||
<string name="video_streams_empty">Nije pronađen nijedan videozapis</string>
|
||||
@@ -408,7 +407,7 @@
|
||||
<string name="conferences">Konferencije</string>
|
||||
<string name="preferred_open_action_settings_title">Preferirana \'otvori\' akcija</string>
|
||||
<string name="preferred_open_action_settings_summary">Zadana radnja pri otvaranju sadržaja — %s</string>
|
||||
<string name="caption_setting_title">Podnaslovi</string>
|
||||
<string name="caption_setting_title">Titlovi</string>
|
||||
<string name="caption_setting_description">Izmijenite skalu teksta naslova player-a i pozadinske stilove. Potrebno je ponovno pokretanje aplikacije kako bi stupilo na snagu.</string>
|
||||
<string name="enable_disposed_exceptions_summary">Prisilno izvješćivanje o greškama Rx-a koje se ne mogu isporučiti izvan \'fragmenta\' ili životnog ciklusa aktivnosti nakon odlaganja</string>
|
||||
<string name="import_soundcloud_instructions">Uvezite SoundCloud profil tako da upišete URL ili svoj ID:
|
||||
@@ -440,7 +439,7 @@
|
||||
<string name="overwrite_finished_warning">Preuzeta datoteka s tim nazivom već postoji</string>
|
||||
<string name="download_already_running">Datoteka s ovim nazivom se već preuzima</string>
|
||||
<string name="label_code">Kod</string>
|
||||
<string name="error_path_creation">Odredišna mapa se ne može stvoriti</string>
|
||||
<string name="error_path_creation">Nije moguće stvoriti odredišnu mapu</string>
|
||||
<string name="error_file_creation">Datoteka se ne može stvoriti</string>
|
||||
<string name="error_permission_denied">Sustav je odbio dozvolu</string>
|
||||
<string name="error_ssl_exception">Nije moguće uspostaviti sigurnu vezu</string>
|
||||
@@ -612,7 +611,7 @@
|
||||
</plurals>
|
||||
<string name="drawer_header_description">Uklj/Isklj uslugu, trenutačno odabrana:</string>
|
||||
<string name="copy_for_github">Kopiraj formatirani izveštaj</string>
|
||||
<string name="clear_cookie_summary">Izbriši riješene reCAPTCHA kolačiće koje NewPipe sprema</string>
|
||||
<string name="clear_cookie_summary">Izbriši kolačiće koje NewPipe sprema nakon rješavanja reCAPTCHA</string>
|
||||
<string name="recaptcha_cookies_cleared">reCAPTCHA kolačići su izbrisani</string>
|
||||
<string name="clear_cookie_title">Izbriši reCAPTCHA kolačiće</string>
|
||||
<string name="restricted_video">Ovaj video je dobno ograničen.
|
||||
@@ -689,4 +688,6 @@
|
||||
<string name="recaptcha_solve">Riješi</string>
|
||||
<string name="night_theme_title">Noćna tema</string>
|
||||
<string name="show_channel_details">Prikaži detalje kanala</string>
|
||||
<string name="disable_media_tunneling_summary">Iskljuci medija tuneling ako dobivate crni ekran kada gledate video</string>
|
||||
<string name="disable_media_tunneling_title">Iskljuci medija tuneling</string>
|
||||
</resources>
|
||||
@@ -46,18 +46,18 @@
|
||||
<string name="detail_likes_img_view_description">Tetszik</string>
|
||||
<string name="detail_dislikes_img_view_description">Nem tetszik</string>
|
||||
<string name="list_thumbnail_view_description">Előnézeti kép</string>
|
||||
<string name="detail_thumbnail_view_description">Előnézeti kép</string>
|
||||
<string name="detail_thumbnail_view_description">Vidó lejátszása, időtartam:</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Fetöltő profilképe</string>
|
||||
<string name="err_dir_create">Nem lehet létrehozni a letöltési mappát \'%1$s\'</string>
|
||||
<string name="info_dir_created">Letöltés mappa létrehozása \'%1$s\'</string>
|
||||
<string name="content">Tartalom</string>
|
||||
<string name="show_age_restricted_content_title">Korhatáros tartalom</string>
|
||||
<string name="show_age_restricted_content_title">Korhatáros tartalom megjelenítése</string>
|
||||
<string name="general_error">Hiba</string>
|
||||
<string name="content_not_available">A tartalom nem elérhető</string>
|
||||
<string name="live_streams_not_supported">Ez egy élő közvetítés, amely még nem támogatott.</string>
|
||||
<string name="live_streams_not_supported">Élő közvetítések még nem támogatottak</string>
|
||||
<string name="autoplay_by_calling_app_title">Automatikus lejátszás</string>
|
||||
<string name="autoplay_by_calling_app_summary">Videók automatikus lejátszása, ha a NewPipe egy másik alkalmazásból lett indítva</string>
|
||||
<string name="duration_live">ÉLŐ</string>
|
||||
<string name="duration_live">Élő</string>
|
||||
<string name="error_snackbar_action">Jelentés</string>
|
||||
<string name="what_device_headline">Információ:</string>
|
||||
<string name="what_happened_headline">Ez történt:</string>
|
||||
@@ -65,18 +65,17 @@
|
||||
<string name="error_details_headline">Részletek:</string>
|
||||
<string name="error_snackbar_message">Sajnos hiba történt.</string>
|
||||
<string name="sorry_string">Elnézést, ennek nem kellett volna megtörténnie.</string>
|
||||
<string name="error_report_button_text">Hibajelentés e-mailben</string>
|
||||
<string name="error_report_button_text">Hiba bejelentése e-mailben</string>
|
||||
<string name="could_not_get_stream">A stream nem elérhető</string>
|
||||
<string name="could_not_setup_download_menu">Nem sikerült a letöltés menü beállítása</string>
|
||||
<string name="youtube_signature_deobfuscation_error">Nem sikerült a videó URL aláírás azonosítása</string>
|
||||
<string name="storage_permission_denied">Háttértárhoz való hozzáférés megtagadva</string>
|
||||
<string name="storage_permission_denied">Előbb adj hozzáférést a tárhelyhez</string>
|
||||
<string name="retry">Újra</string>
|
||||
<string name="report_error">Hibajelentés</string>
|
||||
<string name="user_report">Felhasználói jelentés</string>
|
||||
<string name="video">Videó</string>
|
||||
<string name="audio">Audio</string>
|
||||
<string name="main_bg_subtitle">A kezdéshez koppints a \"Keresés\"-re
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">A kezdéshez koppints a \"Keresés\"-re</string>
|
||||
<string name="could_not_load_thumbnails">Nem sikerült az összes előnézeti kép betöltése</string>
|
||||
<string name="parsing_error">Nem sikerült a weblap betöltése</string>
|
||||
<string name="light_parsing_error">Nem sikerült a weblap teljes betöltése</string>
|
||||
@@ -98,7 +97,7 @@
|
||||
<string name="msg_running_detail">Katt a részletekért</string>
|
||||
<string name="msg_wait">Kérlek várj…</string>
|
||||
<string name="msg_copied">Vágólapra másolva</string>
|
||||
<string name="no_available_dir">Kérlek válassz egy létező könyvtárat a letöltésekhez.</string>
|
||||
<string name="no_available_dir">Kérlek adj meg egy letöltés könyvtárat a beállításokban</string>
|
||||
<string name="msg_server_unsupported">Nem támogatott szerver</string>
|
||||
<string name="add">Új küldetés</string>
|
||||
<string name="channel_unsubscribed">Csatornáról leiratkozva</string>
|
||||
@@ -156,8 +155,8 @@
|
||||
<string name="unknown_content">[Ismeretlen]</string>
|
||||
<string name="import_data_title">Adatbázis importálása</string>
|
||||
<string name="export_data_title">Adatbázis exportálása</string>
|
||||
<string name="import_data_summary">Felülírja a jelenlegi előzményeket és feliratkozásokat</string>
|
||||
<string name="export_data_summary">Előzmények, feliratkozások és lejátszási listák exportálása</string>
|
||||
<string name="import_data_summary">Felülírja a jelenlegi előzményeket, feliratkozásokat, lejátszási listákat és (opcionálisan) a beállításokat</string>
|
||||
<string name="export_data_summary">Előzmények, feliratkozások, lejátszási listák és beállítások exportálása</string>
|
||||
<string name="could_not_load_image">Kép betöltése sikertelen</string>
|
||||
<string name="app_ui_crash">Alkalmazás/Kezelő felület összeomlott</string>
|
||||
<string name="player_stream_failure">Videó lejátszása sikertelen</string>
|
||||
@@ -188,7 +187,7 @@
|
||||
<string name="switch_to_background">Folytatás a háttérben</string>
|
||||
<string name="switch_to_popup">Folytatás felugró ablakban</string>
|
||||
<string name="clear_views_history_title">Megtekintési előzmények törlése</string>
|
||||
<string name="clear_views_history_summary">Eltávolítja a megtekintési előzményeket</string>
|
||||
<string name="clear_views_history_summary">Eltávolítja a megtekintési előzményeket és a visszajátszás helyét</string>
|
||||
<string name="delete_view_history_alert">Törlöd az összes megtekintési előzményt\?</string>
|
||||
<string name="watch_history_deleted">Megtekintési előzmények törölve.</string>
|
||||
<string name="clear_search_history_title">Keresési előzmények törlése</string>
|
||||
@@ -197,13 +196,13 @@
|
||||
<string name="search_history_deleted">Keresési előzmények törölve.</string>
|
||||
<string name="player_unrecoverable_failure">Lejátszási hiba történt</string>
|
||||
<string name="player_recoverable_failure">Lejátszási hiba helyreállítása</string>
|
||||
<string name="invalid_directory">Érvénytelen könyvtár</string>
|
||||
<string name="invalid_source">Érvénytelen fájl vagy tartalom forrás</string>
|
||||
<string name="invalid_file">A fájl nem létezik vagy jogosultsági hiba lépett fel</string>
|
||||
<string name="invalid_directory">Nincs ilyen mappa</string>
|
||||
<string name="invalid_source">Nincs ilyen fájl vagy tartalom forrás</string>
|
||||
<string name="invalid_file">A fájl nem létezik vagy jogosultság az olvasáshoz és íráshoz hiányzik</string>
|
||||
<string name="file_name_empty_error">A fájl neve nem lehet üres</string>
|
||||
<string name="error_occurred_detail">Hiba történt: %1$s</string>
|
||||
<string name="no_streams_available_download">Nincs letölthető adatforrás</string>
|
||||
<string name="empty_subscription_feed_subtitle">Itt nincs semmi</string>
|
||||
<string name="empty_subscription_feed_subtitle">Nincs itt semmi pár tücskön kívül</string>
|
||||
<string name="detail_drag_description">Húzza az átrendezéshez</string>
|
||||
<string name="short_thousand">e</string>
|
||||
<string name="short_million">M</string>
|
||||
@@ -251,7 +250,7 @@
|
||||
<string name="contribution_encouragement">Legyen ötleted a fordítással, a megjelenéssel, a forrás kód tisztításával vagy komolyabb átszervezésével kapcsolatban, bármilyen segítséget szívesen fogadunk. Járulj hozzá az alkalmazás fejlesztéséhez!</string>
|
||||
<string name="view_on_github">Megtekintés GitHubon</string>
|
||||
<string name="donation_title">Adományozás</string>
|
||||
<string name="donation_encouragement">A NewPipe alkalmazást önkéntesek fejlesztik szabadidejükben, hogy a lehető legjobb élményt hozzák el neked. Járulj hozzá a fejlesztők kávéjához, hogy tovább dolgozhassanak az alkalmazáson!</string>
|
||||
<string name="donation_encouragement">A NewPipe alkalmazást önkéntesek fejlesztik az ő szabadidejükben, hogy a lehető legjobb felhasználói élményt hozzák el neked. Járulj hozzá, hogy segítsd a fejlesztőket amíg ők egy csésze kávét szürcsölnek, hogy még jobbá tehessük a NewPipe-ot.</string>
|
||||
<string name="give_back">Hozzájárulás</string>
|
||||
<string name="website_title">Honlap</string>
|
||||
<string name="website_encouragement">Látogasd meg a NewPipe honlapját további információkért és hírekért!</string>
|
||||
@@ -283,8 +282,8 @@
|
||||
<string name="select_a_channel">Csatorna választása</string>
|
||||
<string name="no_channel_subscribed_yet">Még nincs csatorna feliratkozás</string>
|
||||
<string name="select_a_kiosk">Újságárus választása</string>
|
||||
<string name="export_complete_toast">Sikeres export</string>
|
||||
<string name="import_complete_toast">Sikeres import</string>
|
||||
<string name="export_complete_toast">Exportálva</string>
|
||||
<string name="import_complete_toast">Importálva</string>
|
||||
<string name="no_valid_zip_file">Nem érvényes ZIP fájl</string>
|
||||
<string name="could_not_import_all_files">Figyelmeztetés: nem sikerült az összes fájl importálása.</string>
|
||||
<string name="override_current_data">Ez felül fogja írni a jelenlegi beállításokat.</string>
|
||||
@@ -304,18 +303,18 @@
|
||||
<string name="always_ask_open_action">Mindig kérdezz rá</string>
|
||||
<string name="preferred_player_fetcher_notification_title">Információk gyűjtése…</string>
|
||||
<string name="preferred_player_fetcher_notification_message">Kért tartalom betöltése</string>
|
||||
<string name="create_playlist">Új lejátszási lista létrehozása</string>
|
||||
<string name="delete_playlist">Lejátszási lista törlése</string>
|
||||
<string name="rename_playlist">Lejátszási lista átnevezése</string>
|
||||
<string name="create_playlist">Új lejátszási lista</string>
|
||||
<string name="delete_playlist">Törlés</string>
|
||||
<string name="rename_playlist">Átnevezés</string>
|
||||
<string name="name">Név</string>
|
||||
<string name="append_playlist">Lejátszási listához adás</string>
|
||||
<string name="set_as_playlist_thumbnail">Beállítás lejátszási lista előképeként</string>
|
||||
<string name="set_as_playlist_thumbnail">Beállítás lejátszási lista indexképeként</string>
|
||||
<string name="unbookmark_playlist">Könyvjelző törlése</string>
|
||||
<string name="delete_playlist_prompt">Kívánja törölni ezt a lejátszási listát\?</string>
|
||||
<string name="delete_playlist_prompt">Törlődjön ez a lejátszási lista\?</string>
|
||||
<string name="playlist_creation_success">Lejátszási listsa létrehozva</string>
|
||||
<string name="playlist_add_stream_success">Lejátszási listához hozzáadva</string>
|
||||
<string name="playlist_thumbnail_change_success">Lejátszási lista előképe megváltozott</string>
|
||||
<string name="playlist_delete_failure">Nem sikerült a lejátszási lista törlése</string>
|
||||
<string name="playlist_add_stream_success">Hozzáadva lejátszási listához</string>
|
||||
<string name="playlist_thumbnail_change_success">Lejátszási lista előképe megváltozott.</string>
|
||||
<string name="playlist_delete_failure">Lejátszási lista törlése nem sikerült.</string>
|
||||
<string name="caption_none">Felirat kikapcsolva</string>
|
||||
<string name="resize_fit">Illeszkedés</string>
|
||||
<string name="resize_fill">Kitöltés</string>
|
||||
@@ -361,7 +360,7 @@
|
||||
<string name="minimize_on_exit_none_description">Ne tegyen semmit</string>
|
||||
<string name="minimize_on_exit_background_description">Lejátszás folytatása a háttérben</string>
|
||||
<string name="minimize_on_exit_popup_description">Lejátszás folytatása felugró ablakban</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Lejátszás folytatása a fókusz visszaszerzésekor</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Lejátszás folytatása</string>
|
||||
<string name="show_hold_to_append_title">Mutassa a \"Tartsa lenyomva a hozzáadáshoz\" tippet</string>
|
||||
<string name="background_player_append">Várólistához adva a háttérben</string>
|
||||
<string name="toggle_orientation">Elforgatás</string>
|
||||
@@ -608,4 +607,31 @@
|
||||
<string name="start_here_on_background">Lejátszás a háttérben</string>
|
||||
<string name="enqueued">Sorhoz hozzáadva</string>
|
||||
<string name="enqueue_stream">Sorhoz adás</string>
|
||||
<string name="saved_tabs_invalid_json">Mentett fülek olvasása sikertelen, alapértelmezettek használata</string>
|
||||
<string name="hash_channel_description">Értesítések a videó hashelési folyamathoz</string>
|
||||
<string name="hash_channel_name">Videó hash értesítés</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">YouTube biztosít egy \"Korlátozott Módot\" ami elrejti a lehetséges felnőtteknek szóló tartalmat</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">YouTube \"Korlátozott Mód\"-jának bekapcsolása</string>
|
||||
<string name="peertube_instance_add_exists">A példány már létezik</string>
|
||||
<string name="peertube_instance_add_fail">Pédány érvényesítése nem sikerült</string>
|
||||
<string name="peertube_instance_add_help">Példány URL megadása</string>
|
||||
<string name="peertube_instance_add_title">Példány hozzáadása</string>
|
||||
<string name="peertube_instance_url_help">A neked tetsző példányokat megtalálhatod itt: %s</string>
|
||||
<string name="peertube_instance_url_summary">Válaszd ki a kedvenc PeerTube példányaidat</string>
|
||||
<string name="peertube_instance_url_title">PeerTube példányok</string>
|
||||
<string name="player_gesture_controls_title">Lejátszó gesztus vezérlői</string>
|
||||
<string name="enable_disposed_exceptions_title">Életciklusából kifutott hibák jelentése</string>
|
||||
<string name="preferred_open_action_settings_title">Preferált \'nyitási\' cselekedet</string>
|
||||
<string name="drawer_close">Fiók bezárása</string>
|
||||
<string name="drawer_open">Fiók megnyitása</string>
|
||||
<string name="show_channel_details">Csatorna részleteinek megjelenítése</string>
|
||||
<string name="hold_to_append">Tartsd hogy sorba állítsd</string>
|
||||
<string name="default_kiosk_page_summary">Alap Kiosk</string>
|
||||
<string name="selection">Kiválasztás</string>
|
||||
<string name="app_license">A NewPipe egy copyleft szabad szoftver: Felhasználhatod, tanulmányozhatod, megoszthatod és fejlesztheted akaratod szerint. Konkrétan továbbadhatod és/vagy módosíthatod a GNU General Public License feltételei alatt ami a Free Software Foundation álltal lett publikálva, vagy a 3. verzióját a licensznek, vagy (a saját opciód szerint), bármelyik későbbi verzióját.</string>
|
||||
<string name="recaptcha_solve">Megoldás</string>
|
||||
<string name="subtitle_activity_recaptcha">Nyomj a \"Kész\"-re amikor meg van oldva</string>
|
||||
<string name="msg_calculating_hash">Hash számítása</string>
|
||||
<string name="related_items_tab_description">Összefüggő elemek</string>
|
||||
<string name="error_report_open_github_notice">Kérlek ellenőrizd, hogy egy hiba, ami az összeomlásodat írja le, létezik-e már. Ha duplikált jegyet adsz be, időt veszel el tőlünk amit arra tudnánk fordítani, hogy kijavítsuk magát a bugot.</string>
|
||||
</resources>
|
||||
@@ -54,7 +54,7 @@
|
||||
<string name="enable_search_history_title">Chronologia de cerca</string>
|
||||
<string name="enable_search_history_summary">Immagazinar le cercas localmente</string>
|
||||
<string name="enable_watch_history_title">Chronologia de reproductiones</string>
|
||||
<string name="enable_playback_resume_title">We</string>
|
||||
<string name="enable_playback_resume_title">Resumer le reproduction</string>
|
||||
<string name="enable_playback_resume_summary">Restaurar le ultime position del reproduction</string>
|
||||
<string name="enable_playback_state_lists_title">Positiones in le listas</string>
|
||||
<string name="enable_playback_state_lists_summary">Monstrar le indicatores de position in listas</string>
|
||||
@@ -151,7 +151,7 @@
|
||||
<string name="action_settings">Configurationes</string>
|
||||
<string name="action_about">A proposito de</string>
|
||||
<string name="copyright" formatted="true">© %1$s per %2$s sub %3$s</string>
|
||||
<string name="action_open_website">Aperir sito web</string>
|
||||
<string name="action_open_website">Aperir le sito web</string>
|
||||
<string name="tab_about">A proposito de</string>
|
||||
<string name="tab_licenses">Licentias</string>
|
||||
<string name="contribution_title">Contribuer</string>
|
||||
@@ -207,4 +207,54 @@
|
||||
<string name="no_one_watching">Nemo is observante</string>
|
||||
<string name="watch_history_deleted">Chronologia de reproductiones vacuate.</string>
|
||||
<string name="delete_view_history_alert">Deler omne chronologia de reproductiones\?</string>
|
||||
<string name="error_snackbar_message">Pardono, qualcosa vadeva incorrecte.</string>
|
||||
<string name="sorry_string">Pardono, illo non deberea haber ocurrite.</string>
|
||||
<string name="clear_playback_states_title">Deler le positiones de reproduction</string>
|
||||
<string name="songs">Cantos</string>
|
||||
<string name="playlists">Listas de reproduction</string>
|
||||
<string name="playlist">Lista de reproduction</string>
|
||||
<string name="error_report_title">Reporto de error</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Activar el \"Modo restricte\" de YouTube</string>
|
||||
<string name="more_than_100_videos">Plus de 100 videos</string>
|
||||
<string name="no_one_listening">Nemo es ascoltante</string>
|
||||
<plurals name="views">
|
||||
<item quantity="one">%s reproduction</item>
|
||||
<item quantity="other">%s reproductiones</item>
|
||||
</plurals>
|
||||
<string name="subscribers_count_not_available">Le numero de subscriptores non es disponibile</string>
|
||||
<plurals name="subscribers">
|
||||
<item quantity="one">%s subscriptor</item>
|
||||
<item quantity="other">%s subscriptores</item>
|
||||
</plurals>
|
||||
<string name="no_subscribers">Nulle subscriptores</string>
|
||||
<string name="audio">Audio</string>
|
||||
<string name="video">Video</string>
|
||||
<string name="empty_subscription_feed_subtitle">Nihil contentos ci</string>
|
||||
<string name="search_no_results">Nulle resultatos</string>
|
||||
<string name="user_report">Reporto de usator</string>
|
||||
<string name="report_error">Reportar un error</string>
|
||||
<string name="description_tab_description">Description</string>
|
||||
<string name="related_items_tab_description">Fluxos associate</string>
|
||||
<string name="detail_dislikes_img_view_description">Non me place</string>
|
||||
<string name="comments_tab_description">Commentos</string>
|
||||
<string name="detail_likes_img_view_description">Me place</string>
|
||||
<string name="error_snackbar_action">Reportar</string>
|
||||
<string name="error_report_open_issue_button_text">Reportar in GitHub</string>
|
||||
<string name="permission_display_over_apps">Permitter monstrar supra altere applicationes</string>
|
||||
<string name="restore_defaults_confirmation">Esque tu vole reinitialisar le valores predefinite\?</string>
|
||||
<string name="restore_defaults">Reinitialisar le valores predefinite</string>
|
||||
<string name="no_streams_available_download">Nulle fluxos disponibile pro discargar</string>
|
||||
<string name="error_occurred_detail">Ocurreva un error: %1$s</string>
|
||||
<string name="missing_file">File displaciate o delite</string>
|
||||
<string name="app_ui_crash">Falleva le interfacie del application</string>
|
||||
<string name="download_to_sdcard_error_message">Le discarga al carta SD non es possibile. Reinitialisar le location del dossier de discargas\?</string>
|
||||
<string name="download_to_sdcard_error_title">Immagazinage externe non disponibile</string>
|
||||
<string name="general_error">Error</string>
|
||||
<string name="help">Adjuta</string>
|
||||
<string name="delete_playback_states_alert">Esque tu vole deler tote le positiones de reproduction\?</string>
|
||||
<string name="clear_playback_states_summary">Dele tote le positiones de reproduction</string>
|
||||
<string name="use_inexact_seek_title">Usar le recerca rapide e inexacte</string>
|
||||
<string name="night_theme_title">Thema nocturne</string>
|
||||
<string name="notification_action_nothing">Nihil</string>
|
||||
<string name="show_description_title">Monstrar le description</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Ketuk \"Cari\" untuk memulai
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Ketuk kaca pembesar untuk segera memulai.</string>
|
||||
<string name="view_count_text">%1$s x ditonton</string>
|
||||
<string name="upload_date_text">Dipublikasikan pada tanggal %1$s</string>
|
||||
<string name="install">Pasang</string>
|
||||
@@ -10,7 +9,7 @@
|
||||
<string name="share">Bagikan</string>
|
||||
<string name="download">Unduh</string>
|
||||
<string name="search">Telusuri</string>
|
||||
<string name="settings">Setelan</string>
|
||||
<string name="settings">Pengaturan</string>
|
||||
<string name="share_dialog_title">Bagikan dengan</string>
|
||||
<string name="choose_browser">Pilih browser</string>
|
||||
<string name="use_external_video_player_title">Gunakan pemutar video eksternal</string>
|
||||
@@ -159,8 +158,8 @@
|
||||
<string name="contribution_encouragement">Terlepas apakah Anda memiliki ide untuk; terjemahan, perubahan desain, pembersihan kode, atau perubahan kode yang signifikan, segala bantuan akan selalu diterima. Semakin banyak akan semakin baik jadinya!</string>
|
||||
<string name="read_full_license">Baca lisensi</string>
|
||||
<string name="contribution_title">Kontribusi</string>
|
||||
<string name="subscribe_button_title">Melanggan</string>
|
||||
<string name="subscribed_button_title">Berlanggan</string>
|
||||
<string name="subscribe_button_title">Berlangganan</string>
|
||||
<string name="subscribed_button_title">Disubscribe</string>
|
||||
<string name="fragment_feed_title">Apa Yang Baru</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Lanjutkan pemutaran</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">Melanjutkan pemutaran setelah interupsi (mis. panggilan telepon)</string>
|
||||
@@ -322,7 +321,7 @@
|
||||
<string name="auto_queue_title">Putar otomatis streaming berikutnya</string>
|
||||
<string name="channel_unsubscribed">Berhenti berlanggan channel</string>
|
||||
<string name="subscription_update_failed">Tidak bisa memperbarui langganan</string>
|
||||
<string name="tab_subscriptions">Langganan</string>
|
||||
<string name="tab_subscriptions">Subscription</string>
|
||||
<string name="use_inexact_seek_title">Gunakan tinjau cepat tak pasti</string>
|
||||
<string name="use_inexact_seek_summary">Memungkinkan pengguna memilih posisi waktu video dengan cepat tetapi dengan tingkat presisi yang rendah. Mencari 5, 15 atau 25 detik tidak berhasil dengan ini.</string>
|
||||
<string name="app_license">NewPipe adalah perangkat lunak libre copyleft: Anda bisa menggunakannya, mempelajarinya, berbagi, dan meningkatkannya. Secara khusus Anda bisa mendistribusikan ulang dan/atau memodifikasinya dibawah syarat Lisensi Publik Umum GNU yang diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.</string>
|
||||
@@ -657,7 +656,7 @@
|
||||
<string name="private_content">Konten ini bersifat pribadi, jadi tidak dapat di stream ataupun diunduh oleh NewPipe.</string>
|
||||
<string name="soundcloud_go_plus_content">Ini adalah sebuah trek SoundCloud Go +, setidaknya di negara Anda, sehingga tidak dapat di stream atau diunduh oleh Newpipe.</string>
|
||||
<string name="georestricted_content">Konten ini tidak tersedia di negara Anda.</string>
|
||||
<string name="crash_the_app">Aplikasi crash</string>
|
||||
<string name="crash_the_app">Hentikan aplikasi</string>
|
||||
<string name="restricted_video_no_stream">Video ini dibatasi usia.
|
||||
\nKarena kebijakan YouTube yang baru dengan video yang dibatasi usia, Newpipe tidak dapat mengakses aliran video dan karenanya tidak dapat memainkannya.</string>
|
||||
<string name="select_night_theme_toast">Kamu bisa pilih tema malam favoritmu dibawah</string>
|
||||
@@ -669,4 +668,22 @@
|
||||
<string name="night_theme_title">Tema malam</string>
|
||||
<string name="download_has_started">Pengunduhan dimulai</string>
|
||||
<string name="show_channel_details">Tampilkan rincian channel</string>
|
||||
<string name="disable_media_tunneling_summary">Nonaktifkan terowongan media (tunnel) jiaka anda mengalami sebuah layar hitam atau kerusakan dalam memutar video</string>
|
||||
<string name="disable_media_tunneling_title">Nonaktifkan terowongan media (tunnel)</string>
|
||||
<string name="metadata_privacy_internal">Internal</string>
|
||||
<string name="metadata_privacy_private">Privasi</string>
|
||||
<string name="metadata_privacy_unlisted">Tidak didaftar</string>
|
||||
<string name="metadata_privacy_public">Publik</string>
|
||||
<string name="metadata_thumbnail_url">Alamat URL gambar mini/thumbnail</string>
|
||||
<string name="metadata_host">Host</string>
|
||||
<string name="metadata_support">Dukungan</string>
|
||||
<string name="metadata_language">Bahasa</string>
|
||||
<string name="metadata_age_limit">Batas umur</string>
|
||||
<string name="metadata_privacy">Privasi</string>
|
||||
<string name="metadata_licence">Lisensi</string>
|
||||
<string name="metadata_tags">Tag</string>
|
||||
<string name="metadata_category">Kategori</string>
|
||||
<string name="description_select_disable">Nonaktifkan dapat memilih teks pada deskripsi</string>
|
||||
<string name="description_select_enable">Aktifkan dapat memilih teks pada deskripsi</string>
|
||||
<string name="description_select_note">Anda sekarang dapat memilih teks di dalam deskripsi. Perhatikan bahwa halaman mungkin berkedip dan tautan tidak dapat diklik saat dalam mode pemilihan.</string>
|
||||
</resources>
|
||||
@@ -59,8 +59,7 @@
|
||||
<string name="live_streams_not_supported">I contenuti in diretta non sono ancora supportati</string>
|
||||
<string name="content">Contenuti</string>
|
||||
<string name="show_age_restricted_content_title">Mostra contenuti con restrizioni di età</string>
|
||||
<string name="main_bg_subtitle">Tocca \"Cerca\" per iniziare
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Tocca la lente d\'ingrandimento per iniziare.</string>
|
||||
<string name="autoplay_by_calling_app_title">Riproduzione automatica</string>
|
||||
<string name="autoplay_by_calling_app_summary">Riproduci i video quando NewPipe viene aperto da un\'altra app</string>
|
||||
<string name="duration_live">In diretta</string>
|
||||
@@ -679,4 +678,22 @@
|
||||
<string name="auto_device_theme_title">Automatico (tema del dispositivo)</string>
|
||||
<string name="night_theme_title">Tema notturno</string>
|
||||
<string name="show_channel_details">Mostra dettagli canale</string>
|
||||
<string name="disable_media_tunneling_summary">Disattiva il tunneling multimediale se durante la riproduzione dei video si verificano schermate nere o irregolarità nell\'audio</string>
|
||||
<string name="disable_media_tunneling_title">Disattiva tunneling multimediale</string>
|
||||
<string name="metadata_privacy_internal">Interno</string>
|
||||
<string name="metadata_privacy_private">Privato</string>
|
||||
<string name="metadata_privacy_unlisted">Non elencato</string>
|
||||
<string name="metadata_privacy_public">Pubblico</string>
|
||||
<string name="metadata_thumbnail_url">URL miniatura</string>
|
||||
<string name="metadata_host">Host</string>
|
||||
<string name="metadata_support">Supporto</string>
|
||||
<string name="metadata_language">Lingua</string>
|
||||
<string name="metadata_age_limit">Limite di età</string>
|
||||
<string name="metadata_privacy">Privacy</string>
|
||||
<string name="metadata_licence">Licenza</string>
|
||||
<string name="metadata_tags">Etichette</string>
|
||||
<string name="metadata_category">Categoria</string>
|
||||
<string name="description_select_disable">Disattiva la selezione del testo nella descrizione</string>
|
||||
<string name="description_select_enable">Attiva la selezione del testo nella descrizione</string>
|
||||
<string name="description_select_note">Ora puoi selezionare il testo all\'interno della descrizione. Nota che la pagina potrebbe sfarfallare e i collegamenti potrebbero non essere cliccabili mentre sei in modalità di selezione.</string>
|
||||
</resources>
|
||||
@@ -78,8 +78,7 @@
|
||||
<string name="report_error">不具合を報告</string>
|
||||
<string name="user_report">利用者レポートを送る</string>
|
||||
<string name="duration_live">生放送</string>
|
||||
<string name="main_bg_subtitle">開始するには「検索」をタップ
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">虫眼鏡をタップして開始します。</string>
|
||||
<string name="start">開始</string>
|
||||
<string name="pause">一時停止</string>
|
||||
<string name="view">再生</string>
|
||||
@@ -662,7 +661,13 @@
|
||||
\n年齢制限付き動画を含む新しい YouTube ポリシーにより、NewPipe は動画ストリームにアクセスできないため再生できません。</string>
|
||||
<string name="select_night_theme_toast">以下からお好みの夜間テーマを選択できます</string>
|
||||
<string name="auto_device_theme_title">自動 (デバイスのテーマ)</string>
|
||||
<string name="night_theme_summary">%s</string>
|
||||
<string name="night_theme_summary">お好みの夜間テーマを選択 — %s</string>
|
||||
<string name="recaptcha_solve">解決</string>
|
||||
<string name="night_theme_title">夜間テーマ</string>
|
||||
<string name="download_has_started">ダウンロードを開始しました</string>
|
||||
<string name="show_channel_details">チャンネルの詳細を表示</string>
|
||||
<string name="radio">ラジオ</string>
|
||||
<string name="featured">おすすめ</string>
|
||||
<string name="disable_media_tunneling_summary">ビデオ再生が止まったり出ない場合はメディアトンネリングを無効にしてください</string>
|
||||
<string name="disable_media_tunneling_title">マルチメディアトンネリングを無効にする</string>
|
||||
</resources>
|
||||
@@ -163,8 +163,7 @@
|
||||
<string name="open_in_browser">Ldi deg uminig</string>
|
||||
<string name="view_count_text">%1$s n tmeẓriwin</string>
|
||||
<string name="upload_date_text">Yeffeɣ-d deg %1$s</string>
|
||||
<string name="main_bg_subtitle">Senned ɣef «Nadi» akken ad tebduḍ
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Senned ɣef «Nadi» akken ad tebduḍ</string>
|
||||
<string name="no_views">Ula d yiwet n tmeẓriwt</string>
|
||||
<plurals name="views">
|
||||
<item quantity="one">%s n tmeẓriwt</item>
|
||||
|
||||
@@ -200,7 +200,6 @@
|
||||
<string name="title_activity_history">Dîrok</string>
|
||||
<string name="read_full_license">Destûrê bixwînin</string>
|
||||
<string name="app_license">NewPipe nermalava kopîleft libre ye: Hûn dikarin li gorî kêfa xwe bikar bînin, parve bikin û baştir bikin. Bi taybetî hûn dikarin wê di bin mercên Lîsansa Giştî ya GNU ya Giştî ya ku ji hêla Weqfa Nermalava Azad ve hatî weşandin de, an guhertoya 3 ya Lîsansê, an jî (li gorî vebijarka we) guhertoyek paşîn ji nû ve belav bikin û / an biguherînin.</string>
|
||||
<string name="popup_resizing_indicator_title">Mezinahî kirin</string>
|
||||
<string name="clear">Zelal</string>
|
||||
<string name="refresh">Hênikkirin</string>
|
||||
<string name="filter">Parzûn</string>
|
||||
@@ -384,8 +383,7 @@
|
||||
<string name="no_player_found">Lîstikvanek herikê nehat dîtin. VLC saz bikin\?</string>
|
||||
<string name="upload_date_text">Li ser hate weşandin %1$s</string>
|
||||
<string name="view_count_text">%1$s dîtinan</string>
|
||||
<string name="main_bg_subtitle">Ji bo destpêkirinê \"Lêgerîn\" bitikînin
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Ji bo destpêkirinê \"Lêgerîn\" bitikînin</string>
|
||||
<string name="feed_use_dedicated_fetch_method_summary">Di hin karûbaran de heye, ew bi gelemperî pir zûtir e lê dibe ku hejmarek bi sînor a tiştan vegerîne û bi gelemperî agahdariya bêkêmasî vebigere (mînakî bê domdanî, celebek tişt, bê statûya zindî).</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">Dema ku hebe ji xwarina fedakar bistînin</string>
|
||||
<string name="feed_update_threshold_option_always_update">Her dem nûve bikin</string>
|
||||
|
||||
@@ -50,8 +50,7 @@
|
||||
<string name="use_tor_summary">(실험적) 향상된 프라이버시를 위해 다운로드 트래픽을 강제로 Tor를 통해 전송 (스트리밍 비디오는 아직 지원되지 않습니다).</string>
|
||||
<string name="err_dir_create">다운로드 디렉토리를 만들 수 없습니다 \'%1$s\'</string>
|
||||
<string name="info_dir_created">다운로드 디렉토리를 만들었습니다 \'%1$s\'</string>
|
||||
<string name="main_bg_subtitle">\"검색\" 버튼을 눌러서 시작하세요
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">\"검색\" 버튼을 눌러서 시작하세요</string>
|
||||
<string name="autoplay_by_calling_app_title">자동재생</string>
|
||||
<string name="autoplay_by_calling_app_summary">NewPipe가 다른 앱에서 호출되었을 때 동영상을 재생합니다</string>
|
||||
<string name="content">컨텐츠</string>
|
||||
@@ -542,7 +541,7 @@
|
||||
<string name="songs">노래</string>
|
||||
<string name="restricted_video">이 비디오는 연령제한이 있습니다.
|
||||
\n
|
||||
\n만약, 시청을 원한다면 설정에 \"연령 제한 컨텐츠\"를 활성화 하세요.</string>
|
||||
\n만약, 시청을 원한다면 설정에 \"%1$s\"를 활성화 하세요.</string>
|
||||
<string name="recaptcha_done_button">완료</string>
|
||||
<string name="artists">아티스트</string>
|
||||
<string name="albums">앨범</string>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">کرتە له ”گهڕان” بكه بۆ دهستپێكردن
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">کرتە له ”گهڕان” بكه بۆ دهستپێكردن</string>
|
||||
<string name="view_count_text">%1$s بینراو</string>
|
||||
<string name="upload_date_text">بڵاوكراوهتهوه له %1$s</string>
|
||||
<string name="no_player_found">هیچ لێدەرێکی ڤیدیۆیی نهدۆزرایهوه. دهتهوێت VLC دابمەزرێنیت؟</string>
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
<string name="search_showing_result_for">Praecessi propter: %s</string>
|
||||
<string name="did_you_mean">Intendi \"%1$s\"\?</string>
|
||||
<string name="settings">Optiones</string>
|
||||
<string name="main_bg_subtitle">Tange \"Quaere\" ad initium
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Tange \"Quaere\" ad initium</string>
|
||||
<string name="search">Quaere</string>
|
||||
<string name="download">Scarica</string>
|
||||
<string name="share">Condividi</string>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Palieskite „Ieškoti“, kad pradėtumėte
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Norėdami pradėti paspauskite padidinimo stiklą.</string>
|
||||
<string name="view_count_text">%1$s peržiūrų</string>
|
||||
<string name="upload_date_text">Publikuota %1$s</string>
|
||||
<string name="no_player_found">Nerastas srauto grotuvas. Įdiegti VLC\?</string>
|
||||
@@ -85,13 +84,13 @@
|
||||
<string name="light_parsing_error">Negalima visiškai apdoroti tinklapio</string>
|
||||
<string name="content_not_available">Turinys neprieinamas</string>
|
||||
<string name="could_not_setup_download_menu">Negalima sutvarkyti atsisiuntimų meniu</string>
|
||||
<string name="live_streams_not_supported">Tiesioginės translecijos yra nepalaikomos</string>
|
||||
<string name="live_streams_not_supported">Tiesioginės transliacijos kolkas nepalaikomos</string>
|
||||
<string name="could_not_get_stream">Negalima gauti jokio srauto</string>
|
||||
<string name="could_not_load_image">Negalima įkelti jokio paveikslėlio</string>
|
||||
<string name="app_ui_crash">Programėlė/ vartotojo sąsaja nulūžo</string>
|
||||
<string name="sorry_string">Atsiprašome, taip neturėjo įvykti.</string>
|
||||
<string name="error_report_button_text">Pranešti apie šią klaidą el. paštu</string>
|
||||
<string name="error_snackbar_message">Atsiprašome, ištiko keletas klaidų.</string>
|
||||
<string name="error_snackbar_message">Atsiprašome, kažkas ne taip.</string>
|
||||
<string name="error_snackbar_action">Ataskaita</string>
|
||||
<string name="what_device_headline">Informacija:</string>
|
||||
<string name="what_happened_headline">Kas nutiko:</string>
|
||||
@@ -158,10 +157,10 @@
|
||||
<string name="resume_on_audio_focus_gain_title">Paleisti</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">Tęsti grojimą po pertraukčių (pvz. skambučių)</string>
|
||||
<string name="show_hold_to_append_title">Rodyti “laikyti kad pakeisti„ patarimą</string>
|
||||
<string name="show_hold_to_append_summary">Rodyti patarimą, kai foninis arba langelio rėžimo mygtukas paspaudžiamas vaizdo įrašų detalių puslapyje</string>
|
||||
<string name="show_hold_to_append_summary">Paspaudus \"Išsamiau:\" fono ar iššokančio lango mygtuke rodyti patarimą</string>
|
||||
<string name="settings_category_player_title">Grotuvas</string>
|
||||
<string name="settings_category_player_behavior_title">Elgsena</string>
|
||||
<string name="settings_category_history_title">Istorija ir laikmena</string>
|
||||
<string name="settings_category_history_title">Istorija ir podėlis</string>
|
||||
<string name="background_player_append">Foninio grotuvo eilėje</string>
|
||||
<string name="popup_playing_append">Įtraukta į langelio rėžimo grojimo eilę</string>
|
||||
<string name="playlist">Grojaraštis</string>
|
||||
@@ -170,7 +169,7 @@
|
||||
<string name="notification_channel_name">NewPipe pranešimai</string>
|
||||
<string name="notification_channel_description">Foninio ir langelio rėžimo grotuvų pranešimai</string>
|
||||
<string name="unknown_content">[Nežinoma]</string>
|
||||
<string name="player_stream_failure">Nepavyko groti šio srauto</string>
|
||||
<string name="player_stream_failure">Srauto atkurti nepavyko</string>
|
||||
<string name="player_unrecoverable_failure">Įvyko nepataisoma grotuvo klaida</string>
|
||||
<string name="player_recoverable_failure">Atstatoma po grotuvo klaidos</string>
|
||||
<string name="search_no_results">Nėra rezultatų</string>
|
||||
@@ -204,12 +203,12 @@
|
||||
<string name="tab_about">Apie</string>
|
||||
<string name="tab_contributors">Pagalbininkai</string>
|
||||
<string name="tab_licenses">Leidimai</string>
|
||||
<string name="app_description">Nemokama, atviro kodo Youtube peržiūros programėlė Android sistemai.</string>
|
||||
<string name="app_description">Laisvas transliavimas ant Android.</string>
|
||||
<string name="contribution_title">Prisidėti</string>
|
||||
<string name="contribution_encouragement">Jei turite idėjų dėl- vertimų, išvaizdos pakeitimų, kodo supaprastinimo, arba rimtų kodo pakeitimų- pagalba visada laukiama!</string>
|
||||
<string name="view_on_github">Peržiūrėti per GitHub</string>
|
||||
<string name="donation_title">Paremti</string>
|
||||
<string name="donation_encouragement">NewPipe yra vystoma savanorių, kurie praleidžia savo laisvą laiką, kad sukurtų geriausią patirtį Jums. Dabar yra laikas paremti juos, kad kūrėjai galėtų NewPipe paversti dar geresne programėle!</string>
|
||||
<string name="donation_encouragement">NewPipe yra vystoma savanorių, kurie praleidžia savo laisvą laiką, kad sukurtų geriausią patirtį Jums. Dabar yra laikas paremti juos, kad kūrėjai galėtų NewPipe paversti dar geresne programėle.</string>
|
||||
<string name="give_back">Duokite grąžos</string>
|
||||
<string name="website_title">Interneto puslapis</string>
|
||||
<string name="website_encouragement">Kad sužinotumėte daugiau apie NewPipe apsilankykite mūsų interneto puslapyje.</string>
|
||||
@@ -260,8 +259,8 @@
|
||||
<string name="switch_to_main">Perjungti į pagrindinį</string>
|
||||
<string name="import_data_title">Importuoti duomenų bazę</string>
|
||||
<string name="export_data_title">Eksportuoti duomenų bazę</string>
|
||||
<string name="import_data_summary">Bus perrašyta dabartinė istorija ir prenumeratos</string>
|
||||
<string name="export_data_summary">Eksportuoti istoriją, prenumeratas ir grojaraščius.</string>
|
||||
<string name="import_data_summary">Bus perrašyta jūsų dabartinė istorija, prenumeratos, grojaraščiai ir (pasirinktinai) nustatymai</string>
|
||||
<string name="export_data_summary">Eksportuoti istoriją, prenumeratas, grojaraščius ir nustatymus</string>
|
||||
<string name="external_player_unsupported_link_type">Išorinis grotuvas nepalaiko tokių nuorodų</string>
|
||||
<string name="invalid_url_toast">Negalimas URL</string>
|
||||
<string name="video_streams_empty">Nerasta video srautų</string>
|
||||
@@ -295,14 +294,14 @@
|
||||
<string name="rename_playlist">Pervadinti</string>
|
||||
<string name="name">Pavadinimas</string>
|
||||
<string name="append_playlist">Pridėti į grojaraštį</string>
|
||||
<string name="set_as_playlist_thumbnail">Nustatyti kaip grojaraščio paveikslėlį</string>
|
||||
<string name="set_as_playlist_thumbnail">Nustatyti kaip grojaraščio miniatiūrą</string>
|
||||
<string name="bookmark_playlist">Pridėti grojaraštį į žymes</string>
|
||||
<string name="unbookmark_playlist">Pašalinti žymes</string>
|
||||
<string name="delete_playlist_prompt">Ištrinti šį grojaraštį\?</string>
|
||||
<string name="playlist_creation_success">Grojaraštis sukurtas</string>
|
||||
<string name="playlist_add_stream_success">Pridėta į grojaraštį</string>
|
||||
<string name="playlist_thumbnail_change_success">Grojaraščio paveikslėlis pakeistas.</string>
|
||||
<string name="playlist_delete_failure">Nepavyko ištrinti grojaraščio</string>
|
||||
<string name="playlist_delete_failure">Nepavyko ištrinti grojaraščio.</string>
|
||||
<string name="caption_none">Nėra antraštės</string>
|
||||
<string name="resize_fit">Pritaikyti</string>
|
||||
<string name="resize_fill">Užpildyti</string>
|
||||
@@ -310,13 +309,385 @@
|
||||
<string name="caption_auto_generated">Automatiškai sugeneruotas</string>
|
||||
<string name="enable_leak_canary_summary">Atminties nutekėjimo stebėjimas gali padaryti programėlę nestabilią</string>
|
||||
<string name="enable_disposed_exceptions_title">Pranešti apie Out-of-Lifecycle klaidas</string>
|
||||
<string name="enable_disposed_exceptions_summary">Priverstinai pranešti apie \"undeliverable Rx exceptions occurring outside of fragment or activity lifecycle after dispose\"</string>
|
||||
<string name="enable_disposed_exceptions_summary">Priverstinai pranešti apie \"undeliverable Rx exceptions outside of fragment or activity lifecycle after disposal\"</string>
|
||||
<string name="show_comments_summary">Išjungti, kad paslėpti komentarus</string>
|
||||
<string name="show_comments_title">Rodyti komentarus</string>
|
||||
<string name="tab_choose">Pasirinkti skirtuką</string>
|
||||
<string name="tab_new">Naujas skirtukas</string>
|
||||
<string name="tab_new">Nauja kortelė</string>
|
||||
<string name="unsubscribe">Atsisakyti prenumeratos</string>
|
||||
<string name="search_showing_result_for">Rodomi rezultatai užklausai: %s</string>
|
||||
<string name="open_with">Atverti su</string>
|
||||
<string name="notification_action_repeat">Pakartoti</string>
|
||||
<string name="one_item_deleted">1 elementas pašalintas.</string>
|
||||
<string name="msg_calculating_hash">Skaičiuojama maišos suma</string>
|
||||
<string name="no_comments">Komentarų nėra</string>
|
||||
<string name="infinite_videos">∞ vaizdo įrašų</string>
|
||||
<string name="more_than_100_videos">100+ vaizdo įrašų</string>
|
||||
<plurals name="listening">
|
||||
<item quantity="one">%s klausytojas</item>
|
||||
<item quantity="few">%s klausytojai</item>
|
||||
<item quantity="other">%s klausytojų</item>
|
||||
</plurals>
|
||||
<string name="no_one_listening">Niekas neklauso</string>
|
||||
<plurals name="watching">
|
||||
<item quantity="one">%s žiūri</item>
|
||||
<item quantity="few">%s žiūri</item>
|
||||
<item quantity="other">%s žiūri</item>
|
||||
</plurals>
|
||||
<string name="no_one_watching">Niekas nežiūri</string>
|
||||
<string name="subscribers_count_not_available">Sekėjų skaičius neprieinamas</string>
|
||||
<string name="drawer_header_description">Perjungti paslaugą, dabar pasirinkta:</string>
|
||||
<string name="description_tab_description">Aprašymas</string>
|
||||
<string name="related_items_tab_description">Susiję įrašai</string>
|
||||
<string name="comments_tab_description">Komentarai</string>
|
||||
<string name="error_report_open_issue_button_text">Pranešti per GitHub</string>
|
||||
<string name="copy_for_github">Kopijuoti formatuotą pranešimą</string>
|
||||
<string name="permission_display_over_apps">Suteikti leidimą rodyti virš kitų programų</string>
|
||||
<string name="restore_defaults_confirmation">Ar norite atstatyti numatytuosius\?</string>
|
||||
<string name="restore_defaults">Atstatyti numatytuosius</string>
|
||||
<string name="saved_tabs_invalid_json">Įkelti išsaugotų kortelių nepavyko, naudojamos numatytosios</string>
|
||||
<string name="no_streams_available_download">Nėra srautų parsiuntimui</string>
|
||||
<string name="error_occurred_detail">Įvyko klaida: %1$s</string>
|
||||
<string name="file_name_empty_error">Failo vardas negali būti tuščias</string>
|
||||
<string name="invalid_file">Tokio failo nėra arba nesuteiktas leidimas jį pasiekti</string>
|
||||
<string name="invalid_source">Tokio failo/turinio šaltinio nėra</string>
|
||||
<string name="invalid_directory">Tokio aplanko nėra</string>
|
||||
<string name="missing_file">Failas perkeltas ar ištrintas</string>
|
||||
<string name="download_to_sdcard_error_message">Įrašyti į išorinę SD kortelę nepavyko. Atstatyti atsisiuntimo aplanką\?</string>
|
||||
<string name="download_to_sdcard_error_title">Išorinė saugykla neprieinama</string>
|
||||
<string name="help">Žinynas</string>
|
||||
<string name="search_history_deleted">Paieškos istorija pašalinta.</string>
|
||||
<string name="delete_search_history_alert">Išvalyti visą paieškos istoriją\?</string>
|
||||
<string name="clear_search_history_summary">Išvalo paieškos istoriją</string>
|
||||
<string name="clear_search_history_title">Išvalyti paieško istoriją</string>
|
||||
<string name="clear_playback_states_summary">Pašalina visas atkūrimo vietas</string>
|
||||
<string name="clear_playback_states_title">Pašalinti atkūrimo vietas</string>
|
||||
<string name="watch_history_deleted">Žiūrėjimo istorija pašalinta.</string>
|
||||
<string name="delete_view_history_alert">Išvalyti visą žiūrėjimo istoriją\?</string>
|
||||
<string name="clear_views_history_summary">Išvalo atkurtų srautų ir atkūrimo vietos istoriją</string>
|
||||
<string name="clear_views_history_title">Išvalyti žiūrėjimo istoriją</string>
|
||||
<string name="clear_cookie_summary">Išvalyti slapukus kuriuos NewPipe išsaugojo kai vedėte reCAPTCHA</string>
|
||||
<string name="recaptcha_cookies_cleared">reCAPTCHA slapukai išvalyti</string>
|
||||
<string name="clear_cookie_title">Išvalyti reCAPTCHA slapukus</string>
|
||||
<string name="hash_channel_description">Pranešimas apie video maišos progresą</string>
|
||||
<string name="hash_channel_name">Video maišos pranešimas</string>
|
||||
<string name="app_update_notification_channel_description">Pranešimas apie naują NewPipe versija</string>
|
||||
<string name="app_update_notification_channel_name">Programos atnaujinimo pranešimas</string>
|
||||
<string name="file">Failas</string>
|
||||
<string name="file_deleted">Failas pašalintas</string>
|
||||
<string name="artists">Atlikėjai</string>
|
||||
<string name="albums">Albumai</string>
|
||||
<string name="songs">Dainos</string>
|
||||
<string name="events">Įvykiai</string>
|
||||
<string name="users">Naudotojai</string>
|
||||
<string name="tracks">Takeliai</string>
|
||||
<string name="videos_string">Vaizdo įrašai</string>
|
||||
<string name="playlists">Grojaraščiai</string>
|
||||
<string name="channels">Kanalai</string>
|
||||
<string name="restricted_video_no_stream">Šiam video taikomas amžiaus apribojimas.
|
||||
\nDėl naujų YouTube amžiaus ribojimų NewPipe negali pasiekti ir atkurti šių video srautų.</string>
|
||||
<string name="restricted_video">Šiam video taikomas amžiaus apribojimas
|
||||
\n
|
||||
\nĮjunkite \"%1$s\" norėdami peržiūrėti.</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">Youtube turi \"apribotą režimą\" kuriame slepiamas galimai suaugusiems skirtas turinys</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Įjungti YouTube \"apribotą režimą\"</string>
|
||||
<string name="show_age_restricted_content_summary">Rodyti turinį kuris gali būti netinkamas vaikams (18+)</string>
|
||||
<string name="settings_category_notification_title">Pranešimai</string>
|
||||
<string name="settings_category_updates_title">Atnaujinimai</string>
|
||||
<string name="peertube_instance_add_exists">Kopija jau yra</string>
|
||||
<string name="peertube_instance_add_https_only">Palaikomi tik HTTPS adresai</string>
|
||||
<string name="peertube_instance_add_title">Pridėti kopiją</string>
|
||||
<string name="peertube_instance_url_help">Pasirinkite patikusias kopijas %s</string>
|
||||
<string name="peertube_instance_url_summary">Pasirinkite mėgiamiausias PeerTube kopijas</string>
|
||||
<string name="peertube_instance_url_title">PeerTube kopijos</string>
|
||||
<string name="unsupported_url_dialog_message">URL neatpažintas. Atverti kita programa\?</string>
|
||||
<string name="autoplay_title">Auto atkūrimas</string>
|
||||
<string name="settings_category_clear_data_title">Išvalyti duomenis</string>
|
||||
<string name="enable_playback_state_lists_summary">Sąraše rodyti atkūrimo vietos indikatorių</string>
|
||||
<string name="enable_playback_state_lists_title">Vietos sąraše</string>
|
||||
<string name="brightness_gesture_control_summary">Naudoti gestus ryškumo valdymui</string>
|
||||
<string name="brightness_gesture_control_title">Ryškumo valdymo gestai</string>
|
||||
<string name="volume_gesture_control_summary">Naudoti gestus garsumo valdymui</string>
|
||||
<string name="volume_gesture_control_title">Garsumo gesto valdymas</string>
|
||||
<string name="auto_queue_toggle">Auto eilė</string>
|
||||
<string name="auto_queue_summary">Tęsti atkūrimą į eilę pridedant susijusius srautus</string>
|
||||
<string name="auto_queue_title">Automatiškai pridėti sekantį į eilę</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Metaduomenų saugykla išvalyta</string>
|
||||
<string name="metadata_cache_wipe_summary">Pašalinti visus išsaugotus puslapio duomenis</string>
|
||||
<string name="metadata_cache_wipe_title">Išvalyti išsaugotus metaduomenis</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">Paveikslėlių saugykla išvalyta</string>
|
||||
<string name="show_meta_info_summary">Norėdami paslėpti meta duomenis info langeliuose su papildoma informacija apie srauto autorius ir turinį išjunkite.</string>
|
||||
<string name="show_meta_info_title">Rodyti meta duomenis</string>
|
||||
<string name="show_description_summary">Išjunkite norėdami paslėpti video aprašymą ir papildomą informaciją</string>
|
||||
<string name="use_inexact_seek_title">Naudoti greitą netikslų prasukimą</string>
|
||||
<string name="night_theme_title">Naktinė tema</string>
|
||||
<string name="notification_colorize_summary">Leisti Android priderinti pranešimo spalvą prie pagrindinės miniatiūros spalvos (prieinama ne visuose įrenginiuose)</string>
|
||||
<string name="notification_colorize_title">Spalvoti pranešimą</string>
|
||||
<string name="notification_action_nothing">Nieko</string>
|
||||
<string name="notification_action_buffering">Kraunama</string>
|
||||
<string name="notification_action_shuffle">Maišyti</string>
|
||||
<string name="notification_actions_at_most_three">Galite pasirinkit iki trijų veiksmų kompaktiškame pranešime!</string>
|
||||
<string name="notification_actions_summary">Norėdami pakeisti kiekvieną pranešimo veiksmą paspauskite ant jo. Pasirinkite iki trijų norėdami kompaktiškos peržiūros.</string>
|
||||
<string name="notification_action_4_title">Penktas veiksmo mygtukas</string>
|
||||
<string name="notification_action_3_title">Ketvirtas veiksmo mygtukas</string>
|
||||
<string name="notification_action_2_title">Trečias veiksmo mygtukas</string>
|
||||
<string name="notification_action_1_title">Antras veiksmo mygtukas</string>
|
||||
<string name="notification_action_0_title">Pirmas veiksmo mygtukas</string>
|
||||
<string name="notification_scale_to_square_image_summary">Pakeisti video miniatiūrų rodomų pranešime kraštinių santykį iš 16:9 į 1:1 (gali būti iškraipoma)</string>
|
||||
<string name="notification_scale_to_square_image_title">Pakeisti miniatiūrų dydi 1:1 santykiu</string>
|
||||
<string name="download_choose_new_path">Pakeiskite parsiuntimo aplankus</string>
|
||||
<string name="watch_history_states_deleted">Atkūrimo vietos pašalintos.</string>
|
||||
<string name="delete_playback_states_alert">Pašalinti visas atkūrimo vietas\?</string>
|
||||
<string name="peertube_instance_add_fail">Netinkama kopija</string>
|
||||
<string name="peertube_instance_add_help">Įveskite kopijos URL</string>
|
||||
<string name="enable_playback_resume_summary">Atstatyti paskutinį atkūrimo laiką</string>
|
||||
<string name="enable_playback_resume_title">Tęsti atkūrimą</string>
|
||||
<string name="show_description_title">Rodyti aprašymą</string>
|
||||
<string name="download_thumbnail_summary">Norėdami taupyti duomenų srautą ir atminties naudojimą išjunkite. Pakeitimai išvalys duomenis atmintyje ir diske.</string>
|
||||
<string name="download_thumbnail_title">Įkelti miniatiūras</string>
|
||||
<string name="clear_queue_confirmation_description">Aktyvaus grotuvo eilė bus pakeista</string>
|
||||
<string name="clear_queue_confirmation_summary">Perjungiant iš vieno grotuvo į kitą gali pakeisti jūsų eilę</string>
|
||||
<string name="clear_queue_confirmation_title">Prieš išvalant eilę prašyti patvirtinimo</string>
|
||||
<string name="seek_duration_title">Greito prasukimo trukmė</string>
|
||||
<string name="use_inexact_seek_summary">Netikslus prasukimas leidžia grotuvui greitai peršokti į kitą vietą su sumažintu tikslumu. 5,10 ar 25 sekundės to nenaudoja.</string>
|
||||
<string name="import_youtube_instructions">Importuokite \"YouTube\" prenumeratas iš \"Google Takeout\":
|
||||
\n
|
||||
\n1. Eikite į šį URL adresą: %1$s
|
||||
\n2. Prisijunkite, kai būsite paprašyti
|
||||
\n3. Spustelėkite \"All data included\" (įtraukti visus duomenis), tada \"Deselect all\" (panaikinti visų duomenų pasirinkimą), tada pasirinkite tik \"Subscriptions\" (prenumeratos) ir spustelėkite \"OK\" (gerai).
|
||||
\n4. Spustelėkite \"Next step\" (kitas žingsnis), tada \"Create export\" (sukurti eksportą).
|
||||
\n5. Pasirodžius mygtukui \"Download\" (Atsisiųsti), spustelėkite jį ir
|
||||
\n6. Iš atsisiųsto išėmimo zip išskleiskite .json failą (paprastai po \"YouTube and YouTube Music/subscriptions/subscriptions.json\") ir importuokite jį čia.</string>
|
||||
<string name="app_license">\"NewPipe\" yra \"copyleft libre\" programinė įranga: galite ją naudoti, studijuoti, dalytis ja ir tobulinti savo nuožiūra. Konkrečiai, galite ją platinti ir (arba) keisti pagal GNU bendrosios viešosios licencijos, kurią paskelbė Laisvosios programinės įrangos fondas, 3 licencijos versiją arba (savo nuožiūra) bet kurią vėlesnę versiją, sąlygas.</string>
|
||||
<string name="import_soundcloud_instructions">Importuokite \"SoundCloud\" profilį įvesdami URL arba savo ID:
|
||||
\n
|
||||
\n1. Interneto naršyklėje įjunkite darbalaukio režimą (svetainė neprieinama mobiliesiems įrenginiams).
|
||||
\n2. Eikite šiuo adresu: %1$s
|
||||
\n3. Prisijunkite, kai būsite paprašyti
|
||||
\n4. Nukopijuokite profilio URL, į kurį buvote nukreipti.</string>
|
||||
<string name="paid_content">Šis turinys prieinamas tik sumokėjusiems naudotojams, todėl \"NewPipe\" negali jo transliuoti ar atsisiųsti.</string>
|
||||
<string name="youtube_music_premium_content">Šis vaizdo įrašas prieinamas tik \"YouTube Music Premium\" nariams, todėl \"NewPipe\" negali jo transliuoti ar atsisiųsti.</string>
|
||||
<string name="disable_media_tunneling_summary">Išjunkite medijos tuneliavimą, jei vaizdo įrašo atkūrimo metu atsiranda juodas ekranas arba užstrigimas</string>
|
||||
<string name="caption_setting_description">Pakeiskite grotuvo antraštės teksto mastelį ir fono stilių. Pakeitimai įsigalios iš naujo paleidus programą.</string>
|
||||
<string name="private_content">Šis turinys yra privatus, todėl \"NewPipe\" jo negali transliuoti ar atsisiųsti.</string>
|
||||
<string name="confirm_prompt">Ar norite išvalyti atsisiuntimų istoriją ar ištrinti visus atsisiųstus failus\?</string>
|
||||
<string name="feed_update_threshold_summary">Laikas po paskutinio atnaujinimo, po kurio prenumerata laikoma pasenusia — %s</string>
|
||||
<string name="error_http_unsupported_range">Serveris nepriima daugiasrautinių atsisiuntimų, pakartokite bandymą su @string/msg_threads = 1</string>
|
||||
<string name="show_thumbnail_summary">Naudoti miniatiūrą užrakinimo ekrano fonui ir pranešimams</string>
|
||||
<string name="download_already_running">Šiuo metu vyksta atsisiuntimas su šiuo pavadinimu</string>
|
||||
<string name="georestricted_content">Šis turinys nėra prieinamas jūsų šalyje.</string>
|
||||
<string name="no_app_to_open_intent">Jokia programa jūsų įrenginyje negali atidaryti šio</string>
|
||||
<string name="enable_queue_limit_desc">Vienu metu bus vykdomas tik vienas atsisiuntimas</string>
|
||||
<string name="error_postprocessing_stopped">NewPipe buvo uždaryta kol dirbo su failu</string>
|
||||
<string name="error_http_no_content">Serveris nesiunčia duomenų</string>
|
||||
<string name="error_ssl_exception">Užmegzti saugaus ryšio nepavyko</string>
|
||||
<string name="limit_mobile_data_usage_title">Naudojant mobilius duomenis riboti raišką</string>
|
||||
<string name="autoplay_summary">Automatiškai atkurti — %s</string>
|
||||
<string name="remove_watched_popup_yes_and_partially_watched_videos">Taip ir iš dalies žiūrėtus vaizdo įrašus</string>
|
||||
<string name="error_download_resource_gone">Atstatyti parsiuntimo nepavyko</string>
|
||||
<string name="pause_downloads_on_mobile">Pertraukti matuojamuose tinkluose</string>
|
||||
<string name="minimize_on_exit_popup_description">Sumažinti iki iššokančio lango grotuvo</string>
|
||||
<string name="minimize_on_exit_background_description">Sumažinti į fono grotuvą</string>
|
||||
<string name="subscriptions_import_unsuccessful">Prenumeratų importuoti nepavyko</string>
|
||||
<string name="disable_media_tunneling_title">Išjungti media tuneliavimą</string>
|
||||
<string name="show_memory_leaks">Rodyti per didelį atminties naudojimą</string>
|
||||
<string name="wifi_only">Tik per Wi-Fi</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">Kanalo avataro miniatiūra</string>
|
||||
<string name="feed_use_dedicated_fetch_method_disable_button">Išjungti greitą režimą</string>
|
||||
<string name="feed_subscription_not_loaded_count">Neįkelta: %d</string>
|
||||
<string name="clear_download_history">Išvalyti parsiuntimų istoriją</string>
|
||||
<string name="generate_unique_name">Generuoti unikalų vardą</string>
|
||||
<string name="playback_speed_control">Atkūrimo greičio valdymas</string>
|
||||
<string name="show_thumbnail_title">Rodyti miniatiūrą</string>
|
||||
<string name="feed_groups_header_title">Kanalo grupės</string>
|
||||
<plurals name="days">
|
||||
<item quantity="one">%d diena</item>
|
||||
<item quantity="few">%d dienos</item>
|
||||
<item quantity="other">%d dienų</item>
|
||||
</plurals>
|
||||
<plurals name="minutes">
|
||||
<item quantity="one">%d minutes</item>
|
||||
<item quantity="few">%d minutės</item>
|
||||
<item quantity="other">%d minučių</item>
|
||||
</plurals>
|
||||
<plurals name="seconds">
|
||||
<item quantity="one">%d sekundė</item>
|
||||
<item quantity="few">%d sekundės</item>
|
||||
<item quantity="other">%d sekundžių</item>
|
||||
</plurals>
|
||||
<string name="systems_language">Sistemos numatytoji</string>
|
||||
<string name="app_language_title">Kalba</string>
|
||||
<string name="downloads_storage_use_saf_title">Naudoti SAF</string>
|
||||
<string name="pause_downloads">Sustabdyti siuntimus</string>
|
||||
<string name="error_http_not_found">Nerasta</string>
|
||||
<string name="download_finished">Parsiųsta</string>
|
||||
<string name="switch_view">Perjungti rodinį</string>
|
||||
<string name="radio">Radijo</string>
|
||||
<string name="featured">Siūloma</string>
|
||||
<string name="chapters">Skyriai</string>
|
||||
<string name="recent">Paskutiniai</string>
|
||||
<string name="never">Niekada</string>
|
||||
<string name="settings_category_feed_title">Kanalas</string>
|
||||
<string name="feed_create_new_group_button_title">Naujas</string>
|
||||
<string name="recovering">atstatoma</string>
|
||||
<string name="close">Užverti</string>
|
||||
<string name="stop">Sustabdyti</string>
|
||||
<string name="label_code">Kodas</string>
|
||||
<string name="overwrite">Perrašyti</string>
|
||||
<string name="enqueue">Eilė</string>
|
||||
<string name="post_processing">apdorojama</string>
|
||||
<string name="queued">eilėje</string>
|
||||
<string name="paused">sustabdyta</string>
|
||||
<string name="missions_header_pending">Laukiama</string>
|
||||
<string name="missions_header_finished">Baigta</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="grid">Tinklelis</string>
|
||||
<string name="list">Sąrašas</string>
|
||||
<string name="updates_setting_title">Atnaujinimai</string>
|
||||
<string name="playback_reset">Atstatyti</string>
|
||||
<string name="playback_step">Žingsnis</string>
|
||||
<string name="minimize_on_exit_none_description">Nieko</string>
|
||||
<string name="decline">Atmesti</string>
|
||||
<string name="accept">Priimti</string>
|
||||
<string name="playback_pitch">Pikas</string>
|
||||
<string name="playback_tempo">Tempas</string>
|
||||
<string name="export_ongoing">Eksportuojama…</string>
|
||||
<string name="import_ongoing">Importuojama…</string>
|
||||
<string name="import_title">Importuoti</string>
|
||||
<string name="import_export_title">Importuoti/Eksportuoti</string>
|
||||
<string name="caption_setting_title">Subtitrai</string>
|
||||
<string name="playlist_no_uploader">Automatiškai sugeneruota (įkėlėjas nerastas)</string>
|
||||
<string name="unmute">Įjungti garsą</string>
|
||||
<string name="mute">Nutildyti</string>
|
||||
<string name="preferred_open_action_settings_summary">Numatytasis veiksmas atveriant turinį — %s</string>
|
||||
<string name="preferred_open_action_settings_title">Numatytasis \"atverti\" veiksmas</string>
|
||||
<string name="enqueued">Pridėta į eilę</string>
|
||||
<string name="enqueue_stream">Pridėti į eilę</string>
|
||||
<string name="show_channel_details">Rodyti kanalo detales</string>
|
||||
<string name="title_activity_play_queue">Groti eilę</string>
|
||||
<string name="conferences">Konferencijos</string>
|
||||
<string name="most_liked">Labiausiai patikę</string>
|
||||
<string name="recently_added">Nesenai pridėta</string>
|
||||
<string name="local">Vietinė</string>
|
||||
<string name="localization_changes_requires_app_restart">Kalba pasikeis paleidus programą iš naujo.</string>
|
||||
<string name="error_unable_to_load_comments">Komentarų įkelti nepavyko</string>
|
||||
<string name="import_settings">Ar norite importuoti nustatymus\?</string>
|
||||
<string name="no_playlist_bookmarked_yet">Kol kas nėra grojaraščio žymų</string>
|
||||
<string name="select_a_playlist">Pasirinkite grojaraštį</string>
|
||||
<string name="default_kiosk_page_summary">Numatytasis režimas</string>
|
||||
<string name="selection">Pasirinkimas</string>
|
||||
<string name="main_page_content_summary">Kokios kortelės rodomos pagrindiniame puslapyje</string>
|
||||
<string name="read_privacy_policy">Skaityti privatumo politiką</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe į jūsų privatumą žiūri labai rimtai. Programa be jūsų sutikimo nerenka jokių duomenų.
|
||||
\nNewPipe privatumo politika išsamiai parodo kokie duomenys siunčiami ir saugomi pranešant apie problemą.</string>
|
||||
<string name="privacy_policy_title">NewPipe privatumo politika</string>
|
||||
<string name="toast_no_player">Šio failo atkūrimui nėra įdiegtos programos</string>
|
||||
<string name="recaptcha_done_button">Atlikta</string>
|
||||
<string name="recaptcha_solve">Išspręsta</string>
|
||||
<string name="subtitle_activity_recaptcha">Paspauskite \"atlikta\" kai išspręsta</string>
|
||||
<string name="error_report_open_github_notice">Patikrinkite ar apie problemą su kuria susidūrėte dar nėra pranešta. Sukurdami kelis pranešimus apie tą pačią problemą atimate iš mūsų laiką kurį galėtume skirti klaidų taisymui.</string>
|
||||
<string name="feed_use_dedicated_fetch_method_help_text">Ar manote, kad kanalas kraunamas per lėtai\? Jei taip, pabandykite įjungti greitąjį įkrovimą (tai galite pakeisti nustatymuose arba paspaudę toliau esantį mygtuką).
|
||||
\n
|
||||
\n\"NewPipe\" siūlo dvi kanalo įkėlimo strategijas:
|
||||
\n- Visos prenumeratos kanalo atsisiuntimas, kuris yra lėtas, bet išsamus.
|
||||
\n- Naudojant specialų paslaugos galinį tašką, kuris yra greitas, bet paprastai neišsamus.
|
||||
\n
|
||||
\nSkirtumas tarp šių dviejų būdų yra tas, kad greitasis būdas paprastai neturi tam tikros informacijos, pavyzdžiui, elemento trukmės ar tipo (negalima atskirti tiesioginių ir įprastų vaizdo įrašų), ir gali grąžinti mažiau elementų.
|
||||
\n
|
||||
\n\"YouTube\" yra pavyzdys paslaugos, kuris siūlo šį greitąjį metodą su savo RSS kanalu.
|
||||
\n
|
||||
\nTaigi pasirinkimas priklauso nuo to, ko labiau norite: greičio ar tikslios informacijos.</string>
|
||||
<string name="start_accept_privacy_policy">Siekdami laikytis Europos bendrojo duomenų apsaugos reglamento (GDPR), atkreipiame jūsų dėmesį į \"NewPipe\" privatumo politiką. Prašome atidžiai ją perskaityti.
|
||||
\nNorėdami išsiųsti mums pranešimą apie klaidą, turite su ja sutikti.</string>
|
||||
<string name="feed_use_dedicated_fetch_method_summary">Prieinama kai kuriose tarnybose, paprastai yra daug greitesnė, tačiau gali grąžinti ribotą kiekį elementų ir dažnai neišsamią informaciją (pvz., nėra trukmės, elemento tipo, nėra tiesioginės būsenos).</string>
|
||||
<string name="remove_watched_popup_warning">Vaizdo įrašai, kurie buvo peržiūrėti prieš juos įtraukiant į grojaraštį ir po to, kai jie buvo įtraukti į grojaraštį, bus pašalinti.
|
||||
\nAr tikrai\? To negalima atšaukti!</string>
|
||||
<string name="downloads_storage_ask_summary_kitkat">Jūsų bus paklausta, kur išsaugoti kiekvieną atsisiuntimą.
|
||||
\nPasirinkite SAF, jei norite atsisiųsti į išorinę SD kortelę</string>
|
||||
<string name="soundcloud_go_plus_content">Tai \"SoundCloud Go+\" kūrinys, bent jau jūsų šalyje, todėl jo negalima transliuoti ar atsisiųsti per \"NewPipe\".</string>
|
||||
<string name="content_not_supported">Šio turinio \"NewPipe\" dar nepalaiko.
|
||||
\n
|
||||
\nTikimės, kad jis bus palaikomas būsimoje versijoje.</string>
|
||||
<string name="downloads_storage_use_saf_summary">\"Storage Access Framework\" leidžia atsisiųsti duomenis į išorinę SD kortelę.
|
||||
\nKai kurie įrenginiai yra nesuderinami</string>
|
||||
<string name="import_network_expensive_warning">Atminkite, kad ši operacija gali brangiai kainuoti tinkle.
|
||||
\n
|
||||
\nAr norite tęsti\?</string>
|
||||
<string name="updates_setting_description">Rodyti pranešimą, kuriame raginama atnaujinti programą, kai yra nauja versija</string>
|
||||
<string name="new_seek_duration_toast">Dėl ExoPlayer apribojimų prasukimo trukmė buvo nustatyta %d sekundės</string>
|
||||
<string name="pause_downloads_on_mobile_desc">Naudinga pereinant prie mobiliųjų duomenų, nors kai kurių atsisiuntimų sustabdyti negalima</string>
|
||||
<string name="minimize_on_exit_summary">Veiksmas, kai iš pagrindinio vaizdo įrašų grotuvo pereinama į kitą programą — %s</string>
|
||||
<string name="show_original_time_ago_summary">Srauto elementuose bus matomi orginalūs tekstai iš paslaugų</string>
|
||||
<string name="downloads_storage_ask_summary">Jūsų bus paklausta, kur išsaugoti kiekvieną atsisiuntimą</string>
|
||||
<string name="select_night_theme_toast">Žemiau galite pasirinkti mėgstamą nakties temą</string>
|
||||
<string name="download_already_pending">Šiuo pavadinimu yra laukiama atsisiuntimo</string>
|
||||
<string name="overwrite_finished_warning">Atsisiųstas failas su šiuo pavadinimu jau egzistuoja</string>
|
||||
<string name="max_retry_desc">Didžiausias bandymų skaičius prieš atšaukiant atsisiuntimą</string>
|
||||
<string name="night_theme_summary">Pasirinkite mėgstamiausią nakties temą — %s</string>
|
||||
<string name="feed_group_dialog_delete_message">Ar norite panaikinti šią grupę\?</string>
|
||||
<string name="error_progress_lost">Eiga prarasta, nes failas buvo panaikintas</string>
|
||||
<string name="overwrite_unrelated_warning">Failas šiuo pavadinimu jau egzistuoja</string>
|
||||
<string name="error_path_creation">Nepavyko sukurti paskirties aplanko</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">Kai įmanoma gauti iš atskiro kanalo</string>
|
||||
<string name="show_original_time_ago_title">Elementams rodyti orginalų \"prieš\" laiką</string>
|
||||
<string name="error_connect_host">Nepavyksta prisijungti prie serverio</string>
|
||||
<string name="error_file_creation">Failo sukurti nepavyko</string>
|
||||
<string name="error_insufficient_storage">Įrenginyje nebėra vietos</string>
|
||||
<string name="error_unknown_host">Nepavyko rasti serverio</string>
|
||||
<string name="error_permission_denied">Sistema nedavė leidimo</string>
|
||||
<string name="permission_denied">Sistema uždraudė veiksmą</string>
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">Rodyti tik negrupuotas prenumeratas</string>
|
||||
<string name="feed_oldest_subscription_update">Paskutinis atnaujinimas: %s</string>
|
||||
<string name="downloads_storage_ask_title">Klausti kur parsiųsti</string>
|
||||
<string name="overwrite_failed">failo perrašyti nepavyko</string>
|
||||
<string name="app_update_notification_content_title">Prieinamas NewPipe atnaujinimas!</string>
|
||||
<string name="minimize_on_exit_title">Perjungiant programą sumažinti</string>
|
||||
<string name="unhook_checkbox">Atkabinti (gali iškraipyti)</string>
|
||||
<string name="subscriptions_export_unsuccessful">Nepavyko eksportuoti prenumeratų</string>
|
||||
<string name="download_has_started">Parsiunčiama</string>
|
||||
<string name="auto_device_theme_title">Automatinis (įrenginio tema)</string>
|
||||
<string name="crash_the_app">Programa nulūžo</string>
|
||||
<string name="channel_created_by">Sukūrė %s</string>
|
||||
<string name="remove_watched_popup_title">Pašalinti žiūrėtus video\?</string>
|
||||
<string name="feed_use_dedicated_fetch_method_enable_button">Įjungti greitą režimą</string>
|
||||
<string name="feed_update_threshold_title">Kanalo atnaujinimo slenkstis</string>
|
||||
<string name="feed_group_dialog_empty_name">Tuščias grupės pavadinimas</string>
|
||||
<string name="feed_group_dialog_empty_selection">Nepasirinkta jokia prenumerata</string>
|
||||
<string name="deleted_downloads">Pašalinta %1$d parsiuntimai</string>
|
||||
<string name="delete_downloaded_files">Pašalinti parsiųstus failus</string>
|
||||
<string name="choose_instance_prompt">Pasirinkite kopiją</string>
|
||||
<string name="enable_queue_limit">Riboti parsiuntimų eilę</string>
|
||||
<string name="download_finished_more">%s parsiuntimai baigti</string>
|
||||
<string name="app_update_notification_content_text">Paspauskite parsiuntimui</string>
|
||||
<string name="list_view_mode">Sąrašo rodinio režimas</string>
|
||||
<string name="skip_silence_checkbox">Prasukti kai nieko negroja</string>
|
||||
<string name="playlist_page_summary">Grojaraščio puslapis</string>
|
||||
<string name="video_detail_by">%s</string>
|
||||
<string name="remove_watched">Pašalinti žiūrėtus</string>
|
||||
<string name="feed_update_threshold_option_always_update">Visada atnaujinti</string>
|
||||
<plurals name="feed_group_dialog_selection_count">
|
||||
<item quantity="one">%d pasirinktas</item>
|
||||
<item quantity="few">%d pasirinkti</item>
|
||||
<item quantity="other">%d pasirinkta</item>
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_select_subscriptions">Pasirinkite prenumeratas</string>
|
||||
<string name="feed_processing_message">Apdorojamas srautas…</string>
|
||||
<string name="feed_notification_loading">Įkeliamas srautas…</string>
|
||||
<plurals name="hours">
|
||||
<item quantity="one">%d valanda</item>
|
||||
<item quantity="few">%d valandos</item>
|
||||
<item quantity="other">%d valandų</item>
|
||||
</plurals>
|
||||
<string name="start_downloads">Pradėti siuntimus</string>
|
||||
<string name="error_timeout">Prisijungimo laikas baigėsi</string>
|
||||
<string name="max_retry_msg">Daugiausiai bandymų</string>
|
||||
<string name="error_postprocessing_failed">Apdorojimas nepavyko</string>
|
||||
<string name="show_error">Rodyti klaidą</string>
|
||||
<string name="download_failed">Parsiųsti nepavyko</string>
|
||||
<string name="limit_data_usage_none_description">Be limito</string>
|
||||
<string name="import_soundcloud_instructions_hint">jūsųID, soundcloud.com/jūsųid</string>
|
||||
<string name="previous_export">Ankstesnis ekportavimas</string>
|
||||
<string name="import_file_title">Importuoti failą</string>
|
||||
<string name="export_to">Eksportuoti į</string>
|
||||
<string name="import_from">Importuoti iš</string>
|
||||
</resources>
|
||||
@@ -277,7 +277,6 @@
|
||||
<string name="file_deleted">Fails izdzēsts</string>
|
||||
<string name="undo">Atsaukt</string>
|
||||
<string name="best_resolution">Labākā izšķirtspēja</string>
|
||||
<string name="popup_resizing_indicator_title">Maina izmēru</string>
|
||||
<string name="clear">Notīrīt</string>
|
||||
<string name="refresh">Atsvaidzināt</string>
|
||||
<string name="filter">Filtrēt</string>
|
||||
@@ -616,8 +615,7 @@
|
||||
<string name="no_player_found">Netika atrasts video atskaņotājs. Instalēt VLC\?</string>
|
||||
<string name="upload_date_text">Publicēts %1$s</string>
|
||||
<string name="view_count_text">%1$s skatījumi</string>
|
||||
<string name="main_bg_subtitle">Nospiediet \"Meklēt\", lai sāktu
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">Nospiediet \"Meklēt\", lai sāktu</string>
|
||||
<string name="notification_colorize_title">Iekrāsot notifikāciju</string>
|
||||
<string name="notification_action_nothing">Nekas</string>
|
||||
<string name="notification_action_buffering">Lādējas</string>
|
||||
|
||||
@@ -461,8 +461,7 @@
|
||||
<string name="no_player_found">സ്ട്രീം പ്ലയർ കണ്ടെത്താനായില്ല. VLC ഇൻസ്റ്റാൾ ചെയ്യട്ടെ\?</string>
|
||||
<string name="upload_date_text">%1$s - ന് പ്രസിദ്ധീകരിച്ചു</string>
|
||||
<string name="view_count_text">%1$s തവണ കാണപ്പെട്ടു</string>
|
||||
<string name="main_bg_subtitle">തുടങ്ങാൻ \"തിരയൽ\" അമർത്തുക
|
||||
\n</string>
|
||||
<string name="main_bg_subtitle">തുടങ്ങാൻ \"തിരയൽ\" അമർത്തുക</string>
|
||||
<string name="content_not_supported">ഈ ഉള്ളടക്കത്തെ ഇതുവരെ ന്യൂപൈപ്പ് പിന്തുണയ്ക്കുന്നില്ല.
|
||||
\n
|
||||
\nഭാവിയിലെ ഒരു പതിപ്പിൽ ഇത് പിന്തുണയ്ക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നു.</string>
|
||||
|
||||
51
app/src/main/res/values-mr/strings.xml
Normal file
51
app/src/main/res/values-mr/strings.xml
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="autoplay_by_calling_app_title">ऑटो प्ले</string>
|
||||
<string name="download_path_audio_dialog_title">ऑडिओ फाईल साठी डाउनलोड फोल्डर निवडा</string>
|
||||
<string name="download_path_audio_summary">डाउनलोड केलेल्या ऑडियो फाईल येथे साठवल्या जातात</string>
|
||||
<string name="download_path_audio_title">ऑडिओ डाउनलोड फोल्डर</string>
|
||||
<string name="download_path_dialog_title">व्हिडिओ फाईल डाऊनलोड करण्याचे फोल्डर निवडा</string>
|
||||
<string name="download_path_summary">डाउनलोड केलेल्या फाईल येथे साठवल्या जातात</string>
|
||||
<string name="download_path_title">व्हिडिओ डाउनलोड फोल्डर</string>
|
||||
<string name="controls_popup_title">पॉप अप</string>
|
||||
<string name="controls_background_title">पार्श्वभाग</string>
|
||||
<string name="tab_choose">टॅब निवडा</string>
|
||||
<string name="tab_new">नवीन टॅब</string>
|
||||
<string name="tab_bookmarks">बुकमार्क केलेली प्लेलिस्ट</string>
|
||||
<string name="tab_subscriptions">सबस्क्रिप्शन</string>
|
||||
<string name="tab_main">मुख्य</string>
|
||||
<string name="show_info">माहिती दाखवा</string>
|
||||
<string name="subscription_update_failed">सबस्क्रिप्शन अद्यतनित करू शकले नाही</string>
|
||||
<string name="subscription_change_failed">सबस्क्रिप्शन मध्ये बदल करू शकलो नाही</string>
|
||||
<string name="channel_unsubscribed">चॅनलचे सबस्क्राईब काढले</string>
|
||||
<string name="unsubscribe">सबस्क्राईब काढा</string>
|
||||
<string name="subscribed_button_title">सबस्क्राईब केले</string>
|
||||
<string name="subscribe_button_title">सबस्क्राईब</string>
|
||||
<string name="popup_mode_share_menu_title">पॉप अप मोड</string>
|
||||
<string name="use_external_audio_player_title">बाहेरील ऑडियो प्लेअर वापरा</string>
|
||||
<string name="use_external_video_player_title">बाहेरील व्हिडिओ प्लेअर वापरा</string>
|
||||
<string name="screen_rotation">फिरविणे</string>
|
||||
<string name="choose_browser">ब्राऊझर निवडा</string>
|
||||
<string name="share_dialog_title">शेअर करा</string>
|
||||
<string name="search_showing_result_for">यासाठी रिझल्ट दाखवत आहे: %s</string>
|
||||
<string name="settings">सेटिंग</string>
|
||||
<string name="search">शोधा</string>
|
||||
<string name="controls_download_desc">फाईल डाउनलोड</string>
|
||||
<string name="download">डाउनलोड</string>
|
||||
<string name="share">शेअर</string>
|
||||
<string name="open_with">याचा वापर करून उघडा</string>
|
||||
<string name="open_in_popup_mode">पॉप अप मोड मध्ये उघडा</string>
|
||||
<string name="open_in_browser">हा मेन्यू नमुना व्हिडिओ किंवा ऑडियो वेब ब्राउजर मध्ये चालवू शकतो</string>
|
||||
<string name="cancel">रद्द करा</string>
|
||||
<string name="install">इंस्टॉल</string>
|
||||
<string name="no_player_found_toast">प्लेअर सापडले नाही (तुम्ही VLC player वापरून फाईल चालवू शकता).</string>
|
||||
<string name="no_player_found">प्लेअर सापडले नाही. VLC प्लेअर इंस्टॉल करू इच्छिता का\?</string>
|
||||
<string name="main_bg_subtitle">सुरू करण्यासाठी \"शोधा\" दाबा</string>
|
||||
<string name="play_with_kodi_title">कोडी वापरून चालवा</string>
|
||||
<string name="show_higher_resolutions_summary">फक्त काही उपकरणे 2k/4k व्हिडिओ चालवू शकतात</string>
|
||||
<string name="show_higher_resolutions_title">वरचे रेसॉल्युशन दाखवा</string>
|
||||
<string name="default_popup_resolution_title">डिफॉल्ट पॉप अप रेसिल्युशन</string>
|
||||
<string name="default_resolution_title">डीफॉल्ट रेसोल्युशन निवडा</string>
|
||||
<string name="autoplay_by_calling_app_summary">Newpipe इतर ॲप मधून चालल्यास व्हिडिओ चालवा</string>
|
||||
<string name="controls_add_to_playlist_title">मध्ये टाका</string>
|
||||
</resources>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user