mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2026-09-23 17:38:51 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4eb42edce | ||
|
|
3195a06755 | ||
|
|
8e82fb44bf | ||
|
|
4c0699a75b | ||
|
|
420c87c93c | ||
|
|
d48831777c | ||
|
|
9f58974e08 | ||
|
|
0bdc32a766 | ||
|
|
c2c3c9f527 | ||
|
|
62db4d487a | ||
|
|
4454a9a327 | ||
|
|
b3df5db96f | ||
|
+3 |
9602a60131 | ||
|
+24 |
219841da40 | ||
|
|
bbbac9b223 | ||
|
|
b4003d641e | ||
|
|
5779af87f8 | ||
|
|
906bd08681 | ||
|
|
978ba91294 | ||
|
|
e07dd4808a | ||
|
|
f2a3530a24 | ||
|
+6 |
936ce4943d | ||
|
|
c0e530be37 | ||
|
|
aa937ea269 | ||
|
|
0245413725 | ||
|
|
2acfbab5f4 | ||
|
|
1d1f801f54 | ||
|
|
ebd71388fe | ||
|
|
ff4a7b383e | ||
|
+6 |
5969042163 | ||
|
|
67cbf54dd5 | ||
|
|
a28859c941 | ||
|
|
429ee2f6da | ||
|
|
a652ee28c7 | ||
|
|
883aadea3f | ||
|
|
00acf2f318 | ||
|
|
14401c532f | ||
|
|
c7ee699216 | ||
|
|
88468415cc | ||
|
|
9e8be09156 | ||
|
|
219324d9d7 | ||
|
|
4fb9c9c88b | ||
|
|
89d2423692 | ||
|
|
07421aaa62 | ||
|
|
9ff614f2fc | ||
|
|
f9bfd268a5 | ||
|
|
129b5c2bb1 | ||
|
|
10144cbf9c | ||
|
|
c0524d7c31 | ||
|
|
6346e03ea8 | ||
|
|
a9f91e6928 | ||
|
|
7c42c8612a | ||
|
+3 |
98843e5dc5 | ||
|
+1 |
dcb7f1ced2 | ||
|
|
881a130ab1 | ||
|
|
cebb3c74de | ||
|
|
52256cbf8a | ||
|
|
5a441dd2bc | ||
|
|
fd36a4ead8 | ||
|
|
00a07ceced | ||
|
|
cc30f9096f | ||
|
|
760b1cf6d6 | ||
|
|
eba0dd62bd | ||
|
|
d6923abfa9 | ||
|
|
2ebd5c2de6 | ||
|
|
7a8d59f41b | ||
|
|
8ef1ab48b4 | ||
|
|
0ddf05a100 | ||
|
|
377ec518b2 | ||
|
+6 |
903cf9ece0 | ||
|
|
c6f63e60b9 | ||
|
|
3155aab7ea | ||
|
|
3147e2a42c | ||
|
+4 |
847316f77c | ||
|
|
3e2159c128 | ||
|
|
94e7352dc1 | ||
|
|
96226a882d | ||
|
|
cd54f56b3d | ||
|
|
91e21cee35 | ||
|
|
845593cd0f | ||
|
|
6fa36eea2f | ||
|
|
8594f93393 | ||
|
|
40bf7ad665 | ||
|
|
f2a295ed1f | ||
|
|
b6e0145719 | ||
|
|
0892909b0c | ||
|
|
b1f540732f | ||
|
|
9ac308ac62 | ||
|
|
4f94cc72b7 | ||
|
|
3741449d7e | ||
|
|
730705a283 | ||
|
|
4b4671eb2d | ||
|
|
6ef037e067 | ||
|
|
46a59640cd | ||
|
|
8deb2feeb9 | ||
|
|
8dcb553abc | ||
|
|
b67a7159ec | ||
|
|
3037e51c43 | ||
|
|
09cc7764cf | ||
|
|
20ce6d7c6a | ||
|
|
cd48198143 | ||
|
|
ebcc72ac8d | ||
|
|
e08a9befbc | ||
|
|
b259b767f5 | ||
|
|
c2c846f180 | ||
|
|
f74e7e9444 | ||
|
|
e2a659dc7f | ||
|
+22 |
9e3e8a83b9 | ||
|
|
bb02927fa3 | ||
|
+12 |
ddceb10fba | ||
|
|
64b09e5491 | ||
|
|
8dc1315d5f | ||
|
|
192dc99a83 | ||
|
|
87e06a436c | ||
|
|
cf49cc4c0f | ||
|
|
18d6ba3503 | ||
|
|
d927f44c46 | ||
|
|
84d7db5c13 | ||
|
|
058810f452 | ||
|
|
1058370db0 | ||
|
|
4f7fd37926 | ||
|
|
30c86abe8a | ||
|
|
c7e4681932 | ||
|
|
8d484317ce | ||
|
|
f102205f00 | ||
|
|
2f1407980e | ||
|
|
f1e145f690 | ||
|
|
b3d3f5445c | ||
|
|
fdb28cdc4a | ||
|
|
6208f9a80c | ||
|
|
8c295a34fb | ||
|
|
ae42026e82 | ||
|
|
0de011447d | ||
|
|
dbe64a88dc | ||
|
|
5f55717a9f | ||
|
|
ac180ced84 | ||
|
|
8392cd56bd | ||
|
|
43dca2b45b | ||
|
|
0d06dd9b1a | ||
|
|
860a9004fe | ||
|
|
df6786c176 | ||
|
|
a4abadd02a | ||
|
|
50925a1d6c | ||
|
|
94005cfe9c | ||
|
|
d3d6b0283f | ||
|
|
45af64a518 | ||
|
|
28654471d5 | ||
|
|
82e3e71849 | ||
|
|
d4698f9d8e | ||
|
|
01e3742521 | ||
|
|
0f2bbf11ff | ||
|
|
aa48a76486 | ||
|
|
abf97404a0 | ||
|
|
dfc3f4b9f3 | ||
|
|
d1bc8c23cf | ||
|
|
53f36154aa | ||
|
|
89d55ede72 | ||
|
|
909bd347a7 | ||
|
|
cc74ac8ce8 | ||
|
|
ef85e567fb | ||
|
+16 |
238124c7be | ||
|
|
6f3f4219dc | ||
|
|
9dd0f1984f | ||
|
|
b6a2167516 | ||
|
|
c2ead904fe | ||
|
|
6419b6bac7 | ||
|
|
6cd63dc0c5 | ||
|
|
18d54b6225 | ||
|
|
cd171dab54 | ||
|
|
07b4fa7b35 | ||
|
|
56982455f6 | ||
|
|
ad7f8ba9c3 | ||
|
|
ff597f8e95 | ||
|
+7 |
8805c9e8c9 | ||
|
|
6740af2c71 | ||
|
|
c1692322bb | ||
|
|
ec81b6bb62 | ||
|
|
bdebc926a8 | ||
|
|
936d5d27ff | ||
|
|
a719b898a1 | ||
|
|
05333265ec | ||
|
|
c4a6bdd7d4 | ||
|
|
5836f3a492 | ||
|
|
aa094bc782 | ||
|
|
7a3d1d9b5f | ||
|
|
2682f233a0 | ||
|
|
4effcad436 | ||
|
|
3e297fd892 | ||
|
|
db8edd3b44 |
@@ -57,8 +57,9 @@ You'll see *exactly* what is sent, be able to add **your comments**, and then se
|
||||
|
||||
### Creating a Pull Request (PR)
|
||||
|
||||
* Make changes on a **separate branch** with a meaningful name, not on the _master_ branch or the _dev_ branch. This is commonly known as *feature branch workflow*. You may then send your changes as a pull request (PR) on GitHub.
|
||||
* Make changes on a **separate branch** with a meaningful name, not on the _master_ branch or the _dev_ branch. This is commonly known as *feature branch workflow*. You may then send your changes as a pull request (PR) on GitHub against the `dev` branch.
|
||||
* Please **test** (compile and run) your code before submitting changes! Ideally, provide test feedback in the PR description. Untested code will **not** be merged!
|
||||
* Filling in the **PR template** is mandatory. Ignoring the template or removing it can get your PR closed without further explanation.
|
||||
* Respond if someone requests changes or otherwise raises issues about your PRs.
|
||||
* Try to figure out yourself why builds on our CI fail.
|
||||
* Make sure your PR is **up-to-date** with the rest of the code. Often, a simple click on "Update branch" will do the job, but if not, you must *rebase* your branch on the `dev` branch manually and resolve the conflicts on your own. You can find help [on the wiki](https://github.com/TeamNewPipe/NewPipe/wiki/How-to-merge-a-PR). Doing this makes the maintainers' job way easier.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#### What is it?
|
||||
- [ ] Bugfix (user facing)
|
||||
- [ ] Feature (user facing) ⚠️ **Your PR must target the [`refactor`](https://github.com/TeamNewPipe/NewPipe/tree/refactor) branch**
|
||||
- [ ] Feature (user facing)
|
||||
- [ ] Codebase improvement (dev facing)
|
||||
- [ ] Meta improvement to the project (dev facing)
|
||||
|
||||
@@ -24,8 +24,16 @@
|
||||
#### Relies on the following changes
|
||||
<!-- Delete this if it doesn't apply to your PR. -->
|
||||
-
|
||||
#### Testing/QA
|
||||
|
||||
#### APK testing
|
||||
##### Devices
|
||||
- tested on device/emulator(phone/tablet/TV/...) running Android XX / API level by doing ...
|
||||
|
||||
##### Steps for testing
|
||||
<!-- Explain which steps you made to test that your changes fix the bug or implement the feature correctly and do not introduce regressions. This is mandatory to ensure that reviewers can quickly identify if you missed a crucial step. Link unit or integration tests here, if created or changed. --->
|
||||
-
|
||||
|
||||
##### APK for testing
|
||||
<!-- Use a new, meaningfully named branch. The name is used as a suffix for the app ID to allow installing and testing multiple versions of NewPipe, e.g. "commentfix", if your PR implements a bugfix for comments. (No names like "patch-0" and "feature-1".) -->
|
||||
<!-- Remove the following line if you directly link the APK created by the CI pipeline. Directly linking is preferred if you need to let users test.-->
|
||||
The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR. You can find more info and a video demonstration [on this wiki page](https://github.com/TeamNewPipe/NewPipe/wiki/Download-APK-for-PR).
|
||||
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
mv app/build/outputs/apk/release/*.apk "app/build/outputs/apk/release/NewPipe_v$VERSION_NAME.apk"
|
||||
|
||||
- name: "Upload APK"
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: app
|
||||
path: app/build/outputs/apk/release/*.apk
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: gradle/actions/wrapper-validation@v5
|
||||
- uses: gradle/actions/wrapper-validation@v6
|
||||
|
||||
- name: create and checkout branch
|
||||
# push events already checked out the branch
|
||||
@@ -55,13 +55,13 @@ jobs:
|
||||
cache: 'gradle'
|
||||
|
||||
- name: Build debug APK and run jvm tests
|
||||
run: ./gradlew assembleDebug lintDebug testDebugUnitTest --stacktrace -DskipFormatKtlint
|
||||
run: ./gradlew assembleContinuous lintContinuous testDebugUnitTest --stacktrace -DskipFormatKtlint
|
||||
|
||||
- name: Upload APK
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: app
|
||||
path: app/build/outputs/apk/debug/*.apk
|
||||
path: app/build/outputs/apk/continuous/*.apk
|
||||
|
||||
test-android:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- api-level: 21
|
||||
- api-level: 23
|
||||
target: default
|
||||
arch: x86
|
||||
- api-level: 35
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
script: ./gradlew connectedCheck --stacktrace
|
||||
|
||||
- name: Upload test report when tests fail # because the printed out stacktrace (console) is too short, see also #7553
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
if: failure()
|
||||
with:
|
||||
name: android-test-report-api${{ matrix.api-level }}
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
run: npm i probe-image-size@7.2.3 --ignore-scripts
|
||||
|
||||
- name: Minimize simple images
|
||||
uses: actions/github-script@v8
|
||||
uses: actions/github-script@v9
|
||||
timeout-minutes: 3
|
||||
with:
|
||||
script: |
|
||||
|
||||
+14
-1
@@ -1,7 +1,8 @@
|
||||
.gradle/
|
||||
local.properties
|
||||
.DS_Store
|
||||
build/
|
||||
**/build/
|
||||
!src/**/build/
|
||||
captures/
|
||||
.idea/
|
||||
*.iml
|
||||
@@ -19,3 +20,15 @@ app/release/
|
||||
bin/
|
||||
.vscode/
|
||||
*.code-workspace
|
||||
|
||||
# xcode files
|
||||
xcuserdata
|
||||
.externalNativeBuild
|
||||
.cxx
|
||||
node_modules/
|
||||
*.xcodeproj/*
|
||||
!*.xcodeproj/project.pbxproj
|
||||
!*.xcodeproj/xcshareddata/
|
||||
!*.xcodeproj/project.xcworkspace/
|
||||
!*.xcworkspace/contents.xcworkspacedata
|
||||
**/xcshareddata/WorkspaceSettings.xcsettings
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
<h3 align="center">We are <i>rewriting</i> large chunks of the codebase, to bring about <a href="https://newpipe.net/blog/pinned/announcement/newpipe-0.27.6-rewrite-team-states/#the-refactor">a modern and stable NewPipe</a>! You can download nightly builds <a href="https://github.com/TeamNewPipe/NewPipe-refactor-nightly/releases">here</a>.</h3>
|
||||
<h4 align="center">Please work on the <code>refactor</code> branch if you want to contribute <i>new features</i>. The current codebase is in maintenance mode and will only receive <i>bugfixes</i>.</h4>
|
||||
|
||||
<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">A libre lightweight streaming front-end for Android.</h4>
|
||||
@@ -10,7 +7,6 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe/releases" alt="GitHub NewPipe releases"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe.svg" ></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe-nightly/releases" alt="GitHub NewPipe nightly releases"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe-nightly.svg?labelColor=purple&label=dev%20nightly"></a>
|
||||
<a href="https://github.com/TeamNewPipe/NewPipe-refactor-nightly/releases" alt="GitHub NewPipe refactor nightly releases"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe-refactor-nightly.svg?labelColor=purple&label=refactor%20nightly"></a>
|
||||
<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/actions/workflows/ci.yml/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>
|
||||
@@ -32,6 +28,8 @@
|
||||
> <b>THIS APP IS IN BETA, SO YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE IN OUR GITHUB REPOSITORY BY FILLING OUT THE ISSUE TEMPLATE.</b>
|
||||
>
|
||||
> <b>PUTTING NEWPIPE, OR ANY FORK OF IT, INTO THE GOOGLE PLAY STORE VIOLATES THEIR TERMS AND CONDITIONS.</b>
|
||||
>
|
||||
> <b>"NewPipe" IS A REGISTERED WORD MARK SUBJECT TO [ITS TRADEMARK POLICY](https://newpipe-ev.de/policy/trademark/). INFRINGING APPLICATIONS WILL NOT BE TOLERATED.</b>
|
||||
|
||||
## Screenshots
|
||||
|
||||
|
||||
+65
-44
@@ -4,50 +4,53 @@
|
||||
*/
|
||||
|
||||
import com.android.build.api.dsl.ApplicationExtension
|
||||
import java.util.regex.Pattern
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.jetbrains.kotlin.android)
|
||||
alias(libs.plugins.jetbrains.kotlin.kapt)
|
||||
alias(libs.plugins.android.legacy.kapt)
|
||||
alias(libs.plugins.google.ksp)
|
||||
alias(libs.plugins.jetbrains.kotlin.parcelize)
|
||||
alias(libs.plugins.jetbrains.kotlinx.serialization)
|
||||
alias(libs.plugins.sonarqube)
|
||||
alias(libs.plugins.about.libraries)
|
||||
checkstyle
|
||||
}
|
||||
|
||||
val gitWorkingBranch = providers.exec {
|
||||
commandLine("git", "rev-parse", "--abbrev-ref", "HEAD")
|
||||
}.standardOutput.asText.map { it.trim() }
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
val defaultBranches = listOf("master", "dev")
|
||||
val workingBranch = gitWorkingBranch.getOrElse("")
|
||||
val normalizedWorkingBranch = workingBranch
|
||||
.replaceFirst("^[^A-Za-z]+".toRegex(), "")
|
||||
.replace("[^0-9A-Za-z]+".toRegex(), "")
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
// TODO: Drop annotation default target when it is stable
|
||||
freeCompilerArgs.addAll(
|
||||
"-Xannotation-default-target=param-property"
|
||||
)
|
||||
}
|
||||
jvmToolchain(21)
|
||||
}
|
||||
|
||||
configure<ApplicationExtension> {
|
||||
compileSdk = 36
|
||||
namespace = "org.schabi.newpipe"
|
||||
compileSdk {
|
||||
version = release(NEWPIPE_VERSION_SDK_COMPILE_MAJOR) {
|
||||
minorApiLevel = NEWPIPE_VERSION_SDK_COMPILE_MINOR
|
||||
}
|
||||
}
|
||||
namespace = NEWPIPE_APPLICATION_ID_OLD
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "org.schabi.newpipe"
|
||||
applicationId = NEWPIPE_APPLICATION_ID_OLD
|
||||
resValue("string", "app_name", "NewPipe")
|
||||
minSdk = 21
|
||||
targetSdk = 35
|
||||
minSdk {
|
||||
version = release(NEWPIPE_VERSION_SDK_MIN)
|
||||
}
|
||||
targetSdk {
|
||||
version = release(NEWPIPE_VERSION_SDK_TARGET)
|
||||
}
|
||||
|
||||
versionCode = System.getProperty("versionCodeOverride")?.toInt() ?: 1011
|
||||
versionCode = System.getProperty("versionCodeOverride")?.toInt() ?: NEWPIPE_VERSION_CODE
|
||||
|
||||
versionName = "0.28.6"
|
||||
versionName = NEWPIPE_VERSION_NAME
|
||||
System.getProperty("versionNameSuffix")?.let { versionNameSuffix = it }
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
@@ -58,14 +61,7 @@ configure<ApplicationExtension> {
|
||||
isDebuggable = true
|
||||
|
||||
// suffix the app id and the app name with git branch name
|
||||
val defaultBranches = listOf("master", "dev")
|
||||
val workingBranch = gitWorkingBranch.getOrElse("")
|
||||
val normalizedWorkingBranch = workingBranch
|
||||
.replaceFirst("^[^A-Za-z]+".toRegex(), "")
|
||||
.replace("[^0-9A-Za-z]+".toRegex(), "")
|
||||
|
||||
if (normalizedWorkingBranch.isEmpty() || workingBranch in defaultBranches) {
|
||||
// default values when branch name could not be determined or is master or dev
|
||||
applicationIdSuffix = ".debug"
|
||||
resValue("string", "app_name", "NewPipe Debug")
|
||||
} else {
|
||||
@@ -86,6 +82,21 @@ configure<ApplicationExtension> {
|
||||
"proguard-rules.pro"
|
||||
)
|
||||
}
|
||||
|
||||
register("continuous") {
|
||||
initWith(getByName("release"))
|
||||
signingConfig = signingConfigs.getByName("debug")
|
||||
isDefault = true
|
||||
|
||||
// suffix the app id and the app name with git branch name
|
||||
if (normalizedWorkingBranch.isEmpty() || workingBranch in defaultBranches) {
|
||||
applicationIdSuffix = ".continuous"
|
||||
resValue("string", "app_name", "NewPipe Continuous")
|
||||
} else {
|
||||
applicationIdSuffix = ".continuous.$normalizedWorkingBranch"
|
||||
resValue("string", "app_name", "NewPipe $workingBranch")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
@@ -133,17 +144,9 @@ ksp {
|
||||
arg("room.schemaLocation", "$projectDir/schemas")
|
||||
}
|
||||
|
||||
|
||||
// Custom dependency configuration for ktlint
|
||||
val ktlint by configurations.creating
|
||||
|
||||
// https://checkstyle.org/#JRE_and_JDK
|
||||
tasks.withType<Checkstyle>().configureEach {
|
||||
javaLauncher = javaToolchains.launcherFor {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
configDirectory = rootProject.file("checkstyle")
|
||||
isIgnoreFailures = false
|
||||
@@ -212,19 +215,20 @@ sonar {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
/** Desugaring **/
|
||||
// Desugaring
|
||||
coreLibraryDesugaring(libs.android.desugar)
|
||||
|
||||
/** NewPipe libraries **/
|
||||
// NewPipe libraries
|
||||
implementation(projects.shared)
|
||||
implementation(libs.newpipe.nanojson)
|
||||
implementation(libs.newpipe.extractor)
|
||||
implementation(libs.newpipe.filepicker)
|
||||
|
||||
/** Checkstyle **/
|
||||
// Checkstyle
|
||||
checkstyle(libs.puppycrawl.checkstyle)
|
||||
ktlint(libs.pinterest.ktlint)
|
||||
|
||||
/** AndroidX **/
|
||||
// AndroidX
|
||||
implementation(libs.androidx.appcompat)
|
||||
implementation(libs.androidx.cardview)
|
||||
implementation(libs.androidx.constraintlayout)
|
||||
@@ -253,7 +257,7 @@ dependencies {
|
||||
// Kotlinx Serialization
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
|
||||
/** Third-party libraries **/
|
||||
// Third-party libraries
|
||||
implementation(libs.livefront.bridge)
|
||||
implementation(libs.evernote.statesaver.core)
|
||||
kapt(libs.evernote.statesaver.compiler)
|
||||
@@ -263,6 +267,7 @@ dependencies {
|
||||
|
||||
// HTTP client
|
||||
implementation(libs.squareup.okhttp)
|
||||
implementation(libs.squareup.okhttp.brotli)
|
||||
|
||||
// Media player
|
||||
implementation(libs.google.exoplayer.core)
|
||||
@@ -303,8 +308,7 @@ dependencies {
|
||||
// Date and time formatting
|
||||
implementation(libs.ocpsoft.prettytime)
|
||||
|
||||
/** Debugging **/
|
||||
// Memory leak detection
|
||||
// Debugging and memory leak detection
|
||||
debugImplementation(libs.squareup.leakcanary.watcher)
|
||||
debugImplementation(libs.squareup.leakcanary.plumber)
|
||||
debugImplementation(libs.squareup.leakcanary.core)
|
||||
@@ -312,7 +316,7 @@ dependencies {
|
||||
debugImplementation(libs.facebook.stetho.core)
|
||||
debugImplementation(libs.facebook.stetho.okhttp3)
|
||||
|
||||
/** Testing **/
|
||||
// Testing
|
||||
testImplementation(libs.junit)
|
||||
testImplementation(libs.mockito.core)
|
||||
|
||||
@@ -321,3 +325,20 @@ dependencies {
|
||||
androidTestImplementation(libs.androidx.room.testing)
|
||||
androidTestImplementation(libs.assertj.core)
|
||||
}
|
||||
|
||||
aboutLibraries {
|
||||
collect {
|
||||
configPath = file("../config/aboutlibraries")
|
||||
}
|
||||
export {
|
||||
outputFile = file("../shared/src/androidMain/assets/aboutlibraries.json")
|
||||
prettyPrint = true
|
||||
excludeFields.addAll("organization", "scm", "funding")
|
||||
}
|
||||
library {
|
||||
exclusionPatterns = listOf(
|
||||
Pattern.compile("^com\\.github\\.TeamNewPipe:NewPipeExtractor$"),
|
||||
Pattern.compile("^com\\.evernote:android-state$")
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+3
-5
@@ -16,11 +16,6 @@
|
||||
-dontwarn javax.script.**
|
||||
-keep class jdk.dynalink.** { *; }
|
||||
-dontwarn jdk.dynalink.**
|
||||
# Rules for jsoup
|
||||
# Ignore intended-to-be-optional re2j classes - only needed if using re2j for jsoup regex
|
||||
# jsoup safely falls back to JDK regex if re2j not on classpath, but has concrete re2j refs
|
||||
# See https://github.com/jhy/jsoup/issues/2459 - may be resolved in future, then this may be removed
|
||||
-dontwarn com.google.re2j.**
|
||||
|
||||
## Rules for ExoPlayer
|
||||
-keep class com.google.android.exoplayer2.** { *; }
|
||||
@@ -59,3 +54,6 @@
|
||||
-keepclasseswithmembers class org.schabi.newpipe.** {
|
||||
kotlinx.serialization.KSerializer serializer(...);
|
||||
}
|
||||
|
||||
# See https://github.com/TeamNewPipe/NewPipe/issues/13508
|
||||
-keep class org.ocpsoft.prettytime.i18n.Resources* { *; }
|
||||
|
||||
@@ -240,28 +240,6 @@
|
||||
<data android:scheme="vnd.youtube.launch" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- Hooktube filter -->
|
||||
<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:host="hooktube.com" />
|
||||
<data android:host="*.hooktube.com" />
|
||||
<!-- video prefix -->
|
||||
<data android:pathPrefix="/v/" />
|
||||
<data android:pathPrefix="/embed/" />
|
||||
<data android:pathPrefix="/watch" />
|
||||
<!-- channel prefix -->
|
||||
<data android:pathPrefix="/channel/" />
|
||||
<data android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- Invidious filter -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
@@ -273,34 +251,15 @@
|
||||
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
<data android:host="tubus.eduvid.org" />
|
||||
<data android:host="invidio.us" />
|
||||
<data android:host="dev.invidio.us" />
|
||||
<data android:host="www.invidio.us" />
|
||||
<data android:host="redirect.invidious.io" />
|
||||
<data android:host="invidious.snopyta.org" />
|
||||
<data android:host="yewtu.be" />
|
||||
<data android:host="tube.connect.cafe" />
|
||||
<data android:host="invidious.kavin.rocks" />
|
||||
<data android:host="invidious-us.kavin.rocks" />
|
||||
<data android:host="piped.kavin.rocks" />
|
||||
<data android:host="invidious.site" />
|
||||
<data android:host="vid.mint.lgbt" />
|
||||
<data android:host="invidiou.site" />
|
||||
<data android:host="invidious.fdn.fr" />
|
||||
<data android:host="invidious.048596.xyz" />
|
||||
<data android:host="invidious.zee.li" />
|
||||
<data android:host="vid.puffyan.us" />
|
||||
<data android:host="ytprivate.com" />
|
||||
<data android:host="invidious.namazso.eu" />
|
||||
<data android:host="invidious.silkky.cloud" />
|
||||
<data android:host="invidious.exonip.de" />
|
||||
<data android:host="inv.riverside.rocks" />
|
||||
<data android:host="invidious.blamefran.net" />
|
||||
<data android:host="invidious.moomoo.me" />
|
||||
<data android:host="ytb.trom.tf" />
|
||||
<data android:host="yt.cyberhost.uk" />
|
||||
<data android:host="y.com.cm" />
|
||||
<data android:host="piped.video" />
|
||||
<data android:host="inv.nadeko.net/" />
|
||||
<data android:host="invidious.nerdvpn.de" />
|
||||
<data android:host="yt.chocolatemoo53.com" />
|
||||
<data android:host="invidious.tiekoetter.com" />
|
||||
<data android:host="invidious.f5.si" />
|
||||
<data android:pathPrefix="/" />
|
||||
</intent-filter>
|
||||
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Apache License - Version 2.0, January 2004</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Apache License<br>Version 2.0, January 2004<br>
|
||||
<a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a> </p>
|
||||
<p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p>
|
||||
<p><strong><a name="definitions">1. Definitions</a></strong>.</p>
|
||||
<p>"License" shall mean the terms and conditions for use, reproduction, and
|
||||
distribution as defined by Sections 1 through 9 of this document.</p>
|
||||
<p>"Licensor" shall mean the copyright owner or entity authorized by the
|
||||
copyright owner that is granting the License.</p>
|
||||
<p>"Legal Entity" shall mean the union of the acting entity and all other
|
||||
entities that control, are controlled by, or are under common control with
|
||||
that entity. For the purposes of this definition, "control" means (i) the
|
||||
power, direct or indirect, to cause the direction or management of such
|
||||
entity, whether by contract or otherwise, or (ii) ownership of fifty
|
||||
percent (50%) or more of the outstanding shares, or (iii) beneficial
|
||||
ownership of such entity.</p>
|
||||
<p>"You" (or "Your") shall mean an individual or Legal Entity exercising
|
||||
permissions granted by this License.</p>
|
||||
<p>"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation source,
|
||||
and configuration files.</p>
|
||||
<p>"Object" form shall mean any form resulting from mechanical transformation
|
||||
or translation of a Source form, including but not limited to compiled
|
||||
object code, generated documentation, and conversions to other media types.</p>
|
||||
<p>"Work" shall mean the work of authorship, whether in Source or Object form,
|
||||
made available under the License, as indicated by a copyright notice that
|
||||
is included in or attached to the work (an example is provided in the
|
||||
Appendix below).</p>
|
||||
<p>"Derivative Works" shall mean any work, whether in Source or Object form,
|
||||
that is based on (or derived from) the Work and for which the editorial
|
||||
revisions, annotations, elaborations, or other modifications represent, as
|
||||
a whole, an original work of authorship. For the purposes of this License,
|
||||
Derivative Works shall not include works that remain separable from, or
|
||||
merely link (or bind by name) to the interfaces of, the Work and Derivative
|
||||
Works thereof.</p>
|
||||
<p>"Contribution" shall mean any work of authorship, including the original
|
||||
version of the Work and any modifications or additions to that Work or
|
||||
Derivative Works thereof, that is intentionally submitted to Licensor for
|
||||
inclusion in the Work by the copyright owner or by an individual or Legal
|
||||
Entity authorized to submit on behalf of the copyright owner. For the
|
||||
purposes of this definition, "submitted" means any form of electronic,
|
||||
verbal, or written communication sent to the Licensor or its
|
||||
representatives, including but not limited to communication on electronic
|
||||
mailing lists, source code control systems, and issue tracking systems that
|
||||
are managed by, or on behalf of, the Licensor for the purpose of discussing
|
||||
and improving the Work, but excluding communication that is conspicuously
|
||||
marked or otherwise designated in writing by the copyright owner as "Not a
|
||||
Contribution."</p>
|
||||
<p>"Contributor" shall mean Licensor and any individual or Legal Entity on
|
||||
behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.</p>
|
||||
<p><strong><a name="copyright">2. Grant of Copyright License</a></strong>. Subject to the
|
||||
terms and conditions of this License, each Contributor hereby grants to You
|
||||
a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of, publicly
|
||||
display, publicly perform, sublicense, and distribute the Work and such
|
||||
Derivative Works in Source or Object form.</p>
|
||||
<p><strong><a name="patent">3. Grant of Patent License</a></strong>. Subject to the terms
|
||||
and conditions of this License, each Contributor hereby grants to You a
|
||||
perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made, use,
|
||||
offer to sell, sell, import, and otherwise transfer the Work, where such
|
||||
license applies only to those patent claims licensable by such Contributor
|
||||
that are necessarily infringed by their Contribution(s) alone or by
|
||||
combination of their Contribution(s) with the Work to which such
|
||||
Contribution(s) was submitted. If You institute patent litigation against
|
||||
any entity (including a cross-claim or counterclaim in a lawsuit) alleging
|
||||
that the Work or a Contribution incorporated within the Work constitutes
|
||||
direct or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate as of the
|
||||
date such litigation is filed.</p>
|
||||
<p><strong><a name="redistribution">4. Redistribution</a></strong>. You may reproduce and
|
||||
distribute copies of the Work or Derivative Works thereof in any medium,
|
||||
with or without modifications, and in Source or Object form, provided that
|
||||
You meet the following conditions:</p>
|
||||
<ol style="list-style: lower-latin;">
|
||||
<li>You must give any other recipients of the Work or Derivative Works a
|
||||
copy of this License; and</li>
|
||||
|
||||
<li>You must cause any modified files to carry prominent notices stating
|
||||
that You changed the files; and</li>
|
||||
|
||||
<li>You must retain, in the Source form of any Derivative Works that You
|
||||
distribute, all copyright, patent, trademark, and attribution notices from
|
||||
the Source form of the Work, excluding those notices that do not pertain to
|
||||
any part of the Derivative Works; and</li>
|
||||
|
||||
<li>If the Work includes a "NOTICE" text file as part of its distribution,
|
||||
then any Derivative Works that You distribute must include a readable copy
|
||||
of the attribution notices contained within such NOTICE file, excluding
|
||||
those notices that do not pertain to any part of the Derivative Works, in
|
||||
at least one of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or documentation,
|
||||
if provided along with the Derivative Works; or, within a display generated
|
||||
by the Derivative Works, if and wherever such third-party notices normally
|
||||
appear. The contents of the NOTICE file are for informational purposes only
|
||||
and do not modify the License. You may add Your own attribution notices
|
||||
within Derivative Works that You distribute, alongside or as an addendum to
|
||||
the NOTICE text from the Work, provided that such additional attribution
|
||||
notices cannot be construed as modifying the License.
|
||||
<br/>
|
||||
<br/>
|
||||
You may add Your own copyright statement to Your modifications and may
|
||||
provide additional or different license terms and conditions for use,
|
||||
reproduction, or distribution of Your modifications, or for any such
|
||||
Derivative Works as a whole, provided Your use, reproduction, and
|
||||
distribution of the Work otherwise complies with the conditions stated in
|
||||
this License.
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<p><strong><a name="contributions">5. Submission of Contributions</a></strong>. Unless You
|
||||
explicitly state otherwise, any Contribution intentionally submitted for
|
||||
inclusion in the Work by You to the Licensor shall be under the terms and
|
||||
conditions of this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify the
|
||||
terms of any separate license agreement you may have executed with Licensor
|
||||
regarding such Contributions.</p>
|
||||
<p><strong><a name="trademarks">6. Trademarks</a></strong>. This License does not grant
|
||||
permission to use the trade names, trademarks, service marks, or product
|
||||
names of the Licensor, except as required for reasonable and customary use
|
||||
in describing the origin of the Work and reproducing the content of the
|
||||
NOTICE file.</p>
|
||||
<p><strong><a name="no-warranty">7. Disclaimer of Warranty</a></strong>. Unless required by
|
||||
applicable law or agreed to in writing, Licensor provides the Work (and
|
||||
each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
|
||||
without limitation, any warranties or conditions of TITLE,
|
||||
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You
|
||||
are solely responsible for determining the appropriateness of using or
|
||||
redistributing the Work and assume any risks associated with Your exercise
|
||||
of permissions under this License.</p>
|
||||
<p><strong><a name="no-liability">8. Limitation of Liability</a></strong>. In no event and
|
||||
under no legal theory, whether in tort (including negligence), contract, or
|
||||
otherwise, unless required by applicable law (such as deliberate and
|
||||
grossly negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a result
|
||||
of this License or out of the use or inability to use the Work (including
|
||||
but not limited to damages for loss of goodwill, work stoppage, computer
|
||||
failure or malfunction, or any and all other commercial damages or losses),
|
||||
even if such Contributor has been advised of the possibility of such
|
||||
damages.</p>
|
||||
<p><strong><a name="additional">9. Accepting Warranty or Additional Liability</a></strong>.
|
||||
While redistributing the Work or Derivative Works thereof, You may choose
|
||||
to offer, and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this License.
|
||||
However, in accepting such obligations, You may act only on Your own behalf
|
||||
and on Your sole responsibility, not on behalf of any other Contributor,
|
||||
and only if You agree to indemnify, defend, and hold each Contributor
|
||||
harmless for any liability incurred by, or claims asserted against, such
|
||||
Contributor by reason of your accepting any such warranty or additional
|
||||
liability.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,245 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!-- saved from url=(0050)https://www.eclipse.org/org/documents/epl-v10.html -->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
||||
|
||||
<title>Eclipse Public License - Version 1.0</title>
|
||||
|
||||
</head>
|
||||
|
||||
<body cz-shortcut-listen="true" lang="EN-US">
|
||||
|
||||
<h2>Eclipse Public License - v 1.0</h2>
|
||||
|
||||
<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
|
||||
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
|
||||
DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
|
||||
AGREEMENT.</p>
|
||||
|
||||
<p><b>1. DEFINITIONS</b></p>
|
||||
|
||||
<p>"Contribution" means:</p>
|
||||
|
||||
<p class="list">a) in the case of the initial Contributor, the initial
|
||||
code and documentation distributed under this Agreement, and</p>
|
||||
<p class="list">b) in the case of each subsequent Contributor:</p>
|
||||
<p class="list">i) changes to the Program, and</p>
|
||||
<p class="list">ii) additions to the Program;</p>
|
||||
<p class="list">where such changes and/or additions to the Program
|
||||
originate from and are distributed by that particular Contributor. A
|
||||
Contribution 'originates' from a Contributor if it was added to the
|
||||
Program by such Contributor itself or anyone acting on such
|
||||
Contributor's behalf. Contributions do not include additions to the
|
||||
Program which: (i) are separate modules of software distributed in
|
||||
conjunction with the Program under their own license agreement, and (ii)
|
||||
are not derivative works of the Program.</p>
|
||||
|
||||
<p>"Contributor" means any person or entity that distributes
|
||||
the Program.</p>
|
||||
|
||||
<p>"Licensed Patents" mean patent claims licensable by a
|
||||
Contributor which are necessarily infringed by the use or sale of its
|
||||
Contribution alone or when combined with the Program.</p>
|
||||
|
||||
<p>"Program" means the Contributions distributed in accordance
|
||||
with this Agreement.</p>
|
||||
|
||||
<p>"Recipient" means anyone who receives the Program under
|
||||
this Agreement, including all Contributors.</p>
|
||||
|
||||
<p><b>2. GRANT OF RIGHTS</b></p>
|
||||
|
||||
<p class="list">a) Subject to the terms of this Agreement, each
|
||||
Contributor hereby grants Recipient a non-exclusive, worldwide,
|
||||
royalty-free copyright license to reproduce, prepare derivative works
|
||||
of, publicly display, publicly perform, distribute and sublicense the
|
||||
Contribution of such Contributor, if any, and such derivative works, in
|
||||
source code and object code form.</p>
|
||||
|
||||
<p class="list">b) Subject to the terms of this Agreement, each
|
||||
Contributor hereby grants Recipient a non-exclusive, worldwide,
|
||||
royalty-free patent license under Licensed Patents to make, use, sell,
|
||||
offer to sell, import and otherwise transfer the Contribution of such
|
||||
Contributor, if any, in source code and object code form. This patent
|
||||
license shall apply to the combination of the Contribution and the
|
||||
Program if, at the time the Contribution is added by the Contributor,
|
||||
such addition of the Contribution causes such combination to be covered
|
||||
by the Licensed Patents. The patent license shall not apply to any other
|
||||
combinations which include the Contribution. No hardware per se is
|
||||
licensed hereunder.</p>
|
||||
|
||||
<p class="list">c) Recipient understands that although each Contributor
|
||||
grants the licenses to its Contributions set forth herein, no assurances
|
||||
are provided by any Contributor that the Program does not infringe the
|
||||
patent or other intellectual property rights of any other entity. Each
|
||||
Contributor disclaims any liability to Recipient for claims brought by
|
||||
any other entity based on infringement of intellectual property rights
|
||||
or otherwise. As a condition to exercising the rights and licenses
|
||||
granted hereunder, each Recipient hereby assumes sole responsibility to
|
||||
secure any other intellectual property rights needed, if any. For
|
||||
example, if a third party patent license is required to allow Recipient
|
||||
to distribute the Program, it is Recipient's responsibility to acquire
|
||||
that license before distributing the Program.</p>
|
||||
|
||||
<p class="list">d) Each Contributor represents that to its knowledge it
|
||||
has sufficient copyright rights in its Contribution, if any, to grant
|
||||
the copyright license set forth in this Agreement.</p>
|
||||
|
||||
<p><b>3. REQUIREMENTS</b></p>
|
||||
|
||||
<p>A Contributor may choose to distribute the Program in object code
|
||||
form under its own license agreement, provided that:</p>
|
||||
|
||||
<p class="list">a) it complies with the terms and conditions of this
|
||||
Agreement; and</p>
|
||||
|
||||
<p class="list">b) its license agreement:</p>
|
||||
|
||||
<p class="list">i) effectively disclaims on behalf of all Contributors
|
||||
all warranties and conditions, express and implied, including warranties
|
||||
or conditions of title and non-infringement, and implied warranties or
|
||||
conditions of merchantability and fitness for a particular purpose;</p>
|
||||
|
||||
<p class="list">ii) effectively excludes on behalf of all Contributors
|
||||
all liability for damages, including direct, indirect, special,
|
||||
incidental and consequential damages, such as lost profits;</p>
|
||||
|
||||
<p class="list">iii) states that any provisions which differ from this
|
||||
Agreement are offered by that Contributor alone and not by any other
|
||||
party; and</p>
|
||||
|
||||
<p class="list">iv) states that source code for the Program is available
|
||||
from such Contributor, and informs licensees how to obtain it in a
|
||||
reasonable manner on or through a medium customarily used for software
|
||||
exchange.</p>
|
||||
|
||||
<p>When the Program is made available in source code form:</p>
|
||||
|
||||
<p class="list">a) it must be made available under this Agreement; and</p>
|
||||
|
||||
<p class="list">b) a copy of this Agreement must be included with each
|
||||
copy of the Program.</p>
|
||||
|
||||
<p>Contributors may not remove or alter any copyright notices contained
|
||||
within the Program.</p>
|
||||
|
||||
<p>Each Contributor must identify itself as the originator of its
|
||||
Contribution, if any, in a manner that reasonably allows subsequent
|
||||
Recipients to identify the originator of the Contribution.</p>
|
||||
|
||||
<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
|
||||
|
||||
<p>Commercial distributors of software may accept certain
|
||||
responsibilities with respect to end users, business partners and the
|
||||
like. While this license is intended to facilitate the commercial use of
|
||||
the Program, the Contributor who includes the Program in a commercial
|
||||
product offering should do so in a manner which does not create
|
||||
potential liability for other Contributors. Therefore, if a Contributor
|
||||
includes the Program in a commercial product offering, such Contributor
|
||||
("Commercial Contributor") hereby agrees to defend and
|
||||
indemnify every other Contributor ("Indemnified Contributor")
|
||||
against any losses, damages and costs (collectively "Losses")
|
||||
arising from claims, lawsuits and other legal actions brought by a third
|
||||
party against the Indemnified Contributor to the extent caused by the
|
||||
acts or omissions of such Commercial Contributor in connection with its
|
||||
distribution of the Program in a commercial product offering. The
|
||||
obligations in this section do not apply to any claims or Losses
|
||||
relating to any actual or alleged intellectual property infringement. In
|
||||
order to qualify, an Indemnified Contributor must: a) promptly notify
|
||||
the Commercial Contributor in writing of such claim, and b) allow the
|
||||
Commercial Contributor to control, and cooperate with the Commercial
|
||||
Contributor in, the defense and any related settlement negotiations. The
|
||||
Indemnified Contributor may participate in any such claim at its own
|
||||
expense.</p>
|
||||
|
||||
<p>For example, a Contributor might include the Program in a commercial
|
||||
product offering, Product X. That Contributor is then a Commercial
|
||||
Contributor. If that Commercial Contributor then makes performance
|
||||
claims, or offers warranties related to Product X, those performance
|
||||
claims and warranties are such Commercial Contributor's responsibility
|
||||
alone. Under this section, the Commercial Contributor would have to
|
||||
defend claims against the other Contributors related to those
|
||||
performance claims and warranties, and if a court requires any other
|
||||
Contributor to pay any damages as a result, the Commercial Contributor
|
||||
must pay those damages.</p>
|
||||
|
||||
<p><b>5. NO WARRANTY</b></p>
|
||||
|
||||
<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
|
||||
PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||
OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
|
||||
ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
|
||||
OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
|
||||
responsible for determining the appropriateness of using and
|
||||
distributing the Program and assumes all risks associated with its
|
||||
exercise of rights under this Agreement , including but not limited to
|
||||
the risks and costs of program errors, compliance with applicable laws,
|
||||
damage to or loss of data, programs or equipment, and unavailability or
|
||||
interruption of operations.</p>
|
||||
|
||||
<p><b>6. DISCLAIMER OF LIABILITY</b></p>
|
||||
|
||||
<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
|
||||
NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
|
||||
WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
|
||||
DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
|
||||
HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
|
||||
|
||||
<p><b>7. GENERAL</b></p>
|
||||
|
||||
<p>If any provision of this Agreement is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this Agreement, and without further action
|
||||
by the parties hereto, such provision shall be reformed to the minimum
|
||||
extent necessary to make such provision valid and enforceable.</p>
|
||||
|
||||
<p>If Recipient institutes patent litigation against any entity
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that the
|
||||
Program itself (excluding combinations of the Program with other
|
||||
software or hardware) infringes such Recipient's patent(s), then such
|
||||
Recipient's rights granted under Section 2(b) shall terminate as of the
|
||||
date such litigation is filed.</p>
|
||||
|
||||
<p>All Recipient's rights under this Agreement shall terminate if it
|
||||
fails to comply with any of the material terms or conditions of this
|
||||
Agreement and does not cure such failure in a reasonable period of time
|
||||
after becoming aware of such noncompliance. If all Recipient's rights
|
||||
under this Agreement terminate, Recipient agrees to cease use and
|
||||
distribution of the Program as soon as reasonably practicable. However,
|
||||
Recipient's obligations under this Agreement and any licenses granted by
|
||||
Recipient relating to the Program shall continue and survive.</p>
|
||||
|
||||
<p>Everyone is permitted to copy and distribute copies of this
|
||||
Agreement, but in order to avoid inconsistency the Agreement is
|
||||
copyrighted and may only be modified in the following manner. The
|
||||
Agreement Steward reserves the right to publish new versions (including
|
||||
revisions) of this Agreement from time to time. No one other than the
|
||||
Agreement Steward has the right to modify this Agreement. The Eclipse
|
||||
Foundation is the initial Agreement Steward. The Eclipse Foundation may
|
||||
assign the responsibility to serve as the Agreement Steward to a
|
||||
suitable separate entity. Each new version of the Agreement will be
|
||||
given a distinguishing version number. The Program (including
|
||||
Contributions) may always be distributed subject to the version of the
|
||||
Agreement under which it was received. In addition, after a new version
|
||||
of the Agreement is published, Contributor may elect to distribute the
|
||||
Program (including its Contributions) under the new version. Except as
|
||||
expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
|
||||
rights or licenses to the intellectual property of any Contributor under
|
||||
this Agreement, whether expressly, by implication, estoppel or
|
||||
otherwise. All rights in the Program not expressly granted under this
|
||||
Agreement are reserved.</p>
|
||||
|
||||
<p>This Agreement is governed by the laws of the State of New York and
|
||||
the intellectual property laws of the United States of America. No party
|
||||
to this Agreement will bring a legal action under this Agreement more
|
||||
than one year after the cause of action arose. Each party waives its
|
||||
rights to a jury trial in any resulting litigation.</p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,639 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>GNU General Public License v3.0 - GNU Project - Free Software Foundation (FSF)</title>
|
||||
<link rel="alternate" type="application/rdf+xml"
|
||||
href="http://www.gnu.org/licenses/gpl-3.0.rdf" />
|
||||
</head>
|
||||
<body>
|
||||
<h3 style="text-align: center;">GNU GENERAL PUBLIC LICENSE</h3>
|
||||
<p style="text-align: center;">Version 3, 29 June 2007</p>
|
||||
|
||||
<p>Copyright © 2007 Free Software Foundation, Inc.
|
||||
<<a href="http://fsf.org/">http://fsf.org/</a>></p><p>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.</p>
|
||||
|
||||
<h3><a name="preamble"></a>Preamble</h3>
|
||||
|
||||
<p>The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.</p>
|
||||
|
||||
<p>The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.</p>
|
||||
|
||||
<p>When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.</p>
|
||||
|
||||
<p>To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.</p>
|
||||
|
||||
<p>For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.</p>
|
||||
|
||||
<p>Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.</p>
|
||||
|
||||
<p>For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.</p>
|
||||
|
||||
<p>Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.</p>
|
||||
|
||||
<p>Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.</p>
|
||||
|
||||
<p>The precise terms and conditions for copying, distribution and
|
||||
modification follow.</p>
|
||||
|
||||
<h3><a name="terms"></a>TERMS AND CONDITIONS</h3>
|
||||
|
||||
<h4><a name="section0"></a>0. Definitions.</h4>
|
||||
|
||||
<p>“This License” refers to version 3 of the GNU General Public License.</p>
|
||||
|
||||
<p>“Copyright” also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.</p>
|
||||
|
||||
<p>“The Program” refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as “you”. “Licensees” and
|
||||
“recipients” may be individuals or organizations.</p>
|
||||
|
||||
<p>To “modify” a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a “modified version” of the
|
||||
earlier work or a work “based on” the earlier work.</p>
|
||||
|
||||
<p>A “covered work” means either the unmodified Program or a work based
|
||||
on the Program.</p>
|
||||
|
||||
<p>To “propagate” a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.</p>
|
||||
|
||||
<p>To “convey” a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.</p>
|
||||
|
||||
<p>An interactive user interface displays “Appropriate Legal Notices”
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.</p>
|
||||
|
||||
<h4><a name="section1"></a>1. Source Code.</h4>
|
||||
|
||||
<p>The “source code” for a work means the preferred form of the work
|
||||
for making modifications to it. “Object code” means any non-source
|
||||
form of a work.</p>
|
||||
|
||||
<p>A “Standard Interface” means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.</p>
|
||||
|
||||
<p>The “System Libraries” of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
“Major Component”, in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.</p>
|
||||
|
||||
<p>The “Corresponding Source” for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.</p>
|
||||
|
||||
<p>The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.</p>
|
||||
|
||||
<p>The Corresponding Source for a work in source code form is that
|
||||
same work.</p>
|
||||
|
||||
<h4><a name="section2"></a>2. Basic Permissions.</h4>
|
||||
|
||||
<p>All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.</p>
|
||||
|
||||
<p>You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.</p>
|
||||
|
||||
<p>Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.</p>
|
||||
|
||||
<h4><a name="section3"></a>3. Protecting Users' Legal Rights From Anti-Circumvention Law.</h4>
|
||||
|
||||
<p>No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.</p>
|
||||
|
||||
<p>When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.</p>
|
||||
|
||||
<h4><a name="section4"></a>4. Conveying Verbatim Copies.</h4>
|
||||
|
||||
<p>You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.</p>
|
||||
|
||||
<p>You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.</p>
|
||||
|
||||
<h4><a name="section5"></a>5. Conveying Modified Source Versions.</h4>
|
||||
|
||||
<p>You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:</p>
|
||||
|
||||
<ul>
|
||||
<li>a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.</li>
|
||||
|
||||
<li>b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
“keep intact all notices”.</li>
|
||||
|
||||
<li>c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.</li>
|
||||
|
||||
<li>d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.</li>
|
||||
</ul>
|
||||
|
||||
<p>A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
“aggregate” if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.</p>
|
||||
|
||||
<h4><a name="section6"></a>6. Conveying Non-Source Forms.</h4>
|
||||
|
||||
<p>You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:</p>
|
||||
|
||||
<ul>
|
||||
<li>a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.</li>
|
||||
|
||||
<li>b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.</li>
|
||||
|
||||
<li>c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.</li>
|
||||
|
||||
<li>d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.</li>
|
||||
|
||||
<li>e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.</li>
|
||||
</ul>
|
||||
|
||||
<p>A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.</p>
|
||||
|
||||
<p>A “User Product” is either (1) a “consumer product”, which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, “normally used” refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.</p>
|
||||
|
||||
<p>“Installation Information” for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.</p>
|
||||
|
||||
<p>If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).</p>
|
||||
|
||||
<p>The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.</p>
|
||||
|
||||
<p>Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.</p>
|
||||
|
||||
<h4><a name="section7"></a>7. Additional Terms.</h4>
|
||||
|
||||
<p>“Additional permissions” are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.</p>
|
||||
|
||||
<p>When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.</p>
|
||||
|
||||
<p>Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:</p>
|
||||
|
||||
<ul>
|
||||
<li>a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or</li>
|
||||
|
||||
<li>b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or</li>
|
||||
|
||||
<li>c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or</li>
|
||||
|
||||
<li>d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or</li>
|
||||
|
||||
<li>e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or</li>
|
||||
|
||||
<li>f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.</li>
|
||||
</ul>
|
||||
|
||||
<p>All other non-permissive additional terms are considered “further
|
||||
restrictions” within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.</p>
|
||||
|
||||
<p>If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.</p>
|
||||
|
||||
<p>Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.</p>
|
||||
|
||||
<h4><a name="section8"></a>8. Termination.</h4>
|
||||
|
||||
<p>You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).</p>
|
||||
|
||||
<p>However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.</p>
|
||||
|
||||
<p>Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.</p>
|
||||
|
||||
<p>Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.</p>
|
||||
|
||||
<h4><a name="section9"></a>9. Acceptance Not Required for Having Copies.</h4>
|
||||
|
||||
<p>You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.</p>
|
||||
|
||||
<h4><a name="section10"></a>10. Automatic Licensing of Downstream Recipients.</h4>
|
||||
|
||||
<p>Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.</p>
|
||||
|
||||
<p>An “entity transaction” is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.</p>
|
||||
|
||||
<p>You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.</p>
|
||||
|
||||
<h4><a name="section11"></a>11. Patents.</h4>
|
||||
|
||||
<p>A “contributor” is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's “contributor version”.</p>
|
||||
|
||||
<p>A contributor's “essential patent claims” are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, “control” includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.</p>
|
||||
|
||||
<p>Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.</p>
|
||||
|
||||
<p>In the following three paragraphs, a “patent license” is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To “grant” such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.</p>
|
||||
|
||||
<p>If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. “Knowingly relying” means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.</p>
|
||||
|
||||
<p>If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.</p>
|
||||
|
||||
<p>A patent license is “discriminatory” if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.</p>
|
||||
|
||||
<p>Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.</p>
|
||||
|
||||
<h4><a name="section12"></a>12. No Surrender of Others' Freedom.</h4>
|
||||
|
||||
<p>If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.</p>
|
||||
|
||||
<h4><a name="section13"></a>13. Use with the GNU Affero General Public License.</h4>
|
||||
|
||||
<p>Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.</p>
|
||||
|
||||
<h4><a name="section14"></a>14. Revised Versions of this License.</h4>
|
||||
|
||||
<p>The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.</p>
|
||||
|
||||
<p>Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License “or any later version” applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.</p>
|
||||
|
||||
<p>If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.</p>
|
||||
|
||||
<p>Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.</p>
|
||||
|
||||
<h4><a name="section15"></a>15. Disclaimer of Warranty.</h4>
|
||||
|
||||
<p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</p>
|
||||
|
||||
<h4><a name="section16"></a>16. Limitation of Liability.</h4>
|
||||
|
||||
<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.</p>
|
||||
|
||||
<h4><a name="section17"></a>17. Interpretation of Sections 15 and 16.</h4>
|
||||
|
||||
<p>If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.</p>
|
||||
|
||||
</body></html>
|
||||
@@ -1,26 +0,0 @@
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<p>Copyright (c) <year> <copyright holders></p>
|
||||
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:</p>
|
||||
|
||||
<p>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.</p>
|
||||
<p>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br />
|
||||
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,261 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- saved from url=(0038)https://www.mozilla.org/en-US/MPL/2.0/ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Mozilla Public License, version 2.0</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="mozilla-public-license-version-2.0">Mozilla Public License<br>Version 2.0</h1>
|
||||
<h2 id="definitions">1. Definitions</h2>
|
||||
<dl>
|
||||
<dt>1.1. “Contributor”</dt>
|
||||
<dd><p>means each individual or legal entity that creates, contributes to the creation of, or
|
||||
owns Covered Software.</p>
|
||||
</dd>
|
||||
<dt>1.2. “Contributor Version”</dt>
|
||||
<dd><p>means the combination of the Contributions of others (if any) used by a Contributor and
|
||||
that particular Contributor’s Contribution.</p>
|
||||
</dd>
|
||||
<dt>1.3. “Contribution”</dt>
|
||||
<dd><p>means Covered Software of a particular Contributor.</p>
|
||||
</dd>
|
||||
<dt>1.4. “Covered Software”</dt>
|
||||
<dd><p>means Source Code Form to which the initial Contributor has attached the notice in
|
||||
Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source
|
||||
Code Form, in each case including portions thereof.</p>
|
||||
</dd>
|
||||
<dt>1.5. “Incompatible With Secondary Licenses”</dt>
|
||||
<dd><p>means</p>
|
||||
<ol type="a">
|
||||
<li><p>that the initial Contributor has attached the notice described in Exhibit B to
|
||||
the Covered Software; or</p></li>
|
||||
<li><p>that the Covered Software was made available under the terms of version 1.1 or
|
||||
earlier of the License, but not also under the terms of a Secondary License.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
<dt>1.6. “Executable Form”</dt>
|
||||
<dd><p>means any form of the work other than Source Code Form.</p>
|
||||
</dd>
|
||||
<dt>1.7. “Larger Work”</dt>
|
||||
<dd><p>means a work that combines Covered Software with other material, in a separate file or
|
||||
files, that is not Covered Software.</p>
|
||||
</dd>
|
||||
<dt>1.8. “License”</dt>
|
||||
<dd><p>means this document.</p>
|
||||
</dd>
|
||||
<dt>1.9. “Licensable”</dt>
|
||||
<dd><p>means having the right to grant, to the maximum extent possible, whether at the time of
|
||||
the initial grant or subsequently, any and all of the rights conveyed by this License.</p>
|
||||
</dd>
|
||||
<dt>1.10. “Modifications”</dt>
|
||||
<dd><p>means any of the following:</p>
|
||||
<ol type="a">
|
||||
<li><p>any file in Source Code Form that results from an addition to, deletion from, or
|
||||
modification of the contents of Covered Software; or</p></li>
|
||||
<li><p>any new file in Source Code Form that contains any Covered Software.</p></li>
|
||||
</ol>
|
||||
</dd>
|
||||
<dt>1.11. “Patent Claims” of a Contributor</dt>
|
||||
<dd><p>means any patent claim(s), including without limitation, method, process, and apparatus
|
||||
claims, in any patent Licensable by such Contributor that would be infringed, but for the
|
||||
grant of the License, by the making, using, selling, offering for sale, having made, import,
|
||||
or transfer of either its Contributions or its Contributor Version.</p>
|
||||
</dd>
|
||||
<dt>1.12. “Secondary License”</dt>
|
||||
<dd><p>means either the GNU General Public License, Version 2.0, the GNU Lesser General Public
|
||||
License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later
|
||||
versions of those licenses.</p>
|
||||
</dd>
|
||||
<dt>1.13. “Source Code Form”</dt>
|
||||
<dd><p>means the form of the work preferred for making modifications.</p>
|
||||
</dd>
|
||||
<dt>1.14. “You” (or “Your”)</dt>
|
||||
<dd><p>means an individual or a legal entity exercising rights under this License. For legal
|
||||
entities, “You” includes any entity that controls, is controlled by, or is under common
|
||||
control with You. For purposes of this definition, “control” means (a) the power, direct or
|
||||
indirect, to cause the direction or management of such entity, whether by contract or
|
||||
otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or
|
||||
beneficial ownership of such entity.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h2 id="license-grants-and-conditions">2. License Grants and Conditions</h2>
|
||||
<h3 id="grants">2.1. Grants</h3>
|
||||
<p>Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:</p>
|
||||
<ol type="a">
|
||||
<li><p>under intellectual property rights (other than patent or trademark) Licensable by such
|
||||
Contributor to use, reproduce, make available, modify, display, perform, distribute, and
|
||||
otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and</p></li>
|
||||
<li><p>under Patent Claims of such Contributor to make, use, sell, offer for sale, have made,
|
||||
import, and otherwise transfer either its Contributions or its Contributor Version.</p></li>
|
||||
</ol>
|
||||
<h3 id="effective-date">2.2. Effective Date</h3>
|
||||
<p>The licenses granted in Section 2.1 with respect to any Contribution become effective for
|
||||
each Contribution on the date the Contributor first distributes such Contribution.</p>
|
||||
<h3 id="limitations-on-grant-scope">2.3. Limitations on Grant Scope</h3>
|
||||
<p>The licenses granted in this Section 2 are the only rights granted under this License. No
|
||||
additional rights or licenses will be implied from the distribution or licensing of Covered
|
||||
Software under this License. Notwithstanding Section 2.1(b) above, no patent license is
|
||||
granted by a Contributor:</p>
|
||||
<ol type="a">
|
||||
<li><p>for any code that a Contributor has removed from Covered Software; or</p></li>
|
||||
<li><p>for infringements caused by: (i) Your and any other third party’s modifications of
|
||||
Covered Software, or (ii) the combination of its Contributions with other software (except
|
||||
as part of its Contributor Version); or</p></li>
|
||||
<li><p>under Patent Claims infringed by Covered Software in the absence of its
|
||||
Contributions.</p></li>
|
||||
</ol>
|
||||
<p>This License does not grant any rights in the trademarks, service marks, or logos of any
|
||||
Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).</p>
|
||||
<h3 id="subsequent-licenses">2.4. Subsequent Licenses</h3>
|
||||
<p>No Contributor makes additional grants as a result of Your choice to distribute the Covered
|
||||
Software under a subsequent version of this License (see Section 10.2) or under the terms
|
||||
of a Secondary License (if permitted under the terms of Section 3.3).</p>
|
||||
<h3 id="representation">2.5. Representation</h3>
|
||||
<p>Each Contributor represents that the Contributor believes its Contributions are its original
|
||||
creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by
|
||||
this License.</p>
|
||||
<h3 id="fair-use">2.6. Fair Use</h3>
|
||||
<p>This License is not intended to limit any rights You have under applicable copyright doctrines of
|
||||
fair use, fair dealing, or other equivalents.</p>
|
||||
<h3 id="conditions">2.7. Conditions</h3>
|
||||
<p>Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.</p>
|
||||
<h2 id="responsibilities">3. Responsibilities</h2>
|
||||
<h3 id="distribution-of-source-form">3.1. Distribution of Source Form</h3>
|
||||
<p>All distribution of Covered Software in Source Code Form, including any Modifications that You
|
||||
create or to which You contribute, must be under the terms of this License. You must inform
|
||||
recipients that the Source Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not attempt to alter or
|
||||
restrict the recipients’ rights in the Source Code Form.</p>
|
||||
<h3 id="distribution-of-executable-form">3.2. Distribution of Executable Form</h3>
|
||||
<p>If You distribute Covered Software in Executable Form then:</p>
|
||||
<ol type="a">
|
||||
<li><p>such Covered Software must also be made available in Source Code Form, as described in
|
||||
Section 3.1, and You must inform recipients of the Executable Form how they can obtain
|
||||
a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and</p></li>
|
||||
<li><p>You may distribute such Executable Form under the terms of this License, or sublicense it
|
||||
under different terms, provided that the license for the Executable Form does not attempt to
|
||||
limit or alter the recipients’ rights in the Source Code Form under this License.</p></li>
|
||||
</ol>
|
||||
<h3 id="distribution-of-a-larger-work">3.3. Distribution of a Larger Work</h3>
|
||||
<p>You may create and distribute a Larger Work under terms of Your choice, provided that You also
|
||||
comply with the requirements of this License for the Covered Software. If the Larger Work is a
|
||||
combination of Covered Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this License permits You to
|
||||
additionally distribute such Covered Software under the terms of such Secondary License(s), so
|
||||
that the recipient of the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary License(s).</p>
|
||||
<h3 id="notices">3.4. Notices</h3>
|
||||
<p>You may not remove or alter the substance of any license notices (including copyright notices,
|
||||
patent notices, disclaimers of warranty, or limitations of liability) contained within the
|
||||
Source Code Form of the Covered Software, except that You may alter any license notices to the
|
||||
extent required to remedy known factual inaccuracies.</p>
|
||||
<h3 id="application-of-additional-terms">3.5. Application of Additional Terms</h3>
|
||||
<p>You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability
|
||||
obligations to one or more recipients of Covered Software. However, You may do so only on Your
|
||||
own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by You alone, and You
|
||||
hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a
|
||||
result of warranty, support, indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any jurisdiction.</p>
|
||||
<h2 id="inability-to-comply-due-to-statute-or-regulation">4. Inability to Comply Due to Statute or
|
||||
Regulation</h2>
|
||||
<p>If it is impossible for You to comply with any of the terms of this License with respect to some
|
||||
or all of the Covered Software due to statute, judicial order, or regulation then You must: (a)
|
||||
comply with the terms of this License to the maximum extent possible; and (b) describe the
|
||||
limitations and the code they affect. Such description must be placed in a text file included
|
||||
with all distributions of the Covered Software under this License. Except to the extent
|
||||
prohibited by statute or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.</p>
|
||||
<h2 id="termination">5. Termination</h2>
|
||||
<p>5.1. The rights granted under this License will terminate automatically if You fail to comply
|
||||
with any of its terms. However, if You become compliant, then the rights granted under this
|
||||
License from a particular Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such
|
||||
Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days
|
||||
after You have come back into compliance. Moreover, Your grants from a particular Contributor
|
||||
are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by
|
||||
some reasonable means, this is the first time You have received notice of non-compliance with
|
||||
this License from such Contributor, and You become compliant prior to 30 days after Your receipt
|
||||
of the notice.</p>
|
||||
<p>5.2. If You initiate litigation against any entity by asserting a patent infringement claim
|
||||
(excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a
|
||||
Contributor Version directly or indirectly infringes any patent, then the rights granted to You
|
||||
by any and all Contributors for the Covered Software under Section 2.1 of this License
|
||||
shall terminate.</p>
|
||||
<p>5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license
|
||||
agreements (excluding distributors and resellers) which have been validly granted by You or Your
|
||||
distributors under this License prior to termination shall survive termination.</p>
|
||||
<h2 id="disclaimer-of-warranty">6. Disclaimer of Warranty</h2>
|
||||
<p><em>Covered Software is provided under this License on an “as is” basis, without warranty of any
|
||||
kind, either expressed, implied, or statutory, including, without limitation, warranties that
|
||||
the Covered Software is free of defects, merchantable, fit for a particular purpose or
|
||||
non-infringing. The entire risk as to the quality and performance of the Covered Software is
|
||||
with You. Should any Covered Software prove defective in any respect, You (not any Contributor)
|
||||
assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty
|
||||
constitutes an essential part of this License. No use of any Covered Software is authorized
|
||||
under this License except under this disclaimer.</em></p>
|
||||
<h2 id="limitation-of-liability">7. Limitation of Liability</h2>
|
||||
<p><em>Under no circumstances and under no legal theory, whether tort (including negligence),
|
||||
contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as
|
||||
permitted above, be liable to You for any direct, indirect, special, incidental, or
|
||||
consequential damages of any character including, without limitation, damages for lost profits,
|
||||
loss of goodwill, work stoppage, computer failure or malfunction, or any and all other
|
||||
commercial damages or losses, even if such party shall have been informed of the possibility of
|
||||
such damages. This limitation of liability shall not apply to liability for death or personal
|
||||
injury resulting from such party’s negligence to the extent applicable law prohibits such
|
||||
limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or
|
||||
consequential damages, so this exclusion and limitation may not apply to You.</em></p>
|
||||
<h2 id="litigation">8. Litigation</h2>
|
||||
<p>Any litigation relating to this License may be brought only in the courts of a jurisdiction where
|
||||
the defendant maintains its principal place of business and such litigation shall be governed by
|
||||
laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this
|
||||
Section shall prevent a party’s ability to bring cross-claims or counter-claims.</p>
|
||||
<h2 id="miscellaneous">9. Miscellaneous</h2>
|
||||
<p>This License represents the complete agreement concerning the subject matter hereof. If any
|
||||
provision of this License is held to be unenforceable, such provision shall be reformed only to
|
||||
the extent necessary to make it enforceable. Any law or regulation which provides that the
|
||||
language of a contract shall be construed against the drafter shall not be used to construe this
|
||||
License against a Contributor.</p>
|
||||
<h2 id="versions-of-the-license">10. Versions of the License</h2>
|
||||
<h3 id="new-versions">10.1. New Versions</h3>
|
||||
<p>Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other
|
||||
than the license steward has the right to modify or publish new versions of this License. Each
|
||||
version will be given a distinguishing version number.</p>
|
||||
<h3 id="effect-of-new-versions">10.2. Effect of New Versions</h3>
|
||||
<p>You may distribute the Covered Software under the terms of the version of the License under which
|
||||
You originally received the Covered Software, or under the terms of any subsequent version
|
||||
published by the license steward.</p>
|
||||
<h3 id="modified-versions">10.3. Modified Versions</h3>
|
||||
<p>If you create software not governed by this License, and you want to create a new license for
|
||||
such software, you may create and use a modified version of this License if you rename the
|
||||
license and remove any references to the name of the license steward (except to note that such
|
||||
modified license differs from this License).</p>
|
||||
<h3 id="distributing-source-code-form-that-is-incompatible-with-secondary-licenses">10.4.
|
||||
Distributing Source Code Form that is Incompatible With Secondary Licenses</h3>
|
||||
<p>If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under
|
||||
the terms of this version of the License, the notice described in Exhibit B of this License must
|
||||
be attached.</p>
|
||||
<h2 id="exhibit-a---source-code-form-license-notice">Exhibit A - Source Code Form License
|
||||
Notice</h2>
|
||||
<blockquote>
|
||||
<p>This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a
|
||||
copy of the MPL was not distributed with this file, You can obtain one at
|
||||
https://mozilla.org/MPL/2.0/.</p>
|
||||
</blockquote>
|
||||
<p>If it is not possible or desirable to put the notice in a particular file, then You may include
|
||||
the notice in a location (such as a LICENSE file in a relevant directory) where a recipient
|
||||
would be likely to look for such a notice.</p>
|
||||
<p>You may add additional accurate notices of copyright ownership.</p>
|
||||
<h2 id="exhibit-b---incompatible-with-secondary-licenses-notice">Exhibit B - “Incompatible With
|
||||
Secondary Licenses” Notice</h2>
|
||||
<blockquote>
|
||||
<p>This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla
|
||||
Public License, v. 2.0.</p>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -23,9 +23,12 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import okhttp3.CompressionInterceptor;
|
||||
import okhttp3.Gzip;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.ResponseBody;
|
||||
import okhttp3.brotli.Brotli;
|
||||
|
||||
public final class DownloaderImpl extends Downloader {
|
||||
public static final String USER_AGENT =
|
||||
@@ -44,6 +47,9 @@ public final class DownloaderImpl extends Downloader {
|
||||
.readTimeout(30, TimeUnit.SECONDS)
|
||||
// .cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"),
|
||||
// 16 * 1024 * 1024))
|
||||
.addInterceptor(new CompressionInterceptor(
|
||||
Brotli.INSTANCE,
|
||||
Gzip.INSTANCE))
|
||||
.build();
|
||||
this.mCookies = new HashMap<>();
|
||||
}
|
||||
|
||||
@@ -1,260 +0,0 @@
|
||||
package org.schabi.newpipe.about
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import org.schabi.newpipe.BuildConfig
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.databinding.ActivityAboutBinding
|
||||
import org.schabi.newpipe.databinding.FragmentAboutBinding
|
||||
import org.schabi.newpipe.util.ThemeHelper
|
||||
import org.schabi.newpipe.util.external_communication.ShareUtils
|
||||
|
||||
class AboutActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
ThemeHelper.setTheme(this)
|
||||
title = getString(R.string.title_activity_about)
|
||||
|
||||
val aboutBinding = ActivityAboutBinding.inflate(layoutInflater)
|
||||
setContentView(aboutBinding.root)
|
||||
setSupportActionBar(aboutBinding.aboutToolbar)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
// Create the adapter that will return a fragment for each of the three
|
||||
// primary sections of the activity.
|
||||
val mAboutStateAdapter = AboutStateAdapter(this)
|
||||
// Set up the ViewPager with the sections adapter.
|
||||
aboutBinding.aboutViewPager2.adapter = mAboutStateAdapter
|
||||
TabLayoutMediator(
|
||||
aboutBinding.aboutTabLayout,
|
||||
aboutBinding.aboutViewPager2
|
||||
) { tab, position ->
|
||||
tab.setText(mAboutStateAdapter.getPageTitle(position))
|
||||
}.attach()
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (item.itemId == android.R.id.home) {
|
||||
finish()
|
||||
return true
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
/**
|
||||
* A placeholder fragment containing a simple view.
|
||||
*/
|
||||
class AboutFragment : Fragment() {
|
||||
private fun Button.openLink(@StringRes url: Int) {
|
||||
setOnClickListener {
|
||||
ShareUtils.openUrlInApp(context, requireContext().getString(url))
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
FragmentAboutBinding.inflate(inflater, container, false).apply {
|
||||
aboutAppVersion.text = BuildConfig.VERSION_NAME
|
||||
aboutGithubLink.openLink(R.string.github_url)
|
||||
aboutDonationLink.openLink(R.string.donation_url)
|
||||
aboutWebsiteLink.openLink(R.string.website_url)
|
||||
aboutPrivacyPolicyLink.openLink(R.string.privacy_policy_url)
|
||||
faqLink.openLink(R.string.faq_url)
|
||||
return root
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A [FragmentStateAdapter] that returns a fragment corresponding to
|
||||
* one of the sections/tabs/pages.
|
||||
*/
|
||||
private class AboutStateAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {
|
||||
private val posAbout = 0
|
||||
private val posLicense = 1
|
||||
private val totalCount = 2
|
||||
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
return when (position) {
|
||||
posAbout -> AboutFragment()
|
||||
posLicense -> LicenseFragment.newInstance(SOFTWARE_COMPONENTS)
|
||||
else -> error("Unknown position for ViewPager2")
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
// Show 2 total pages.
|
||||
return totalCount
|
||||
}
|
||||
|
||||
fun getPageTitle(position: Int): Int {
|
||||
return when (position) {
|
||||
posAbout -> R.string.tab_about
|
||||
posLicense -> R.string.tab_licenses
|
||||
else -> error("Unknown position for ViewPager2")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
/**
|
||||
* List of all software components.
|
||||
*/
|
||||
private val SOFTWARE_COMPONENTS = arrayListOf(
|
||||
SoftwareComponent(
|
||||
"ACRA",
|
||||
"2013",
|
||||
"Kevin Gaudin",
|
||||
"https://github.com/ACRA/acra",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"AndroidX",
|
||||
"2005 - 2011",
|
||||
"The Android Open Source Project",
|
||||
"https://developer.android.com/jetpack",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"ExoPlayer",
|
||||
"2014 - 2020",
|
||||
"Google, Inc.",
|
||||
"https://github.com/google/ExoPlayer",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"GigaGet",
|
||||
"2014 - 2015",
|
||||
"Peter Cai",
|
||||
"https://github.com/PaperAirplane-Dev-Team/GigaGet",
|
||||
StandardLicenses.GPL3
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Groupie",
|
||||
"2016",
|
||||
"Lisa Wray",
|
||||
"https://github.com/lisawray/groupie",
|
||||
StandardLicenses.MIT
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Android-State",
|
||||
"2018",
|
||||
"Evernote",
|
||||
"https://github.com/Evernote/android-state",
|
||||
StandardLicenses.EPL1
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Bridge",
|
||||
"2021",
|
||||
"Livefront",
|
||||
"https://github.com/livefront/bridge",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Jsoup",
|
||||
"2009 - 2020",
|
||||
"Jonathan Hedley",
|
||||
"https://github.com/jhy/jsoup",
|
||||
StandardLicenses.MIT
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Markwon",
|
||||
"2019",
|
||||
"Dimitry Ivanov",
|
||||
"https://github.com/noties/Markwon",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Material Components for Android",
|
||||
"2016 - 2020",
|
||||
"Google, Inc.",
|
||||
"https://github.com/material-components/material-components-android",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"NewPipe Extractor",
|
||||
"2017 - 2020",
|
||||
"Christian Schabesberger",
|
||||
"https://github.com/TeamNewPipe/NewPipeExtractor",
|
||||
StandardLicenses.GPL3
|
||||
),
|
||||
SoftwareComponent(
|
||||
"NoNonsense-FilePicker",
|
||||
"2016",
|
||||
"Jonas Kalderstam",
|
||||
"https://github.com/spacecowboy/NoNonsense-FilePicker",
|
||||
StandardLicenses.MPL2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"OkHttp",
|
||||
"2019",
|
||||
"Square, Inc.",
|
||||
"https://square.github.io/okhttp/",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"Coil",
|
||||
"2023",
|
||||
"Coil Contributors",
|
||||
"https://coil-kt.github.io/coil/",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"PrettyTime",
|
||||
"2012 - 2020",
|
||||
"Lincoln Baxter, III",
|
||||
"https://github.com/ocpsoft/prettytime",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"ProcessPhoenix",
|
||||
"2015",
|
||||
"Jake Wharton",
|
||||
"https://github.com/JakeWharton/ProcessPhoenix",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"RxAndroid",
|
||||
"2015",
|
||||
"The RxAndroid authors",
|
||||
"https://github.com/ReactiveX/RxAndroid",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"RxBinding",
|
||||
"2015",
|
||||
"Jake Wharton",
|
||||
"https://github.com/JakeWharton/RxBinding",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"RxJava",
|
||||
"2016 - 2020",
|
||||
"RxJava Contributors",
|
||||
"https://github.com/ReactiveX/RxJava",
|
||||
StandardLicenses.APACHE2
|
||||
),
|
||||
SoftwareComponent(
|
||||
"SearchPreference",
|
||||
"2018",
|
||||
"ByteHamster",
|
||||
"https://github.com/ByteHamster/SearchPreference",
|
||||
StandardLicenses.MIT
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package org.schabi.newpipe.about
|
||||
|
||||
import android.os.Parcelable
|
||||
import java.io.Serializable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
/**
|
||||
* Class for storing information about a software license.
|
||||
*/
|
||||
@Parcelize
|
||||
class License(val name: String, val abbreviation: String, val filename: String) : Parcelable, Serializable
|
||||
@@ -1,142 +0,0 @@
|
||||
package org.schabi.newpipe.about
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Base64
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.webkit.WebView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.os.BundleCompat
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.Fragment
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import org.schabi.newpipe.BuildConfig
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.databinding.FragmentLicensesBinding
|
||||
import org.schabi.newpipe.databinding.ItemSoftwareComponentBinding
|
||||
import org.schabi.newpipe.ktx.parcelableArrayList
|
||||
import org.schabi.newpipe.util.external_communication.ShareUtils
|
||||
|
||||
/**
|
||||
* Fragment containing the software licenses.
|
||||
*/
|
||||
class LicenseFragment : Fragment() {
|
||||
private lateinit var softwareComponents: List<SoftwareComponent>
|
||||
private var activeSoftwareComponent: SoftwareComponent? = null
|
||||
private val compositeDisposable = CompositeDisposable()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
softwareComponents = arguments?.parcelableArrayList<SoftwareComponent>(ARG_COMPONENTS)!!
|
||||
.sortedBy { it.name } // Sort components by name
|
||||
activeSoftwareComponent = savedInstanceState?.let {
|
||||
BundleCompat.getSerializable(it, SOFTWARE_COMPONENT_KEY, SoftwareComponent::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
compositeDisposable.dispose()
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
val binding = FragmentLicensesBinding.inflate(inflater, container, false)
|
||||
binding.licensesAppReadLicense.setOnClickListener {
|
||||
compositeDisposable.add(
|
||||
showLicense(NEWPIPE_SOFTWARE_COMPONENT)
|
||||
)
|
||||
}
|
||||
for (component in softwareComponents) {
|
||||
val componentBinding = ItemSoftwareComponentBinding
|
||||
.inflate(inflater, container, false)
|
||||
componentBinding.name.text = component.name
|
||||
componentBinding.copyright.text = getString(
|
||||
R.string.copyright,
|
||||
component.years,
|
||||
component.copyrightOwner,
|
||||
component.license.abbreviation
|
||||
)
|
||||
val root: View = componentBinding.root
|
||||
root.tag = component
|
||||
root.setOnClickListener {
|
||||
compositeDisposable.add(
|
||||
showLicense(component)
|
||||
)
|
||||
}
|
||||
binding.licensesSoftwareComponents.addView(root)
|
||||
registerForContextMenu(root)
|
||||
}
|
||||
activeSoftwareComponent?.let { compositeDisposable.add(showLicense(it)) }
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(savedInstanceState: Bundle) {
|
||||
super.onSaveInstanceState(savedInstanceState)
|
||||
activeSoftwareComponent?.let { savedInstanceState.putSerializable(SOFTWARE_COMPONENT_KEY, it) }
|
||||
}
|
||||
|
||||
private fun showLicense(
|
||||
softwareComponent: SoftwareComponent
|
||||
): Disposable {
|
||||
return if (context == null) {
|
||||
Disposable.empty()
|
||||
} else {
|
||||
val context = requireContext()
|
||||
activeSoftwareComponent = softwareComponent
|
||||
Observable.fromCallable { getFormattedLicense(context, softwareComponent.license) }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { formattedLicense ->
|
||||
val webViewData = Base64.encodeToString(
|
||||
formattedLicense.toByteArray(),
|
||||
Base64.NO_PADDING
|
||||
)
|
||||
val webView = WebView(context)
|
||||
webView.loadData(webViewData, "text/html; charset=UTF-8", "base64")
|
||||
|
||||
val builder = AlertDialog.Builder(requireContext())
|
||||
.setTitle(softwareComponent.name)
|
||||
.setView(webView)
|
||||
.setOnCancelListener { activeSoftwareComponent = null }
|
||||
.setOnDismissListener { activeSoftwareComponent = null }
|
||||
.setPositiveButton(R.string.done) { dialog, _ -> dialog.dismiss() }
|
||||
|
||||
if (softwareComponent != NEWPIPE_SOFTWARE_COMPONENT) {
|
||||
builder.setNeutralButton(R.string.open_website_license) { _, _ ->
|
||||
ShareUtils.openUrlInApp(requireContext(), softwareComponent.link)
|
||||
}
|
||||
}
|
||||
|
||||
builder.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ARG_COMPONENTS = "components"
|
||||
private const val SOFTWARE_COMPONENT_KEY = "ACTIVE_SOFTWARE_COMPONENT"
|
||||
private val NEWPIPE_SOFTWARE_COMPONENT = SoftwareComponent(
|
||||
"NewPipe",
|
||||
"2014-2023",
|
||||
"Team NewPipe",
|
||||
"https://newpipe.net/",
|
||||
StandardLicenses.GPL3,
|
||||
BuildConfig.VERSION_NAME
|
||||
)
|
||||
|
||||
fun newInstance(softwareComponents: ArrayList<SoftwareComponent>): LicenseFragment {
|
||||
val fragment = LicenseFragment()
|
||||
fragment.arguments = bundleOf(ARG_COMPONENTS to softwareComponents)
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package org.schabi.newpipe.about
|
||||
|
||||
import android.content.Context
|
||||
import java.io.IOException
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.util.ThemeHelper
|
||||
|
||||
/**
|
||||
* @param context the context to use
|
||||
* @param license the license
|
||||
* @return String which contains a HTML formatted license page
|
||||
* styled according to the context's theme
|
||||
*/
|
||||
fun getFormattedLicense(context: Context, license: License): String {
|
||||
try {
|
||||
return context.assets.open(license.filename).bufferedReader().use { it.readText() }
|
||||
// split the HTML file and insert the stylesheet into the HEAD of the file
|
||||
.replace("</head>", "<style>${getLicenseStylesheet(context)}</style></head>")
|
||||
} catch (e: IOException) {
|
||||
throw IllegalArgumentException("Could not get license file: ${license.filename}", e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param context the Android context
|
||||
* @return String which is a CSS stylesheet according to the context's theme
|
||||
*/
|
||||
fun getLicenseStylesheet(context: Context): String {
|
||||
val isLightTheme = ThemeHelper.isLightThemeSelected(context)
|
||||
val licenseBackgroundColor = getHexRGBColor(
|
||||
context,
|
||||
if (isLightTheme) R.color.light_license_background_color else R.color.dark_license_background_color
|
||||
)
|
||||
val licenseTextColor = getHexRGBColor(
|
||||
context,
|
||||
if (isLightTheme) R.color.light_license_text_color else R.color.dark_license_text_color
|
||||
)
|
||||
val youtubePrimaryColor = getHexRGBColor(
|
||||
context,
|
||||
if (isLightTheme) R.color.light_youtube_primary_color else R.color.dark_youtube_primary_color
|
||||
)
|
||||
return "body{padding:12px 15px;margin:0;background:#$licenseBackgroundColor;color:#$licenseTextColor}" +
|
||||
"a[href]{color:#$youtubePrimaryColor}pre{white-space:pre-wrap}"
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast R.color to a hexadecimal color value.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param color the color number from R.color
|
||||
* @return a six characters long String with hexadecimal RGB values
|
||||
*/
|
||||
fun getHexRGBColor(context: Context, color: Int): String {
|
||||
return context.getString(color).substring(3)
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package org.schabi.newpipe.about
|
||||
|
||||
import android.os.Parcelable
|
||||
import java.io.Serializable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
class SoftwareComponent
|
||||
@JvmOverloads
|
||||
constructor(
|
||||
val name: String,
|
||||
val years: String,
|
||||
val copyrightOwner: String,
|
||||
val link: String,
|
||||
val license: License,
|
||||
val version: String? = null
|
||||
) : Parcelable, Serializable
|
||||
@@ -1,21 +0,0 @@
|
||||
package org.schabi.newpipe.about
|
||||
|
||||
/**
|
||||
* Class containing information about standard software licenses.
|
||||
*/
|
||||
object StandardLicenses {
|
||||
@JvmField
|
||||
val GPL3 = License("GNU General Public License, Version 3.0", "GPLv3", "gpl_3.html")
|
||||
|
||||
@JvmField
|
||||
val APACHE2 = License("Apache License, Version 2.0", "ALv2", "apache2.html")
|
||||
|
||||
@JvmField
|
||||
val MPL2 = License("Mozilla Public License, Version 2.0", "MPL 2.0", "mpl2.html")
|
||||
|
||||
@JvmField
|
||||
val MIT = License("MIT License", "MIT", "mit.html")
|
||||
|
||||
@JvmField
|
||||
val EPL1 = License("Eclipse Public License, Version 1.0", "EPL 1.0", "epl1.html")
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.schabi.newpipe.fragments.detail;
|
||||
|
||||
import static android.text.TextUtils.isEmpty;
|
||||
import static org.schabi.newpipe.extractor.utils.Utils.isBlank;
|
||||
import static org.schabi.newpipe.util.text.TextLinkifier.SET_LINK_MOVEMENT_METHOD;
|
||||
|
||||
@@ -66,7 +65,7 @@ public abstract class BaseDescriptionFragment extends BaseFragment {
|
||||
* Get the description to display.
|
||||
* @return description object, if available
|
||||
*/
|
||||
@Nullable
|
||||
@NonNull
|
||||
protected abstract Description getDescription();
|
||||
|
||||
/**
|
||||
@@ -105,8 +104,7 @@ public abstract class BaseDescriptionFragment extends BaseFragment {
|
||||
|
||||
private void setupDescription() {
|
||||
final Description description = getDescription();
|
||||
if (description == null || isEmpty(description.getContent())
|
||||
|| description == Description.EMPTY_DESCRIPTION) {
|
||||
if (Description.EMPTY_DESCRIPTION.equals(description)) {
|
||||
binding.detailDescriptionView.setVisibility(View.GONE);
|
||||
binding.detailSelectDescriptionButton.setVisibility(View.GONE);
|
||||
return;
|
||||
@@ -137,13 +135,9 @@ public abstract class BaseDescriptionFragment extends BaseFragment {
|
||||
|
||||
private void disableDescriptionSelection() {
|
||||
// show description content again, otherwise some links are not clickable
|
||||
final Description description = getDescription();
|
||||
if (description != null) {
|
||||
TextLinkifier.fromDescription(binding.detailDescriptionView,
|
||||
description, HtmlCompat.FROM_HTML_MODE_LEGACY,
|
||||
getService(), getStreamUrl(),
|
||||
descriptionDisposables, SET_LINK_MOVEMENT_METHOD);
|
||||
}
|
||||
TextLinkifier.fromDescription(binding.detailDescriptionView, getDescription(),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY, getService(), getStreamUrl(),
|
||||
descriptionDisposables, SET_LINK_MOVEMENT_METHOD);
|
||||
|
||||
binding.detailDescriptionNoteView.setVisibility(View.GONE);
|
||||
binding.detailDescriptionView.setTextIsSelectable(false);
|
||||
|
||||
@@ -8,7 +8,6 @@ import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import com.evernote.android.state.State;
|
||||
@@ -34,11 +33,11 @@ public class DescriptionFragment extends BaseDescriptionFragment {
|
||||
// keep empty constructor for State when resuming fragment from memory
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
@NonNull
|
||||
@Override
|
||||
protected Description getDescription() {
|
||||
return streamInfo.getDescription();
|
||||
return streamInfo.getDescription() != null ? streamInfo.getDescription()
|
||||
: Description.EMPTY_DESCRIPTION;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
@@ -205,6 +205,7 @@ public final class VideoDetailFragment
|
||||
int lastStableBottomSheetState = BottomSheetBehavior.STATE_EXPANDED;
|
||||
@State
|
||||
protected boolean autoPlayEnabled = true;
|
||||
private boolean forceFullscreen = false;
|
||||
|
||||
@Nullable
|
||||
private StreamInfo currentInfo = null;
|
||||
@@ -877,7 +878,7 @@ public final class VideoDetailFragment
|
||||
}
|
||||
}
|
||||
|
||||
if (isAutoplayEnabled()) {
|
||||
if (isAutoplayEnabled() || forceFullscreen) {
|
||||
openVideoPlayerAutoFullscreen();
|
||||
}
|
||||
}
|
||||
@@ -1134,15 +1135,29 @@ public final class VideoDetailFragment
|
||||
}
|
||||
|
||||
/**
|
||||
* If the option to start directly fullscreen is enabled, calls
|
||||
* {@link #openVideoPlayer(boolean)} with {@code directlyFullscreenIfApplicable = true}, so that
|
||||
* if the user is not already in landscape and he has screen orientation locked the activity
|
||||
* rotates and fullscreen starts. Otherwise, if the option to start directly fullscreen is
|
||||
* disabled, calls {@link #openVideoPlayer(boolean)} with {@code directlyFullscreenIfApplicable
|
||||
* = false}, hence preventing it from going directly fullscreen.
|
||||
* If the option to start directly fullscreen is enabled, or if {@code forceFullscreen} is
|
||||
* {@code true} (e.g. when switching from popup player to main player with a different video),
|
||||
* calls {@link #openVideoPlayer(boolean)} with {@code directlyFullscreenIfApplicable = true},
|
||||
* so that if the user is not already in landscape and he has screen orientation locked the
|
||||
* activity rotates and fullscreen starts. Otherwise, if the option to start directly fullscreen
|
||||
* is disabled and {@code forceFullscreen} is {@code false}, calls
|
||||
* {@link #openVideoPlayer(boolean)} with {@code directlyFullscreenIfApplicable = false},
|
||||
* hence preventing it from going directly fullscreen.
|
||||
* {@code forceFullscreen} is reset to {@code false} after this call.
|
||||
*/
|
||||
public void openVideoPlayerAutoFullscreen() {
|
||||
openVideoPlayer(PlayerHelper.isStartMainPlayerFullscreenEnabled(requireContext()));
|
||||
openVideoPlayer(forceFullscreen
|
||||
|| PlayerHelper.isStartMainPlayerFullscreenEnabled(requireContext()));
|
||||
forceFullscreen = false;
|
||||
}
|
||||
|
||||
public void setForceFullscreen(final boolean force) {
|
||||
this.forceFullscreen = force;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
private void openNormalBackgroundPlayer(final boolean append) {
|
||||
@@ -1280,9 +1295,15 @@ public final class VideoDetailFragment
|
||||
player.UIs().get(MainPlayerUi.class).ifPresent(playerUi -> {
|
||||
// sometimes binding would be null here, even though getView() != null above u.u
|
||||
if (binding != null) {
|
||||
// prevent from re-adding a view multiple times
|
||||
playerUi.removeViewFromParent();
|
||||
binding.playerPlaceholder.addView(playerUi.getBinding().getRoot());
|
||||
// Only reparent the view if it's not already in the playerPlaceholder.
|
||||
// Removing and re-adding a SurfaceView destroys its native surface,
|
||||
// causing a black screen until the video decoder hits the next
|
||||
// keyframe (2-5 seconds on typical DASH/HLS streams).
|
||||
if (playerUi.getBinding().getRoot().getParent()
|
||||
!= binding.playerPlaceholder) {
|
||||
playerUi.removeViewFromParent();
|
||||
binding.playerPlaceholder.addView(playerUi.getBinding().getRoot());
|
||||
}
|
||||
playerUi.setupVideoSurfaceIfNeeded();
|
||||
}
|
||||
});
|
||||
|
||||
+2
-2
@@ -40,10 +40,10 @@ public class ChannelAboutFragment extends BaseDescriptionFragment {
|
||||
binding.constraintLayout.setPadding(0, DeviceUtils.dpToPx(8, requireContext()), 0, 0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@NonNull
|
||||
@Override
|
||||
protected Description getDescription() {
|
||||
return new Description(channelInfo.getDescription(), Description.PLAIN_TEXT);
|
||||
return Description.of(channelInfo.getDescription(), Description.Type.PLAIN_TEXT);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017-2024 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.fragments.list.kiosk;
|
||||
|
||||
import android.os.Bundle;
|
||||
@@ -33,30 +38,6 @@ import org.schabi.newpipe.util.Localization;
|
||||
|
||||
import io.reactivex.rxjava3.core.Single;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 23.09.17.
|
||||
* <p>
|
||||
* Copyright (C) Christian Schabesberger 2017 <chris.schabesberger@mailbox.org>
|
||||
* KioskFragment.java is part of NewPipe.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* </p>
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
* </p>
|
||||
*/
|
||||
|
||||
public class KioskFragment extends BaseListInfoFragment<StreamInfoItem, KioskInfo> {
|
||||
@State
|
||||
String kioskId = "";
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.schabi.newpipe.fragments.list.playlist;
|
||||
|
||||
import static org.schabi.newpipe.extractor.utils.Utils.isBlank;
|
||||
import static org.schabi.newpipe.ktx.ViewUtils.animate;
|
||||
import static org.schabi.newpipe.ktx.ViewUtils.animateHideRecyclerViewAllowingScrolling;
|
||||
import static org.schabi.newpipe.util.ServiceHelper.getServiceById;
|
||||
@@ -328,9 +327,9 @@ public class PlaylistFragment extends BaseListInfoFragment<StreamInfoItem, Playl
|
||||
streamCount = result.getStreamCount();
|
||||
setStreamCountAndOverallDuration(result.getRelatedItems(), !result.hasNextPage());
|
||||
|
||||
final Description description = result.getDescription();
|
||||
if (description != null && description != Description.EMPTY_DESCRIPTION
|
||||
&& !isBlank(description.getContent())) {
|
||||
final Description description = result.getDescription() != null ? result.getDescription()
|
||||
: Description.EMPTY_DESCRIPTION;
|
||||
if (!Description.EMPTY_DESCRIPTION.equals(description)) {
|
||||
final TextEllipsizer ellipsizer = new TextEllipsizer(
|
||||
headerBinding.playlistDescription, 5, getServiceById(result.getServiceId()));
|
||||
ellipsizer.setStateChangeListener(isEllipsized ->
|
||||
|
||||
@@ -10,12 +10,19 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.Html;
|
||||
import android.text.Layout;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.style.AlignmentSpan;
|
||||
import android.text.style.CharacterStyle;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.StyleSpan;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -36,6 +43,7 @@ import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.TooltipCompat;
|
||||
import androidx.collection.SparseArrayCompat;
|
||||
import androidx.core.text.HtmlCompat;
|
||||
import androidx.core.view.SoftwareKeyboardControllerCompat;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@@ -68,7 +76,6 @@ import org.schabi.newpipe.settings.NewPipeSettings;
|
||||
import org.schabi.newpipe.util.Constants;
|
||||
import org.schabi.newpipe.util.DeviceUtils;
|
||||
import org.schabi.newpipe.util.ExtractorHelper;
|
||||
import org.schabi.newpipe.util.KeyboardUtil;
|
||||
import org.schabi.newpipe.util.NavigationHelper;
|
||||
import org.schabi.newpipe.util.ServiceHelper;
|
||||
|
||||
@@ -453,22 +460,28 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||
|
||||
for (final String filter : service.getSearchQHFactory().getAvailableContentFilter()) {
|
||||
if (filter.equals(YoutubeSearchQueryHandlerFactory.MUSIC_SONGS)) {
|
||||
final MenuItem musicItem = menu.add(2,
|
||||
menu.add(2,
|
||||
itemId++,
|
||||
0,
|
||||
"YouTube Music");
|
||||
musicItem.setEnabled(false);
|
||||
getStyledHeader("YouTube"));
|
||||
menu.add(2,
|
||||
itemId++,
|
||||
1,
|
||||
getStyledHeader("YouTube Music"));
|
||||
} else if (filter.equals(PeertubeSearchQueryHandlerFactory.SEPIA_VIDEOS)) {
|
||||
final MenuItem sepiaItem = menu.add(2,
|
||||
menu.add(2,
|
||||
itemId++,
|
||||
0,
|
||||
"Sepia Search");
|
||||
sepiaItem.setEnabled(false);
|
||||
getStyledHeader("Search"));
|
||||
menu.add(2,
|
||||
itemId++,
|
||||
1,
|
||||
getStyledHeader("Sepia Search"));
|
||||
}
|
||||
menuItemToFilterName.put(itemId, filter);
|
||||
final MenuItem item = menu.add(1,
|
||||
itemId++,
|
||||
0,
|
||||
1,
|
||||
ServiceHelper.getTranslatedFilterString(filter, c));
|
||||
if (isFirstItem) {
|
||||
item.setChecked(true);
|
||||
@@ -480,6 +493,15 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||
restoreFilterChecked(menu, filterItemCheckedId);
|
||||
}
|
||||
|
||||
private SpannableString getStyledHeader(final String title) {
|
||||
final SpannableString styledTitle = new SpannableString(title);
|
||||
styledTitle.setSpan(new StyleSpan(Typeface.BOLD), 0, title.length(), 0);
|
||||
styledTitle.setSpan(new ForegroundColorSpan(Color.GRAY), 0, title.length(), 0);
|
||||
styledTitle.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER),
|
||||
0, title.length(), 0);
|
||||
return styledTitle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull final MenuItem item) {
|
||||
final var filter = Collections.singletonList(menuItemToFilterName.get(item.getItemId()));
|
||||
@@ -683,15 +705,15 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "showKeyboardSearch() called");
|
||||
}
|
||||
KeyboardUtil.showKeyboard(activity, searchEditText);
|
||||
new SoftwareKeyboardControllerCompat(searchEditText).show();
|
||||
}
|
||||
|
||||
private void hideKeyboardSearch() {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "hideKeyboardSearch() called");
|
||||
}
|
||||
|
||||
KeyboardUtil.hideKeyboard(activity, searchEditText);
|
||||
new SoftwareKeyboardControllerCompat(searchEditText).hide();
|
||||
searchEditText.clearFocus();
|
||||
}
|
||||
|
||||
private void showDeleteSuggestionDialog(final SuggestionItem item) {
|
||||
|
||||
@@ -100,7 +100,7 @@ public class LocalItemListAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
localItems = new ArrayList<>();
|
||||
|
||||
dateTimeFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT)
|
||||
.withLocale(Localization.getPreferredLocale(context));
|
||||
.withLocale(Localization.getAppLocale());
|
||||
}
|
||||
|
||||
public void setSelectedListener(final OnClickGesture<LocalItem> listener) {
|
||||
|
||||
@@ -17,7 +17,6 @@ import android.os.Parcelable;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -31,6 +30,7 @@ import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
@@ -40,7 +40,6 @@ import org.reactivestreams.Subscription;
|
||||
import org.schabi.newpipe.NewPipeDatabase;
|
||||
import org.schabi.newpipe.R;
|
||||
import org.schabi.newpipe.database.LocalItem;
|
||||
import org.schabi.newpipe.database.history.model.StreamHistoryEntry;
|
||||
import org.schabi.newpipe.database.playlist.PlaylistStreamEntry;
|
||||
import org.schabi.newpipe.database.playlist.model.PlaylistEntity;
|
||||
import org.schabi.newpipe.database.stream.model.StreamEntity;
|
||||
@@ -55,7 +54,6 @@ import org.schabi.newpipe.fragments.list.playlist.PlaylistControlViewHolder;
|
||||
import org.schabi.newpipe.info_list.dialog.InfoItemDialog;
|
||||
import org.schabi.newpipe.info_list.dialog.StreamDialogDefaultEntry;
|
||||
import org.schabi.newpipe.local.BaseLocalListFragment;
|
||||
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
||||
import org.schabi.newpipe.player.playqueue.PlayQueue;
|
||||
import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
|
||||
import org.schabi.newpipe.util.DeviceUtils;
|
||||
@@ -72,13 +70,11 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.core.Single;
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
|
||||
public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistStreamEntry>, Void>
|
||||
implements PlaylistControlViewHolder, DebounceSavable {
|
||||
@@ -97,6 +93,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
private ItemTouchHelper itemTouchHelper;
|
||||
|
||||
private LocalPlaylistManager playlistManager;
|
||||
private LocalPlaylistViewModel viewModel;
|
||||
private Subscription databaseSubscription;
|
||||
|
||||
private CompositeDisposable disposables;
|
||||
@@ -105,8 +102,6 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
private AtomicBoolean isLoadingComplete;
|
||||
/** Used to debounce saving playlist edits to disk. */
|
||||
private DebounceSaver debounceSaver;
|
||||
/** Flag to prevent simultaneous rewrites of the playlist. */
|
||||
private boolean isRewritingPlaylist = false;
|
||||
|
||||
/**
|
||||
* The pager adapter that the fragment is created from when it is used as frontpage, i.e.
|
||||
@@ -130,6 +125,19 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
super.onCreate(savedInstanceState);
|
||||
playlistManager = new LocalPlaylistManager(NewPipeDatabase.getInstance(requireContext()));
|
||||
|
||||
viewModel = new ViewModelProvider(this).get(LocalPlaylistViewModel.class);
|
||||
viewModel.getWorkState().observe(this, state -> {
|
||||
if (state instanceof LocalPlaylistViewModel.WorkState.Loading) {
|
||||
showLoading();
|
||||
} else {
|
||||
hideLoading();
|
||||
if (state instanceof LocalPlaylistViewModel.WorkState.Error error) {
|
||||
showError(new ErrorInfo(error.getThrowable(), UserAction.REQUESTED_BOOKMARK,
|
||||
"Playlist operation"));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
disposables = new CompositeDisposable();
|
||||
|
||||
isLoadingComplete = new AtomicBoolean();
|
||||
@@ -369,13 +377,9 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
} else if (item.getItemId() == R.id.menu_item_rename_playlist) {
|
||||
createRenameDialog();
|
||||
} else if (item.getItemId() == R.id.menu_item_remove_watched) {
|
||||
if (!isRewritingPlaylist) {
|
||||
openRemoveWatchedConfirmationDialog();
|
||||
}
|
||||
openRemoveWatchedConfirmationDialog();
|
||||
} else if (item.getItemId() == R.id.menu_item_remove_duplicates) {
|
||||
if (!isRewritingPlaylist) {
|
||||
openRemoveDuplicatesDialog();
|
||||
}
|
||||
openRemoveDuplicatesDialog();
|
||||
} else {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
@@ -421,80 +425,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
}
|
||||
|
||||
public void removeWatchedStreams(final boolean removePartiallyWatched) {
|
||||
if (isRewritingPlaylist) {
|
||||
return;
|
||||
}
|
||||
isRewritingPlaylist = true;
|
||||
showLoading();
|
||||
|
||||
final var recordManager = new HistoryRecordManager(getContext());
|
||||
final var historyIdsMaybe = recordManager.getStreamHistorySortedById()
|
||||
.firstElement()
|
||||
// already sorted by ^ getStreamHistorySortedById(), binary search can be used
|
||||
.map(historyList -> historyList.stream().map(StreamHistoryEntry::getStreamId)
|
||||
.collect(Collectors.toList()));
|
||||
final var streamsMaybe = playlistManager.getPlaylistStreams(playlistId)
|
||||
.firstElement()
|
||||
.zipWith(historyIdsMaybe, (playlist, historyStreamIds) -> {
|
||||
// Remove Watched, Functionality data
|
||||
final List<PlaylistStreamEntry> itemsToKeep = new ArrayList<>();
|
||||
final boolean isThumbnailPermanent = playlistManager
|
||||
.getIsPlaylistThumbnailPermanent(playlistId);
|
||||
boolean thumbnailVideoRemoved = false;
|
||||
|
||||
final var streamStates = recordManager
|
||||
.loadLocalStreamStateBatch(playlist).blockingGet();
|
||||
|
||||
for (int i = 0; i < playlist.size(); i++) {
|
||||
final var playlistItem = playlist.get(i);
|
||||
final var streamStateEntity = streamStates.get(i);
|
||||
final int indexInHistory = Collections.binarySearch(historyStreamIds,
|
||||
playlistItem.getStreamId());
|
||||
final long duration = playlistItem.toStreamInfoItem().getDuration();
|
||||
|
||||
if (indexInHistory < 0 // stream is not in history
|
||||
// stream is in history but the streamStateEntity is null
|
||||
// if the stream was played for less than 5 seconds, see
|
||||
// StreamStateEntity#PLAYBACK_SAVE_THRESHOLD_START_MILLISECONDS
|
||||
|| streamStateEntity == null
|
||||
|| (!removePartiallyWatched
|
||||
&& !streamStateEntity.isFinished(duration))) {
|
||||
itemsToKeep.add(playlistItem);
|
||||
} else if (!isThumbnailPermanent && !thumbnailVideoRemoved
|
||||
&& playlistManager.getPlaylistThumbnailStreamId(playlistId)
|
||||
== playlistItem.getStreamEntity().getUid()) {
|
||||
thumbnailVideoRemoved = true;
|
||||
}
|
||||
}
|
||||
|
||||
return new Pair<>(itemsToKeep, thumbnailVideoRemoved);
|
||||
});
|
||||
|
||||
disposables.add(streamsMaybe.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(flow -> {
|
||||
final List<PlaylistStreamEntry> itemsToKeep = flow.first;
|
||||
final boolean thumbnailVideoRemoved = flow.second;
|
||||
|
||||
itemListAdapter.clearStreamItemList();
|
||||
itemListAdapter.addItems(itemsToKeep);
|
||||
debounceSaver.setHasChangesToSave();
|
||||
saveImmediate();
|
||||
|
||||
if (thumbnailVideoRemoved) {
|
||||
updateThumbnailUrl();
|
||||
}
|
||||
|
||||
final long videoCount = itemListAdapter.getItemsList().size();
|
||||
setStreamCountAndOverallDuration(itemListAdapter.getItemsList());
|
||||
if (videoCount == 0) {
|
||||
showEmptyState();
|
||||
}
|
||||
|
||||
hideLoading();
|
||||
isRewritingPlaylist = false;
|
||||
}, throwable -> showError(new ErrorInfo(throwable, UserAction.REQUESTED_BOOKMARK,
|
||||
"Removing watched videos, partially watched=" + removePartiallyWatched))));
|
||||
viewModel.removeWatchedStreams(playlistId, removePartiallyWatched);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -633,29 +564,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||
}
|
||||
|
||||
private void removeDuplicatesInPlaylist() {
|
||||
if (isRewritingPlaylist) {
|
||||
return;
|
||||
}
|
||||
isRewritingPlaylist = true;
|
||||
showLoading();
|
||||
|
||||
final var streamsMaybe = playlistManager
|
||||
.getDistinctPlaylistStreams(playlistId).firstElement();
|
||||
|
||||
|
||||
disposables.add(streamsMaybe.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(itemsToKeep -> {
|
||||
itemListAdapter.clearStreamItemList();
|
||||
itemListAdapter.addItems(itemsToKeep);
|
||||
setStreamCountAndOverallDuration(itemListAdapter.getItemsList());
|
||||
debounceSaver.setHasChangesToSave();
|
||||
saveImmediate();
|
||||
|
||||
hideLoading();
|
||||
isRewritingPlaylist = false;
|
||||
}, throwable -> showError(new ErrorInfo(throwable, UserAction.REQUESTED_BOOKMARK,
|
||||
"Removing duplicated streams"))));
|
||||
viewModel.removeDuplicates(playlistId);
|
||||
}
|
||||
|
||||
private void deleteItem(final PlaylistStreamEntry item) {
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2026 NewPipe e.V. <https://newpipe-ev.de>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.local.playlist
|
||||
|
||||
import android.app.Application
|
||||
import android.util.Pair
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Completable
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import java.util.Collections
|
||||
import org.schabi.newpipe.NewPipeDatabase
|
||||
import org.schabi.newpipe.database.playlist.PlaylistStreamEntry
|
||||
import org.schabi.newpipe.database.playlist.model.PlaylistEntity
|
||||
import org.schabi.newpipe.local.history.HistoryRecordManager
|
||||
|
||||
class LocalPlaylistViewModel(application: Application) : AndroidViewModel(application) {
|
||||
private val playlistManager = LocalPlaylistManager(NewPipeDatabase.getInstance(application))
|
||||
private val recordManager = HistoryRecordManager(application)
|
||||
private val disposables = CompositeDisposable()
|
||||
|
||||
private val _workState = MutableLiveData<WorkState>(WorkState.Idle)
|
||||
val workState: LiveData<WorkState> = _workState
|
||||
|
||||
sealed class WorkState {
|
||||
object Idle : WorkState()
|
||||
object Loading : WorkState()
|
||||
data class Error(val throwable: Throwable) : WorkState()
|
||||
object Success : WorkState()
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes watched streams from the playlist.
|
||||
* This operation is performed in the background and survives fragment destruction
|
||||
* as it is not disposed when the ViewModel is cleared (to fix #8888).
|
||||
*/
|
||||
fun removeWatchedStreams(playlistId: Long, removePartiallyWatched: Boolean) {
|
||||
_workState.value = WorkState.Loading
|
||||
|
||||
val historyIdsMaybe = recordManager.streamHistorySortedById
|
||||
.firstElement()
|
||||
.map { historyList ->
|
||||
historyList.map { it.streamId }
|
||||
}
|
||||
|
||||
val streamsMaybe = playlistManager.getPlaylistStreams(playlistId)
|
||||
.firstElement()
|
||||
.zipWith(historyIdsMaybe) { playlist, historyStreamIds ->
|
||||
val itemsToKeep = mutableListOf<PlaylistStreamEntry>()
|
||||
val isThumbnailPermanent = playlistManager.getIsPlaylistThumbnailPermanent(playlistId)
|
||||
var thumbnailVideoRemoved = false
|
||||
|
||||
val streamStates = recordManager.loadLocalStreamStateBatch(playlist).blockingGet()
|
||||
|
||||
for (i in playlist.indices) {
|
||||
val playlistItem = playlist[i]
|
||||
val streamStateEntity = streamStates[i]
|
||||
val indexInHistory = Collections.binarySearch(historyStreamIds, playlistItem.streamId)
|
||||
val duration = playlistItem.toStreamInfoItem().duration
|
||||
|
||||
if (indexInHistory < 0 || streamStateEntity == null ||
|
||||
(!removePartiallyWatched && !streamStateEntity.isFinished(duration))
|
||||
) {
|
||||
itemsToKeep.add(playlistItem)
|
||||
} else if (!isThumbnailPermanent && !thumbnailVideoRemoved &&
|
||||
playlistManager.getPlaylistThumbnailStreamId(playlistId) ==
|
||||
playlistItem.streamEntity.uid
|
||||
) {
|
||||
thumbnailVideoRemoved = true
|
||||
}
|
||||
}
|
||||
|
||||
Pair(itemsToKeep, thumbnailVideoRemoved)
|
||||
}
|
||||
|
||||
val disposable = streamsMaybe
|
||||
.subscribeOn(Schedulers.io())
|
||||
.flatMapCompletable { flow ->
|
||||
val itemsToKeep = flow.first
|
||||
val thumbnailVideoRemoved = flow.second
|
||||
val streamIds = itemsToKeep.map { it.streamId }
|
||||
|
||||
playlistManager.updateJoin(playlistId, streamIds)
|
||||
.andThen(
|
||||
Completable.fromAction {
|
||||
if (thumbnailVideoRemoved) {
|
||||
updateThumbnailUrl(playlistId, itemsToKeep)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
{ _workState.value = WorkState.Success },
|
||||
{ _workState.value = WorkState.Error(it) }
|
||||
)
|
||||
|
||||
disposables.add(disposable)
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes duplicate streams from the playlist.
|
||||
*/
|
||||
fun removeDuplicates(playlistId: Long) {
|
||||
_workState.value = WorkState.Loading
|
||||
|
||||
val disposable = playlistManager.getDistinctPlaylistStreams(playlistId)
|
||||
.firstElement()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.flatMapCompletable { itemsToKeep ->
|
||||
val streamIds = itemsToKeep.map { it.streamId }
|
||||
playlistManager.updateJoin(playlistId, streamIds)
|
||||
}
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
{ _workState.value = WorkState.Success },
|
||||
{ _workState.value = WorkState.Error(it) }
|
||||
)
|
||||
|
||||
disposables.add(disposable)
|
||||
}
|
||||
|
||||
private fun updateThumbnailUrl(playlistId: Long, itemsToKeep: List<PlaylistStreamEntry>) {
|
||||
if (playlistManager.getIsPlaylistThumbnailPermanent(playlistId)) {
|
||||
return
|
||||
}
|
||||
|
||||
val thumbnailStreamId = if (itemsToKeep.isNotEmpty()) {
|
||||
itemsToKeep[0].streamEntity.uid
|
||||
} else {
|
||||
PlaylistEntity.DEFAULT_THUMBNAIL_ID
|
||||
}
|
||||
|
||||
playlistManager.changePlaylistThumbnail(playlistId, thumbnailStreamId, false).blockingGet()
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
super.onCleared()
|
||||
// We deliberately do not clear disposables here to allow pending
|
||||
// database mutations to finish even if the user leaves the screen.
|
||||
}
|
||||
}
|
||||
@@ -50,13 +50,16 @@ class SubscriptionManager(context: Context) {
|
||||
}
|
||||
}
|
||||
|
||||
fun upsertAll(infoList: List<Pair<ChannelInfo, ChannelTabInfo>>) {
|
||||
fun upsertAll(infoList: List<Pair<ChannelInfo, ChannelTabInfo?>>) {
|
||||
val listEntities = infoList.map { SubscriptionEntity.from(it.first) }
|
||||
subscriptionTable.upsertAll(listEntities)
|
||||
|
||||
database.runInTransaction {
|
||||
infoList.forEachIndexed { index, info ->
|
||||
val streams = info.second.relatedItems.filterIsInstance<StreamInfoItem>()
|
||||
// There may be no tabs on the channel to refresh the feed from
|
||||
if (info.second == null) return@forEachIndexed
|
||||
|
||||
val streams = info.second!!.relatedItems.filterIsInstance<StreamInfoItem>()
|
||||
feedDatabaseManager.upsertAll(listEntities[index].uid, streams)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-8
@@ -19,7 +19,6 @@ import androidx.work.workDataOf
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.reactive.awaitFirst
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.schabi.newpipe.BuildConfig
|
||||
import org.schabi.newpipe.NewPipeDatabase
|
||||
import org.schabi.newpipe.R
|
||||
|
||||
@@ -52,9 +51,7 @@ class SubscriptionExportWorker(
|
||||
}
|
||||
}
|
||||
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.i(TAG, "Exported $qty subscriptions")
|
||||
}
|
||||
Log.i(TAG, "Exported $qty subscriptions")
|
||||
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast
|
||||
@@ -63,10 +60,8 @@ class SubscriptionExportWorker(
|
||||
}
|
||||
|
||||
Result.success()
|
||||
} catch (e: Exception) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e(TAG, "Error while exporting subscriptions", e)
|
||||
}
|
||||
} catch (exception: Exception) {
|
||||
Log.e(TAG, "Error while exporting subscriptions", exception)
|
||||
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast
|
||||
|
||||
+146
-107
@@ -1,12 +1,18 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2018-2025 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-FileCopyrightText: 2026 NewPipe e.V. <https://newpipe-ev.de>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.local.subscription.workers
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.ServiceInfo
|
||||
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||
import android.os.Build
|
||||
import android.os.Parcelable
|
||||
import android.util.Log
|
||||
import android.webkit.MimeTypeMap
|
||||
import android.widget.Toast
|
||||
import android.widget.Toast.LENGTH_SHORT
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.net.toUri
|
||||
import androidx.work.CoroutineWorker
|
||||
@@ -16,101 +22,118 @@ import androidx.work.WorkManager
|
||||
import androidx.work.WorkerParameters
|
||||
import androidx.work.workDataOf
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.asFlow
|
||||
import kotlinx.coroutines.flow.chunked
|
||||
import kotlinx.coroutines.flow.flatMapMerge
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.rx3.await
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import org.schabi.newpipe.BuildConfig
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.extractor.NewPipe
|
||||
import org.schabi.newpipe.local.subscription.SubscriptionManager
|
||||
import org.schabi.newpipe.streams.io.SharpInputStream
|
||||
import org.schabi.newpipe.streams.io.StoredFileHelper
|
||||
import org.schabi.newpipe.util.ExtractorHelper
|
||||
|
||||
class SubscriptionImportWorker(
|
||||
appContext: Context,
|
||||
params: WorkerParameters
|
||||
) : CoroutineWorker(appContext, params) {
|
||||
private val context: Context,
|
||||
private val params: WorkerParameters
|
||||
) : CoroutineWorker(context, params) {
|
||||
|
||||
private lateinit var subscriptions: List<SubscriptionItem>
|
||||
|
||||
private val subscriptionManager = SubscriptionManager(context)
|
||||
private val mutex = Mutex()
|
||||
private val size: Int
|
||||
get() = subscriptions.size
|
||||
|
||||
// This is needed for API levels < 31 (Android S).
|
||||
override suspend fun getForegroundInfo(): ForegroundInfo {
|
||||
return createForegroundInfo(applicationContext.getString(R.string.import_ongoing), null, 0, 0)
|
||||
return createForegroundInfo(title = context.getString(R.string.import_ongoing))
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
override suspend fun doWork(): Result {
|
||||
val subscriptions =
|
||||
try {
|
||||
loadSubscriptionsFromInput(SubscriptionImportInput.fromData(inputData))
|
||||
} catch (e: Exception) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e(TAG, "Error while loading subscriptions from path", e)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast
|
||||
.makeText(applicationContext, R.string.subscriptions_import_unsuccessful, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
return Result.failure()
|
||||
subscriptions = try {
|
||||
loadSubscriptionsFromInput(SubscriptionImportInput.fromData(inputData))
|
||||
} catch (exception: Exception) {
|
||||
Log.e(TAG, "Error while loading subscriptions from path", exception)
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(context, R.string.subscriptions_import_unsuccessful, LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
|
||||
val mutex = Mutex()
|
||||
var index = 1
|
||||
val qty = subscriptions.size
|
||||
var title =
|
||||
applicationContext.resources.getQuantityString(R.plurals.load_subscriptions, qty, qty)
|
||||
|
||||
val channelInfoList =
|
||||
try {
|
||||
withContext(Dispatchers.IO.limitedParallelism(PARALLEL_EXTRACTIONS)) {
|
||||
subscriptions
|
||||
.map {
|
||||
async {
|
||||
val channelInfo =
|
||||
ExtractorHelper.getChannelInfo(it.serviceId, it.url, true).await()
|
||||
val channelTab =
|
||||
ExtractorHelper.getChannelTab(it.serviceId, channelInfo.tabs[0], true).await()
|
||||
|
||||
val currentIndex = mutex.withLock { index++ }
|
||||
setForeground(createForegroundInfo(title, channelInfo.name, currentIndex, qty))
|
||||
|
||||
channelInfo to channelTab
|
||||
}
|
||||
}.awaitAll()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e(TAG, "Error while loading subscription data", e)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(applicationContext, R.string.subscriptions_import_unsuccessful, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
return Result.failure()
|
||||
}
|
||||
|
||||
title = applicationContext.resources.getQuantityString(R.plurals.import_subscriptions, qty, qty)
|
||||
setForeground(createForegroundInfo(title, null, 0, 0))
|
||||
index = 0
|
||||
|
||||
val subscriptionManager = SubscriptionManager(applicationContext)
|
||||
for (chunk in channelInfoList.chunked(BUFFER_COUNT_BEFORE_INSERT)) {
|
||||
withContext(Dispatchers.IO) {
|
||||
subscriptionManager.upsertAll(chunk)
|
||||
}
|
||||
index += chunk.size
|
||||
setForeground(createForegroundInfo(title, null, index, qty))
|
||||
return Result.failure()
|
||||
}
|
||||
|
||||
val title = context.resources.getQuantityString(R.plurals.import_subscriptions, size, size)
|
||||
setForeground(createForegroundInfo(title = title))
|
||||
|
||||
try {
|
||||
var index = 1
|
||||
subscriptions.asFlow()
|
||||
.flatMapMerge(concurrency = PARALLEL_EXTRACTIONS) { subscription ->
|
||||
flow {
|
||||
runCatching {
|
||||
ExtractorHelper.getChannelInfo(
|
||||
subscription.serviceId,
|
||||
subscription.url,
|
||||
true
|
||||
).await()
|
||||
}.mapCatching { channelInfo ->
|
||||
val channelTab = when {
|
||||
channelInfo.tabs.isNotEmpty() -> {
|
||||
ExtractorHelper.getChannelTab(
|
||||
subscription.serviceId,
|
||||
channelInfo.tabs[0],
|
||||
true
|
||||
).await()
|
||||
}
|
||||
|
||||
else -> {
|
||||
Log.i(TAG, "No channel tabs available for: ${channelInfo.url}")
|
||||
null
|
||||
}
|
||||
}
|
||||
Pair(channelInfo, channelTab)
|
||||
}.also {
|
||||
mutex.withLock { index++ }
|
||||
}.onFailure { exception ->
|
||||
Log.e(TAG, "Failed to fetch subscription", exception)
|
||||
}.onSuccess { (channelInfo, channelTab) ->
|
||||
setForeground(createForegroundInfo(title, channelInfo.name, index))
|
||||
emit(channelInfo to channelTab)
|
||||
}
|
||||
}
|
||||
}
|
||||
.chunked(BUFFER_COUNT_BEFORE_INSERT)
|
||||
.collect { chunk ->
|
||||
subscriptionManager.upsertAll(chunk)
|
||||
}
|
||||
} catch (exception: Exception) {
|
||||
Log.e(TAG, "Error while processing subscription data", exception)
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(context, R.string.subscriptions_import_unsuccessful, LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
return Result.failure()
|
||||
}
|
||||
|
||||
setForeground(createForegroundInfo(title = title, progress = size))
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(applicationContext, R.string.import_complete_toast, Toast.LENGTH_SHORT)
|
||||
Toast.makeText(applicationContext, R.string.import_complete_toast, LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
|
||||
return Result.success()
|
||||
}
|
||||
|
||||
private suspend fun loadSubscriptionsFromInput(input: SubscriptionImportInput): List<SubscriptionItem> {
|
||||
private suspend fun loadSubscriptionsFromInput(
|
||||
input: SubscriptionImportInput
|
||||
): List<SubscriptionItem> {
|
||||
return withContext(Dispatchers.IO) {
|
||||
when (input) {
|
||||
is SubscriptionImportInput.ChannelUrlMode ->
|
||||
@@ -119,16 +142,18 @@ class SubscriptionImportWorker(
|
||||
.map { SubscriptionItem(it.serviceId, it.url, it.name) }
|
||||
|
||||
is SubscriptionImportInput.InputStreamMode ->
|
||||
applicationContext.contentResolver.openInputStream(input.url.toUri())?.use {
|
||||
val contentType =
|
||||
MimeTypeMap.getFileExtensionFromUrl(input.url).ifEmpty { DEFAULT_MIME }
|
||||
NewPipe.getService(input.serviceId).subscriptionExtractor
|
||||
.fromInputStream(it, contentType)
|
||||
.map { SubscriptionItem(it.serviceId, it.url, it.name) }
|
||||
StoredFileHelper(context, input.url.toUri(), DEFAULT_MIME).let { fileHelper ->
|
||||
SharpInputStream(fileHelper.getStream()).use { stream ->
|
||||
val contentType = getInputStreamContentType(fileHelper)
|
||||
|
||||
NewPipe.getService(input.serviceId).subscriptionExtractor
|
||||
.fromInputStream(stream, contentType)
|
||||
.map { SubscriptionItem(it.serviceId, it.url, it.name) }
|
||||
}
|
||||
}
|
||||
|
||||
is SubscriptionImportInput.PreviousExportMode ->
|
||||
applicationContext.contentResolver.openInputStream(input.url.toUri())?.use {
|
||||
context.contentResolver.openInputStream(input.url.toUri())?.use {
|
||||
ImportExportJsonHelper.readFrom(it)
|
||||
}
|
||||
} ?: emptyList()
|
||||
@@ -137,35 +162,36 @@ class SubscriptionImportWorker(
|
||||
|
||||
private fun createForegroundInfo(
|
||||
title: String,
|
||||
text: String?,
|
||||
currentProgress: Int,
|
||||
maxProgress: Int
|
||||
text: String? = null,
|
||||
progress: Int = 0
|
||||
): ForegroundInfo {
|
||||
val notification =
|
||||
NotificationCompat
|
||||
.Builder(applicationContext, NOTIFICATION_CHANNEL_ID)
|
||||
.setSmallIcon(R.drawable.ic_newpipe_triangle_white)
|
||||
.setOngoing(true)
|
||||
.setProgress(maxProgress, currentProgress, currentProgress == 0)
|
||||
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||
.setForegroundServiceBehavior(NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE)
|
||||
.setContentTitle(title)
|
||||
.setContentText(text)
|
||||
.addAction(
|
||||
R.drawable.ic_close,
|
||||
applicationContext.getString(R.string.cancel),
|
||||
WorkManager.getInstance(applicationContext).createCancelPendingIntent(id)
|
||||
).apply {
|
||||
if (currentProgress > 0 && maxProgress > 0) {
|
||||
val progressText = "$currentProgress/$maxProgress"
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
setSubText(progressText)
|
||||
} else {
|
||||
setContentInfo(progressText)
|
||||
}
|
||||
val maxProgress = subscriptions.size
|
||||
val notification = NotificationCompat
|
||||
.Builder(context, NOTIFICATION_CHANNEL_ID)
|
||||
.setSmallIcon(R.drawable.ic_newpipe_triangle_white)
|
||||
.setOngoing(true)
|
||||
.setProgress(maxProgress, progress, progress == 0)
|
||||
.setForegroundServiceBehavior(NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE)
|
||||
.setContentTitle(title)
|
||||
.setContentText(text)
|
||||
.addAction(
|
||||
R.drawable.ic_close,
|
||||
context.getString(R.string.cancel),
|
||||
WorkManager.getInstance(context).createCancelPendingIntent(id)
|
||||
).apply {
|
||||
if (progress > 0 && maxProgress > 0) {
|
||||
val progressText = "$progress/$maxProgress"
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
setSubText(progressText)
|
||||
} else {
|
||||
setContentInfo(progressText)
|
||||
}
|
||||
}.build()
|
||||
val serviceType = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC else 0
|
||||
}
|
||||
}.build()
|
||||
val serviceType = when {
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||
else -> 0
|
||||
}
|
||||
|
||||
return ForegroundInfo(NOTIFICATION_ID, notification, serviceType)
|
||||
}
|
||||
@@ -181,6 +207,20 @@ class SubscriptionImportWorker(
|
||||
private const val BUFFER_COUNT_BEFORE_INSERT = 50
|
||||
|
||||
const val WORK_NAME = "SubscriptionImportWorker"
|
||||
|
||||
internal fun getInputStreamContentType(fileHelper: StoredFileHelper): String {
|
||||
val contentType = fileHelper.getType()
|
||||
if (!contentType.isNullOrEmpty() && contentType != DEFAULT_MIME) {
|
||||
return contentType
|
||||
}
|
||||
|
||||
val fileName = fileHelper.getName() ?: return DEFAULT_MIME
|
||||
val pointIndex = fileName.lastIndexOf('.')
|
||||
return when {
|
||||
pointIndex == -1 || pointIndex >= fileName.length - 1 -> DEFAULT_MIME
|
||||
else -> fileName.substring(pointIndex + 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,8 +250,7 @@ sealed class SubscriptionImportInput : Parcelable {
|
||||
private const val PREVIOUS_EXPORT_MODE = 2
|
||||
|
||||
fun fromData(data: Data): SubscriptionImportInput {
|
||||
val mode = data.getInt("mode", PREVIOUS_EXPORT_MODE)
|
||||
when (mode) {
|
||||
when (val mode = data.getInt("mode", PREVIOUS_EXPORT_MODE)) {
|
||||
CHANNEL_URL_MODE -> {
|
||||
val serviceId = data.getInt("service_id", -1)
|
||||
if (serviceId == -1) {
|
||||
|
||||
@@ -634,6 +634,14 @@ public final class Player implements PlaybackListener, Listener {
|
||||
simpleExoPlayer.setWakeMode(C.WAKE_MODE_NETWORK);
|
||||
simpleExoPlayer.setHandleAudioBecomingNoisy(true);
|
||||
|
||||
// Enable ExoPlayer automatic audio focus management
|
||||
simpleExoPlayer.setAudioAttributes(
|
||||
new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
|
||||
.setUsage(C.USAGE_MEDIA)
|
||||
.setContentType(C.AUDIO_CONTENT_TYPE_MUSIC)
|
||||
.build(),
|
||||
true);
|
||||
|
||||
audioReactor = new AudioReactor(context, simpleExoPlayer);
|
||||
|
||||
registerBroadcastReceiver();
|
||||
@@ -1173,10 +1181,6 @@ public final class Player implements PlaybackListener, Listener {
|
||||
}
|
||||
|
||||
UIs.call(PlayerUi::onPrepared);
|
||||
|
||||
if (playWhenReady && !isMuted()) {
|
||||
audioReactor.requestAudioFocus();
|
||||
}
|
||||
}
|
||||
|
||||
private void onBlocked() {
|
||||
@@ -1324,11 +1328,18 @@ public final class Player implements PlaybackListener, Listener {
|
||||
public void toggleMute() {
|
||||
final boolean wasMuted = isMuted();
|
||||
simpleExoPlayer.setVolume(wasMuted ? 1 : 0);
|
||||
if (wasMuted) {
|
||||
audioReactor.requestAudioFocus();
|
||||
} else {
|
||||
audioReactor.abandonAudioFocus();
|
||||
}
|
||||
|
||||
// Update audio focus
|
||||
// When wasMuted is true, we want to play sound, so ExoPlayer has to handle audio focus in
|
||||
// this case; when wasMuted is false, we don't want to play sound, so no audio focus should
|
||||
// be done
|
||||
simpleExoPlayer.setAudioAttributes(
|
||||
new com.google.android.exoplayer2.audio.AudioAttributes.Builder()
|
||||
.setUsage(C.USAGE_MEDIA)
|
||||
.setContentType(C.AUDIO_CONTENT_TYPE_MUSIC)
|
||||
.build(),
|
||||
wasMuted);
|
||||
|
||||
UIs.call(playerUi -> playerUi.onMuteUnmuteChanged(!wasMuted));
|
||||
notifyPlaybackUpdateToListeners();
|
||||
}
|
||||
@@ -1740,10 +1751,6 @@ public final class Player implements PlaybackListener, Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isMuted()) {
|
||||
audioReactor.requestAudioFocus();
|
||||
}
|
||||
|
||||
if (currentState == STATE_COMPLETED) {
|
||||
if (playQueue.getIndex() == 0) {
|
||||
seekToDefault();
|
||||
@@ -1752,6 +1759,12 @@ public final class Player implements PlaybackListener, Listener {
|
||||
}
|
||||
}
|
||||
|
||||
if (isStopped()) {
|
||||
// Some phones suspend a paused player after 10 minutes. This causes the player to
|
||||
// enter STATE_IDLE, causing playback to fail. So we try to recover from that here.
|
||||
reloadPlayQueueManager();
|
||||
}
|
||||
|
||||
simpleExoPlayer.play();
|
||||
saveStreamProgressState();
|
||||
}
|
||||
@@ -1764,7 +1777,6 @@ public final class Player implements PlaybackListener, Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
audioReactor.abandonAudioFocus();
|
||||
simpleExoPlayer.pause();
|
||||
saveStreamProgressState();
|
||||
}
|
||||
@@ -1861,7 +1873,7 @@ public final class Player implements PlaybackListener, Listener {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doOnError(e -> {
|
||||
if (DEBUG) {
|
||||
e.printStackTrace();
|
||||
Log.e(TAG, "Failed to save stream progress state", e);
|
||||
}
|
||||
})
|
||||
.onErrorComplete()
|
||||
|
||||
@@ -12,12 +12,9 @@ import static com.google.android.exoplayer2.upstream.DefaultHttpDataSource.DEFAU
|
||||
import static com.google.android.exoplayer2.upstream.HttpUtil.buildRangeRequestHeader;
|
||||
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
|
||||
import static com.google.android.exoplayer2.util.Util.castNonNull;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getAndroidUserAgent;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getIosUserAgent;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isAndroidStreamingUrl;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isIosStreamingUrl;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getVisionOsUserAgent;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isVisionOsStreamingUrl;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isWebStreamingUrl;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isWebEmbeddedPlayerStreamingUrl;
|
||||
import static java.lang.Math.min;
|
||||
|
||||
import android.net.Uri;
|
||||
@@ -659,8 +656,7 @@ public final class YoutubeHttpDataSource extends BaseDataSource implements HttpD
|
||||
}
|
||||
}
|
||||
|
||||
if (isWebStreamingUrl(requestUrl)
|
||||
|| isWebEmbeddedPlayerStreamingUrl(requestUrl)) {
|
||||
if (isWebStreamingUrl(requestUrl)) {
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.ORIGIN, YOUTUBE_BASE_URL);
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.REFERER, YOUTUBE_BASE_URL);
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.SEC_FETCH_DEST, "empty");
|
||||
@@ -670,16 +666,9 @@ public final class YoutubeHttpDataSource extends BaseDataSource implements HttpD
|
||||
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.TE, "trailers");
|
||||
|
||||
final boolean isAndroidStreamingUrl = isAndroidStreamingUrl(requestUrl);
|
||||
final boolean isIosStreamingUrl = isIosStreamingUrl(requestUrl);
|
||||
if (isAndroidStreamingUrl) {
|
||||
// Improvement which may be done: find the content country used to request YouTube
|
||||
// contents to add it in the user agent instead of using the default
|
||||
if (isVisionOsStreamingUrl(requestUrl)) {
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.USER_AGENT,
|
||||
getAndroidUserAgent(null));
|
||||
} else if (isIosStreamingUrl) {
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.USER_AGENT,
|
||||
getIosUserAgent(null));
|
||||
getVisionOsUserAgent(null));
|
||||
} else {
|
||||
// non-mobile user agent
|
||||
httpURLConnection.setRequestProperty(HttpHeaders.USER_AGENT, DownloaderImpl.USER_AGENT);
|
||||
|
||||
@@ -1,54 +1,34 @@
|
||||
package org.schabi.newpipe.player.helper;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.media.AudioManager;
|
||||
import android.media.audiofx.AudioEffect;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.media.AudioFocusRequestCompat;
|
||||
import androidx.media.AudioManagerCompat;
|
||||
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.analytics.AnalyticsListener;
|
||||
|
||||
public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, AnalyticsListener {
|
||||
public class AudioReactor implements AnalyticsListener {
|
||||
|
||||
private static final String TAG = "AudioFocusReactor";
|
||||
|
||||
private static final int DUCK_DURATION = 1500;
|
||||
private static final float DUCK_AUDIO_TO = .2f;
|
||||
|
||||
private static final int FOCUS_GAIN_TYPE = AudioManagerCompat.AUDIOFOCUS_GAIN;
|
||||
private static final int STREAM_TYPE = AudioManager.STREAM_MUSIC;
|
||||
|
||||
private final ExoPlayer player;
|
||||
private final Context context;
|
||||
private final AudioManager audioManager;
|
||||
|
||||
private final AudioFocusRequestCompat request;
|
||||
|
||||
public AudioReactor(@NonNull final Context context,
|
||||
@NonNull final ExoPlayer player) {
|
||||
this.player = player;
|
||||
this.context = context;
|
||||
this.audioManager = ContextCompat.getSystemService(context, AudioManager.class);
|
||||
player.addAnalyticsListener(this);
|
||||
|
||||
request = new AudioFocusRequestCompat.Builder(FOCUS_GAIN_TYPE)
|
||||
//.setAcceptsDelayedFocusGain(true)
|
||||
.setWillPauseWhenDucked(true)
|
||||
.setOnAudioFocusChangeListener(this)
|
||||
.build();
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
abandonAudioFocus();
|
||||
player.removeAnalyticsListener(this);
|
||||
notifyAudioSessionUpdate(false, player.getAudioSessionId());
|
||||
}
|
||||
@@ -57,14 +37,6 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An
|
||||
// Audio Manager
|
||||
//////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
public void requestAudioFocus() {
|
||||
AudioManagerCompat.requestAudioFocus(audioManager, request);
|
||||
}
|
||||
|
||||
public void abandonAudioFocus() {
|
||||
AudioManagerCompat.abandonAudioFocusRequest(audioManager, request);
|
||||
}
|
||||
|
||||
public int getVolume() {
|
||||
return audioManager.getStreamVolume(STREAM_TYPE);
|
||||
}
|
||||
@@ -77,73 +49,6 @@ public class AudioReactor implements AudioManager.OnAudioFocusChangeListener, An
|
||||
return AudioManagerCompat.getStreamMaxVolume(audioManager, STREAM_TYPE);
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////////////////
|
||||
// AudioFocus
|
||||
//////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
@Override
|
||||
public void onAudioFocusChange(final int focusChange) {
|
||||
Log.d(TAG, "onAudioFocusChange() called with: focusChange = [" + focusChange + "]");
|
||||
switch (focusChange) {
|
||||
case AudioManager.AUDIOFOCUS_GAIN:
|
||||
onAudioFocusGain();
|
||||
break;
|
||||
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
|
||||
onAudioFocusLossCanDuck();
|
||||
break;
|
||||
case AudioManager.AUDIOFOCUS_LOSS:
|
||||
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
|
||||
onAudioFocusLoss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void onAudioFocusGain() {
|
||||
Log.d(TAG, "onAudioFocusGain() called");
|
||||
player.setVolume(DUCK_AUDIO_TO);
|
||||
animateAudio(DUCK_AUDIO_TO, 1.0f);
|
||||
|
||||
if (PlayerHelper.isResumeAfterAudioFocusGain(context)) {
|
||||
player.play();
|
||||
}
|
||||
}
|
||||
|
||||
private void onAudioFocusLoss() {
|
||||
Log.d(TAG, "onAudioFocusLoss() called");
|
||||
player.pause();
|
||||
}
|
||||
|
||||
private void onAudioFocusLossCanDuck() {
|
||||
Log.d(TAG, "onAudioFocusLossCanDuck() called");
|
||||
// Set the volume to 1/10 on ducking
|
||||
player.setVolume(DUCK_AUDIO_TO);
|
||||
}
|
||||
|
||||
private void animateAudio(final float from, final float to) {
|
||||
final ValueAnimator valueAnimator = new ValueAnimator();
|
||||
valueAnimator.setFloatValues(from, to);
|
||||
valueAnimator.setDuration(AudioReactor.DUCK_DURATION);
|
||||
valueAnimator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationStart(final Animator animation) {
|
||||
player.setVolume(from);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(final Animator animation) {
|
||||
player.setVolume(to);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(final Animator animation) {
|
||||
player.setVolume(to);
|
||||
}
|
||||
});
|
||||
valueAnimator.addUpdateListener(animation ->
|
||||
player.setVolume(((float) animation.getAnimatedValue())));
|
||||
valueAnimator.start();
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////////////////
|
||||
// Audio Processing
|
||||
//////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2016-2026 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.player.playqueue;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -22,30 +27,6 @@ import java.util.List;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 01.08.16.
|
||||
* <p>
|
||||
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
|
||||
* InfoListAdapter.java is part of NewPipe.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* </p>
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
* </p>
|
||||
*/
|
||||
|
||||
public class PlayQueueAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
private static final String TAG = PlayQueueAdapter.class.toString();
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2016-2021 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.player.playqueue;
|
||||
|
||||
import android.view.View;
|
||||
@@ -8,30 +13,6 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.schabi.newpipe.R;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 01.08.16.
|
||||
* <p>
|
||||
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
|
||||
* StreamInfoItemHolder.java is part of NewPipe.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* </p>
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
* </p>
|
||||
*/
|
||||
|
||||
public class PlayQueueItemHolder extends RecyclerView.ViewHolder {
|
||||
public final TextView itemVideoTitleView;
|
||||
public final TextView itemDurationView;
|
||||
|
||||
+2
-2
@@ -134,7 +134,7 @@ public class SeekbarPreviewThumbnailHolder {
|
||||
// Get the bounds where the frame is found
|
||||
final int[] bounds = frameset.getFrameBoundsAt(currentPosMs);
|
||||
generatedDataForUrl.put(currentPosMs,
|
||||
createBitmapSupplier(srcBitMap, bounds, frameset));
|
||||
createBitmapSupplier(srcBitMap, bounds, frameset));
|
||||
|
||||
currentPosMs += frameset.getDurationPerFrame();
|
||||
pos++;
|
||||
@@ -192,7 +192,7 @@ public class SeekbarPreviewThumbnailHolder {
|
||||
// Reference: https://stackoverflow.com/a/23683075 + first comment
|
||||
// Fixes: https://github.com/TeamNewPipe/NewPipe/issues/11461
|
||||
return cutOutBitmap == srcBitMap
|
||||
? cutOutBitmap.copy(cutOutBitmap.getConfig(), true) : cutOutBitmap;
|
||||
? cutOutBitmap.copy(Bitmap.Config.ARGB_8888, true) : cutOutBitmap;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
@@ -400,6 +399,10 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa
|
||||
|
||||
// #6825 - Ensure that the shuffle-button is in the correct state on the UI
|
||||
setShuffleButton(player.getExoPlayer().getShuffleModeEnabled());
|
||||
|
||||
// Set repeat button to the correct UI state
|
||||
setRepeatButton(player.getExoPlayer().getRepeatMode());
|
||||
|
||||
}
|
||||
|
||||
public abstract void removeViewFromParent();
|
||||
@@ -983,6 +986,18 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa
|
||||
private void setShuffleButton(final boolean shuffled) {
|
||||
binding.shuffleButton.setImageAlpha(shuffled ? 255 : 77);
|
||||
}
|
||||
|
||||
private void setRepeatButton(final int repeatMode) {
|
||||
final int resId = switch (repeatMode) {
|
||||
case REPEAT_MODE_ALL
|
||||
-> com.google.android.exoplayer2.ui.R.drawable.exo_controls_repeat_all;
|
||||
case REPEAT_MODE_ONE
|
||||
-> com.google.android.exoplayer2.ui.R.drawable.exo_controls_repeat_one;
|
||||
default -> com.google.android.exoplayer2.ui.R.drawable.exo_controls_repeat_off;
|
||||
};
|
||||
binding.repeatButton.setImageResource(resId);
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
|
||||
@@ -1584,19 +1599,15 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa
|
||||
// make sure there is nothing left over from previous calls
|
||||
clearVideoSurface();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // >=API23
|
||||
surfaceHolderCallback = new SurfaceHolderCallback(context, player.getExoPlayer());
|
||||
binding.surfaceView.getHolder().addCallback(surfaceHolderCallback);
|
||||
surfaceHolderCallback = new SurfaceHolderCallback(context, player.getExoPlayer());
|
||||
binding.surfaceView.getHolder().addCallback(surfaceHolderCallback);
|
||||
|
||||
// ensure player is using an unreleased surface, which the surfaceView might not be
|
||||
// when starting playback on background or during player switching
|
||||
if (binding.surfaceView.getHolder().getSurface().isValid()) {
|
||||
// initially set the surface manually otherwise
|
||||
// onRenderedFirstFrame() will not be called
|
||||
player.getExoPlayer().setVideoSurfaceHolder(binding.surfaceView.getHolder());
|
||||
}
|
||||
} else {
|
||||
player.getExoPlayer().setVideoSurfaceView(binding.surfaceView);
|
||||
// ensure player is using an unreleased surface, which the surfaceView might not be
|
||||
// when starting playback on background or during player switching
|
||||
if (binding.surfaceView.getHolder().getSurface().isValid()) {
|
||||
// initially set the surface manually otherwise
|
||||
// onRenderedFirstFrame() will not be called
|
||||
player.getExoPlayer().setVideoSurfaceHolder(binding.surfaceView.getHolder());
|
||||
}
|
||||
|
||||
surfaceIsSetup = true;
|
||||
@@ -1604,8 +1615,7 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa
|
||||
}
|
||||
|
||||
private void clearVideoSurface() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M // >=API23
|
||||
&& surfaceHolderCallback != null) {
|
||||
if (surfaceHolderCallback != null) {
|
||||
binding.surfaceView.getHolder().removeCallback(surfaceHolderCallback);
|
||||
surfaceHolderCallback.release();
|
||||
surfaceHolderCallback = null;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017-2025 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.settings;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
@@ -30,27 +35,6 @@ import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 26.09.17.
|
||||
* SelectChannelFragment.java is part of NewPipe.
|
||||
* <p>
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* </p>
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
* </p>
|
||||
*/
|
||||
|
||||
public class SelectChannelFragment extends DialogFragment {
|
||||
|
||||
private OnSelectedListener onSelectedListener = null;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017-2025 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.settings;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
@@ -30,27 +35,6 @@ import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 26.09.17.
|
||||
* SelectChannelFragment.java is part of NewPipe.
|
||||
* <p>
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* </p>
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
* </p>
|
||||
*/
|
||||
|
||||
public class SelectFeedGroupFragment extends DialogFragment {
|
||||
|
||||
private OnSelectedListener onSelectedListener = null;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017-2022 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.settings;
|
||||
|
||||
import android.os.Bundle;
|
||||
@@ -25,27 +30,6 @@ import org.schabi.newpipe.util.ThemeHelper;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 09.10.17.
|
||||
* SelectKioskFragment.java is part of NewPipe.
|
||||
* <p>
|
||||
* NewPipe is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* </p>
|
||||
* <p>
|
||||
* NewPipe is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* </p>
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||
* </p>
|
||||
*/
|
||||
|
||||
public class SelectKioskFragment extends DialogFragment {
|
||||
private SelectKioskAdapter selectKioskAdapter = null;
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.view.SoftwareKeyboardControllerCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.preference.Preference;
|
||||
@@ -34,7 +35,6 @@ import org.schabi.newpipe.settings.preferencesearch.PreferenceSearchResultHighli
|
||||
import org.schabi.newpipe.settings.preferencesearch.PreferenceSearchResultListener;
|
||||
import org.schabi.newpipe.settings.preferencesearch.PreferenceSearcher;
|
||||
import org.schabi.newpipe.util.DeviceUtils;
|
||||
import org.schabi.newpipe.util.KeyboardUtil;
|
||||
import org.schabi.newpipe.util.ReleaseVersionUtil;
|
||||
import org.schabi.newpipe.util.ThemeHelper;
|
||||
import org.schabi.newpipe.views.FocusOverlayView;
|
||||
@@ -302,6 +302,7 @@ public class SettingsActivity extends AppCompatActivity implements
|
||||
menuSearchItem.setVisible(!active);
|
||||
}
|
||||
|
||||
final var keyboardController = new SoftwareKeyboardControllerCompat(searchEditText);
|
||||
if (active) {
|
||||
getSupportFragmentManager()
|
||||
.beginTransaction()
|
||||
@@ -309,7 +310,7 @@ public class SettingsActivity extends AppCompatActivity implements
|
||||
.addToBackStack(PreferenceSearchFragment.NAME)
|
||||
.commit();
|
||||
|
||||
KeyboardUtil.showKeyboard(this, searchEditText);
|
||||
keyboardController.show();
|
||||
} else if (searchFragment != null) {
|
||||
hideSearchFragment();
|
||||
getSupportFragmentManager()
|
||||
@@ -317,7 +318,8 @@ public class SettingsActivity extends AppCompatActivity implements
|
||||
PreferenceSearchFragment.NAME,
|
||||
FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
||||
|
||||
KeyboardUtil.hideKeyboard(this, searchEditText);
|
||||
keyboardController.hide();
|
||||
searchEditText.clearFocus();
|
||||
}
|
||||
|
||||
resetSearchText();
|
||||
|
||||
@@ -2,7 +2,6 @@ package org.schabi.newpipe.settings;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.text.format.DateUtils;
|
||||
@@ -33,8 +32,7 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment {
|
||||
// on M and above, if user chooses to minimise to popup player on exit
|
||||
// and the app doesn't have display over other apps permission,
|
||||
// show a snackbar to let the user give permission
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
&& getString(R.string.minimize_on_exit_key).equals(key)) {
|
||||
if (getString(R.string.minimize_on_exit_key).equals(key)) {
|
||||
final String newSetting = sharedPreferences.getString(key, null);
|
||||
if (newSetting != null
|
||||
&& newSetting.equals(getString(R.string.minimize_on_exit_popup_key))
|
||||
|
||||
@@ -221,6 +221,25 @@ public final class SettingMigrations {
|
||||
}
|
||||
};
|
||||
|
||||
private static final Migration MIGRATION_8_9 = new Migration(8, 9) {
|
||||
@Override
|
||||
protected void migrate(@NonNull final Context context) {
|
||||
// Support for courses and podcasts tabs were added.
|
||||
// If the user changed the displayed tabs the new ones need to be added to the list
|
||||
// of displayed tabs.
|
||||
final Set<String> enabledTabs = sp.getStringSet(context.getString(
|
||||
R.string.show_channel_tabs_key), null);
|
||||
if (enabledTabs != null) {
|
||||
enabledTabs.add(context.getString(R.string.show_channel_tabs_courses));
|
||||
enabledTabs.add(context.getString(R.string.show_channel_tabs_podcasts));
|
||||
sp.edit()
|
||||
.putStringSet(context.getString(R.string.show_channel_tabs_key),
|
||||
enabledTabs)
|
||||
.apply();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* List of all implemented migrations.
|
||||
* <p>
|
||||
@@ -236,12 +255,13 @@ public final class SettingMigrations {
|
||||
MIGRATION_5_6,
|
||||
MIGRATION_6_7,
|
||||
MIGRATION_7_8,
|
||||
MIGRATION_8_9,
|
||||
};
|
||||
|
||||
/**
|
||||
* Version number for preferences. Must be incremented every time a migration is necessary.
|
||||
*/
|
||||
private static final int VERSION = 8;
|
||||
private static final int VERSION = 9;
|
||||
|
||||
|
||||
static void runMigrationsIfNeeded(@NonNull final Context context) {
|
||||
|
||||
@@ -27,6 +27,8 @@ public final class ChannelTabHelper {
|
||||
case ChannelTabs.LIKES:
|
||||
case ChannelTabs.SHORTS:
|
||||
case ChannelTabs.LIVESTREAMS:
|
||||
case ChannelTabs.PODCASTS:
|
||||
case ChannelTabs.COURSES:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -65,6 +67,10 @@ public final class ChannelTabHelper {
|
||||
return R.string.show_channel_tabs_albums;
|
||||
case ChannelTabs.LIKES:
|
||||
return R.string.show_channel_tabs_likes;
|
||||
case ChannelTabs.PODCASTS:
|
||||
return R.string.show_channel_tabs_podcasts;
|
||||
case ChannelTabs.COURSES:
|
||||
return R.string.show_channel_tabs_courses;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
@@ -83,6 +89,10 @@ public final class ChannelTabHelper {
|
||||
return R.string.fetch_channel_tabs_livestreams;
|
||||
case ChannelTabs.LIKES:
|
||||
return R.string.fetch_channel_tabs_likes;
|
||||
case ChannelTabs.PODCASTS:
|
||||
return R.string.fetch_channel_tabs_podcasts;
|
||||
case ChannelTabs.COURSES:
|
||||
return R.string.fetch_channel_tabs_courses;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
@@ -107,6 +117,10 @@ public final class ChannelTabHelper {
|
||||
return R.string.channel_tab_albums;
|
||||
case ChannelTabs.LIKES:
|
||||
return R.string.channel_tab_likes;
|
||||
case ChannelTabs.PODCASTS:
|
||||
return R.string.channel_tab_podcasts;
|
||||
case ChannelTabs.COURSES:
|
||||
return R.string.channel_tab_courses;
|
||||
default:
|
||||
return R.string.unknown_content;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public final class DeviceUtils {
|
||||
* support media tunneling to match the <strong>upcoming</strong> version code.</p>
|
||||
* @see #shouldSupportMediaTunneling()
|
||||
*/
|
||||
public static final int MEDIA_TUNNELING_DEVICE_BLACKLIST_VERSION = 994;
|
||||
public static final int MEDIA_TUNNELING_DEVICE_BLACKLIST_VERSION = 1015;
|
||||
|
||||
// region: devices not supporting media tunneling / media tunneling blacklist
|
||||
/**
|
||||
@@ -120,6 +120,16 @@ public final class DeviceUtils {
|
||||
* #10122</a></p>
|
||||
*/
|
||||
private static final boolean HMB9213NW = Build.DEVICE.equals("HMB9213NW");
|
||||
/**
|
||||
* <p>JMGO N1S 4K.</p>
|
||||
* <p>Blacklist reason: fullscreen crash</p>
|
||||
*/
|
||||
private static final boolean LONAVLA = Build.DEVICE.equals("lonavla");
|
||||
/**
|
||||
* <p>TCL 65Q651G.</p>
|
||||
* <p>Blacklist reason: fullscreen crash</p>
|
||||
*/
|
||||
private static final boolean G10 = Build.DEVICE.equals("G10");
|
||||
// endregion
|
||||
|
||||
private DeviceUtils() {
|
||||
@@ -334,7 +344,9 @@ public final class DeviceUtils {
|
||||
&& !BRAVIA_ATV3_4K
|
||||
&& !PH7M_EU_5596
|
||||
&& !TX_50JXW834
|
||||
&& !HMB9213NW;
|
||||
&& !HMB9213NW
|
||||
&& !LONAVLA
|
||||
&& !G10;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -315,7 +315,7 @@ public final class ExtractorHelper {
|
||||
.append(Localization.DOT_SEPARATOR);
|
||||
}
|
||||
|
||||
String content = metaInfo.getContent().getContent().trim();
|
||||
String content = metaInfo.getContent().content().trim();
|
||||
if (content.endsWith(".")) {
|
||||
content = content.substring(0, content.length() - 1); // remove . at end
|
||||
}
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
package org.schabi.newpipe.util;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.EditText;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
/**
|
||||
* Utility class for the Android keyboard.
|
||||
* <p>
|
||||
* See also <a href="https://stackoverflow.com/q/1109022">https://stackoverflow.com/q/1109022</a>
|
||||
* </p>
|
||||
*/
|
||||
public final class KeyboardUtil {
|
||||
private KeyboardUtil() {
|
||||
}
|
||||
|
||||
public static void showKeyboard(final Activity activity, final EditText editText) {
|
||||
if (activity == null || editText == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (editText.requestFocus()) {
|
||||
final InputMethodManager imm = ContextCompat.getSystemService(activity,
|
||||
InputMethodManager.class);
|
||||
if (!imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED)) {
|
||||
/*
|
||||
* Sometimes the keyboard can't be shown because Android's ImeFocusController is in
|
||||
* a incorrect state e.g. when animations are disabled or the unfocus event of the
|
||||
* previous view arrives in the wrong moment (see #7647 for details).
|
||||
* The invalid state can be fixed by to re-focusing the editText.
|
||||
*/
|
||||
editText.clearFocus();
|
||||
editText.requestFocus();
|
||||
|
||||
// Try again
|
||||
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void hideKeyboard(final Activity activity, final EditText editText) {
|
||||
if (activity == null || editText == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final InputMethodManager imm = ContextCompat.getSystemService(activity,
|
||||
InputMethodManager.class);
|
||||
imm.hideSoftInputFromWindow(editText.getWindowToken(),
|
||||
InputMethodManager.HIDE_NOT_ALWAYS);
|
||||
|
||||
editText.clearFocus();
|
||||
}
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public final class ListHelper {
|
||||
/**
|
||||
* List of supported YouTube Itag ids.
|
||||
* The original order is kept.
|
||||
* @see {@link org.schabi.newpipe.extractor.services.youtube.ItagItem#ITAG_LIST}
|
||||
* @see org.schabi.newpipe.extractor.services.youtube.ItagItem
|
||||
*/
|
||||
private static final List<Integer> SUPPORTED_ITAG_IDS =
|
||||
List.of(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.schabi.newpipe.util;
|
||||
|
||||
import static android.text.TextUtils.isEmpty;
|
||||
import android.text.TextUtils;
|
||||
import static org.schabi.newpipe.util.ListHelper.getUrlAndNonTorrentStreams;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
@@ -24,11 +25,13 @@ import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.jakewharton.processphoenix.ProcessPhoenix;
|
||||
|
||||
import net.newpipe.app.extensions.ContextKt;
|
||||
import net.newpipe.app.navigation.Destination;
|
||||
|
||||
import org.schabi.newpipe.MainActivity;
|
||||
import org.schabi.newpipe.NewPipeDatabase;
|
||||
import org.schabi.newpipe.R;
|
||||
import org.schabi.newpipe.RouterActivity;
|
||||
import org.schabi.newpipe.about.AboutActivity;
|
||||
import org.schabi.newpipe.database.feed.model.FeedGroupEntity;
|
||||
import org.schabi.newpipe.download.DownloadActivity;
|
||||
import org.schabi.newpipe.error.ErrorUtil;
|
||||
@@ -430,13 +433,16 @@ public final class NavigationHelper {
|
||||
final RunnableWithVideoDetailFragment onVideoDetailFragmentReady = detailFragment -> {
|
||||
expandMainPlayer(detailFragment.requireActivity());
|
||||
detailFragment.setAutoPlay(autoPlay);
|
||||
if (switchingPlayers) {
|
||||
if (switchingPlayers && TextUtils.equals(detailFragment.getUrl(), url)) {
|
||||
// Situation when user switches from players to main player. All needed data is
|
||||
// here, we can start watching (assuming newQueue equals playQueue).
|
||||
// Starting directly in fullscreen if the previous player type was popup.
|
||||
detailFragment.openVideoPlayer(playerType == PlayerType.POPUP
|
||||
|| PlayerHelper.isStartMainPlayerFullscreenEnabled(context));
|
||||
} else {
|
||||
if (switchingPlayers && playerType == PlayerType.POPUP) {
|
||||
detailFragment.setForceFullscreen(true);
|
||||
}
|
||||
detailFragment.selectAndLoadVideo(serviceId, url, title, playQueue);
|
||||
}
|
||||
detailFragment.scrollToTop();
|
||||
@@ -678,11 +684,11 @@ public final class NavigationHelper {
|
||||
}
|
||||
|
||||
public static void openAbout(final Context context) {
|
||||
final Intent intent = new Intent(context, AboutActivity.class);
|
||||
context.startActivity(intent);
|
||||
ContextKt.navigateTo(context, Destination.About.INSTANCE);
|
||||
}
|
||||
|
||||
public static void openSettings(final Context context) {
|
||||
// TODO: Replace with "ContextKt.navigateTo(context, Destination.Settings.INSTANCE);" later
|
||||
final Intent intent = new Intent(context, SettingsActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import android.provider.Settings;
|
||||
import android.text.Html;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
@@ -116,7 +115,6 @@ public final class PermissionHelper {
|
||||
* @param context {@link Context}
|
||||
* @return {@link Settings#canDrawOverlays(Context)}
|
||||
**/
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
public static boolean checkSystemAlertWindowPermission(final Context context) {
|
||||
if (!Settings.canDrawOverlays(context)) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
|
||||
@@ -174,8 +172,7 @@ public final class PermissionHelper {
|
||||
* @return whether the popup is enabled
|
||||
*/
|
||||
public static boolean isPopupEnabledElseAsk(final Context context) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|
||||
|| checkSystemAlertWindowPermission(context)) {
|
||||
if (checkSystemAlertWindowPermission(context)) {
|
||||
return true;
|
||||
} else {
|
||||
Toast.makeText(context, R.string.msg_popup_permission, Toast.LENGTH_LONG).show();
|
||||
|
||||
@@ -171,8 +171,7 @@ public final class ThemeHelper {
|
||||
}
|
||||
|
||||
themeName += "." + service.getServiceInfo().getName();
|
||||
final int resourceId = context.getResources()
|
||||
.getIdentifier(themeName, "style", context.getPackageName());
|
||||
final int resourceId = getThemeOrDefault(themeName, baseTheme);
|
||||
|
||||
if (resourceId > 0) {
|
||||
return resourceId;
|
||||
@@ -412,4 +411,26 @@ public final class ThemeHelper {
|
||||
public static int getGridSpanCount(final Context context, final int minWidth) {
|
||||
return Math.max(1, context.getResources().getDisplayMetrics().widthPixels / minWidth);
|
||||
}
|
||||
|
||||
@StyleRes
|
||||
private static int getThemeOrDefault(final String name, @StyleRes final int baseTheme) {
|
||||
return switch (name) {
|
||||
case "LightTheme.YouTube" -> R.style.LightTheme_YouTube;
|
||||
case "DarkTheme.YouTube" -> R.style.DarkTheme_YouTube;
|
||||
case "BlackTheme.YouTube" -> R.style.BlackTheme_YouTube;
|
||||
case "LightTheme.SoundCloud" -> R.style.LightTheme_SoundCloud;
|
||||
case "DarkTheme.SoundCloud" -> R.style.DarkTheme_SoundCloud;
|
||||
case "BlackTheme.SoundCloud" -> R.style.BlackTheme_SoundCloud;
|
||||
case "LightTheme.PeerTube" -> R.style.LightTheme_PeerTube;
|
||||
case "DarkTheme.PeerTube" -> R.style.DarkTheme_PeerTube;
|
||||
case "BlackTheme.PeerTube" -> R.style.BlackTheme_PeerTube;
|
||||
case "LightTheme.media.ccc.de" -> R.style.LightTheme_media_ccc_de;
|
||||
case "DarkTheme.media.ccc.de" -> R.style.DarkTheme_media_ccc_de;
|
||||
case "BlackTheme.media.ccc.de" -> R.style.BlackTheme_media_ccc_de;
|
||||
case "LightTheme.Bandcamp" -> R.style.LightTheme_Bandcamp;
|
||||
case "DarkTheme.Bandcamp" -> R.style.DarkTheme_Bandcamp;
|
||||
case "BlackTheme.Bandcamp" -> R.style.BlackTheme_Bandcamp;
|
||||
default -> baseTheme;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2018-2026 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.util;
|
||||
|
||||
import org.schabi.newpipe.streams.io.SharpInputStream;
|
||||
@@ -16,26 +21,6 @@ import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* Created by Christian Schabesberger on 28.01.18.
|
||||
* Copyright 2018 Christian Schabesberger <chris.schabesberger@mailbox.org>
|
||||
* ZipHelper.java is part of NewPipe
|
||||
* <p>
|
||||
* License: GPL-3.0+
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* <p>
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
public final class ZipHelper {
|
||||
@FunctionalInterface
|
||||
public interface InputStreamConsumer {
|
||||
|
||||
@@ -123,10 +123,4 @@ object PoTokenProviderImpl : PoTokenProvider {
|
||||
|
||||
return PoTokenResult(visitorData, playerPot, streamingPot)
|
||||
}
|
||||
|
||||
override fun getWebEmbedClientPoToken(videoId: String): PoTokenResult? = null
|
||||
|
||||
override fun getAndroidClientPoToken(videoId: String): PoTokenResult? = null
|
||||
|
||||
override fun getIosClientPoToken(videoId: String): PoTokenResult? = null
|
||||
}
|
||||
|
||||
@@ -67,17 +67,18 @@ public final class TextLinkifier {
|
||||
@Nullable final String relatedStreamUrl,
|
||||
@NonNull final CompositeDisposable disposables,
|
||||
@Nullable final Consumer<TextView> onCompletion) {
|
||||
switch (description.getType()) {
|
||||
case Description.HTML:
|
||||
TextLinkifier.fromHtml(textView, description.getContent(), htmlCompatFlag,
|
||||
switch (description.type()) {
|
||||
case Description.Type.HTML:
|
||||
TextLinkifier.fromHtml(textView, description.content(), htmlCompatFlag,
|
||||
relatedInfoService, relatedStreamUrl, disposables, onCompletion);
|
||||
break;
|
||||
case Description.MARKDOWN:
|
||||
TextLinkifier.fromMarkdown(textView, description.getContent(),
|
||||
case Description.Type.MARKDOWN:
|
||||
TextLinkifier.fromMarkdown(textView, description.content(),
|
||||
relatedInfoService, relatedStreamUrl, disposables, onCompletion);
|
||||
break;
|
||||
case Description.PLAIN_TEXT: default:
|
||||
TextLinkifier.fromPlainText(textView, description.getContent(),
|
||||
case Description.Type.PLAIN_TEXT:
|
||||
default:
|
||||
TextLinkifier.fromPlainText(textView, description.content(),
|
||||
relatedInfoService, relatedStreamUrl, disposables, onCompletion);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package us.shandian.giga.ui.adapter;
|
||||
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||
import static android.content.Intent.FLAG_GRANT_PREFIX_URI_PERMISSION;
|
||||
import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
|
||||
import static android.content.Intent.createChooser;
|
||||
@@ -356,7 +357,9 @@ public class MissionAdapter extends Adapter<ViewHolder> implements Handler.Callb
|
||||
viewIntent.addFlags(FLAG_GRANT_PREFIX_URI_PERMISSION);
|
||||
|
||||
Intent chooserIntent = createChooser(viewIntent, null);
|
||||
chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | FLAG_GRANT_READ_URI_PERMISSION);
|
||||
chooserIntent.addFlags(FLAG_ACTIVITY_NEW_TASK);
|
||||
chooserIntent.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
|
||||
chooserIntent.addFlags(FLAG_GRANT_PREFIX_URI_PERMISSION);
|
||||
|
||||
ShareUtils.openIntentInApp(mContext, chooserIntent);
|
||||
}
|
||||
@@ -375,7 +378,7 @@ public class MissionAdapter extends Adapter<ViewHolder> implements Handler.Callb
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.O_MR1) {
|
||||
intent.putExtra(Intent.EXTRA_TITLE, mContext.getString(R.string.share_dialog_title));
|
||||
}
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
|
||||
|
||||
mContext.startActivity(intent);
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context="org.schabi.newpipe.about.AboutActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/appbar_padding_top"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/about_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:theme="@style/ToolbarTheme"
|
||||
app:layout_scrollFlags="scroll|enterAlways" />
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/about_tabLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:tabTextColor="@color/white"
|
||||
app:tabIndicatorColor="@color/white" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:id="@+id/about_viewPager2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
@@ -1,148 +0,0 @@
|
||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="org.schabi.newpipe.about.AboutActivity$AboutFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:contentDescription="@string/app_name"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:text="@string/app_name"
|
||||
android:textAppearance="@android:style/TextAppearance.Large" />
|
||||
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:id="@+id/about_app_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
tools:text="0.9.9" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="5dp"
|
||||
android:text="@string/app_description" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
android:text="@string/faq_title"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/faq_description" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/faq_link"
|
||||
style="@style/Base.Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/faq" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
android:text="@string/contribution_title"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/contribution_encouragement" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/about_github_link"
|
||||
style="@style/Base.Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/view_on_github" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
android:text="@string/donation_title"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/donation_encouragement" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/about_donation_link"
|
||||
style="@style/Base.Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/give_back" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
android:text="@string/website_title"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/website_encouragement" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/about_website_link"
|
||||
style="@style/Base.Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/open_in_browser" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
android:text="@string/privacy_policy_title"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/privacy_policy_encouragement" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/about_privacy_policy_link"
|
||||
style="@style/Base.Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/read_privacy_policy" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
@@ -1,55 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin">
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/activity_vertical_margin"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:text="@string/app_license_title"
|
||||
android:textAppearance="@android:style/TextAppearance.Large" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/activity_horizontal_margin"
|
||||
android:text="@string/app_license" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/licenses_app_read_license"
|
||||
style="@style/Base.Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginRight="@dimen/activity_vertical_margin"
|
||||
android:text="@string/read_full_license" />
|
||||
|
||||
<org.schabi.newpipe.views.NewPipeTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:text="@string/title_licenses"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/licenses_software_components"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" />
|
||||
</LinearLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
@@ -2,4 +2,26 @@
|
||||
<resources>
|
||||
<string name="no_player_found">Geen stream-speler gevind nie. Installeer VLC\?</string>
|
||||
<string name="main_bg_subtitle">Tik op \"Soek\" om aan die gang te kom</string>
|
||||
</resources>
|
||||
<string name="read_full_license">Lees lisensie</string>
|
||||
<string name="faq_title">Gereelde vrae</string>
|
||||
<string name="faq_description">As jy probleme ondergaan met die gebruik van hierdie toepassing, maak seker dat jy deur die algemene vrae gaan!</string>
|
||||
<string name="faq">Bekyk op webtuiste</string>
|
||||
<string name="open_in_browser">Maak oop in Internetblaaier toepassing</string>
|
||||
<string name="done">Gedoen</string>
|
||||
<string name="settings">Instellings</string>
|
||||
<string name="search">Soek</string>
|
||||
<string name="donation_title">Skenk</string>
|
||||
<string name="give_back">Gee terug</string>
|
||||
<string name="website_title">Webtuiste</string>
|
||||
<string name="website_encouragement">Besoek die NewPipe Webtuiste vir meer inligting en nuus.</string>
|
||||
<string name="privacy_policy_title">NewPipe Se Privaatheidsbeleid</string>
|
||||
<string name="read_privacy_policy">Lees privaatheidsbeleid</string>
|
||||
<string name="content">Inhoud</string>
|
||||
<string name="notifications">Kennisgewings</string>
|
||||
<string name="settings_category_video_audio_title">Beeld en klank</string>
|
||||
<string name="settings_category_downloads_title">Laai af</string>
|
||||
<string name="settings_category_appearance_title">Voorkoms</string>
|
||||
<string name="settings_category_history_title">Geskiedenis en kas</string>
|
||||
<string name="settings_category_updates_title">Opdateerings</string>
|
||||
<string name="settings_category_backup_restore_title">Rugsteun en herstel</string>
|
||||
</resources>
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
<string name="download_path_dialog_title">اختر مجلد التنزيل لملفات الفيديو</string>
|
||||
<string name="download_path_summary">يتم تخزين ملفات الفيديو التي تم تنزيلها هنا</string>
|
||||
<string name="download_path_title">مجلد تحميل الفيديو</string>
|
||||
<string name="install">ثبيت</string>
|
||||
<string name="install">تثبيت</string>
|
||||
<string name="kore_not_found">تطبيق Kore غير موجود. هل تريد تثبيته؟</string>
|
||||
<string name="light_theme_title">فاتح</string>
|
||||
<string name="network_error">خطأ في الشبكة</string>
|
||||
<string name="no_player_found">لم يتم العثور على مشغل بث. تود تثبيت VLC؟</string>
|
||||
<string name="open_in_browser">فتح في متصفح الويب</string>
|
||||
<string name="open_in_browser">فتح في المتصفح</string>
|
||||
<string name="play_audio">الصوت</string>
|
||||
<string name="play_with_kodi_title">تشغيل بواسطة كودي</string>
|
||||
<string name="search">البحث</string>
|
||||
<string name="content_language_title">اللغة الإفتراضية للمحتوى</string>
|
||||
<string name="search">بحث</string>
|
||||
<string name="content_language_title">اللغة الافتراضية للمحتوى</string>
|
||||
<string name="settings">الإعدادات</string>
|
||||
<string name="settings_category_appearance_title">المظهر</string>
|
||||
<string name="settings_category_video_audio_title">الفيديو والصوت</string>
|
||||
@@ -53,16 +53,16 @@
|
||||
<string name="controls_background_title">في الخلفية</string>
|
||||
<string name="black_theme_title">أسود</string>
|
||||
<string name="enable_watch_history_title">سجل المشاهدة</string>
|
||||
<string name="settings_category_history_title">سجل المشاهدة و ذاكرة التخزين المؤقت</string>
|
||||
<string name="settings_category_history_title">السجل والملفات المؤقتة</string>
|
||||
<string name="content">المحتوى</string>
|
||||
<string name="downloads">التحميلات</string>
|
||||
<string name="downloads_title">الملفات المحملة</string>
|
||||
<string name="all">الجميع</string>
|
||||
<string name="video">الفيديو</string>
|
||||
<string name="settings_category_downloads_title">التنزيل</string>
|
||||
<string name="tab_about">حول التطبيق & الأسئلة الشائعة</string>
|
||||
<string name="title_activity_history">التاريخ</string>
|
||||
<string name="action_history">التاريخ</string>
|
||||
<string name="settings_category_downloads_title">تنزيل</string>
|
||||
<string name="tab_about">حول و الأسئلة الشائعة</string>
|
||||
<string name="title_activity_history">السجل</string>
|
||||
<string name="action_history">السجل</string>
|
||||
<string name="open_in_popup_mode">فتح في الوضع المنبثق</string>
|
||||
<string name="use_external_video_player_summary">يزيل الصوت في بعض الجودات</string>
|
||||
<string name="channel_unsubscribed">تم إلغاء الاشتراك في القناة</string>
|
||||
@@ -108,8 +108,8 @@
|
||||
<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الخدمات:\nتوقيت جرينتش:\nالحزمة:\nالإصدار:\nOS نسخة:</string>
|
||||
<string name="what_happened_headline">مإذا حدث:</string>
|
||||
<string name="info_labels">مإذا:\nطلب:\nلغة المحتوى:\nبلد المحتوى:\nلغة التطبيق:\nالخدمات:\nتوقيت جرينتش:\nالحزمة:\nالإصدار:\nOS نسخة:</string>
|
||||
<string name="your_comment">تعليقك (باللغة الإنجليزية):</string>
|
||||
<string name="error_details_headline">التفاصيل:</string>
|
||||
<string name="search_no_results">لم يتم العثور على نتائج</string>
|
||||
@@ -118,15 +118,15 @@
|
||||
<string name="retry">إعادة المحاولة</string>
|
||||
<string name="no_subscribers">ليس هناك مشترِكون</string>
|
||||
<plurals name="subscribers">
|
||||
<item quantity="zero">%s مشارك</item>
|
||||
<item quantity="one">%s مشارك</item>
|
||||
<item quantity="two">%s مشاركين</item>
|
||||
<item quantity="few">%s مشترك</item>
|
||||
<item quantity="many">%s مشترك</item>
|
||||
<item quantity="zero">لا مشتركون</item>
|
||||
<item quantity="one">مشترك واحد</item>
|
||||
<item quantity="two">مشتركان</item>
|
||||
<item quantity="few">%s مشتركين</item>
|
||||
<item quantity="many">%s مشتركًا</item>
|
||||
<item quantity="other">%s مشترك</item>
|
||||
</plurals>
|
||||
<string name="no_views">دون مشاهدات</string>
|
||||
<string name="no_videos">لاتوجد فيديوهات</string>
|
||||
<string name="no_views">لا توجد مشاهدات</string>
|
||||
<string name="no_videos">لا توجد فيديوهات</string>
|
||||
<string name="start">ابدأ</string>
|
||||
<string name="pause">إيقاف مؤقت</string>
|
||||
<string name="delete">احذف</string>
|
||||
@@ -137,7 +137,7 @@
|
||||
<string name="msg_error">الخطأ</string>
|
||||
<string name="msg_running">يقوم نيوبايب بالتنزيل</string>
|
||||
<string name="msg_running_detail">انقر للحصول على التفاصيل</string>
|
||||
<string name="msg_wait">يُرجى الإنتظار…</string>
|
||||
<string name="msg_wait">يُرجى الانتظار…</string>
|
||||
<string name="msg_copied">تم نسخه إلى الحافظة</string>
|
||||
<string name="no_available_dir">يرجى تحديد مجلد التنزيل لاحقا في الإعدادات</string>
|
||||
<string name="msg_popup_permission">هذا الإذن مطلوب
|
||||
@@ -147,20 +147,20 @@
|
||||
<string name="settings_file_replacement_character_title">استبدال الحرف</string>
|
||||
<string name="charset_letters_and_digits">الحروف والأرقام</string>
|
||||
<string name="charset_most_special_characters">معظم الأحرف الخاصة</string>
|
||||
<string name="title_activity_about">عن تطبيق نيوپايپ</string>
|
||||
<string name="title_licenses">تراخيص الجهات الخارجية</string>
|
||||
<string name="title_activity_about">حول NewPipe</string>
|
||||
<string name="title_licenses">تراخيص الطرف الثالث</string>
|
||||
<string name="tab_licenses">التراخيص</string>
|
||||
<string name="app_description">تطبيق مجاني خفيف البث على أندرويد.</string>
|
||||
<string name="app_description">بث مباشر خفيف الوزن مجاني على نظام أندرويد.</string>
|
||||
<string name="contribution_title">ساهم</string>
|
||||
<string name="contribution_encouragement">إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل!</string>
|
||||
<string name="contribution_encouragement">سواءً كانت لديك أفكارٌ حول الترجمة، أو تغييرات التصميم، أو تنظيف الكود، أو حتى تغييرات جذرية فيه — فإن المساعدة مرحب بها دائمًا. كلما زاد العمل، كان ذلك أفضل!</string>
|
||||
<string name="view_on_github">عرض على GitHub</string>
|
||||
<string name="donation_title">تبرَّع</string>
|
||||
<string name="donation_encouragement">يتم تطوير NewPipe من قبل متطوعين يقضون وقت فراغهم لتقديم أفضل تجربة لك. حان الوقت لرد المساعدة مع المطورين وجعل NewPipe أكثر و أفضل بينما يستمتعون بفنجان من القهوة.</string>
|
||||
<string name="donation_title">تبرع</string>
|
||||
<string name="donation_encouragement">تم تطوير NewPipe بواسطة متطوعين يقضون أوقات فراغهم لتقديم أفضل تجربة مستخدم لكم. ساهموا في دعم المطورين لجعل NewPipe أفضل بينما يستمتعون بفنجان قهوة.</string>
|
||||
<string name="give_back">رد الجميل</string>
|
||||
<string name="website_title">موقع الويب</string>
|
||||
<string name="website_encouragement">قم بزيارة موقع NewPipe لمزيد من المعلومات والمستجدات.</string>
|
||||
<string name="app_license_title">تراخيص NewPipe</string>
|
||||
<string name="read_full_license">قراءة الرخصة</string>
|
||||
<string name="website_title">الموقع الإلكتروني</string>
|
||||
<string name="website_encouragement">قم بزيارة موقع NewPipe الإلكتروني لمزيد من المعلومات والأخبار.</string>
|
||||
<string name="app_license_title">ترخيص NewPipe</string>
|
||||
<string name="read_full_license">اقرأ الرخصة</string>
|
||||
<string name="delete_item_search_history">هل تريد حذف هذا العنصر من سجل البحث؟</string>
|
||||
<string name="main_page_content">محتوى الشاشة الرئيسية</string>
|
||||
<string name="blank_page_summary">صفحة فارغة</string>
|
||||
@@ -169,7 +169,7 @@
|
||||
<string name="no_channel_subscribed_yet">لم يتم الاشتراك في أي قناة بعد</string>
|
||||
<string name="trending">الشائعة</string>
|
||||
<string name="top_50">أفضل ٥٠</string>
|
||||
<string name="new_and_hot">جديد وساخن</string>
|
||||
<string name="new_and_hot">جديد ورائج</string>
|
||||
<string name="play_queue_remove">أحذف</string>
|
||||
<string name="play_queue_stream_detail">التفاصيل</string>
|
||||
<string name="play_queue_audio_settings">إعدادات الصوت</string>
|
||||
@@ -177,33 +177,33 @@
|
||||
<string name="title_activity_recaptcha">تحدي الكابتشا</string>
|
||||
<string name="hold_to_append">ضغط مطول للإدراج الى قائمة الانتظار</string>
|
||||
<plurals name="views">
|
||||
<item quantity="zero">%s مشاهد</item>
|
||||
<item quantity="one">%s مشاهد</item>
|
||||
<item quantity="two">%s مشاهدة</item>
|
||||
<item quantity="few">%s مشاهدة</item>
|
||||
<item quantity="zero">لا مشاهدات</item>
|
||||
<item quantity="one">مشاهدة واحدة</item>
|
||||
<item quantity="two">مشاهدتان</item>
|
||||
<item quantity="few">%s مشاهدات</item>
|
||||
<item quantity="many">%s مشاهدة</item>
|
||||
<item quantity="other">%s مشاهدة</item>
|
||||
</plurals>
|
||||
<plurals name="videos">
|
||||
<item quantity="zero">%s فيديو</item>
|
||||
<item quantity="one">%s أشرطة فيديو</item>
|
||||
<item quantity="two">%s أشرطة فيديو</item>
|
||||
<item quantity="few">%s أشرطة فيديو</item>
|
||||
<item quantity="many">%s أشرطة فيديو</item>
|
||||
<item quantity="other">%s أشرطة فيديو</item>
|
||||
<item quantity="zero">لا فيديوهات</item>
|
||||
<item quantity="one">فيديو واحد</item>
|
||||
<item quantity="two">فيديوهان</item>
|
||||
<item quantity="few">%s فيديوهات</item>
|
||||
<item quantity="many">%s فيديو</item>
|
||||
<item quantity="other">%s فيديو</item>
|
||||
</plurals>
|
||||
<string name="recaptcha_request_toast">طلب اختبار الكابتشا مطلوب</string>
|
||||
<string name="copyright" formatted="true">© %1$sبواسطة%2$sتحت%3$s</string>
|
||||
<string name="kiosk_page_summary">صفحة الكشك</string>
|
||||
<string name="select_a_kiosk">حدد كشك</string>
|
||||
<string name="start_here_on_background">بدأ التشغيل في الخلفية</string>
|
||||
<string name="default_content_country_title">المحتوى الإفتراضي حسب البلد</string>
|
||||
<string name="switch_to_background">الإنتقال إلى التشغيل في الخلفية</string>
|
||||
<string name="switch_to_popup">الإنتقال إلى التشغيل في النافذة المنبثقة</string>
|
||||
<string name="switch_to_main">الإنتقال إلى الرئيسية</string>
|
||||
<string name="default_content_country_title">المحتوى الافتراضي حسب البلد</string>
|
||||
<string name="switch_to_background">الانتقال إلى التشغيل في الخلفية</string>
|
||||
<string name="switch_to_popup">الانتقال إلى التشغيل في النافذة المنبثقة</string>
|
||||
<string name="switch_to_main">الانتقال إلى الرئيسية</string>
|
||||
<string name="drawer_open">فتح الدرج</string>
|
||||
<string name="drawer_close">إغلاق الدرج</string>
|
||||
<string name="always">دائماً</string>
|
||||
<string name="always">دائمًا</string>
|
||||
<string name="just_once">مرة واحدة فقط</string>
|
||||
<string name="no_player_found_toast">لم يتم العثور على مشغل بث (يمكنك تثبيت VLC لتشغيله).</string>
|
||||
<string name="import_data_title">استيراد قاعدة البيانات</string>
|
||||
@@ -212,7 +212,7 @@
|
||||
<string name="export_data_summary">تصدير السجل، وقوائم تشغيل، والإعدادات، والاشتراكات</string>
|
||||
<string name="show_info">عرض المعلومات</string>
|
||||
<string name="controls_add_to_playlist_title">إضافة إلى</string>
|
||||
<string name="settings_category_debug_title">تحليل</string>
|
||||
<string name="settings_category_debug_title">تصحيح الأخطاء</string>
|
||||
<string name="video_streams_empty">لم يتم العثور على أي بث مرئي</string>
|
||||
<string name="audio_streams_empty">لم يتم العثور على أي بث صوتي</string>
|
||||
<string name="detail_drag_description">اسحب لإعادة ترتيب</string>
|
||||
@@ -220,10 +220,10 @@
|
||||
<string name="dismiss">إلغاء</string>
|
||||
<string name="rename">إعادة التسمية</string>
|
||||
<string name="export_complete_toast">تمت عملية التصدير</string>
|
||||
<string name="import_complete_toast">تمَّت عملية الإستيراد</string>
|
||||
<string name="import_complete_toast">تمَّت عملية الاستيراد</string>
|
||||
<string name="could_not_import_all_files">تنبيه: تعذر استيراد كافة الملفات.</string>
|
||||
<string name="video_player">مشغل الفيديو</string>
|
||||
<string name="always_ask_open_action">السؤال دائماً</string>
|
||||
<string name="always_ask_open_action">السؤال دائمًا</string>
|
||||
<string name="preferred_player_fetcher_notification_title">الحصول على المعلومات…</string>
|
||||
<string name="preferred_player_fetcher_notification_message">تحميل المحتوى المطلوب</string>
|
||||
<string name="create_playlist">إنشاء قائمة تشغيل جديدة</string>
|
||||
@@ -237,29 +237,29 @@
|
||||
<string name="resize_zoom">تكبير</string>
|
||||
<string name="controls_download_desc">تنزيل ملف البث</string>
|
||||
<string name="tab_bookmarks">الإشارات المرجعية</string>
|
||||
<string name="use_inexact_seek_title">استعمال التقديم السريع الغير دقيق</string>
|
||||
<string name="use_inexact_seek_summary">خاصية التقديم الغير دقيق تسمح للمشغل بالقفز خلال الفديو بشكل أسرع مع دقة قفز أقل. خاصية القفز ل5، 15 او 25 لا تعمل مع القفز الغير دقيق</string>
|
||||
<string name="use_inexact_seek_title">استعمال التقديم السريع غير دقيق</string>
|
||||
<string name="use_inexact_seek_summary">خاصية التقديم غير دقيق تسمح للمشغل بالقفز خلال الفيديو بشكل أسرع مع دقة قفز أقل. خاصية القفز ل5، 15 او 25 لا تعمل مع القفز غير دقيق</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">تم إفراغ مساحة ذاكرة التخزين المؤقتة الخاصة بالصور</string>
|
||||
<string name="file">الملف</string>
|
||||
<string name="invalid_directory">لا يوجد مثل هذا المجلد</string>
|
||||
<string name="invalid_directory">لا يوجد المجلد</string>
|
||||
<string name="file_name_empty_error">لا يمكن أن يكون اسم الملف فارغًا</string>
|
||||
<string name="error_occurred_detail">حدث خطأٌ ما: %1$s</string>
|
||||
<string name="no_valid_zip_file">ملف مضغوط ZIP غير صالح</string>
|
||||
<string name="unbookmark_playlist">إزالة الإشارة المرجعية</string>
|
||||
<string name="resize_fit">تناسب مع الشاشة</string>
|
||||
<string name="caption_auto_generated">توليد تلقائي</string>
|
||||
<string name="import_title">إستيراد</string>
|
||||
<string name="import_title">استيراد</string>
|
||||
<string name="import_from">استعادة مِن</string>
|
||||
<string name="export_to">تصدير إلى</string>
|
||||
<string name="import_ongoing">عملية الاستعادة جارية …</string>
|
||||
<string name="export_ongoing">عملية التصدير جارية …</string>
|
||||
<string name="import_file_title">إستيراد ملف</string>
|
||||
<string name="import_file_title">استيراد ملف</string>
|
||||
<string name="import_soundcloud_instructions_hint">معرفك, soundcloud.com/هويتك</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="auto_queue_title">وضع البث القادم تلقائيا في قائمة الانتظار</string>
|
||||
<string name="auto_queue_summary">استمر عند إنهاء قائمة التشغيل (غير المتكررة) من خلال إلحاق البث المرتبط</string>
|
||||
<string name="set_as_playlist_thumbnail">تعيين كصورة مصغرة لقائمة التشغيل</string>
|
||||
<string name="bookmark_playlist">تفضيل قائمة التشغيل</string>
|
||||
<string name="playlist_thumbnail_change_success">تم تغيير الصورة المصغرة لقائمة التشغيل.</string>
|
||||
@@ -278,11 +278,11 @@
|
||||
<string name="delete_search_history_alert">حذف سِجل البحث بالكامل؟</string>
|
||||
<string name="search_history_deleted">تم حذف سجل البحث</string>
|
||||
<string name="external_player_unsupported_link_type">المشغل الخارجي لا يدعم هذه الأنواع من الروابط</string>
|
||||
<string name="invalid_source">لا يوجد مثل هذا الملف/مصدر المحتوى</string>
|
||||
<string name="invalid_source">لا يوجد الملف/مصدر المحتوى</string>
|
||||
<string name="invalid_file">الملف غير موجود أو الإذن بالقراءة أو الكتابة إليه غير موجود</string>
|
||||
<string name="no_streams_available_download">لا يوجد بث متاح للتنزيل</string>
|
||||
<string name="one_item_deleted">تم حذف عنصر واحد.</string>
|
||||
<string name="app_license">NewPipe هو برنامج مفتوح المصدر وبحقوق متروكة: يمكنك استخدام الكود ودراسته وتحسينه كما شئت. وعلى وجه التحديد يمكنك إعادة توزيعه / أو تعديله تحت شروط رخصة GNU العمومية والتي نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة، أو (باختيارك) أي إصدار أحدث.</string>
|
||||
<string name="app_license">NewPipe هو برنامج مفتوح المصدر مرخص بموجب حقوق النشر: يمكنك استخدامه ودراسته ومشاركته وتحسينه كما تشاء. وبالتحديد، يمكنك إعادة توزيعه و/أو تعديله وفقًا لشروط رخصة GNU العمومية العامة كما نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.</string>
|
||||
<string name="title_last_played">آخر ما تم تشغيله</string>
|
||||
<string name="title_most_played">الأكثر تشغيلا</string>
|
||||
<string name="override_current_data">هذا سوف يُزيل إعداداتك الحالية.</string>
|
||||
@@ -308,18 +308,16 @@
|
||||
\n2. انتقل إلى عنوان URL هذا: %1$s
|
||||
\n3. تسجيل الدخول عندما يطلب منك
|
||||
\n4. انسخ عنوان URL للملف الشخصي الذي تمت إعادة توجيهك إليه.</string>
|
||||
<string name="import_network_expensive_warning">ضع في اعتبارك أن هذه العملية يمكن أن تكون مكلفة اذا كنت تستخدم بيانات اشتراك انترنت.
|
||||
\n
|
||||
\nهل تريد الاستمرار؟</string>
|
||||
<string name="import_network_expensive_warning">ضع في اعتبارك أن هذه العملية يمكن أن تكون مكلفة إذا كنت تستخدم بيانات اشتراك انترنت. \n \nهل تريد الاستمرار؟</string>
|
||||
<string name="playback_speed_control">ضوابط سرعة التشغيل</string>
|
||||
<string name="playback_tempo">سرعة الأداء</string>
|
||||
<string name="playback_pitch">تردد الصوت</string>
|
||||
<string name="unhook_checkbox">إلغاء الإرتباط (قد يسبب تشويه)</string>
|
||||
<string name="unhook_checkbox">إلغاء الارتباط (قد يسبب تشويه)</string>
|
||||
<string name="import_settings">هل تريد أيضا استيراد الإعدادات؟</string>
|
||||
<string name="privacy_policy_title">سياسة خصوصية NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">يأخذ مشروع NewPipe خصوصيتك على محمل الجد. لذلك، لا يجمع التطبيق أي بيانات دون موافقتك.
|
||||
\nتوضح سياسة خصوصية NewPipe بالتفصيل البيانات التي يتم إرسالها وتخزينها عند إرسال تقرير الأعطال.</string>
|
||||
<string name="read_privacy_policy">الإطلاع على سياسة الخصوصية</string>
|
||||
<string name="read_privacy_policy">اقرأ سياسة الخصوصية</string>
|
||||
<string name="start_accept_privacy_policy">من أجل الامتثال للائحة الأوروبية العامة لحماية البيانات (GDPR)، فإننا نلفت انتباهك إلى سياسة خصوصية NewPipe. يرجى قراءتها بعناية.
|
||||
\nويجب عليك قبولها لإرسال تقرير الأخطاء إلينا.</string>
|
||||
<string name="accept">قبول</string>
|
||||
@@ -331,7 +329,7 @@
|
||||
<string name="playback_reset">إعادة تعيين</string>
|
||||
<string name="minimize_on_exit_title">تصغير عند تبديل التطبيق</string>
|
||||
<string name="minimize_on_exit_summary">الإجراء عند التبديل إلى تطبيق آخر من مشغل الفيديو الرئيسي — %s</string>
|
||||
<string name="minimize_on_exit_none_description">لاشيء</string>
|
||||
<string name="minimize_on_exit_none_description">لا شيء</string>
|
||||
<string name="minimize_on_exit_background_description">تصغير إلى مشغل الخلفية</string>
|
||||
<string name="minimize_on_exit_popup_description">تصغير إلى مشغل منبثق</string>
|
||||
<string name="channels">القنوات</string>
|
||||
@@ -425,20 +423,20 @@
|
||||
<string name="no_one_watching">لا توجد مشاهدة</string>
|
||||
<string name="no_one_listening">لا أحد يستمع</string>
|
||||
<plurals name="watching">
|
||||
<item quantity="zero">%s مشاهدة</item>
|
||||
<item quantity="one">%s مشاهدة</item>
|
||||
<item quantity="two">%s مشاهدة</item>
|
||||
<item quantity="few">%s مشاهدات</item>
|
||||
<item quantity="many">%s مشاهدات</item>
|
||||
<item quantity="other">%s مشاهدات</item>
|
||||
<item quantity="zero">لا يشاهد أحد</item>
|
||||
<item quantity="one">يشاهدها شخص واحد</item>
|
||||
<item quantity="two">يشاهدها شخصان</item>
|
||||
<item quantity="few">يشاهدها %s أشخاص</item>
|
||||
<item quantity="many">يشاهدها %s شخصًا</item>
|
||||
<item quantity="other">يشاهدها %s شخص</item>
|
||||
</plurals>
|
||||
<plurals name="listening">
|
||||
<item quantity="zero">%s الاستماع</item>
|
||||
<item quantity="one">%s الاستماع</item>
|
||||
<item quantity="two">%s مستمعين</item>
|
||||
<item quantity="few">%s مستمعين</item>
|
||||
<item quantity="many">%s مستمعين</item>
|
||||
<item quantity="other">%s مستمعين</item>
|
||||
<item quantity="zero">لا يستمع أحد</item>
|
||||
<item quantity="one">يستمع إليها شخص واحد</item>
|
||||
<item quantity="two">يستمع إليها شخصان</item>
|
||||
<item quantity="few">يستمع إليها %s أشخاص</item>
|
||||
<item quantity="many">يستمع إليها %s شخصًا</item>
|
||||
<item quantity="other">يستمع إليها %s شخص</item>
|
||||
</plurals>
|
||||
<string name="seek_duration_title">تسريع إلى الأمام/-ترجيع وقت البحث</string>
|
||||
<string name="peertube_instance_url_title">مثيلات خوادم پيرتيوب</string>
|
||||
@@ -462,13 +460,13 @@
|
||||
<string name="app_language_title">لغة التطبيق</string>
|
||||
<string name="systems_language">النظام الافتراضي</string>
|
||||
<string name="subtitle_activity_recaptcha">اضغط على \"تم\" عند حلها</string>
|
||||
<string name="done">منجز</string>
|
||||
<string name="done">تم</string>
|
||||
<string name="videos_string">الفيديوهات</string>
|
||||
<plurals name="seconds">
|
||||
<item quantity="zero">%d ثانية</item>
|
||||
<item quantity="one">%d ثانية</item>
|
||||
<item quantity="two">%d ثانية</item>
|
||||
<item quantity="few">%d ثواني</item>
|
||||
<item quantity="one">ثانية واحدة</item>
|
||||
<item quantity="two">ثانيتان</item>
|
||||
<item quantity="few">%d ثوانٍ</item>
|
||||
<item quantity="many">%d ثانية</item>
|
||||
<item quantity="other">%d ثانية</item>
|
||||
</plurals>
|
||||
@@ -495,12 +493,12 @@
|
||||
<string name="feed_group_dialog_delete_message">هل تريد حذف هذه المجموعة؟</string>
|
||||
<string name="feed_group_dialog_empty_name">اسم المجموعة فارغ</string>
|
||||
<plurals name="feed_group_dialog_selection_count">
|
||||
<item quantity="zero">%d تحديد</item>
|
||||
<item quantity="one">%d المحدد</item>
|
||||
<item quantity="two">%d المحدد</item>
|
||||
<item quantity="few">%d المحدد</item>
|
||||
<item quantity="many">%d المحدد</item>
|
||||
<item quantity="other">%d المحدد</item>
|
||||
<item quantity="zero">لا تحديد</item>
|
||||
<item quantity="one">عنصر واحد محدَّد</item>
|
||||
<item quantity="two">عنصران محدَّدان</item>
|
||||
<item quantity="few">%d عناصر محدَّدة</item>
|
||||
<item quantity="many">%d عنصرًا محدَّدًا</item>
|
||||
<item quantity="other">%d عنصر محدَّد</item>
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_empty_selection">لم يتم تحديد اشتراك</string>
|
||||
<string name="feed_group_dialog_select_subscriptions">حدد الاشتراكات</string>
|
||||
@@ -512,7 +510,7 @@
|
||||
<plurals name="days">
|
||||
<item quantity="zero">%d يوم</item>
|
||||
<item quantity="one">%d يوم</item>
|
||||
<item quantity="two">%d أيام</item>
|
||||
<item quantity="two">يومان</item>
|
||||
<item quantity="few">%d أيام</item>
|
||||
<item quantity="many">%d يومًا</item>
|
||||
<item quantity="other">%d يومًا</item>
|
||||
@@ -520,7 +518,7 @@
|
||||
<plurals name="hours">
|
||||
<item quantity="zero">%d ساعة</item>
|
||||
<item quantity="one">%d ساعة</item>
|
||||
<item quantity="two">%d ساعة</item>
|
||||
<item quantity="two">ساعتان</item>
|
||||
<item quantity="few">%d ساعات</item>
|
||||
<item quantity="many">%d ساعة</item>
|
||||
<item quantity="other">%d ساعة</item>
|
||||
@@ -528,12 +526,12 @@
|
||||
<plurals name="minutes">
|
||||
<item quantity="zero">%d دقيقة</item>
|
||||
<item quantity="one">%d دقيقة</item>
|
||||
<item quantity="two">%d دقيقة</item>
|
||||
<item quantity="two">دقيقتان</item>
|
||||
<item quantity="few">%d دقائق</item>
|
||||
<item quantity="many">%d دقيقة</item>
|
||||
<item quantity="other">%d دقيقة</item>
|
||||
</plurals>
|
||||
<string name="new_seek_duration_toast">نظرا لقيود مشغل ExoPlayer مدة التقديم تم ضبطها الى %d ثانية</string>
|
||||
<string name="new_seek_duration_toast">نظرًا لقيود مشغل ExoPlayer مدة التقديم تم ضبطها الى %d ثانية</string>
|
||||
<string name="unmute">إلغاء الكتم</string>
|
||||
<string name="mute">كتم الصوت</string>
|
||||
<string name="content_not_supported">هذا المحتوى ليس مدعومًا من قبل NewPipe.
|
||||
@@ -541,15 +539,15 @@
|
||||
\nنأمل أن يكون مدعومًا في التحديثات القادمة.</string>
|
||||
<string name="infinite_videos">∞ فيديو</string>
|
||||
<string name="more_than_100_videos">+100 فيديو</string>
|
||||
<string name="artists">الفنانين</string>
|
||||
<string name="albums">الالبومات</string>
|
||||
<string name="artists">الفنانون</string>
|
||||
<string name="albums">الألبومات</string>
|
||||
<string name="songs">الأغاني</string>
|
||||
<string name="restricted_video">هذا الفيديو مقيد بالفئة العمرية.
|
||||
\n
|
||||
\nقم بتشغيل \"%1$s\" في الإعدادات إذا كنت تريد رؤيته.</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">نعم، ومقاطع الفيديو التي تمت مشاهدتها جزئيًا</string>
|
||||
<string name="remove_watched_popup_warning">ستتم إزالة مقاطع الفيديو التي تمت مشاهدتها قبل وبعد إضافتها إلى قائمة التشغيل. \nهل أنت واثق؟ لا يمكن التراجع عن هذا!</string>
|
||||
<string name="remove_watched_popup_title">إزالة مقاطع الفيديو التي تمت مشاهدتها؟</string>
|
||||
<string name="remove_watched_popup_warning">سَتتم إزالة البُثوث التي تمت مشاهدتها قبل وبعد إضافتها إلى قائمة التشغيل.\nهل أنت متأكد؟</string>
|
||||
<string name="remove_watched_popup_title">إزالة البثوث التي تمت مشاهدتها؟</string>
|
||||
<string name="remove_watched">إزالة ما تمت مشاهدته</string>
|
||||
<string name="show_original_time_ago_summary">ستكون النصوص الأصلية من الخدمات مرئية في عناصر البث</string>
|
||||
<string name="show_original_time_ago_title">عرض الوقت الأصلي على العناصر</string>
|
||||
@@ -561,13 +559,13 @@
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">إظهار الاشتراكات غير المجمعة فقط</string>
|
||||
<string name="no_playlist_bookmarked_yet">لا توجد إشارات مرجعية لقائمة التشغيل حتى الآن</string>
|
||||
<string name="select_a_playlist">اختر قائمة تشغيل</string>
|
||||
<string name="error_report_open_github_notice">يرجى مراجعة ما إذا توجد بالفعل مشكلة تناقش التحطم الموجود بالفعل. عند إنشاء تذاكر مكررة، فإنك تستغرق منا وقتًا يمكن أن نقضيه في إصلاح الخطأ الفعلي.</string>
|
||||
<string name="error_report_open_github_notice">يرجى التحقق أولًا مما إذا كانت هناك مشكلة (issue) مطروحة بالفعل تتناول هذا العطل. إنشاء تذاكر مكررة يستهلك وقتًا كان يمكن استثماره في إصلاح الخطأ نفسه.</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="never">أبدا</string>
|
||||
<string name="wifi_only">فقط على شبكة Wi-Fi</string>
|
||||
<string name="autoplay_summary">بدء التشغيل تلقائياً — %s</string>
|
||||
<string name="autoplay_summary">بدء التشغيل تلقائيًا — %s</string>
|
||||
<string name="title_activity_play_queue">تشغيل قائمة الانتظار</string>
|
||||
<string name="unsupported_url_dialog_message">تعذر التعرف على الرابط. فتح باستخدام تطبيق آخر؟</string>
|
||||
<string name="auto_queue_toggle">قائمة انتظار تلقائيّة</string>
|
||||
@@ -615,12 +613,11 @@
|
||||
<string name="open_with">افتح باستخدام</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="private_content">هذا المحتوى خاص، لذلك لا يمكن بثّه أو تنزيله بواسطة NewPipe.</string>
|
||||
<string name="soundcloud_go_plus_content">هذا مسار SoundCloud Go+، على الأقل في بلدك، لذلك لا يمكن بثّه أو تنزيله بواسطة NewPipe.</string>
|
||||
<string name="georestricted_content">هذا المحتوى غير متوفر في بلدك.</string>
|
||||
<string name="crash_the_app">اغلق التطبيق قسريا</string>
|
||||
<string name="restricted_video_no_stream">هذا الفيديو مقيد بالفئة العمرية.
|
||||
\nنظرًا لسياسات YouTube الجديدة المتعلقة بمقاطع الفيديو المقيدة بالفئة العمرية، لا يمكن لـ NewPipe الوصول إلى أي من تدفقات الفيديو الخاصة به، وبالتالي لا يتمكن من تشغيلها.</string>
|
||||
<string name="crash_the_app">أغلق التطبيق قسريًا</string>
|
||||
<string name="restricted_video_no_stream">هذا الفيديو مقيد بالفئة العمرية. \nنظرًا لسياسات YouTube الجديدة المتعلقة بمقاطع الفيديو المقيدة بالفئة العمرية، لا يمكن لـ NewPipe الوصول إلى أي من بثوث الفيديو الخاصة به، وبالتالي لا يتمكن من تشغيلها.</string>
|
||||
<string name="radio">إذاعة</string>
|
||||
<string name="featured">المميزة</string>
|
||||
<string name="recaptcha_solve">حل</string>
|
||||
@@ -672,18 +669,18 @@
|
||||
<string name="local_search_suggestions">اقتراحات البحث المحلية</string>
|
||||
<string name="main_page_content_swipe_remove">اسحب العناصر لإزالتها</string>
|
||||
<plurals name="deleted_downloads_toast">
|
||||
<item quantity="zero">اكتمل %1$s تنزيل</item>
|
||||
<item quantity="one">اكتمل %1$s تنزيل</item>
|
||||
<item quantity="two">اكتمل %1$s تنزيل</item>
|
||||
<item quantity="zero">لم يكتمل أي تنزيل</item>
|
||||
<item quantity="one">اكتمل تنزيل واحد</item>
|
||||
<item quantity="two">اكتمل تنزيلان</item>
|
||||
<item quantity="few">اكتملت %1$s تنزيلات</item>
|
||||
<item quantity="many">اكتمل %1$s تنزيل</item>
|
||||
<item quantity="many">اكتمل %1$s تنزيلًا</item>
|
||||
<item quantity="other">اكتمل %1$s تنزيل</item>
|
||||
</plurals>
|
||||
<plurals name="download_finished_notification">
|
||||
<item quantity="zero">اكتمل التنزيل</item>
|
||||
<item quantity="one">اكتمل التنزيل</item>
|
||||
<item quantity="two">اكتمل التنزيل</item>
|
||||
<item quantity="few">اكتمل تنزيل%s</item>
|
||||
<item quantity="zero">اكتمل التنزيل%s</item>
|
||||
<item quantity="one">اكتمل التنزيل%s</item>
|
||||
<item quantity="two">اكتمل التنزيلان%s</item>
|
||||
<item quantity="few">اكتملت التنزيلات%s</item>
|
||||
<item quantity="many">اكتملت التنزيلات%s</item>
|
||||
<item quantity="other">اكتملت التنزيلات%s</item>
|
||||
</plurals>
|
||||
@@ -693,7 +690,7 @@
|
||||
<string name="enqueued_next">تم وضع التالي على قائمة الانتظار</string>
|
||||
<string name="processing_may_take_a_moment">جاري المعالجة ... قد يستغرق لحظة</string>
|
||||
<string name="check_for_updates">التحقق من وجود تحديثات</string>
|
||||
<string name="manual_update_description">التحقق يدويا من وجود إصدارات جديدة</string>
|
||||
<string name="manual_update_description">التحقق يدويًا من وجود إصدارات جديدة</string>
|
||||
<string name="checking_updates_toast">جاري التحقق من وجود تحديثات…</string>
|
||||
<string name="feed_new_items">عناصر تغذية جديدة</string>
|
||||
<string name="show_crash_the_player_summary">إظهار خيار تعطل عند استخدام المشغل</string>
|
||||
@@ -719,10 +716,10 @@
|
||||
<string name="streams_notification_channel_name">بث جديد</string>
|
||||
<string name="settings_category_player_notification_title">إشعار المشغل</string>
|
||||
<string name="you_successfully_subscribed">لقد اشتركت الآن في هذه القناة</string>
|
||||
<string name="streams_notification_channel_description">الإخطارات حول التدفقات الجديدة للاشتراكات</string>
|
||||
<string name="streams_notification_channel_description">الإخطارات حول البثوث الجديدة للاشتراكات</string>
|
||||
<string name="enable_streams_notifications_title">إشعارات أحداث البث الجديدة</string>
|
||||
<string name="enable_streams_notifications_summary">الإخطار بأحداث البث الجديدة من الاشتراكات</string>
|
||||
<string name="check_new_streams">تشغيل التحقق من وجود تدفقات جديدة</string>
|
||||
<string name="check_new_streams">تشغيل التحقق من وجود بثوث جديدة</string>
|
||||
<string name="streams_notifications_interval_title">معدل البحث</string>
|
||||
<string name="streams_notifications_network_title">مطلوب اتصال الشبكة</string>
|
||||
<string name="any_network">أي شبكة</string>
|
||||
@@ -731,26 +728,26 @@
|
||||
<string name="enumeration_comma">,</string>
|
||||
<string name="toggle_all">تبديل الكل</string>
|
||||
<plurals name="new_streams">
|
||||
<item quantity="zero">%s دفق جديد</item>
|
||||
<item quantity="one">%s دفق جديد</item>
|
||||
<item quantity="two">%s دفق جديد</item>
|
||||
<item quantity="few">%s دفوق جديدة</item>
|
||||
<item quantity="many">%s دفق جديد</item>
|
||||
<item quantity="other">%s دفق جديد</item>
|
||||
<item quantity="zero">لا بثوث جديدة</item>
|
||||
<item quantity="one">بث جديد واحد</item>
|
||||
<item quantity="two">بثّان جديدان</item>
|
||||
<item quantity="few">%s بثوث جديدة</item>
|
||||
<item quantity="many">%s بثًا جديدًا</item>
|
||||
<item quantity="other">%s بث جديد</item>
|
||||
</plurals>
|
||||
<string name="percent">النسبة المئوية</string>
|
||||
<string name="semitone">سيميتون</string>
|
||||
<string name="streams_not_yet_supported_removed">لا يتم عرض التدفقات التي لم يدعمها برنامج التنزيل بعد</string>
|
||||
<string name="selected_stream_external_player_not_supported">الدفق المحدد غير مدعوم من قبل المشغلون الخارجيون</string>
|
||||
<string name="no_audio_streams_available_for_external_players">لا توجد تدفقات صوتية متاحة للمشغلات الخارجية</string>
|
||||
<string name="no_video_streams_available_for_external_players">لا تتوفر تدفقات فيديو للاعبين الخارجيين</string>
|
||||
<string name="streams_not_yet_supported_removed">لا تُعرض البثوث التي لم يدعمها برنامج التنزيل بعد</string>
|
||||
<string name="selected_stream_external_player_not_supported">البث المحدد غير مدعوم من المشغلات الخارجية</string>
|
||||
<string name="no_audio_streams_available_for_external_players">لا توجد بثوث صوتية متاحة للمشغلات الخارجية</string>
|
||||
<string name="no_video_streams_available_for_external_players">لا تتوفر بثوث فيديو للمشغلات الخارجية</string>
|
||||
<string name="select_quality_external_players">حدد الجودة للمشغلين الخارجيين</string>
|
||||
<string name="unknown_format">تنسيق غير معروف</string>
|
||||
<string name="unknown_quality">جودة غير معروفة</string>
|
||||
<string name="progressive_load_interval_title">حجم الفاصل الزمني لتحميل التشغيل</string>
|
||||
<string name="faq_title">أسئلة مكررة</string>
|
||||
<string name="faq_description">إذا كنت تواجه مشكلة في استخدام التطبيق ، فتأكد من مراجعة هذه الإجابات للأسئلة الشائعة!</string>
|
||||
<string name="faq">مشاهدة على الموقع</string>
|
||||
<string name="faq_title">الأسئلة الشائعة</string>
|
||||
<string name="faq_description">إذا كنت تواجه مشكلة في استخدام التطبيق، فتأكد من مراجعة هذه الإجابات على الأسئلة الشائعة!</string>
|
||||
<string name="faq">عرض على الموقع الإلكتروني</string>
|
||||
<string name="sort">فرز</string>
|
||||
<string name="app_update_unavailable_toast">أنت تقوم بتشغيل أحدث إصدار من NewPipe</string>
|
||||
<string name="app_update_available_notification_text">انقر للتنزيل %s</string>
|
||||
@@ -763,17 +760,17 @@
|
||||
<string name="playlist_add_stream_success_duplicate">تمت إضافة وقت (أوقات) مكررة %d</string>
|
||||
<string name="duplicate_in_playlist">تحتوي قوائم التشغيل رمادية اللون بالفعل على هذا العنصر.</string>
|
||||
<string name="ignore_hardware_media_buttons_summary">مفيد ، على سبيل المثال ، إذا كنت تستخدم سماعة رأس بأزرار مادية مكسورة</string>
|
||||
<string name="ignore_hardware_media_buttons_title">تجاهل أحداث ازرار الوسائط الأجهزة</string>
|
||||
<string name="remove_duplicates_message">هل تريد إزالة جميع التدفقات المكررة في قائمة التشغيل هذه؟</string>
|
||||
<string name="feed_show_hide_streams">إظهار/إخفاء التدفقات</string>
|
||||
<string name="ignore_hardware_media_buttons_title">تجاهل ضغطات أزرار الوسائط الفعلية على الجهاز</string>
|
||||
<string name="remove_duplicates_message">هل تريد إزالة جميع البثوث المكررة في قائمة التشغيل هذه؟</string>
|
||||
<string name="feed_show_hide_streams">إظهار/إخفاء البثوث</string>
|
||||
<string name="feed_show_partially_watched">تمت مشاهدته جزئيا</string>
|
||||
<string name="feed_show_upcoming">القادمة</string>
|
||||
<string name="remove_duplicates">إزالة التكرارات</string>
|
||||
<string name="remove_duplicates_title">إزالة التكرارات؟</string>
|
||||
<string name="feed_hide_streams_title">إظهار التدفقات التالية</string>
|
||||
<string name="feed_hide_streams_title">إظهار البثوث التالية</string>
|
||||
<string name="feed_show_watched">شاهدت بالكامل</string>
|
||||
<string name="left_gesture_control_title">إجراء الإيماءة اليسرى</string>
|
||||
<string name="right_gesture_control_title">اجراء الإيماءة اليمنى</string>
|
||||
<string name="right_gesture_control_title">إجراء الإيماءة اليمنى</string>
|
||||
<string name="brightness">السطوع</string>
|
||||
<string name="none">بدون</string>
|
||||
<string name="left_gesture_control_summary">اختر إيماءة للنصف الأيسر من شاشة المشغل</string>
|
||||
@@ -804,19 +801,19 @@
|
||||
<string name="main_tabs_position_summary">انقل محدد علامة التبويب الرئيسي إلى الأسفل</string>
|
||||
<string name="main_tabs_position_title">موضع علامات التبويب الرئيسية</string>
|
||||
<string name="disable_media_tunneling_automatic_info">تم تعطيل نفق وسائل الإعلام عن طريق التقصير على جهازك لأن نموذج جهازك معروف بأنه لا يدعمه.</string>
|
||||
<string name="no_streams">لاتوجد بثوث</string>
|
||||
<string name="no_live_streams">لاتوجد بثوث مباشرة</string>
|
||||
<string name="channel_tab_videos">الفيديوات</string>
|
||||
<string name="no_streams">لا توجد بثوث</string>
|
||||
<string name="no_live_streams">لا توجد بثوث مباشرة</string>
|
||||
<string name="channel_tab_videos">الفيديوهات</string>
|
||||
<string name="metadata_subscribers">المشتركون</string>
|
||||
<string name="show_channel_tabs_summary">ما هي التبويبات المعروضة على صفحات القناة</string>
|
||||
<string name="show_channel_tabs">تبويبات القنوات</string>
|
||||
<string name="channel_tab_shorts">الفديوهات القصيرة</string>
|
||||
<string name="channel_tab_shorts">الفيديوهات القصيرة</string>
|
||||
<string name="loading_metadata_title">جلب البيانات الوصفية…</string>
|
||||
<string name="toggle_screen_orientation">تبديل تدوير الشاشة</string>
|
||||
<string name="toggle_fullscreen">الانتقال إلى وضع ملئ الشاشة</string>
|
||||
<string name="toggle_fullscreen">الانتقال إلى وضع ملء الشاشة</string>
|
||||
<string name="feed_fetch_channel_tabs">اجلب تبويبات القنوات</string>
|
||||
<string name="next_stream">البث التالي</string>
|
||||
<string name="open_play_queue">فتح قائمة انتظار التسغيل</string>
|
||||
<string name="open_play_queue">فتح قائمة انتظار التشغيل</string>
|
||||
<string name="channel_tab_about">حول</string>
|
||||
<string name="forward">تقديم المحتوى</string>
|
||||
<string name="channel_tab_albums">الألبومات</string>
|
||||
@@ -850,19 +847,19 @@
|
||||
<string name="share_playlist">مشاركة قائمة التشغيل</string>
|
||||
<string name="video_details_list_item">- %1$s: %2$s</string>
|
||||
<plurals name="replies">
|
||||
<item quantity="zero">رد %s</item>
|
||||
<item quantity="one">رد %s</item>
|
||||
<item quantity="two">ردان%s</item>
|
||||
<item quantity="few">ردود%s</item>
|
||||
<item quantity="many">ردود %s</item>
|
||||
<item quantity="other">ردود %s</item>
|
||||
<item quantity="zero">لا ردود</item>
|
||||
<item quantity="one">رد واحد</item>
|
||||
<item quantity="two">ردّان</item>
|
||||
<item quantity="few">%s ردود</item>
|
||||
<item quantity="many">%s ردًا</item>
|
||||
<item quantity="other">%s رد</item>
|
||||
</plurals>
|
||||
<string name="show_more">عرض المزيد</string>
|
||||
<string name="show_less">عرض أقل</string>
|
||||
<string name="notification_actions_summary_android13">قم بتحرير كل إجراء إعلام أدناه من خلال النقر عليه. يتم تعيين الإجراءات الثلاثة الأولى (تشغيل/إيقاف مؤقت، السابق والتالي) بواسطة النظام ولا يمكن تخصيصها.</string>
|
||||
<string name="error_insufficient_storage">لا توجد مساحة خالية كافية على الجهاز</string>
|
||||
<string name="reset_settings_title">اعادة ضبط الإعداداتِ</string>
|
||||
<string name="settings_category_backup_restore_title">النسخ الاحتياطيُّ والاستعادة</string>
|
||||
<string name="settings_category_backup_restore_title">النسخ الاحتياطي والاستعادة</string>
|
||||
<string name="reset_settings_summary">أعيدوا جميع الإعدادات إلى قيمهم الافتراضية</string>
|
||||
<string name="reset_all_settings">ستؤدي إعادة ضبط جميع الإعدادات إلى تجاهل جميع إعداداتك المفضلة وإعادة تشغيل التطبيق.
|
||||
\n
|
||||
@@ -885,14 +882,14 @@
|
||||
<string name="migration_info_6_7_message">أوقفت SoundCloud صفحة أفضل 50 الأصلية. تمت إزالة علامة التبويب المقابلة من صفحتك الرئيسية.</string>
|
||||
<string name="migration_info_7_8_title">تمت إزالة تريندات YouTube المجمعة</string>
|
||||
<string name="migration_info_7_8_message">أوقف YouTube صفحة الترند المدمجة اعتبارًا من 21 يوليو 2025. استبدلت NewPipe صفحة الموضوعات المتداولة الافتراضية بصفحة الموضوعات المتداولة الشائعة مع البث المباشر المتداول.\n\nيمكنك أيضًا تحديد صفحات رائجة مختلفة في \"الإعدادات > المحتوى > محتوى الصفحة الرئيسية\".</string>
|
||||
<string name="trending_gaming">توجهات الألعاب</string>
|
||||
<string name="trending_podcasts">توجهات البث الصوتي</string>
|
||||
<string name="trending_movies">الأفلام والعروض الأكثر رواجاً</string>
|
||||
<string name="trending_gaming">الألعاب الرائجة</string>
|
||||
<string name="trending_podcasts">البودكاست الرائج</string>
|
||||
<string name="trending_movies">الأفلام والعروض الأكثر رواجًا</string>
|
||||
<string name="trending_music">الموسيقى الرائجة</string>
|
||||
<string name="short_thousand">%s الف</string>
|
||||
<string name="short_million">%s مليون</string>
|
||||
<string name="short_billion">%sمليار</string>
|
||||
<string name="permission_display_over_apps_message">لاستخدام المشغل المنبثق، يرجى تحديد %1$s في قائمة إعدادات اندرويد التالية وتمكين %2$s.</string>
|
||||
<string name="permission_display_over_apps_message">لاستخدام المشغل المنبثق، يرجى تحديد %1$s في قائمة إعدادات أندرويد التالية وتمكين %2$s.</string>
|
||||
<string name="permission_display_over_apps_permission_name">“السماح بالعرض فوق التطبيقات الاخرى”</string>
|
||||
<string name="delete_file">حذف ملف</string>
|
||||
<string name="delete_entry">حذف المدخلات</string>
|
||||
@@ -901,9 +898,41 @@
|
||||
<string name="player_http_403">تم تلقي خطأ HTTP 403 من الخادم أثناء التشغيل، ويرجح أن يكون السبب هو انتهاء صلاحية عنوان URL للبث أو حظر عنوان IP</string>
|
||||
<string name="player_http_invalid_status">حدث خطأ HTTP %1$s من الخادم أثناء التشغيل</string>
|
||||
<string name="youtube_player_http_403">تم تلقي خطأ HTTP 403 من الخادم أثناء التشغيل، ويرجح أن يكون السبب هو حظر عنوان IP أو مشكلات في إزالة التعتيم عن عنوان URL للبث</string>
|
||||
<string name="sign_in_confirm_not_bot_error">رفض %1$s تقديم البيانات، وطلب تسجيل الدخول للتأكد من أن الطالب ليس روبوتًا.\n\nربما تم حظر عنوان IP الخاص بك مؤقتًا من قبل %1$s، يمكنك الانتظار بعض الوقت أو التبديل إلى عنوان IP مختلف (على سبيل المثال عن طريق تشغيل/إيقاف تشغيل VPN، أو التبديل من WiFi إلى بيانات الهاتف المحمول).</string>
|
||||
<string name="sign_in_confirm_not_bot_error">رفض %1$s تقديم البيانات، وطلب تسجيل الدخول للتأكد من أن الطالب ليس روبوتًا.\n\nربما تم حظر عنوان IP الخاص بك مؤقتًا من قبل %1$s، يمكنك الانتظار بعض الوقت أو التبديل إلى عنوان IP مختلف (على سبيل المثال عن طريق تشغيل/إيقاف تشغيل VPN، أو التبديل من WiFi إلى بيانات الهاتف المحمول).\n\nيرجى الاطلاع على <a href="%2$s">هذا السؤال الشائع</a> لمزيد من المعلومات.</string>
|
||||
<string name="unsupported_content_in_country">هذا المحتوى غير متاح للبلد المحدد حاليًا.\n\nقم بتغيير اختيارك من ”الإعدادات > المحتوى > البلد الافتراضي للمحتوى“.</string>
|
||||
<string name="kao_dialog_warning">أعلنت Google أنه ابتداءً من عام 2026/2027، ستتطلب جميع التطبيقات على الأجهزة المعتمدة من Android من المطورين تقديم معلومات هويتهم الشخصية مباشرةً إلى Google. بما أن مطوري هذا التطبيق لا يوافقون على هذا الشرط، فلن يعمل هذا التطبيق على أجهزة Android المعتمدة بعد ذلك الوقت.</string>
|
||||
<string name="kao_dialog_more_info">تفاصيل</string>
|
||||
<string name="kao_solution">حل</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="zero">تصدير الاشتراكات…</item>
|
||||
<item quantity="one">تصدير اشتراك واحد…</item>
|
||||
<item quantity="two">تصدير اشتراكين…</item>
|
||||
<item quantity="few">تصدير %d اشتراكات…</item>
|
||||
<item quantity="many">تصدير %d اشتراكًا…</item>
|
||||
<item quantity="other">تصدير %d اشتراك…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">استيراد الاشتراكات</string>
|
||||
<string name="export_subscriptions_title">تصدير الاشتراكات</string>
|
||||
<string name="import_subscriptions_summary">إسترد الاشتراكات من ملف JSON تم تصديره مسبقاً</string>
|
||||
<string name="export_subscriptions_summary">قم بتصدير اشتراكاتك إلى ملف بصيغة .json</string>
|
||||
<string name="import_from_previous_export">الاستيراد من التصدير السابق</string>
|
||||
<string name="api23_requirement_dialog_title">سيوقف NewPipe الدعم لنظام أندرويد 5</string>
|
||||
<string name="api23_requirement_dialog_message">لسوء الحظ، يعتمد تطبيق NewPipe على بعض المكتبات التي توقفت عن دعم نظامي Android 5.0 و5.1. لذا، سيعمل الإصدار القادم من NewPipe فقط على الأجهزة التي تعمل بنظام Android 6 أو أحدث. اقرأ المزيد في المقالة.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">المدونة</string>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="zero">تحميل الاشتراكات…</item>
|
||||
<item quantity="one">تحميل اشتراك واحد…</item>
|
||||
<item quantity="two">تحميل اشتراكين…</item>
|
||||
<item quantity="few">تحميل %d اشتراكات…</item>
|
||||
<item quantity="many">تحميل %d اشتراكًا…</item>
|
||||
<item quantity="other">تحميل %d اشتراك…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="zero">استيراد الاشتراكات…</item>
|
||||
<item quantity="one">استيراد اشتراك واحد…</item>
|
||||
<item quantity="two">استيراد اشتراكين…</item>
|
||||
<item quantity="few">استيراد %d اشتراكات…</item>
|
||||
<item quantity="many">استيراد %d اشتراكًا…</item>
|
||||
<item quantity="other">استيراد %d اشتراك…</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<string name="play_audio">Səs</string>
|
||||
<string name="default_audio_format_title">Standart səs kodlayıcı</string>
|
||||
<string name="default_video_format_title">Standart video kodlayıcı</string>
|
||||
<string name="theme_title">Tema</string>
|
||||
<string name="theme_title">Kolorit</string>
|
||||
<string name="light_theme_title">İşıqlı</string>
|
||||
<string name="dark_theme_title">Qaranlıq</string>
|
||||
<string name="black_theme_title">Qara</string>
|
||||
@@ -63,9 +63,9 @@
|
||||
<string name="show_search_suggestions_title">Axtarış təklifləri</string>
|
||||
<string name="auto_queue_toggle">Avto-növbələ</string>
|
||||
<string name="auto_queue_title">Növbəti Yayımı Avto-növbələ</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Üst məlumat qalığı silindi</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Şərhi məlumat qalığı silindi</string>
|
||||
<string name="metadata_cache_wipe_summary">Toplanmış bütün veb-səhifə məlumatlarını sil</string>
|
||||
<string name="metadata_cache_wipe_title">Toplanmış üst məlumatı təmizlə</string>
|
||||
<string name="metadata_cache_wipe_title">Toplanmış şərhi məlumatı təmizlə</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">Şəkil qalığı silindi</string>
|
||||
<string name="show_comments_summary">Şərhləri gizlətmək üçün bağla</string>
|
||||
<string name="show_comments_title">Şərhləri göstər</string>
|
||||
@@ -100,7 +100,7 @@
|
||||
<string name="content">Məzmun</string>
|
||||
<string name="popup_playing_toast">Ani görüntü rejimində oynadılır</string>
|
||||
<string name="background_player_playing_toast">Fonda oynadılır</string>
|
||||
<string name="settings_category_updates_title">Yeniləmələr</string>
|
||||
<string name="settings_category_updates_title">Yenilənmələr</string>
|
||||
<string name="settings_category_debug_title">Sazlama</string>
|
||||
<string name="settings_category_appearance_title">Görünüş</string>
|
||||
<string name="settings_category_history_title">Tarixçə və qalıq</string>
|
||||
@@ -258,7 +258,7 @@
|
||||
<string name="related_items_tab_description">Əlaqəli elementlər</string>
|
||||
<string name="mark_as_watched">Baxılmış kimi işarələ</string>
|
||||
<string name="open_with">ilə aç</string>
|
||||
<string name="night_theme_title">Gecə teması</string>
|
||||
<string name="night_theme_title">Gecə koloriti</string>
|
||||
<string name="popup_remember_size_pos_title">Ani pəncərə xüsusiyyətlərini xatırla</string>
|
||||
<string name="popup_remember_size_pos_summary">Ani pəncərənin son ölçüsü və mövqeyini xatırla</string>
|
||||
<string name="video_streams_empty">Video yayımı tapılmadı</string>
|
||||
@@ -318,18 +318,18 @@
|
||||
<string name="settings_file_replacement_character_summary">Etibarsız simvollar bu dəyərlə əvəz olunur</string>
|
||||
<string name="settings_file_replacement_character_title">Əvəzedici simvol</string>
|
||||
<string name="charset_most_special_characters">Ən xüsusi simvollar</string>
|
||||
<string name="title_licenses">Üçüncü Tərəf Lisenziyaları</string>
|
||||
<string name="tab_about">Haqqında & T-TSS</string>
|
||||
<string name="contribution_title">Töhfə Ver</string>
|
||||
<string name="contribution_encouragement">Fikirlərinizin olub-olmaması, tərcümə, dizayn dəyişiklikləri, kod təmizlənməsi və ya real ağır kod dəyişiklikləri və.s kömək həmişə xoşdur. Nə qədər çox edilsə, bir o qədər yaxşı olar!</string>
|
||||
<string name="give_back">İanə Et</string>
|
||||
<string name="title_licenses">Üçüncü tərəf Lisenziyaları</string>
|
||||
<string name="tab_about">Haqqında & FAQ</string>
|
||||
<string name="contribution_title">Töhfə ver</string>
|
||||
<string name="contribution_encouragement">Fikirlərinizin olub-olmaması; tərcümə, dizayn dəyişiklikləri, kod təmizlənməsi və ya ciddi kod dəyişiklikləri - kömək həmişə xoşdur. Nə qədər çox edilsə, bir o qədər yaxşı olar!</string>
|
||||
<string name="give_back">İanə et</string>
|
||||
<string name="website_title">Veb sayt</string>
|
||||
<string name="website_encouragement">Əlavə məlumat və xəbərlər üçün NewPipe Veb saytını ziyarət et.</string>
|
||||
<string name="privacy_policy_title">NewPipe Məxfilik Siyasəti</string>
|
||||
<string name="privacy_policy_title">NewPipe-ın Məxfilik Siyasəti</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe layihəsi məxfiliyinizə çox ciddi yanaşır. Nəticə etibarı ilə, tətbiq sizin razılığınız olmadan heç bir məlumat toplamır.
|
||||
\nNewPipe məxfilik siyasəti xəta məlumatı göndərdiyiniz zaman hansı məlumatların göndərildiyini və saxlanıldığını ətraflı izah edir.</string>
|
||||
<string name="read_privacy_policy">Məxfilik Siyasətini Oxu</string>
|
||||
<string name="app_license_title">NewPipe Lisenziyası</string>
|
||||
<string name="read_privacy_policy">Məxfilik siyasətini oxu</string>
|
||||
<string name="app_license_title">NewPipe-ın Lisenziyası</string>
|
||||
<string name="action_history">Tarixçə</string>
|
||||
<string name="delete_item_search_history">Bu elementi axtarış tarixçəsindən silmək istəyirsiniz\?</string>
|
||||
<string name="title_last_played">Son Oynadılan</string>
|
||||
@@ -409,8 +409,8 @@
|
||||
<string name="recent">Ən Yeni</string>
|
||||
<string name="georestricted_content">Bu məzmun ölkənizdə mövcud deyil.</string>
|
||||
<string name="paid_content">Bu məzmun yalnız ödəniş etmiş istifadəçilər üçün əlçatandır, beləliklə, NewPipe tərəfindən yayımlana və ya yüklənilə bilməz.</string>
|
||||
<string name="auto_device_theme_title">Avtomatik (cihaz teması)</string>
|
||||
<string name="night_theme_summary">Sevimli gecə temanızı seçin — %s</string>
|
||||
<string name="auto_device_theme_title">Avtomatik (cihaz koloriti)</string>
|
||||
<string name="night_theme_summary">Sevimli gecə koloritinizi seçin — %s</string>
|
||||
<string name="detail_pinned_comment_view_description">Sancaqlanmış şərh</string>
|
||||
<string name="notifications_disabled">Bildirişlər qeyri-aktivdir</string>
|
||||
<string name="get_notified">Bildiriş al</string>
|
||||
@@ -443,11 +443,11 @@
|
||||
<string name="downloads_storage_ask_summary_no_saf_notice">Sizdən hər endirmənin harada saxlanılacağı soruşulacaq</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">\"Yaddaş Giriş Quruluşu\"yalnız Android 10\'dan başlayaraq dəstəklənir</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">Kanalın avatar miniatürü</string>
|
||||
<string name="select_night_theme_toast">Sevdiyiniz gecə temasını aşağıda seçə bilərsiniz</string>
|
||||
<string name="select_night_theme_toast">Sevdiyiniz gecə koloritin aşağıda seçə bilərsiniz</string>
|
||||
<string name="notification_colorize_summary">Android\'in bildiriş rəngini miniatürdəki əsas rəngə uyğun fərdiləşdirməsini təmin et (qeyd edək ki, bu, bütün cihazlarda mövcud deyil)</string>
|
||||
<string name="view_on_github">GitHub\'da Bax</string>
|
||||
<string name="donation_title">İanə Et</string>
|
||||
<string name="donation_encouragement">NewPipe, sizə ən yaxşı istifadəçi təcrübəsi göstərmək üçün boş vaxtını sərf edən könüllülər tərəfindən hazırlanmışdır. Tərtibatçıların bir fincan qəhvə içərkən NewPipe-ı daha da yaxşılaşdırmasına ianə edərək kömək edin.</string>
|
||||
<string name="view_on_github">GitHub-da Bax</string>
|
||||
<string name="donation_title">İanə et</string>
|
||||
<string name="donation_encouragement">NewPipe, sizə ən yaxşı istifadəçi təcrübəsini göstərmək üçün boş vaxtını sərf edən könüllülər tərəfindən hazırlanmışdır. Tərtibatçıların bir fincan qəhvə ilə ləzzət alarkən NewPipe-ı daha da yaxşılaşdırmasına ianə etməklə kömək edin.</string>
|
||||
<string name="most_liked">Ən çox bəyənildi</string>
|
||||
<string name="enqueued">Növbəyə salındı</string>
|
||||
<string name="preferred_open_action_settings_summary">Məzmunu açarkən standart hərəkət — %s</string>
|
||||
@@ -560,13 +560,13 @@
|
||||
<string name="drawer_open">Çəkməcəni Aç</string>
|
||||
<string name="hold_to_append">Növbələşdirmək üçün basılı tut</string>
|
||||
<string name="play_queue_remove">Sil</string>
|
||||
<string name="app_description">Android\'də pulsuz, zərif yayımlayıcı.</string>
|
||||
<string name="app_description">Android-də pulsuz, çevik yayımlanma.</string>
|
||||
<string name="copyright">© %1$s, %2$s tərəfindən %3$s altında</string>
|
||||
<string name="settings_category_downloads_title">Endirmə</string>
|
||||
<string name="settings_category_downloads_title">Yüklə</string>
|
||||
<string name="msg_popup_permission">Bu icazə, ani görüntü rejimində
|
||||
\naçmaq üçün lazımdır</string>
|
||||
<string name="msg_copied">Buferə köçürüldü</string>
|
||||
<string name="msg_threads">Kadrlar</string>
|
||||
<string name="msg_threads">Hissələr</string>
|
||||
<string name="rename">Adını dəyişdir</string>
|
||||
<string name="create">Yarat</string>
|
||||
<plurals name="subscribers">
|
||||
@@ -615,7 +615,7 @@
|
||||
<string name="metadata_language">Dil</string>
|
||||
<string name="metadata_privacy_public">İctimai</string>
|
||||
<string name="subscribers_count_not_available">Abunəçi sayı əlçatan deyil</string>
|
||||
<string name="read_full_license">Lisenziyanı Oxu</string>
|
||||
<string name="read_full_license">Lisenziyanı oxu</string>
|
||||
<string name="title_activity_history">Tarixçə</string>
|
||||
<string name="charset_letters_and_digits">Hərflər və rəqəmlər</string>
|
||||
<string name="crash_the_player">Oynadıcını çökdür</string>
|
||||
@@ -677,13 +677,13 @@
|
||||
<string name="progressive_load_interval_title">Oynatma yükləmə intervalı həcmi</string>
|
||||
<string name="faq_description">Tətbiqi istifadə etməkdə çətinlik çəkirsinizsə, ümumi suallara bu cavabları yoxladığınıza əmin olun!</string>
|
||||
<string name="faq_title">Tez-tez soruşulan suallar</string>
|
||||
<string name="faq">Veb Saytında bax</string>
|
||||
<string name="faq">Veb saytda bax</string>
|
||||
<string name="sort">Çeşidlə</string>
|
||||
<string name="app_update_unavailable_toast">NewPipe\'ın ən son versiyasın işlədirsiniz</string>
|
||||
<string name="fast_mode">Sürətli rejim</string>
|
||||
<string name="import_subscriptions_hint">3 nöqtə menyudan abunəlikləri idxal və ya ixrac et</string>
|
||||
<string name="app_update_available_notification_text">%s endirmək üçün toxun</string>
|
||||
<string name="night_theme_available">Bu seçim yalnız tema üçün %s seçildikdə əlçatandır</string>
|
||||
<string name="night_theme_available">Bu seçim yalnız kolorit üçün %s seçildikdə əlçatandır</string>
|
||||
<string name="unset_playlist_thumbnail">Daimi miniatürü ləğv et</string>
|
||||
<string name="card">Kart</string>
|
||||
<string name="msg_failed_to_copy">Buferə köçürmək alınmadı</string>
|
||||
@@ -707,7 +707,7 @@
|
||||
<string name="none">Heç biri</string>
|
||||
<string name="left_gesture_control_summary">Oynadıcı ekranının sol yarısı üçün jest seç</string>
|
||||
<string name="prefer_original_audio_title">Orijinal səsə üstünlük ver</string>
|
||||
<string name="prefer_original_audio_summary">Dildən asılı olmayaraq orijinal səs axını seç</string>
|
||||
<string name="prefer_original_audio_summary">Dildən asılı olmayaraq orijinal səs treki seç</string>
|
||||
<string name="prefer_descriptive_audio_title">Təsviri səsə üstünlük ver</string>
|
||||
<string name="prefer_descriptive_audio_summary">Varsa, görmə qabiliyyəti zəifləyən insanlar üçün təsviri olan səs axını seçin</string>
|
||||
<string name="play_queue_audio_track">Səs: %s</string>
|
||||
@@ -729,9 +729,9 @@
|
||||
<string name="no_live_streams">Canlı yayım yoxdur</string>
|
||||
<string name="disable_media_tunneling_automatic_info">Media dövrələmə cihazınızda standart olaraq qeyri-aktiv edilib, çünki cihazınızın modelinin bunu dəstəkləmədiyi məlumdur.</string>
|
||||
<string name="audio_track_name">%1$s %2$s</string>
|
||||
<string name="main_tabs_position_title">Əsas səhifə mövqeyi</string>
|
||||
<string name="main_tabs_position_summary">Əsas səhifə seçicini aşağıya köçür</string>
|
||||
<string name="loading_metadata_title">Üst Məlumat Yüklənir…</string>
|
||||
<string name="main_tabs_position_title">Əsas tabel mövqeyi</string>
|
||||
<string name="main_tabs_position_summary">Əsas tabel seçicini aşağıya köçür</string>
|
||||
<string name="loading_metadata_title">Şərhi Məlumat Yüklənilir…</string>
|
||||
<string name="feed_fetch_channel_tabs">Kanal səhifələrin əldə et</string>
|
||||
<string name="metadata_avatars">Avatarlar</string>
|
||||
<string name="metadata_subchannel_avatars">Alt kanal avatarları</string>
|
||||
@@ -740,7 +740,7 @@
|
||||
<string name="metadata_thumbnails">Miniatürlər</string>
|
||||
<string name="notification_actions_summary_android13">Aşağıdakı hər bildiriş fəaliyyətin ona toxunub redaktə edin. İlk üç fəaliyyət (oynatma/fasilə, əvvəlki və növbəti) sistem tərəfindən tənzimlənib və dəyişdirilə bilməz.</string>
|
||||
<string name="no">Xeyr</string>
|
||||
<string name="settings_category_backup_restore_title">Nüsxələ və bərpa et</string>
|
||||
<string name="settings_category_backup_restore_title">Nüsxələmə və bərpa</string>
|
||||
<string name="auto_update_check_description">NewPipe arabir avtomatik şəkildə yeni versiyaları yoxlaya və onlar mövcud olduqda sizə bildirə bilər.
|
||||
\nBunu aktivləşdirmək istəyirsiniz?</string>
|
||||
<string name="yes">Bəli</string>
|
||||
@@ -756,7 +756,7 @@
|
||||
<string name="image_quality_none">Şəkilləri yükləmə</string>
|
||||
<string name="metadata_banners">Lövhələr</string>
|
||||
<string name="channel_tab_videos">Videolar</string>
|
||||
<string name="channel_tab_tracks">Axınlar</string>
|
||||
<string name="channel_tab_tracks">Treklər</string>
|
||||
<string name="channel_tab_channels">Kanallar</string>
|
||||
<string name="channel_tab_about">Haqqında</string>
|
||||
<string name="show_channel_tabs">Kanal səhifələri</string>
|
||||
@@ -802,7 +802,7 @@
|
||||
<string name="feed_group_page_summary">Kanal qrupu səhifəsi</string>
|
||||
<string name="search_with_service_name">%1$s axtar</string>
|
||||
<string name="search_with_service_name_and_filter">%1$s (%2$s) axtar</string>
|
||||
<string name="channel_tab_likes">Bəyənmə</string>
|
||||
<string name="channel_tab_likes">Bəyənmələr</string>
|
||||
<string name="migration_info_6_7_title">SoundCloud Top 50 səhifəsi silindi</string>
|
||||
<string name="migration_info_6_7_message">SoundCloud ilk Ən yaxşı 50 siyahısın ləğv etdi. Uyğun səhifə əsas səhifənizdən silindi.</string>
|
||||
<string name="short_thousand">%sMin</string>
|
||||
@@ -845,4 +845,9 @@
|
||||
<string name="import_subscriptions_summary">Əvvəlki .json ixracından abunəlikləri idxal et</string>
|
||||
<string name="export_subscriptions_summary">Abunəliklərinizi .json faylına köçürün</string>
|
||||
<string name="import_from_previous_export">Əvvəlki köçürmədən idxal et</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe Android 5 üçün dəstəyi dayandırır</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Bloq elanı</string>
|
||||
<string name="api23_requirement_dialog_message">Təəssüf ki, NewPipe Android 5.0 və 5.1 üçün dəstəyi dayandıran bir neçə kitabxanadan asılıdır. Bu səbəbdən, üzücü olaraq növbəti NewPipe buraxılışı yalnız Android 6 və ya daha yüksək versiyalı cihazlarda işləyəcək. Daha çoxunu blog elanında oxu.</string>
|
||||
<string name="channel_tab_podcasts">Podkastlar</string>
|
||||
<string name="channel_tab_courses">Kurslar</string>
|
||||
</resources>
|
||||
|
||||
@@ -206,18 +206,18 @@
|
||||
<string name="settings_file_replacement_character_title">Сімвал для замены</string>
|
||||
<string name="charset_letters_and_digits">Літары і лічбы</string>
|
||||
<string name="charset_most_special_characters">Большасць спецсімвалаў</string>
|
||||
<string name="title_activity_about">Аб NewPipe</string>
|
||||
<string name="title_licenses">Іншыя ліцэнзіі</string>
|
||||
<string name="title_activity_about">Пра NewPipe</string>
|
||||
<string name="title_licenses">Староннія ліцэнзіі</string>
|
||||
<string name="copyright" formatted="true">© %1$s %2$s пад ліцэнзіяй %3$s</string>
|
||||
<string name="tab_about">Аб праграме</string>
|
||||
<string name="tab_licenses">Ліцэнзіі</string>
|
||||
<string name="app_description">Свабоднае легкавагавае патокавае прайграванне на Android.</string>
|
||||
<string name="app_description">Легкавагавая праграма з адкрытым зыходным кодам для патокавага прайгравання на Android.</string>
|
||||
<string name="contribution_title">Дапамога праекту</string>
|
||||
<string name="contribution_encouragement">Вітаецца ўсё - ідэі, пераклад, змены дызайну, чыстка кода або велізарныя змены ў кодзе. Чым больш зроблена, тым лепш!</string>
|
||||
<string name="view_on_github">Адкрыць на GitHub</string>
|
||||
<string name="view_on_github">Старонка на GitHub</string>
|
||||
<string name="donation_title">Ахвяраванне</string>
|
||||
<string name="donation_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="privacy_policy_title">Палітыка прыватнасці NewPipe</string>
|
||||
@@ -435,7 +435,7 @@
|
||||
<string name="no_playlist_bookmarked_yet">Плэй-лісты яшчэ не дададзены</string>
|
||||
<string name="select_a_playlist">Выберыце плэй-ліст</string>
|
||||
<string name="default_kiosk_page_summary">Прадвызначаны кіёск</string>
|
||||
<string name="done">Так</string>
|
||||
<string name="done">Гатова</string>
|
||||
<string name="subtitle_activity_recaptcha">Па завяршэнні націсніце «Гатова»</string>
|
||||
<string name="infinite_videos">∞ відэа</string>
|
||||
<string name="more_than_100_videos">100+ відэа</string>
|
||||
@@ -614,10 +614,10 @@
|
||||
<string name="feed_processing_message">Апрацоўка стужкі…</string>
|
||||
<string name="downloads_storage_ask_summary_no_saf_notice">Пры кожным спампоўванні вам будзе прапанавана выбраць месца захавання</string>
|
||||
<string name="feed_notification_loading">Загрузка канала…</string>
|
||||
<string name="remove_watched_popup_title">Выдаліць прагледжаныя відэа?</string>
|
||||
<string name="remove_watched_popup_title">Выдаліць прагледжаныя трансляцыі?</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Так, часткова прагледжаныя відэа таксама</string>
|
||||
<string name="percent">Працэнт</string>
|
||||
<string name="remove_watched_popup_warning">Відэа, якія прагледжаны перад дадаваннем і пасля дадавання ў спіс прайгравання, будуць выдалены. \nВы ўпэўнены? Гэта дзеянне немагчыма скасаваць!</string>
|
||||
<string name="remove_watched_popup_warning">Трансляцыі, якія прагледжаны перад дадаваннем і пасля дадавання ў спіс прайгравання, будуць выдалены. \nВы ўпэўнены?</string>
|
||||
<string name="show_crash_the_player_summary">Паказвае варыянт збою пры выкарыстанні плэера</string>
|
||||
<string name="remove_watched">Выдаліць прагледжаныя</string>
|
||||
<string name="show_error_snackbar">Паказаць панэль памылак</string>
|
||||
@@ -802,7 +802,7 @@
|
||||
<string name="auto_update_check_description">NewPipe можа час ад часу аўтаматычна правяраць наяўнасць новай версіі і апавяшчаць, калі яна будзе даступна. \nУключыць гэту функцыю?</string>
|
||||
<string name="import_settings_vulnerable_format">Налады ў імпартаваным экспарце выкарыстоўваюць уразлівы фармат, які састарэў з версіі NewPipe 0.27.0. Пераканайцеся, што імпартаваны экспарт атрыманы з надзейнай крыніцы, і ў будучыні пераважней выкарыстоўваць толькі экспарт, атрыманы з NewPipe 0.27.0 ці навей. Падтрымка імпарту налад у гэтым уразлівым фармаце хутка будзе цалкам выдаленая, і тады старыя версіі NewPipe больш не змогуць імпартаваць наладкі з экспарту з новых версій.</string>
|
||||
<string name="no">Не</string>
|
||||
<string name="settings_category_backup_restore_title">Рэзервовае капіяванне і аднаўленне</string>
|
||||
<string name="settings_category_backup_restore_title">Рэзервовыя копіі і аднаўленне</string>
|
||||
<string name="reset_settings_title">Скінуць налады</string>
|
||||
<string name="reset_settings_summary">Скінуць усе налады на іх прадвызначаныя значэнні</string>
|
||||
<string name="reset_all_settings">Пры скіданні ўсіх налад будуць адхілены ўсе вашы змены налад і праграма перазапусціцца. \n \nСапраўды хочаце працягнуць?</string>
|
||||
@@ -830,4 +830,42 @@
|
||||
<string name="unsupported_content_in_country">Гэты кантэнт недаступны для цяперашняй краіны кантэнту.\n\nЯе можна змяніць праз «Налады > Кантэнт > Прадвызначаная краіна кантэнту».</string>
|
||||
<string name="migration_info_7_8_message">21 ліпеня 2025 года YouTube спыніў падтрымку аб\'яднанай старонкі трэндаў. NewPipe замяніў старонку трэндаў на трэнды трансляцый.\n\nТаксама можна выбраць іншыя старонкі трэндаў праз «Налады > Кантэнт > Змесціва галоўнай старонкі».</string>
|
||||
<string name="migration_info_7_8_title">Аб\'яднаныя трэнды YouTube выдалены</string>
|
||||
<string name="import_subscriptions_title">Імпартаваць падпіскі</string>
|
||||
<string name="export_subscriptions_title">Экспартаваць падпіскі</string>
|
||||
<string name="kao_dialog_warning">У жніўні 2025 года Google абвясціў, што з верасня 2026 года для ўсталявання праграм для Android на сертыфікаваныя прылады будзе патрабавацца праверка распрацоўшчыка. Гэта тычыцца і тых праграм, што ўсталёўваюцца па-за Play Store. Паколькі распрацоўшчыкі NewPipe не згодныя з гэтым патрабаваннем, пасля гэтага часу NewPipe больш не будзе працаваць на сертыфікаваных прыладах Android.</string>
|
||||
<string name="kao_dialog_more_info">Падрабязнасці</string>
|
||||
<string name="kao_solution">Рашэнне</string>
|
||||
<string name="permission_display_over_apps_message">Каб выкарыстоўваць аконны прайгравальнік, у наступным меню налад Android выберыце %1$s і ўключыце %2$s.</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Экспартаванне %d падпіскі…</item>
|
||||
<item quantity="few">Экспартаванне %d падпісак…</item>
|
||||
<item quantity="many">Экспартаванне %d падпісак…</item>
|
||||
<item quantity="other">Экспартаванне %d падпісак…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Загрузка %d падпіскі…</item>
|
||||
<item quantity="few">Загрузка %d падпісак…</item>
|
||||
<item quantity="many">Загрузка %d падпісак…</item>
|
||||
<item quantity="other">Загрузка %d падпісак…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Імпартаванне %d падпіскі…</item>
|
||||
<item quantity="few">Імпартаванне %d падпісак…</item>
|
||||
<item quantity="many">Імпартаванне %d падпісак…</item>
|
||||
<item quantity="other">Імпартаванне %d падпісак…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_summary">Імпарт падпісак з папярэдняга экспарту ў .json</string>
|
||||
<string name="export_subscriptions_summary">Экспарт падпісак у файл .json</string>
|
||||
<string name="import_from_previous_export">Імпарт з папярэдняга экспарту</string>
|
||||
<string name="account_terminated_service_provides_reason">Уліковы запіс спынены\n\n%1$s паведамляе наступную прычыну: %2$s</string>
|
||||
<string name="migration_info_6_7_message">SoundCloud больш не публікуе свой спіс 50 лепшых. Адпаведная ўкладка выдалена з галоўнай старонкі.</string>
|
||||
<string name="player_http_403">Падчас прайгравання ад сервера атрымана памылка HTTP 403, хутчэй за ўсё гэта выклікана заканчэннем тэрміну дзеяння URL для патокавай перадачы або блакіраваннем IP-адраса</string>
|
||||
<string name="player_http_invalid_status">Падчас прайгравання ад сервера атрымана памылка HTTP %1$s</string>
|
||||
<string name="youtube_player_http_403">Падчас прайгравання ад сервера атрымана памылка HTTP 403, хутчэй за ўсё гэта выклікана блакіроўкай IP-адраса або праблемамі з дэабфускацыяй URL-адраса для патокавай перадачы</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe спыняе падтрымку Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">На жаль, NewPipe залежыць ад некалькіх бібліятэк, якія спынілі падтрымку Android 5.0 і 5.1. Таму наступны выпуск NewPipe, будзе працаваць толькі на прыладах з Android 6 і вышэй. Падрабязнасці можна прачытаць ў блогу.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Запіс у блогу</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s адмовіўся перадаць даныя, запытаўшы ўваход у сістэму для пацвярджэння, што вы не бот.\n\nМагчыма, ваш IP-адрас быў часова заблакіраваны %1$s. Можна пачакаць некаторы час або перайсці на іншы IP-адрас (напрыклад, уключыўшы/выключыўшы VPN або пераключыўшыся з Wi-Fi на мабільныя даныя).\n\nПаглядзіце гэты <a href="%2$s">раздзел FAQ</a>, каб атрымаць дадатковую інфармацыю.</string>
|
||||
<string name="channel_tab_podcasts">Падкасты</string>
|
||||
<string name="channel_tab_courses">Курсы</string>
|
||||
</resources>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<string name="no_player_found">Не е намерен стрийм плейър. Инсталиране на VLC\?</string>
|
||||
<string name="install">Инсталиране</string>
|
||||
<string name="cancel">Отмяна</string>
|
||||
<string name="open_in_browser">Отваряне в браузър</string>
|
||||
<string name="open_in_browser">Отвори в браузър</string>
|
||||
<string name="open_in_popup_mode">Отваряне в прозорец</string>
|
||||
<string name="share">Споделяне</string>
|
||||
<string name="download">Изтегляне</string>
|
||||
@@ -65,7 +65,7 @@
|
||||
<string name="settings_category_player_behavior_title">Поведение</string>
|
||||
<string name="settings_category_video_audio_title">Видео и аудио</string>
|
||||
<string name="settings_category_history_title">История и кеш</string>
|
||||
<string name="settings_category_appearance_title">Външност</string>
|
||||
<string name="settings_category_appearance_title">Външен вид</string>
|
||||
<string name="background_player_playing_toast">Възпроизвеждане във фонов режим</string>
|
||||
<string name="popup_playing_toast">Възпроизвеждане в подпрозорец</string>
|
||||
<string name="content">Съдържание</string>
|
||||
@@ -139,12 +139,12 @@
|
||||
<string name="settings_file_replacement_character_summary">Невалидните символи се заменят с тази стойност</string>
|
||||
<string name="settings_file_replacement_character_title">Символ за замяна</string>
|
||||
<string name="charset_letters_and_digits">Букви и цифри</string>
|
||||
<string name="title_activity_about">За NewPipe</string>
|
||||
<string name="title_licenses">Лицензи от трети страни</string>
|
||||
<string name="tab_about">За приложението</string>
|
||||
<string name="title_activity_about">Относно NewPipe</string>
|
||||
<string name="title_licenses">Лицензи на трети страни</string>
|
||||
<string name="tab_about">За нас и ЧЗВ</string>
|
||||
<string name="tab_licenses">Лицензи</string>
|
||||
<string name="app_description">Безплатно и леко поточно предаване за Android.</string>
|
||||
<string name="view_on_github">Виж в GitHub</string>
|
||||
<string name="app_description">Безплатно леко стрийминг на Android.</string>
|
||||
<string name="view_on_github">Преглед в GitHub</string>
|
||||
<string name="controls_download_desc">Изтегляне на стрийм файл</string>
|
||||
<string name="show_info">Покажи информация</string>
|
||||
<string name="tab_bookmarks">Отметнати плейлисти</string>
|
||||
@@ -187,18 +187,17 @@
|
||||
<string name="create">Създай</string>
|
||||
<string name="dismiss">Откажи</string>
|
||||
<string name="copyright" formatted="true">© %1$s от %2$s под лиценза %3$s</string>
|
||||
<string name="contribution_title">Съдействайте</string>
|
||||
<string name="contribution_encouragement">За всичко, което се сетите: превод, промени по дизайна, изчистване на кода или много сериозни промени по кода – помощта е винаги добре дошла. Колкото повече развитие, толкова по-добре!</string>
|
||||
<string name="donation_title">Дарение</string>
|
||||
<string name="donation_encouragement">NewPipe се разработва от доброволци, които отделят от своето време, за да предоставят най-доброто потребителско изживяване. Включете се в разработката като почерпите разработчиците с една чашка кафе, които да изпият, докато правят NewPipe още по-добро приложение.</string>
|
||||
<string name="give_back">Дари</string>
|
||||
<string name="contribution_title">Допринесете</string>
|
||||
<string name="contribution_encouragement">Независимо дали имате идеи за превод, промени в дизайна, почистване на кода или наистина сериозни промени в кода – помощта винаги е добре дошла. Колкото повече се направи, толкова по-добре става!</string>
|
||||
<string name="donation_title">Дарете</string>
|
||||
<string name="donation_encouragement">NewPipe е разработен от доброволци, които прекарват свободното си време, за да ви осигурят най-доброто потребителско изживяване. Дарете, за да помогнете на разработчиците да направят NewPipe още по-добър, докато се наслаждават на чаша кафе.</string>
|
||||
<string name="give_back">Върни обратно</string>
|
||||
<string name="website_title">Уебсайт</string>
|
||||
<string name="website_encouragement">Посетете сайта на NewPipe за повече информация и новини.</string>
|
||||
<string name="privacy_policy_title">Политиката на NewPipe за личните данни</string>
|
||||
<string name="privacy_policy_encouragement">Проектът NewPipe се отнася много сериозно към вашата поверителност. За това, приложението не събира никакви данни без вашето съгласие.
|
||||
\nНашата политика за личните данни обяснява подробно какви данни изпращате и къде се съхраняват, когато изпращате съобщения за грешки.</string>
|
||||
<string name="read_privacy_policy">Прочетете нашата политика за поверителност</string>
|
||||
<string name="app_license_title">Лицензът на NewPipe</string>
|
||||
<string name="website_encouragement">Посетете уебсайта на NewPipe за повече информация и новини.</string>
|
||||
<string name="privacy_policy_title">Политика за поверителност на NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">Проектът NewPipe приема вашата поверителност много сериозно. Затова приложението не събира никакви данни без вашето съгласие.\nПолитиката за поверителност на NewPipe подробно обяснява какви данни се изпращат и съхраняват при изпращане на доклад за срив.</string>
|
||||
<string name="read_privacy_policy">Прочетете политиката за поверителност</string>
|
||||
<string name="app_license_title">Лиценз на NewPipe</string>
|
||||
<string name="no_player_found_toast">Липсва стрийм плейър (можете да изтеглите VLC, за да пуснете стрийма).</string>
|
||||
<string name="show_hold_to_append_summary">Покажи съвет при натискане на фона или изскачащия бутон във видеоклипа \"Подробности:“</string>
|
||||
<string name="clear_views_history_summary">Изтрива историята на възпроизвежданите стриймове и позицията на възпроизвеждането</string>
|
||||
@@ -216,7 +215,7 @@
|
||||
<string name="recaptcha_request_toast">Изисква се въвеждане на reCAPTCHA</string>
|
||||
<string name="settings_category_downloads_title">Изтегляне</string>
|
||||
<string name="charset_most_special_characters">Повечето специални символи</string>
|
||||
<string name="app_license">NewPipe е свободен софтуер с авторски права: можете да го използвате, изучавате, споделяте и подобрявате по желание. По-конкретно можете да го разпространявате и/или променяте съгласно условията на Общия публичен лиценз на GNU, публикуван от Фондацията за свободен софтуер, версия 3 на лиценза или (по ваш избор) която и да е по-късна версия.</string>
|
||||
<string name="app_license">NewPipe е софтуер с авторско право: Можете да го използвате, изучавате, споделяте и подобрявате по ваше желание. По-конкретно, можете да го разпространявате и/или променяте съгласно условията на Общия публичен лиценз на GNU, публикуван от Фондацията за свободен софтуер, или версия 3 на Лиценза, или (по ваш избор) всяка по-късна версия.</string>
|
||||
<string name="read_full_license">Прочетете лиценза</string>
|
||||
<string name="title_activity_history">История</string>
|
||||
<string name="action_history">История</string>
|
||||
@@ -320,7 +319,7 @@
|
||||
<string name="show_comments_summary">Изключете за скриване на коментарите</string>
|
||||
<string name="autoplay_title">Автоматично пускане</string>
|
||||
<string name="tab_choose">Избор на раздел</string>
|
||||
<string name="settings_category_updates_title">Промени</string>
|
||||
<string name="settings_category_updates_title">Актуализации</string>
|
||||
<string name="enable_playback_resume_title">Възобнови възпроизвеждането</string>
|
||||
<string name="settings_category_clear_data_title">Изтрии данни</string>
|
||||
<string name="search_showing_result_for">Показване на резултати за: %s</string>
|
||||
@@ -609,7 +608,7 @@
|
||||
<string name="settings_category_player_notification_title">Известие на плеъра</string>
|
||||
<string name="msg_failed_to_copy">Неуспешно копиране в клипборда</string>
|
||||
<string name="faq_title">Често задавани въпроси</string>
|
||||
<string name="faq">Отвори уеб страницата</string>
|
||||
<string name="faq">Преглед на уебсайта</string>
|
||||
<string name="title_activity_play_queue">Възпроизвеждане на опашка</string>
|
||||
<string name="leak_canary_not_available">LeakCanary не е открито</string>
|
||||
<string name="show_memory_leaks">Покажи къде изтича паметта</string>
|
||||
@@ -630,7 +629,7 @@
|
||||
<string name="streams_notifications_interval_title">Честота на проверка</string>
|
||||
<string name="next_stream">Следващ поток</string>
|
||||
<string name="settings_category_feed_title">Емисия</string>
|
||||
<string name="settings_category_backup_restore_title">Резервно копие и възстановяване</string>
|
||||
<string name="settings_category_backup_restore_title">Архивиране и възстановяване</string>
|
||||
<string name="loading_metadata_title">Зареждане на метаданни…</string>
|
||||
<string name="restore_defaults_confirmation">Искате ли да възстановите настройките по подразбиране?</string>
|
||||
<string name="show_age_restricted_content_summary">Покажи съдържание, което вероятно е неподходящо за деца, защото има възрастово ограничение (например 18+)</string>
|
||||
@@ -722,7 +721,7 @@
|
||||
<item quantity="other">%s нови потоци</item>
|
||||
</plurals>
|
||||
<string name="subtitle_activity_recaptcha">Натиснете „Готово“, когато решите</string>
|
||||
<string name="faq_description">Ако имате проблеми с използването на приложението, не забравяйте да проверите тези отговори на често задавани въпроси!</string>
|
||||
<string name="faq_description">Ако имате проблеми с използването на приложението, не забравяйте да разгледате тези отговори на често задавани въпроси!</string>
|
||||
<string name="main_page_content_swipe_remove">Плъзнете елементи, за да ги премахнете</string>
|
||||
<string name="default_kiosk_page_summary">Kiosk по подразбиране</string>
|
||||
<string name="enqueue_next_stream">Наредете следващия</string>
|
||||
@@ -852,4 +851,9 @@
|
||||
<string name="import_subscriptions_summary">Внасяне на абонаменти от предишен .json файл</string>
|
||||
<string name="export_subscriptions_summary">Изнесете абонаментите си в .json файл</string>
|
||||
<string name="import_from_previous_export">Внасяне от предишно изнасяне</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe спира поддръжката си за Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">За съжаление NewPipe зависи от няколко библиотеки, които спряха поддръжката за Android 5.0 и 5.1. Следователно, за съжаление, следващата версия на NewPipe ще работи само на устройства с Android 6 или по-нова версия. Прочетете повече в публикацията в блога.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Публикация в блога</string>
|
||||
<string name="channel_tab_podcasts">Подкасти</string>
|
||||
<string name="channel_tab_courses">Курсове</string>
|
||||
</resources>
|
||||
|
||||
@@ -199,8 +199,8 @@
|
||||
<string name="website_encouragement">Per a més informació i notícies, visiteu el nostre web.</string>
|
||||
<string name="title_last_played">Últimes reproduccions</string>
|
||||
<string name="title_most_played">Més reproduïts</string>
|
||||
<string name="kiosk_page_summary">Tendències</string>
|
||||
<string name="channel_page_summary">Pàgina d\'un canal</string>
|
||||
<string name="kiosk_page_summary">Pàgina de quiosc</string>
|
||||
<string name="channel_page_summary">Pàgina de canal</string>
|
||||
<string name="select_a_kiosk">Trieu un quiosc</string>
|
||||
<string name="no_valid_zip_file">El fitxer no té un format ZIP vàlid</string>
|
||||
<string name="could_not_import_all_files">Avís: No s\'han pogut importar tots els fitxers.</string>
|
||||
@@ -509,8 +509,8 @@
|
||||
</plurals>
|
||||
<string name="new_seek_duration_toast">A causa de les limitacions d\'ExoPlayer, la durada de cerca és de %d segons</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Sí, i també els vídeos vistos parcialment</string>
|
||||
<string name="remove_watched_popup_warning">Els vídeos que ja heu vist tant abans com després d\'haver estat afegits a la llista de reproducció seran suprimits. \nN\'esteu segurs? Aquesta acció no pot desfer-se!</string>
|
||||
<string name="remove_watched_popup_title">Esborrar els vídeos ja vistos?</string>
|
||||
<string name="remove_watched_popup_warning">S\'eliminaran les transmissions que s\'hagin vist abans i després d\'afegir-les a la llista de reproducció.\n\nN’esteu segur?</string>
|
||||
<string name="remove_watched_popup_title">Eliminar transmissions vistes?</string>
|
||||
<string name="remove_watched">Esborra els ja vistos</string>
|
||||
<string name="systems_language">Valors per defecte</string>
|
||||
<string name="app_language_title">Llengua de l\'aplicació</string>
|
||||
@@ -820,4 +820,57 @@
|
||||
<string name="no_feed_group_created_yet">Encara no s\'ha creat cap grup de continguts</string>
|
||||
<string name="select_a_feed_group">Tria un grup de continguts</string>
|
||||
<string name="feed_group_page_summary">Pàgina del grup de canals</string>
|
||||
<string name="search_with_service_name">Cercar %1$s</string>
|
||||
<string name="search_with_service_name_and_filter">Cercar %1$s (%2$s)</string>
|
||||
<string name="short_billion">%sB</string>
|
||||
<string name="channel_tab_likes">M\'agrada</string>
|
||||
<string name="kao_dialog_more_info">Detalls</string>
|
||||
<string name="kao_solution">Solució</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Article</string>
|
||||
<string name="trending_gaming">Tendències de videojocs</string>
|
||||
<string name="trending_podcasts">Tendències de podcasts</string>
|
||||
<string name="trending_music">Tendències de música</string>
|
||||
<string name="delete_file">Esborrar fitxer</string>
|
||||
<string name="delete_entry">Esborrar entrada</string>
|
||||
<string name="entry_deleted">Entrada esborrada</string>
|
||||
<string name="import_subscriptions_title">Importar subscripcions</string>
|
||||
<string name="export_subscriptions_title">Exportar suscripcions</string>
|
||||
<string name="migration_info_7_8_title">Esborrades tendències combinades de YouTube</string>
|
||||
<string name="trending_movies">Tendències de pel·lícules i sèries</string>
|
||||
<string name="import_from_previous_export">Importar des d\'exportació anterior</string>
|
||||
<string name="permission_display_over_apps_message">Per utilitzar el reproductor emergent, seleccioneu %1$s al següent menú de configuració d\'Android i habiliteu %2$s.</string>
|
||||
<string name="permission_display_over_apps_permission_name">“Permetre visualització sobre altres aplicacions”</string>
|
||||
<string name="short_thousand">%sK</string>
|
||||
<string name="short_million">%sM</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Exportant subscripció %d…</item>
|
||||
<item quantity="many">Exportant subscripcions %d…</item>
|
||||
<item quantity="other">Exportant subscripcions %d…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Carregant subscripció %d…</item>
|
||||
<item quantity="many">Carregant subscripcions %d…</item>
|
||||
<item quantity="other">Carregant subscripcions %d…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Important subscripció %d…</item>
|
||||
<item quantity="many">Important subscripcions %d…</item>
|
||||
<item quantity="other">Important subscripcions %d…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_summary">Importar subscripcions d\'una exportació .json anterior</string>
|
||||
<string name="export_subscriptions_summary">Exportar les vostres subscripcions a un fitxer .json</string>
|
||||
<string name="account_terminated_service_provides_reason">Compte cancel·lat %1$s proporciona aquest motiu: %2$s</string>
|
||||
<string name="migration_info_6_7_title">Pàgina Top 50 de SoundCloud eliminada</string>
|
||||
<string name="migration_info_6_7_message">SoundCloud ha descontinuat les llistes Top 50 originals. La pestanya corresponent s\'ha eliminat de la pàgina principal.</string>
|
||||
<string name="migration_info_7_8_message">YouTube va descontinuar la pàgina de tendències combinades a partir del 21 de juliol de 2025. NewPipe va reemplaçar la pàgina de tendències predeterminada amb les transmissions en viu de tendències.\n\nTambé podeu seleccionar diferents pàgines de tendències a \"Configuració > Contingut > Contingut de la pàgina principal\".</string>
|
||||
<string name="player_http_403">Error HTTP 403 rebut del servidor durant la reproducció, probablement causat per l\'expiració de la URL de transmissió o un bloqueig d\'IP.</string>
|
||||
<string name="player_http_invalid_status">Error HTTP %1$s rebut del servidor durant la reproducció</string>
|
||||
<string name="youtube_player_http_403">Error HTTP 403 rebut del servidor durant la reproducció, probablement causat per un bloqueig d\'IP o problemes de desofuscació de la URL de transmissió</string>
|
||||
<string name="sign_in_confirm_not_bot_error">\'\'%1$s es va negar a proporcionar dades, sol·licitant un inici de sessió per confirmar que el sol·licitant no és un bot.\n\nÉs possible que %1$s hagi bloquejat temporalment la vostra IP. Pots esperar un temps o canviar a una IP diferent (per exemple, activant/desactivant una VPN o canviant de Wi-Fi a dades mòbils).\n\nConsulta <a href="%2$s">aquesta entrada de preguntes freqüents</a> per obtenir més informació’</string>
|
||||
<string name="unsupported_content_in_country">Aquest contingut no està disponible per al país de contingut seleccionat actualment.\n\nCanvia la teva selecció a \"Paràmetres > Contingut > País de contingut predeterminat\".</string>
|
||||
<string name="kao_dialog_warning">A l\'agost del 2025, Google va anunciar que, a partir del setembre del 2026, la instal·lació d\'aplicacions requerirà la verificació del desenvolupador per a totes les aplicacions d\'Android en dispositius certificats, incloses les instal·lades fora de la Play Store. Com que els desenvolupadors de NewPipe no estan d\'acord amb aquest requisit, NewPipe deixarà de funcionar en dispositius Android certificats després d\'aquesta data.</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe deixarà de ser compatible amb Android 5.</string>
|
||||
<string name="api23_requirement_dialog_message">Malauradament, NewPipe depèn d\'algunes biblioteques que van deixar de ser compatibles amb Android 5.0 i 5.1. Per tant, la propera versió de NewPipe només funcionarà en dispositius amb Android 6 o superior. Llegeix més a la publicació del bloc.</string>
|
||||
<string name="channel_tab_podcasts">pòdcasts</string>
|
||||
<string name="channel_tab_courses">Cursos</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="title_activity_about">Ekran o nama</string>
|
||||
<string name="title_licenses">Licence trećih strana</string>
|
||||
<string name="tab_about">O Nama & Ćesto postavljana pitanja</string>
|
||||
<string name="tab_licenses">Licence</string>
|
||||
<string name="app_description">Libre lako strimanje na Androidu</string>
|
||||
<string name="contribution_title">Doprinesi</string>
|
||||
<string name="contribution_encouragement">Ako imate ideje; translacije, izmjene dizajnsa, ćistenje koda ili prave teske dizajna -- pomoc je uvijek dobrodośla. Śto viśe uradimo bolje će biti</string>
|
||||
<string name="view_on_github">Pogledajte na GitHub-u</string>
|
||||
<string name="donation_title">Doniraj</string>
|
||||
<string name="give_back">Vrati Nazad</string>
|
||||
<string name="website_title">Website</string>
|
||||
<string name="website_encouragement">Pogledaj NewPipe Website za viśe informacije i novosti.</string>
|
||||
<string name="privacy_policy_title">Politka Privatnosti</string>
|
||||
<string name="read_privacy_policy">Proćitaj politiku privatnosti</string>
|
||||
<string name="app_license_title">NewPipe License</string>
|
||||
<string name="read_full_license">Proćitaj License</string>
|
||||
<string name="faq_title">Ćesto postavljana pitanja</string>
|
||||
<string name="faq_description">Ako imate probleme koriśteći aplikaciju, budite sigurnu da pogledate odgovore na iobičajna pitanja</string>
|
||||
<string name="faq">Pogledajte na Website</string>
|
||||
<string name="open_in_browser">Otvorite u browser</string>
|
||||
<string name="done">Gotovo</string>
|
||||
</resources>
|
||||
@@ -26,9 +26,9 @@
|
||||
<string name="show_play_with_kodi_summary">Zobrazit možnost přehrání videa pomocí multimediálního centra Kodi</string>
|
||||
<string name="play_audio">Zvuk</string>
|
||||
<string name="default_audio_format_title">Výchozí formát zvuku</string>
|
||||
<string name="theme_title">Téma</string>
|
||||
<string name="dark_theme_title">Tmavé</string>
|
||||
<string name="light_theme_title">Světlé</string>
|
||||
<string name="theme_title">Motiv</string>
|
||||
<string name="dark_theme_title">Tmavý</string>
|
||||
<string name="light_theme_title">Světlý</string>
|
||||
<string name="download_dialog_title">Stáhnout</string>
|
||||
<string name="show_next_and_similar_title">Zobrazovat \'další\' a \'podobná\' videa</string>
|
||||
<string name="unsupported_url">URL není podporováno</string>
|
||||
@@ -78,7 +78,7 @@
|
||||
<string name="ok">OK</string>
|
||||
<string name="title_activity_recaptcha">Výzva reCAPTCHA</string>
|
||||
<string name="recaptcha_request_toast">Požadována výzva reCAPTCHA</string>
|
||||
<string name="black_theme_title">Černé</string>
|
||||
<string name="black_theme_title">Černý</string>
|
||||
<string name="checksum">Kontrolní součet</string>
|
||||
<string name="no_available_dir">Určete prosím složku pro stahování později v nastavení</string>
|
||||
<string name="info_labels">Co:\nŽádost:\nJazyk obsahu:\nZemě obsahu:\nJazyk aplikace:\nSlužba:\nČas GMT:\nBalíček:\nVerze:\nVerze OS:</string>
|
||||
@@ -146,17 +146,17 @@
|
||||
<string name="settings_file_replacement_character_title">Náhradní znak</string>
|
||||
<string name="charset_letters_and_digits">Písmena a číslice</string>
|
||||
<string name="charset_most_special_characters">Většina speciálních znaků</string>
|
||||
<string name="title_activity_about">O NewPipe</string>
|
||||
<string name="title_activity_about">O aplikaci NewPipe</string>
|
||||
<string name="title_licenses">Licence třetích stran</string>
|
||||
<string name="copyright" formatted="true">© %1$s od %2$s pod %3$s</string>
|
||||
<string name="tab_about">O aplikaci a FAQ</string>
|
||||
<string name="tab_about">O aplikaci a dotazy</string>
|
||||
<string name="tab_licenses">Licence</string>
|
||||
<string name="app_description">Svobodné a nenáročné streamování v Androidu.</string>
|
||||
<string name="view_on_github">Zobraz na GitHubu</string>
|
||||
<string name="app_description">Svobodné a lehké streamování pro Android.</string>
|
||||
<string name="view_on_github">Zobrazit na GitHubu</string>
|
||||
<string name="app_license_title">Licence NewPipe</string>
|
||||
<string name="contribution_encouragement">Pokud máte nápady na zlepšení jako; překlad, změny designu, vylepšování kódu nebo opravdu velké změny kódu - pomoc je vždy vítána. Čím více se udělá, tím lepší to bude!</string>
|
||||
<string name="contribution_encouragement">Ať máte nápady na překlad, designové změny, pročištění kódu nebo velké změny – pomoc je vždy vítána. Čím více, tím lépe!</string>
|
||||
<string name="read_full_license">Přečíst licenci</string>
|
||||
<string name="contribution_title">Podílet se</string>
|
||||
<string name="contribution_title">Přispějte</string>
|
||||
<string name="title_activity_history">Historie</string>
|
||||
<string name="action_history">Historie</string>
|
||||
<string name="show_hold_to_append_title">Zobrazit tip „Podržte pro zařazení do fronty“</string>
|
||||
@@ -184,10 +184,10 @@
|
||||
<string name="start_here_on_background">Začít přehrávat na pozadí</string>
|
||||
<string name="start_here_on_popup">Začít přehrávat v pop-upu</string>
|
||||
<string name="donation_title">Přispět</string>
|
||||
<string name="donation_encouragement">NewPipe je vyvíjen dobrovolníky, kteří tráví svůj volný čas, aby vaše zkušenost s aplikací byla co nejlepší. Vraťte vývojářům něco zpět, aby mohli NewPipe dále zlepšovat a zároveň si vychutnat šálek kávy.</string>
|
||||
<string name="give_back">Daruj</string>
|
||||
<string name="website_title">Webová stránka</string>
|
||||
<string name="website_encouragement">Pro další informace a novinky navštivte webovou stránku NewPipe.</string>
|
||||
<string name="donation_encouragement">NewPipe je vyvíjen dobrovolníky, kteří tráví svůj volný čas tím, že vám přinášejí ten nejlepší uživatelský zážitek. Odměňte snahu vývojářů zlepšovat NewPipe a dopřejte jim šálek kávy.</string>
|
||||
<string name="give_back">Odměnit</string>
|
||||
<string name="website_title">Webové stránky</string>
|
||||
<string name="website_encouragement">Navštivte webové stránky NewPipe pro další informace a novinky.</string>
|
||||
<string name="default_content_country_title">Země výchozího obsahu</string>
|
||||
<string name="switch_to_background">Přepnout na pozadí</string>
|
||||
<string name="switch_to_popup">Do okna</string>
|
||||
@@ -305,15 +305,15 @@
|
||||
<string name="delete_search_history_alert">Vymazat celkovou historii vyhledávání\?</string>
|
||||
<string name="search_history_deleted">Historie vyhledávání smazána</string>
|
||||
<string name="one_item_deleted">Jedna položka smazána.</string>
|
||||
<string name="app_license">NewPipe je svobodný software s copyleft licencí: Můžete jej libovolně používat, studovat, sdílet a vylepšovat. Konkrétně jej můžete šířit a/nebo upravovat za podmínek Obecné veřejné licence GNU (GNU GPL) vydané nadací Free Software Foundation, a to buď za podmínek Licence verze 3 nebo (dle vaší volby) jakékoli pozdější verze.</string>
|
||||
<string name="app_license">NewPipe je copyleftovaný svobodný software: můžete jej jakkoli používat, studovat, sdílet a vylepšovat. Redistribuovat a/nebo upravovat jej můžete pod podmínkami licence GNU General Public License zveřejněné nadací Free Software Foundation, buď ve verzi 3, nebo v jakékoli novější verzi (záleží na vás).</string>
|
||||
<string name="channels">Kanály</string>
|
||||
<string name="playlists">Playlisty</string>
|
||||
<string name="tracks">Stopy</string>
|
||||
<string name="users">Uživatelé</string>
|
||||
<string name="privacy_policy_title">Zásady ochrany soukromí v NewPipe</string>
|
||||
<string name="privacy_policy_title">Ochrana soukromí NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">Projekt NewPipe bere vaše soukromí velice vážně. Proto aplikace neshromažďuje žádné údaje bez vašeho souhlasu.
|
||||
\nZásady ochrany soukromí NewPipe podrobně vysvětlují, jaké údaje jsou odesílány a ukládány, když odešlete zprávu o pádu aplikace.</string>
|
||||
<string name="read_privacy_policy">Přečíst zásady ochrany soukromí</string>
|
||||
<string name="read_privacy_policy">Přečíst zásady ochrany osobních údajů</string>
|
||||
<string name="import_settings">Chcete také přenést nastavení?</string>
|
||||
<string name="skip_silence_checkbox">Zrychleně vpřed během ticha</string>
|
||||
<string name="playback_step">Krok</string>
|
||||
@@ -586,7 +586,7 @@
|
||||
<string name="crash_the_app">Zbořit aplikaci</string>
|
||||
<string name="download_has_started">Stahování bylo zahájeno</string>
|
||||
<string name="select_night_theme_toast">Níže si můžete zvolit svůj oblíbený motiv</string>
|
||||
<string name="night_theme_summary">Zvolte si svůj oblíbený noční motiv - %s</string>
|
||||
<string name="night_theme_summary">Zvolte si svůj oblíbený noční motiv – %s</string>
|
||||
<string name="auto_device_theme_title">Automatický (motiv zařízení)</string>
|
||||
<string name="radio">Radio</string>
|
||||
<string name="featured">Představujeme</string>
|
||||
@@ -710,7 +710,7 @@
|
||||
<string name="select_quality_external_players">Vyberte kvalitu pro externí přehrávače</string>
|
||||
<string name="no_video_streams_available_for_external_players">U externích přehrávačů nejsou k dispozici žádné videostreamy</string>
|
||||
<string name="faq_title">Často kladené dotazy</string>
|
||||
<string name="faq_description">Pokud máte potíže s používáním aplikace, přečtěte si tyto odpovědi na časté otázky!</string>
|
||||
<string name="faq_description">Pokud máte problémy s používáním aplikace, podívejte se na tyto odpovědi, které zodpovídají nejčastější dotazy!</string>
|
||||
<string name="faq">Zobrazit na webu</string>
|
||||
<string name="sort">Řazení</string>
|
||||
<string name="app_update_available_notification_text">Klepnutím stáhnete %s</string>
|
||||
@@ -887,4 +887,9 @@
|
||||
<string name="import_subscriptions_summary">Importovat odběry z předchozího exportu .json</string>
|
||||
<string name="export_subscriptions_summary">Exportovat odběry do souboru .json</string>
|
||||
<string name="import_from_previous_export">Importovat z předchozího exportu</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe ukončuje podporu systému Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">NewPipe bohužel využívá několik knihoven, které již nepodporují Android 5.0 a 5.1. Příští verze NewPipe proto bude bohužel fungovat pouze na zařízeních s Androidem 6 nebo novějším. Více se dozvíte v tomto blogovém příspěvku.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Blogový příspěvek</string>
|
||||
<string name="channel_tab_podcasts">Podcasty</string>
|
||||
<string name="channel_tab_courses">Kurzy</string>
|
||||
</resources>
|
||||
|
||||
@@ -522,7 +522,7 @@
|
||||
<string name="recovering">gendanner</string>
|
||||
<string name="feed_load_error_fast_unknown">\"Hurtig feed\"-tilstand oplyser ikke mere info om dette.</string>
|
||||
<string name="check_for_updates">Tjek efter opdateringer</string>
|
||||
<string name="remove_watched_popup_title">Fjern sete videoer?</string>
|
||||
<string name="remove_watched_popup_title">Fjern sete streams?</string>
|
||||
<string name="disable_media_tunneling_summary">Deaktivér medietunneling, hvis du oplever en sort skærm eller hakken ved videoafspilning.</string>
|
||||
<string name="error_report_open_github_notice">Tjek venligst, om der allerede findes et problem, der diskuterer dit nedbrud. Når du opretter flere tickets, tager du tid fra os, som vi kunne bruge på at løse den faktiske fejl.</string>
|
||||
<string name="check_new_streams">Tjek efter nye streams</string>
|
||||
@@ -540,7 +540,7 @@
|
||||
<string name="feed_group_dialog_select_subscriptions">Vælg abonnementer</string>
|
||||
<string name="georestricted_content">Dette indhold er ikke tilgængeligt i dit land.</string>
|
||||
<string name="video_detail_by">Af %s</string>
|
||||
<string name="remove_watched_popup_warning">Videoer, der er blevet set før og efter tilføjelse til playlisten, vil blive fjernet. \nEr du sikker? Dette kan ikke fortrydes!</string>
|
||||
<string name="remove_watched_popup_warning">Streams, der er blevet set før og efter tilføjelse til playlisten, vil blive fjernet. \nEr du sikker?</string>
|
||||
<string name="show_thumbnail_title">Vis miniaturebillede</string>
|
||||
<string name="metadata_tags">Tags</string>
|
||||
<string name="metadata_age_limit">Aldersbegrænsning</string>
|
||||
@@ -838,4 +838,6 @@
|
||||
<string name="migration_info_7_8_message">YouTube har udfaset den kombinerede trending-side pr. 21. juli 2025. NewPipe har erstattet standardsiden for trending med trending livestreams.\n\nDu kan også vælge andre trending-sider under \"Indstillinger > Indhold > Indhold på hovedsiden\".</string>
|
||||
<string name="trending_gaming">Gaming-trends</string>
|
||||
<string name="trending_podcasts">Trending podcasts</string>
|
||||
<string name="channel_tab_podcasts">Podcasts</string>
|
||||
<string name="channel_tab_courses">Kurser</string>
|
||||
</resources>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<string name="settings_category_appearance_title">Aussehen</string>
|
||||
<string name="general_error">Fehler</string>
|
||||
<string name="could_not_load_thumbnails">Konnte nicht alle Vorschaubilder laden</string>
|
||||
<string name="parsing_error">Konnte Webseite nicht analysieren</string>
|
||||
<string name="parsing_error">Konnte Website nicht analysieren</string>
|
||||
<string name="content_not_available">Inhalt nicht verfügbar</string>
|
||||
<string name="content">Inhalt</string>
|
||||
<string name="show_age_restricted_content_title">Altersbeschränkte Inhalte anzeigen</string>
|
||||
@@ -110,7 +110,7 @@
|
||||
<string name="tab_about">Über & FAQ</string>
|
||||
<string name="app_description">Freies und schlankes Streaming für Android.</string>
|
||||
<string name="app_license_title">NewPipes Lizenz</string>
|
||||
<string name="contribution_encouragement">Ob Ideen, Übersetzungen, Design-Änderungen, Code-Aufräumung oder richtig große Code-Änderungen — Hilfe ist immer willkommen. Je mehr geholfen wird, desto besser wird NewPipe!</string>
|
||||
<string name="contribution_encouragement">Ob Ideen, Übersetzungen, Design-Änderungen, Code-Aufräumen oder richtig große Code-Änderungen — Hilfe ist immer willkommen. Je mehr geholfen wird, desto besser wird NewPipe!</string>
|
||||
<string name="title_licenses">Drittanbieter-Lizenzen</string>
|
||||
<string name="view_on_github">Auf GitHub ansehen</string>
|
||||
<string name="contribution_title">Beitragen</string>
|
||||
@@ -185,8 +185,8 @@
|
||||
<string name="donation_title">Spenden</string>
|
||||
<string name="give_back">Zurückgeben</string>
|
||||
<string name="website_title">Website</string>
|
||||
<string name="website_encouragement">Besuche die NewPipe Website für weitere Informationen und Neuigkeiten.</string>
|
||||
<string name="donation_encouragement">NewPipe wird von Freiwilligen entwickelt, die ihre Freizeit dafür verwenden, dir die beste Nutzererfahrung zu bieten. Gib etwas zurück, indem du den Entwicklern hilfst, NewPipe noch weiter zu verbessern, während sie sich an einer Tasse Kaffee erfreuen.</string>
|
||||
<string name="website_encouragement">Besuche die NewPipe-Website für weitere Informationen und Neuigkeiten.</string>
|
||||
<string name="donation_encouragement">NewPipe wird von Freiwilligen entwickelt, die ihre Freizeit dafür verwenden, dir die beste Nutzungserfahrung zu bieten. Gib etwas zurück, indem du den Entwicklern hilfst, NewPipe noch weiter zu verbessern, während sie sich an einer Tasse Kaffee erfreuen.</string>
|
||||
<string name="no_player_found_toast">Kein Stream-Player gefunden (du kannst VLC installieren, um den Stream abzuspielen).</string>
|
||||
<string name="default_content_country_title">Bevorzugtes Land des Inhalts</string>
|
||||
<string name="always">Immer</string>
|
||||
@@ -306,14 +306,12 @@
|
||||
<string name="one_item_deleted">1 Element gelöscht.</string>
|
||||
<string name="app_license">NewPipe ist freie Copyleft-Software: Du kannst sie nach Belieben benutzen, untersuchen, mit anderen teilen und verbessern. Insbesondere kannst du sie unter den von der Free Software Foundation veröffentlichten Bedingungen der GNU General Public License, in der Version 3 der Lizenz oder (nach deiner Wahl) jeder späteren Version, weitergeben und/oder verändern.</string>
|
||||
<string name="import_settings">Möchtest du auch Einstellungen importieren\?</string>
|
||||
<string name="privacy_policy_title">NewPipes Datenschutzbestimmung</string>
|
||||
<string name="privacy_policy_encouragement">Dem NewPipe-Projekt ist Datenschutz sehr wichtig. Deshalb sammelt diese App keine Daten ohne deine Zustimmung.
|
||||
\nNewPipes Datenschutzbestimmungen erklären im Detail, welche Daten beim Absenden eines Absturzberichtes verschickt und gespeichert werden.</string>
|
||||
<string name="read_privacy_policy">Datenschutzbestimmungen lesen</string>
|
||||
<string name="privacy_policy_title">NewPipes Datenschutzerklärung</string>
|
||||
<string name="privacy_policy_encouragement">Dem NewPipe-Projekt ist Datenschutz sehr wichtig. Daher sammelt die App keinerlei Daten ohne deine Zustimmung.\nNewPipes Datenschutzerklärung erläutert ausführlich, welche Daten beim Senden eines Absturzberichts übermittelt und gespeichert werden.</string>
|
||||
<string name="read_privacy_policy">Datenschutzerklärung lesen</string>
|
||||
<string name="accept">Akzeptieren</string>
|
||||
<string name="decline">Ablehnen</string>
|
||||
<string name="start_accept_privacy_policy">Um der europäischen Datenschutz-Grundverordnung (DSGVO) gerecht zu werden, weisen wir hiermit auf NewPipes Datenschutzerklärung hin. Bitte lies sie sorgfältig durch.
|
||||
\nDu musst den Datenschutzrichtlinien zustimmen, um den Fehlerbericht an uns zu senden.</string>
|
||||
<string name="start_accept_privacy_policy">Um der europäischen Datenschutz-Grundverordnung (DSGVO) gerecht zu werden, weisen wir hiermit auf NewPipes Datenschutzerklärung hin. Bitte lies sie sorgfältig durch. \nDu musst dieser zustimmen, um den Fehlerbericht an uns zu senden.</string>
|
||||
<string name="limit_data_usage_none_description">Unbegrenzt</string>
|
||||
<string name="limit_mobile_data_usage_title">Auflösung bei Verwendung mobiler Daten begrenzen</string>
|
||||
<string name="minimize_on_exit_title">Beim App-Wechsel minimieren</string>
|
||||
@@ -354,7 +352,7 @@
|
||||
<string name="low_quality_smaller">Niedrige Qualität (kleiner)</string>
|
||||
<string name="dont_show">Nicht anzeigen</string>
|
||||
<string name="app_update_available_notification_title">Eine NewPipe-Aktualisierung ist verfügbar!</string>
|
||||
<string name="missions_header_finished">Fertig</string>
|
||||
<string name="missions_header_finished">Abgeschlossen</string>
|
||||
<string name="missions_header_pending">Ausstehend</string>
|
||||
<string name="paused">pausiert</string>
|
||||
<string name="queued">eingereiht</string>
|
||||
@@ -437,7 +435,7 @@
|
||||
<string name="peertube_instance_add_exists">Instanz existiert bereits</string>
|
||||
<string name="local">Lokal</string>
|
||||
<string name="recently_added">Kürzlich hinzugefügt</string>
|
||||
<string name="playlist_no_uploader">Auto-generiert (kein Autor gefunden)</string>
|
||||
<string name="playlist_no_uploader">Automatisch erzeugt (kein Autor gefunden)</string>
|
||||
<string name="choose_instance_prompt">Eine Instanz wählen</string>
|
||||
<string name="peertube_instance_url_summary">Bevorzugte Peertube-Instanzen auswählen</string>
|
||||
<string name="peertube_instance_add_https_only">Es werden nur HTTPS-Adressen unterstützt</string>
|
||||
@@ -621,7 +619,7 @@
|
||||
<string name="account_terminated">Konto geschlossen</string>
|
||||
<string name="feed_load_error_fast_unknown">Der Schnellmodus liefert hierzu keine weiteren Informationen.</string>
|
||||
<string name="no_dir_yet">Noch kein Downloadordner festgelegt, wähle jetzt den Standard-Downloadordner</string>
|
||||
<string name="open_website_license">Webseite öffnen</string>
|
||||
<string name="open_website_license">Website öffnen</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">Ab Android 10 wird nur noch „Storage Access Framework“ unterstützt</string>
|
||||
<string name="downloads_storage_ask_summary_no_saf_notice">Du wirst jedes Mal gefragt werden, wohin der Download gespeichert werden soll</string>
|
||||
<string name="feed_load_error">Fehler beim Laden des Feeds</string>
|
||||
@@ -697,7 +695,7 @@
|
||||
<string name="streams_not_yet_supported_removed">Streams, die der Downloader noch nicht unterstützt, werden nicht angezeigt</string>
|
||||
<string name="selected_stream_external_player_not_supported">Der ausgewählte Stream wird von externen Playern nicht unterstützt</string>
|
||||
<string name="progressive_load_interval_title">Größe des Ladeintervalls für die Wiedergabe</string>
|
||||
<string name="faq">Auf der Webseite ansehen</string>
|
||||
<string name="faq">Auf der Website ansehen</string>
|
||||
<string name="faq_title">Häufig gestellte Fragen</string>
|
||||
<string name="faq_description">Wenn du Probleme bei der Verwendung der App hast, lies bitte die Antworten auf häufig gestellte Fragen!</string>
|
||||
<string name="sort">Sortieren</string>
|
||||
@@ -867,4 +865,9 @@
|
||||
<string name="import_subscriptions_summary">Importieren von Abonnements aus einem früheren .json-Export</string>
|
||||
<string name="export_subscriptions_summary">Exportiere deine Abonnements in eine .json-Datei</string>
|
||||
<string name="import_from_previous_export">Aus vorherigem Export importieren</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Blogbeitrag</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe stellt die Unterstützung für Android 5 ein</string>
|
||||
<string name="api23_requirement_dialog_message">Leider ist NewPipe auf einige Bibliotheken angewiesen, welche die Unterstützung für Android 5.0 und 5.1 eingestellt haben. Die nächste Version von NewPipe wird daher leider nur auf Geräten mit Android 6 oder höher funktionieren. Mehr dazu im Blogbeitrag.</string>
|
||||
<string name="channel_tab_podcasts">Podcasts</string>
|
||||
<string name="channel_tab_courses">Kurse</string>
|
||||
</resources>
|
||||
|
||||
@@ -845,7 +845,7 @@
|
||||
<string name="player_http_403">Σφάλμα HTTP 403 που ελήφθη από τον διακομιστή κατά την αναπαραγωγή, πιθανώς λόγω λήξης διεύθυνσης URL ροής ή αποκλεισμού IP</string>
|
||||
<string name="player_http_invalid_status">Σφάλμα HTTP %1$s ελήφθη από τον διακομιστή κατά την αναπαραγωγή</string>
|
||||
<string name="youtube_player_http_403">Σφάλμα HTTP 403 ελήφθη από τον διακομιστή κατά την αναπαραγωγή, πιθανώς λόγω αποκλεισμού IP ή προβλημάτων απεμπλοκής URL ροής</string>
|
||||
<string name="sign_in_confirm_not_bot_error">Ο %1$s αρνήθηκε να παράσχει δεδομένα, ζητώντας σύνδεση για να επιβεβαιώσει ότι ο αιτών δεν είναι bot.\n\nΗ IP σας ενδέχεται να έχει αποκλειστεί προσωρινά από τον %1$s. Μπορείτε να περιμένετε λίγο ή να αλλάξετε IP (για παράδειγμα, ενεργοποιώντας/απενεργοποιώντας ένα VPN ή αλλάζοντας από WiFi σε δεδομένα κινητής τηλεφωνίας).\n\nΑνατρέξτε σε<a href="%2$s">αυτήν την καταχώρηση στις Συχνές Ερωτήσεις</a> για περισσότερες πληροφορίες.</string>
|
||||
<string name="sign_in_confirm_not_bot_error">To %1$s αρνήθηκε να παράσχει δεδομένα, ζητώντας σύνδεση για να επιβεβαιώσει ότι ο αιτών δεν είναι bot.\n\nΗ IP σας ενδέχεται να έχει αποκλειστεί προσωρινά από το %1$s. Μπορείτε να περιμένετε λίγο ή να αλλάξετε IP (για παράδειγμα, ενεργοποιώντας/απενεργοποιώντας ένα VPN ή αλλάζοντας από WiFi σε δεδομένα κινητής τηλεφωνίας).\n\nΓια περισσότερες πληροφορίες, ανατρέξτε σε <a href="%2$s"> αυτή την καταχώριση στις Συχνές Ερωτήσεις </a>.</string>
|
||||
<string name="unsupported_content_in_country">Αυτό το περιεχόμενο δεν είναι διαθέσιμο για την τρέχουσα επιλεγμένη χώρα περιεχομένου.\n\nΑλλάξτε την επιλογή σας από \"Ρυθμίσεις > Περιεχόμενο > Προεπιλεγμένη χώρα περιεχομένου\".</string>
|
||||
<string name="kao_dialog_more_info">Λεπτομέρειες</string>
|
||||
<string name="kao_solution">Λύση</string>
|
||||
@@ -867,4 +867,7 @@
|
||||
<string name="import_subscriptions_summary">Εισαγωγή συνδρομών από προηγούμενη εξαγωγή</string>
|
||||
<string name="export_subscriptions_summary">Εξαγωγή των συνδρομών σας σε αρχείο .json</string>
|
||||
<string name="import_from_previous_export">Εισαγωγή από προηγούμενη εξαγωγή</string>
|
||||
<string name="api23_requirement_dialog_title">Το NewPipe καταργεί την υποστήριξη για το Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Δυστυχώς, το NewPipe βασίζεται σε ορισμένες βιβλιοθήκες που έχουν σταματήσει να υποστηρίζουν τα Android 5.0 και 5.1. Ως εκ τούτου, η επόμενη έκδοση του NewPipe θα λειτουργεί μόνο σε συσκευές με Android 6 ή νεότερη έκδοση, δυστυχώς. Διαβάστε περισσότερα στην ανάρτηση του ιστολογίου.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Δημοσίευση στο ιστολόγιο</string>
|
||||
</resources>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<string name="peertube_instance_url_summary">Select your favourite PeerTube instances</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">Continue playing after interruptions (e.g. phone calls)</string>
|
||||
<string name="upload_date_text">Published on %1$s</string>
|
||||
<string name="error_report_button_text">Report this error via e-mail</string>
|
||||
<string name="error_report_button_text">Report via e-mail</string>
|
||||
<string name="night_theme_summary">Select your favorite night theme – %s</string>
|
||||
<string name="no_player_found">No stream player found. Install VLC\?</string>
|
||||
<string name="install">Install</string>
|
||||
@@ -94,4 +94,760 @@
|
||||
<string name="controls_download_desc">Download stream file</string>
|
||||
<string name="search">Search</string>
|
||||
<string name="settings">Settings</string>
|
||||
<string name="search_with_service_name">Search %1$s</string>
|
||||
<string name="search_with_service_name_and_filter">Search %1$s (%2$s)</string>
|
||||
<string name="search_showing_result_for">Showing results for: %s</string>
|
||||
<string name="share_dialog_title">Share with</string>
|
||||
<string name="use_external_video_player_title">Use external video player</string>
|
||||
<string name="use_external_video_player_summary">Removes audio at some resolutions</string>
|
||||
<string name="use_external_audio_player_title">Use external audio player</string>
|
||||
<string name="subscribe_button_title">Subscribe</string>
|
||||
<string name="subscribed_button_title">Subscribed</string>
|
||||
<string name="unsubscribe">Unsubscribe</string>
|
||||
<string name="channel_unsubscribed">Channel unsubscribed</string>
|
||||
<string name="subscription_change_failed">Could not change subscription</string>
|
||||
<string name="subscription_update_failed">Could not update subscription</string>
|
||||
<string name="show_info">Show info</string>
|
||||
<string name="tab_subscriptions">Subscriptions</string>
|
||||
<string name="tab_bookmarks">Bookmarked Playlists</string>
|
||||
<string name="tab_bookmarks_short">Playlists</string>
|
||||
<string name="tab_choose">Choose Tab</string>
|
||||
<string name="controls_background_title">Background</string>
|
||||
<string name="controls_popup_title">Popup</string>
|
||||
<string name="controls_add_to_playlist_title">Add To</string>
|
||||
<string name="download_path_title">Video download folder</string>
|
||||
<string name="download_path_summary">Downloaded video files are stored here</string>
|
||||
<string name="download_path_dialog_title">Choose download folder for video files</string>
|
||||
<string name="download_path_audio_title">Audio download folder</string>
|
||||
<string name="download_path_audio_summary">Downloaded audio files are stored here</string>
|
||||
<string name="download_path_audio_dialog_title">Choose download folder for audio files</string>
|
||||
<string name="default_resolution_title">Default resolution</string>
|
||||
<string name="default_popup_resolution_title">Default popup resolution</string>
|
||||
<string name="show_higher_resolutions_title">Show higher resolutions</string>
|
||||
<string name="show_higher_resolutions_summary">Only some devices can play 2K/4K videos</string>
|
||||
<string name="play_with_kodi_title">Play with Kodi</string>
|
||||
<string name="kore_not_found">Install missing Kore app?</string>
|
||||
<string name="crash_the_player">Crash the player</string>
|
||||
<string name="notification_scale_to_square_image_title">Scale thumbnail to 1:1 aspect ratio</string>
|
||||
<string name="notification_scale_to_square_image_summary">Scale the video thumbnail shown in the notification from 16:9 to 1:1 aspect ratio (may introduce distortions)</string>
|
||||
<string name="notification_action_0_title">First action button</string>
|
||||
<string name="notification_action_1_title">Second action button</string>
|
||||
<string name="notification_action_2_title">Third action button</string>
|
||||
<string name="notification_action_3_title">Fourth action button</string>
|
||||
<string name="notification_action_4_title">Fifth action button</string>
|
||||
<string name="notification_actions_summary">Edit each notification action below by tapping on it. Select up to three of them to be shown in the compact notification by using the checkboxes on the right.</string>
|
||||
<string name="notification_actions_summary_android13">Edit each notification action below by tapping on it. The first three actions (play/pause, previous and next) are set by the system and cannot be customised.</string>
|
||||
<string name="notification_actions_at_most_three">You can select at most three actions to show in the compact notification!</string>
|
||||
<string name="notification_action_repeat">Repeat</string>
|
||||
<string name="notification_action_shuffle">Shuffle</string>
|
||||
<string name="notification_action_buffering">Buffering</string>
|
||||
<string name="notification_action_nothing">Nothing</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Default audio format</string>
|
||||
<string name="default_video_format_title">Default video format</string>
|
||||
<string name="theme_title">Theme</string>
|
||||
<string name="night_theme_title">Night Theme</string>
|
||||
<string name="light_theme_title">Light</string>
|
||||
<string name="dark_theme_title">Dark</string>
|
||||
<string name="black_theme_title">Black</string>
|
||||
<string name="popup_remember_size_pos_title">Remember pop-up properties</string>
|
||||
<string name="popup_remember_size_pos_summary">Remember last size and position of pop-up</string>
|
||||
<string name="use_inexact_seek_title">Use fast inexact seek</string>
|
||||
<string name="seek_duration_title">Fast-forward/Rewind seek duration</string>
|
||||
<string name="progressive_load_interval_title">Playback load interval size</string>
|
||||
<string name="progressive_load_interval_summary">Change the load interval size on progressive contents (currently %s). A lower value may speed up their initial loading</string>
|
||||
<string name="clear_queue_confirmation_title">Ask for confirmation before clearing a queue</string>
|
||||
<string name="clear_queue_confirmation_summary">Switching from one player to another may replace your queue</string>
|
||||
<string name="clear_queue_confirmation_description">The active player queue will be replaced</string>
|
||||
<string name="ignore_hardware_media_buttons_title">Ignore hardware media button events</string>
|
||||
<string name="ignore_hardware_media_buttons_summary">Useful, for instance, if you are using a headset with broken physical buttons</string>
|
||||
<string name="show_comments_title">Show comments</string>
|
||||
<string name="show_comments_summary">Turn off to hide comments</string>
|
||||
<string name="show_next_and_similar_title">Show \'Next\' and \'Similar\' videos</string>
|
||||
<string name="show_description_title">Show description</string>
|
||||
<string name="show_description_summary">Turn off to hide video description and additional information</string>
|
||||
<string name="show_meta_info_title">Show meta info</string>
|
||||
<string name="show_meta_info_summary">Turn off to hide meta info boxes with additional information about the stream creator, stream content or a search request</string>
|
||||
<string name="prefer_original_audio_title">Prefer original audio</string>
|
||||
<string name="prefer_original_audio_summary">Select the original audio track regardless of the language</string>
|
||||
<string name="prefer_descriptive_audio_title">Prefer descriptive audio</string>
|
||||
<string name="prefer_descriptive_audio_summary">Select an audio track with descriptions for visually impaired people if available</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">Image cache wiped</string>
|
||||
<string name="metadata_cache_wipe_title">Wipe cached metadata</string>
|
||||
<string name="metadata_cache_wipe_summary">Remove all cached webpage data</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Metadata cache wiped</string>
|
||||
<string name="auto_queue_title">Auto-enqueue next stream</string>
|
||||
<string name="auto_queue_summary">Continue ending (non-repeating) playback queue by appending a related stream</string>
|
||||
<string name="auto_queue_toggle">Auto-enqueuing</string>
|
||||
<string name="left_gesture_control_summary">Choose gesture for left half of player screen</string>
|
||||
<string name="left_gesture_control_title">Left gesture action</string>
|
||||
<string name="right_gesture_control_summary">Choose gesture for right half of player screen</string>
|
||||
<string name="right_gesture_control_title">Right gesture action</string>
|
||||
<string name="brightness">Brightness</string>
|
||||
<string name="volume">Volume</string>
|
||||
<string name="none">None</string>
|
||||
<string name="show_search_suggestions_title">Search suggestions</string>
|
||||
<string name="show_search_suggestions_summary">Choose the suggestions to show when searching</string>
|
||||
<string name="local_search_suggestions">Local search suggestions</string>
|
||||
<string name="remote_search_suggestions">Remote search suggestions</string>
|
||||
<string name="enable_search_history_title">Search history</string>
|
||||
<string name="enable_search_history_summary">Store search queries locally</string>
|
||||
<string name="enable_watch_history_title">Watch history</string>
|
||||
<string name="enable_playback_resume_title">Resume playback</string>
|
||||
<string name="enable_playback_resume_summary">Restore last playback position</string>
|
||||
<string name="enable_playback_state_lists_title">Positions in lists</string>
|
||||
<string name="enable_playback_state_lists_summary">Show playback position indicators in lists</string>
|
||||
<string name="settings_category_clear_data_title">Clear data</string>
|
||||
<string name="enable_watch_history_summary">Keep track of watched videos</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Resume playing</string>
|
||||
<string name="download_dialog_title">Download</string>
|
||||
<string name="start_main_player_fullscreen_title">Start main player in full-screen</string>
|
||||
<string name="start_main_player_fullscreen_summary">Do not start videos in the mini player, but turn to full-screen mode directly, if auto rotation is locked. You can still access the mini player by exiting full-screen</string>
|
||||
<string name="autoplay_title">Autoplay</string>
|
||||
<string name="unsupported_url">Unsupported URL</string>
|
||||
<string name="unsupported_url_dialog_message">Could not recognise the URL. Open with another application?</string>
|
||||
<string name="default_content_country_title">Default content country</string>
|
||||
<string name="content_language_title">Default content language</string>
|
||||
<string name="peertube_instance_url_title">PeerTube instances</string>
|
||||
<string name="peertube_instance_url_help">Find the instances you like on %s</string>
|
||||
<string name="peertube_instance_add_title">Add instance</string>
|
||||
<string name="peertube_instance_add_help">Enter instance URL</string>
|
||||
<string name="peertube_instance_add_fail">Could not validate instance</string>
|
||||
<string name="peertube_instance_add_https_only">Only HTTPS URLs are supported</string>
|
||||
<string name="peertube_instance_add_exists">Instance already exists</string>
|
||||
<string name="settings_category_player_notification_title">Player notification</string>
|
||||
<string name="settings_category_player_notification_summary">Configure current playing stream notification</string>
|
||||
<string name="settings_category_backup_restore_title">Backup and restore</string>
|
||||
<string name="background_player_playing_toast">Playing in background</string>
|
||||
<string name="content">Content</string>
|
||||
<string name="show_age_restricted_content_title">Show age-restricted content</string>
|
||||
<string name="restricted_video_no_stream">This video is age-restricted.\nDue to new YouTube policies with age-restricted videos, NewPipe cannot access any of its video streams and thus is unable to play it.</string>
|
||||
<string name="duration_live">Live</string>
|
||||
<string name="downloads">Downloads</string>
|
||||
<string name="downloads_title">Downloads</string>
|
||||
<string name="loading_metadata_title">Loading metadata…</string>
|
||||
<string name="error_report_title">Error report</string>
|
||||
<string name="all">All</string>
|
||||
<string name="channels">Channels</string>
|
||||
<string name="playlists">Playlists</string>
|
||||
<string name="videos_string">Videos</string>
|
||||
<string name="tracks">Tracks</string>
|
||||
<string name="users">Users</string>
|
||||
<string name="events">Events</string>
|
||||
<string name="songs">Songs</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artists</string>
|
||||
<string name="disabled">Disabled</string>
|
||||
<string name="clear">Clear</string>
|
||||
<string name="best_resolution">Best resolution</string>
|
||||
<string name="undo">Undo</string>
|
||||
<string name="file_deleted">File deleted</string>
|
||||
<string name="play_all">Play All</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="file">File</string>
|
||||
<string name="notifications">Notifications</string>
|
||||
<string name="notification_channel_name">NewPipe notification</string>
|
||||
<string name="notification_channel_description">Notifications for NewPipe\'s player</string>
|
||||
<string name="app_update_notification_channel_description">Notifications for new NewPipe versions</string>
|
||||
<string name="hash_channel_description">Notifications for video hashing progress</string>
|
||||
<string name="streams_notification_channel_name">New streams</string>
|
||||
<string name="streams_notification_channel_description">Notifications about new streams for subscriptions</string>
|
||||
<string name="error_report_channel_name">Error report notification</string>
|
||||
<string name="error_report_channel_description">Notifications to report errors</string>
|
||||
<string name="unknown_content">[Unknown]</string>
|
||||
<string name="import_data_title">Import database</string>
|
||||
<string name="export_data_title">Export database</string>
|
||||
<string name="clear_cookie_title">Clear re-CAPTCHA cookies</string>
|
||||
<string name="recaptcha_cookies_cleared">re-CAPTCHA cookies have been cleared</string>
|
||||
<string name="import_data_summary">Overrides your current history, subscriptions, playlists and (optionally) settings</string>
|
||||
<string name="export_data_summary">Export history, subscriptions, playlists and settings</string>
|
||||
<string name="clear_cookie_summary">Clear cookies that NewPipe stores when you solve a re-CAPTCHA</string>
|
||||
<string name="clear_views_history_title">Clear watch history</string>
|
||||
<string name="clear_views_history_summary">Deletes the history of played streams and the playback positions</string>
|
||||
<string name="delete_view_history_alert">Delete entire watch history?</string>
|
||||
<string name="watch_history_deleted">Watch history deleted</string>
|
||||
<string name="clear_playback_states_title">Delete playback positions</string>
|
||||
<string name="clear_playback_states_summary">Deletes all playback positions</string>
|
||||
<string name="delete_playback_states_alert">Delete all playback positions?</string>
|
||||
<string name="watch_history_states_deleted">Playback positions deleted</string>
|
||||
<string name="clear_search_history_title">Clear search history</string>
|
||||
<string name="clear_search_history_summary">Deletes history of search keywords</string>
|
||||
<string name="delete_search_history_alert">Delete entire search history?</string>
|
||||
<string name="search_history_deleted">Search history deleted</string>
|
||||
<string name="fast_mode">Fast mode</string>
|
||||
<string name="main_tabs_position_summary">Move main tab selector to the bottom</string>
|
||||
<string name="main_tabs_position_title">Main tabs position</string>
|
||||
<string name="general_error">Error</string>
|
||||
<string name="download_to_sdcard_error_title">External storage unavailable</string>
|
||||
<string name="network_error">Network error</string>
|
||||
<string name="could_not_load_thumbnails">Could not load all thumbnails</string>
|
||||
<string name="parsing_error">Could not parse website</string>
|
||||
<string name="content_not_available">Content unavailable</string>
|
||||
<string name="could_not_setup_download_menu">Could not set up download menu</string>
|
||||
<string name="app_ui_crash">App/UI crashed</string>
|
||||
<string name="player_stream_failure">Could not play this stream</string>
|
||||
<string name="player_unrecoverable_failure">Unrecoverable player error occurred</string>
|
||||
<string name="player_recoverable_failure">Recovering from player error</string>
|
||||
<string name="external_player_unsupported_link_type">External players don\'t support these types of links</string>
|
||||
<string name="video_streams_empty">No video streams found</string>
|
||||
<string name="audio_streams_empty">No audio streams found</string>
|
||||
<string name="missing_file">File moved or deleted</string>
|
||||
<string name="invalid_directory">No such folder</string>
|
||||
<string name="invalid_source">No such file/content source</string>
|
||||
<string name="invalid_file">The file does not exist, or permission to read or write to it is lacking</string>
|
||||
<string name="file_name_empty_error">File name cannot be empty</string>
|
||||
<string name="error_occurred_detail">An error occurred: %1$s</string>
|
||||
<string name="no_streams_available_download">No streams available to download</string>
|
||||
<string name="saved_tabs_invalid_json">Could not read the saved tabs, so using the default ones</string>
|
||||
<string name="restore_defaults">Restore defaults</string>
|
||||
<string name="restore_defaults_confirmation">Do you want to restore defaults?</string>
|
||||
<string name="permission_display_over_apps">Give permission to display over other apps</string>
|
||||
<string name="permission_display_over_apps_message">In order to use the Popup Player, please select %1$s in the following Android settings menu and enable %2$s.</string>
|
||||
<string name="permission_display_over_apps_permission_name">“Allow display over other apps”</string>
|
||||
<string name="error_report_notification_title">NewPipe encountered an error, tap to report</string>
|
||||
<string name="error_report_notification_toast">An error occurred, see the notification</string>
|
||||
<string name="sorry_string">Sorry, that should not have happened.</string>
|
||||
<string name="copy_for_github">Copy formatted report</string>
|
||||
<string name="error_report_open_issue_button_text">Report on GitHub</string>
|
||||
<string name="error_report_open_github_notice">Please check whether an issue discussing your crash already exists. When creating duplicate tickets, you take time from us which we could spend with fixing the actual bug.</string>
|
||||
<string name="error_snackbar_message">Sorry, something went wrong.</string>
|
||||
<string name="error_snackbar_action">Report</string>
|
||||
<string name="what_device_headline">Info:</string>
|
||||
<string name="what_happened_headline">What happened:</string>
|
||||
<string name="info_labels">What:\nRequest:\nContent Language:\nContent Country:\nApp Language:\nService:\nGMT Time:\nPackage:\nVersion:\nOS version:</string>
|
||||
<string name="your_comment">Your comment (in English):</string>
|
||||
<string name="error_details_headline">Details:</string>
|
||||
<string name="detail_thumbnail_view_description">Play video, duration:</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Uploader\'s avatar thumbnail</string>
|
||||
<string name="detail_likes_img_view_description">Likes</string>
|
||||
<string name="detail_dislikes_img_view_description">Dislikes</string>
|
||||
<string name="comments_tab_description">Comments</string>
|
||||
<string name="related_items_tab_description">Related items</string>
|
||||
<string name="description_tab_description">Description</string>
|
||||
<string name="search_no_results">No results</string>
|
||||
<string name="empty_list_subtitle">Nothing here but crickets</string>
|
||||
<string name="import_subscriptions_hint">Import or export subscriptions from the 3-dot menu</string>
|
||||
<string name="detail_drag_description">Drag to reorder</string>
|
||||
<string name="video">Video</string>
|
||||
<string name="audio">Audio</string>
|
||||
<string name="retry">Retry</string>
|
||||
<string name="short_thousand">%sK</string>
|
||||
<string name="short_million">%sM</string>
|
||||
<string name="short_billion">%sB</string>
|
||||
<string name="drawer_header_description">Toggle service, currently selected:</string>
|
||||
<string name="no_subscribers">No subscribers</string>
|
||||
<plurals name="subscribers">
|
||||
<item quantity="one">%s subscriber</item>
|
||||
<item quantity="other">%s subscribers</item>
|
||||
</plurals>
|
||||
<string name="subscribers_count_not_available">Subscriber count unavailable</string>
|
||||
<string name="no_views">No views</string>
|
||||
<plurals name="views">
|
||||
<item quantity="one">%s view</item>
|
||||
<item quantity="other">%s views</item>
|
||||
</plurals>
|
||||
<string name="no_one_watching">Nobody is watching</string>
|
||||
<plurals name="watching">
|
||||
<item quantity="one">%s watching</item>
|
||||
<item quantity="other">%s watching</item>
|
||||
</plurals>
|
||||
<string name="no_one_listening">Nobody is listening</string>
|
||||
<plurals name="listening">
|
||||
<item quantity="one">%s listener</item>
|
||||
<item quantity="other">%s listeners</item>
|
||||
</plurals>
|
||||
<string name="no_videos">No videos</string>
|
||||
<string name="more_than_100_videos">100+ videos</string>
|
||||
<string name="infinite_videos">∞ videos</string>
|
||||
<plurals name="videos">
|
||||
<item quantity="one">%s video</item>
|
||||
<item quantity="other">%s videos</item>
|
||||
</plurals>
|
||||
<string name="no_comments">No comments</string>
|
||||
<string name="comments_are_disabled">Comments are disabled</string>
|
||||
<string name="no_streams">No streams</string>
|
||||
<string name="no_live_streams">No live streams</string>
|
||||
<plurals name="new_streams">
|
||||
<item quantity="one">%s new stream</item>
|
||||
<item quantity="other">%s new streams</item>
|
||||
</plurals>
|
||||
<string name="start">Start</string>
|
||||
<string name="pause">Pause</string>
|
||||
<string name="create">Create</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="delete_file">Delete file</string>
|
||||
<string name="delete_entry">Delete entry</string>
|
||||
<string name="checksum">Checksum</string>
|
||||
<string name="dismiss">Dismiss</string>
|
||||
<string name="rename">Rename</string>
|
||||
<string name="msg_name">File name</string>
|
||||
<string name="msg_threads">Threads</string>
|
||||
<string name="msg_error">Error</string>
|
||||
<string name="msg_running">NewPipe Downloading</string>
|
||||
<string name="msg_running_detail">Tap for details</string>
|
||||
<string name="msg_calculating_hash">Calculating hash</string>
|
||||
<string name="msg_wait">Please wait…</string>
|
||||
<string name="msg_copied">Copied to clipboard</string>
|
||||
<string name="msg_failed_to_copy">Failed to copy to clipboard</string>
|
||||
<string name="no_available_dir">Please define a download folder later in settings</string>
|
||||
<string name="no_dir_yet">No download folder set yet, choose the default download folder now</string>
|
||||
<string name="msg_popup_permission">This permission is needed to\nopen in pop-up mode</string>
|
||||
<string name="one_item_deleted">1 item deleted.</string>
|
||||
<string name="title_activity_recaptcha">re-CAPTCHA challenge</string>
|
||||
<string name="recaptcha_request_toast">re-CAPTCHA challenge requested</string>
|
||||
<string name="recaptcha_solve">Solve</string>
|
||||
<string name="done">Done</string>
|
||||
<string name="settings_category_downloads_title">Download</string>
|
||||
<string name="settings_file_charset_title">Allowed characters in file names</string>
|
||||
<string name="settings_file_replacement_character_summary">Invalid characters are replaced with this value</string>
|
||||
<string name="settings_file_replacement_character_title">Replacement character</string>
|
||||
<string name="charset_letters_and_digits">Letters and digits</string>
|
||||
<string name="charset_most_special_characters">Most special characters</string>
|
||||
<string name="title_activity_about">About NewPipe</string>
|
||||
<string name="copyright">© %1$s by %2$s under %3$s</string>
|
||||
<string name="tab_about">About & FAQ</string>
|
||||
<string name="app_description">Libre lightweight streaming on Android.</string>
|
||||
<string name="contribution_title">Contribute</string>
|
||||
<string name="view_on_github">View on GitHub</string>
|
||||
<string name="donation_title">Donate</string>
|
||||
<string name="donation_encouragement">NewPipe is developed by volunteers spending their free time bringing you the best user experience. Give back to help developers make NewPipe even better, while they enjoy a cup of coffee.</string>
|
||||
<string name="give_back">Give back</string>
|
||||
<string name="website_title">Website</string>
|
||||
<string name="website_encouragement">Visit the NewPipe website for more info and news.</string>
|
||||
<string name="privacy_policy_title">NewPipe\'s privacy policy</string>
|
||||
<string name="privacy_policy_encouragement">The NewPipe project takes your privacy very seriously. Therefore, the app does not collect any data without your consent.\nNewPipe\'s privacy policy explains in detail what data is sent and stored when you send a crash report.</string>
|
||||
<string name="read_privacy_policy">Read privacy policy</string>
|
||||
<string name="faq_title">Frequently asked questions</string>
|
||||
<string name="faq_description">If you are having trouble using the app, be sure to check out these answers to common questions!</string>
|
||||
<string name="faq">View on website</string>
|
||||
<string name="title_activity_history">History</string>
|
||||
<string name="action_history">History</string>
|
||||
<string name="delete_item_search_history">Do you want to delete this item from search history?</string>
|
||||
<string name="title_last_played">Last played</string>
|
||||
<string name="title_most_played">Most played</string>
|
||||
<string name="main_page_content">Content of main page</string>
|
||||
<string name="main_page_content_summary">What tabs are shown on the main page</string>
|
||||
<string name="main_page_content_swipe_remove">Swipe items to remove them</string>
|
||||
<string name="blank_page_summary">Blank page</string>
|
||||
<string name="kiosk_page_summary">Kiosk page</string>
|
||||
<string name="default_kiosk_page_summary">Default Kiosk</string>
|
||||
<string name="channel_page_summary">Channel page</string>
|
||||
<string name="select_a_channel">Select a channel</string>
|
||||
<string name="no_channel_subscribed_yet">No channel subscriptions yet</string>
|
||||
<string name="select_a_playlist">Select a playlist</string>
|
||||
<string name="no_playlist_bookmarked_yet">No playlist bookmarks yet</string>
|
||||
<string name="select_a_kiosk">Select a kiosk</string>
|
||||
<string name="export_complete_toast">Exported</string>
|
||||
<string name="import_complete_toast">Imported</string>
|
||||
<string name="no_valid_zip_file">No valid ZIP file</string>
|
||||
<string name="could_not_import_all_files">Warning: Could not import all files.</string>
|
||||
<string name="override_current_data">This will override your current setup.</string>
|
||||
<string name="import_settings">Do you want to also import settings?</string>
|
||||
<string name="error_unable_to_load_comments">Could not load comments</string>
|
||||
<string name="select_a_feed_group">Select a feed group</string>
|
||||
<string name="no_feed_group_created_yet">No feed group created yet</string>
|
||||
<string name="trending">Trending</string>
|
||||
<string name="top_50">Top 50</string>
|
||||
<string name="new_and_hot">New and hot</string>
|
||||
<string name="local">Local</string>
|
||||
<string name="recently_added">Recently added</string>
|
||||
<string name="most_liked">Most liked</string>
|
||||
<string name="conferences">Conferences</string>
|
||||
<string name="title_activity_play_queue">Play queue</string>
|
||||
<string name="play_queue_remove">Remove</string>
|
||||
<string name="play_queue_stream_detail">Details</string>
|
||||
<string name="play_queue_audio_settings">Audio settings</string>
|
||||
<string name="play_queue_audio_track">Audio: %s</string>
|
||||
<string name="audio_track">Audio track</string>
|
||||
<string name="hold_to_append">Hold to enqueue</string>
|
||||
<string name="show_channel_details">Show channel details</string>
|
||||
<string name="enqueue_stream">Enqueue</string>
|
||||
<string name="enqueued">Enqueued</string>
|
||||
<string name="enqueue_next_stream">Enqueue next</string>
|
||||
<string name="enqueued_next">Enqueued next</string>
|
||||
<string name="start_here_on_background">Start playing in the background</string>
|
||||
<string name="start_here_on_popup">Start playing in a pop-up</string>
|
||||
<string name="loading_stream_details">Loading stream details…</string>
|
||||
<string name="drawer_open">Open Drawer</string>
|
||||
<string name="drawer_close">Close Drawer</string>
|
||||
<string name="preferred_open_action_settings_title">Preferred \'open\' action</string>
|
||||
<string name="video_player">Video player</string>
|
||||
<string name="background_player">Background player</string>
|
||||
<string name="popup_player">Pop-up player</string>
|
||||
<string name="always_ask_open_action">Always ask</string>
|
||||
<string name="preferred_player_fetcher_notification_title">Getting info…</string>
|
||||
<string name="preferred_player_fetcher_notification_message">Loading requested content</string>
|
||||
<string name="create_playlist">New playlist</string>
|
||||
<string name="duplicate_in_playlist">The playlists that are grayed out already contain this item.</string>
|
||||
<string name="rename_playlist">Rename</string>
|
||||
<string name="name">Name</string>
|
||||
<string name="add_to_playlist">Add to playlist</string>
|
||||
<string name="processing_may_take_a_moment">Processing… May take a moment</string>
|
||||
<string name="mute">Mute</string>
|
||||
<string name="unmute">Unmute</string>
|
||||
<string name="set_as_playlist_thumbnail">Set as playlist thumbnail</string>
|
||||
<string name="unset_playlist_thumbnail">Unset permanent thumbnail</string>
|
||||
<string name="bookmark_playlist">Bookmark Playlist</string>
|
||||
<string name="unbookmark_playlist">Remove Bookmark</string>
|
||||
<string name="delete_playlist_prompt">Delete this playlist?</string>
|
||||
<string name="playlist_creation_success">Playlist created</string>
|
||||
<string name="playlist_add_stream_success">Playlisted</string>
|
||||
<string name="playlist_add_stream_success_duplicate">Duplicate added %d time(s)</string>
|
||||
<string name="playlist_thumbnail_change_success">Playlist thumbnail changed.</string>
|
||||
<string name="playlist_no_uploader">Auto-generated (no uploader found)</string>
|
||||
<string name="caption_none">No captions</string>
|
||||
<string name="resize_fit">Fit</string>
|
||||
<string name="resize_fill">Fill</string>
|
||||
<string name="resize_zoom">Zoom</string>
|
||||
<string name="caption_auto_generated">Auto-generated</string>
|
||||
<string name="caption_setting_title">Captions</string>
|
||||
<string name="caption_setting_description">Modify player caption text scale and background styles. Requires application restart to take effect</string>
|
||||
<string name="leak_canary_not_available">LeakCanary is not available</string>
|
||||
<string name="enable_leak_canary_summary">Memory leak monitoring may cause the app to become unresponsive when heap dumping</string>
|
||||
<string name="show_memory_leaks">Show memory leaks</string>
|
||||
<string name="enable_disposed_exceptions_title">Report out-of-lifecycle errors</string>
|
||||
<string name="enable_disposed_exceptions_summary">Force reporting of undeliverable Rx exceptions outside of fragment or activity lifecycle after disposal</string>
|
||||
<string name="show_original_time_ago_title">Show \'original time ago\' on items</string>
|
||||
<string name="show_original_time_ago_summary">Original text from services will be visible in stream items</string>
|
||||
<string name="disable_media_tunneling_title">Disable media tunnelling</string>
|
||||
<string name="disable_media_tunneling_summary">Disable media tunnelling if you experience a black screen or stuttering on video playback.</string>
|
||||
<string name="disable_media_tunneling_automatic_info">Media tunneling was disabled by default on your device because your device model is known to not support it.</string>
|
||||
<string name="show_crash_the_player_title">Show \'Crash the player\'</string>
|
||||
<string name="show_crash_the_player_summary">Shows a crash option when using the player</string>
|
||||
<string name="check_new_streams">Run check for new streams</string>
|
||||
<string name="crash_the_app">Crash the app</string>
|
||||
<string name="show_error_snackbar">Show an error snack-bar</string>
|
||||
<string name="create_error_notification">Create an error notification</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Exporting %d subscription…</item>
|
||||
<item quantity="other">Exporting %d subscriptions…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Loading %d subscription…</item>
|
||||
<item quantity="other">Loading %d subscriptions…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Importing %d subscription…</item>
|
||||
<item quantity="other">Importing %d subscriptions…</item>
|
||||
</plurals>
|
||||
<string name="import_title">Import</string>
|
||||
<string name="import_from">Import from</string>
|
||||
<string name="export_to">Export to</string>
|
||||
<string name="import_ongoing">Importing…</string>
|
||||
<string name="export_ongoing">Exporting…</string>
|
||||
<string name="import_file_title">Import file</string>
|
||||
<string name="previous_export">Previous export</string>
|
||||
<string name="import_subscriptions_title">Import subscriptions</string>
|
||||
<string name="export_subscriptions_title">Export subscriptions</string>
|
||||
<string name="import_subscriptions_summary">Import subscriptions from a previous .json export</string>
|
||||
<string name="export_subscriptions_summary">Export your subscriptions to a .json file</string>
|
||||
<string name="import_from_previous_export">Import from previous export</string>
|
||||
<string name="subscriptions_import_unsuccessful">Could not import subscriptions</string>
|
||||
<string name="subscriptions_export_unsuccessful">Could not export subscriptions</string>
|
||||
<string name="import_soundcloud_instructions_hint">yourID, soundcloud.com/yourid</string>
|
||||
<string name="import_network_expensive_warning">Keep in mind this operation can be network expensive.\n\nDo you want to continue?</string>
|
||||
<string name="playback_speed_control">Playback speed controls</string>
|
||||
<string name="playback_tempo">Tempo</string>
|
||||
<string name="playback_pitch">Pitch</string>
|
||||
<string name="unhook_checkbox">Unhook (may cause distortion)</string>
|
||||
<string name="skip_silence_checkbox">Fast-forward during silence</string>
|
||||
<string name="playback_step">Step</string>
|
||||
<string name="playback_reset">Reset</string>
|
||||
<string name="percent">Percent</string>
|
||||
<string name="semitone">Semitone</string>
|
||||
<string name="start_accept_privacy_policy">In order to comply with the European General Data Protection Regulation (GDPR), we hereby draw your attention to NewPipe\'s privacy policy. Please read it carefully.\nYou must accept it to send us the bug report.</string>
|
||||
<string name="accept">Accept</string>
|
||||
<string name="decline">Decline</string>
|
||||
<string name="limit_data_usage_none_description">No limit</string>
|
||||
<string name="limit_mobile_data_usage_title">Limit resolution when using mobile data</string>
|
||||
<string name="enable_streams_notifications_title">New streams notifications</string>
|
||||
<string name="enable_streams_notifications_summary">Notify about new streams from subscriptions</string>
|
||||
<string name="streams_notifications_interval_title">Checking frequency</string>
|
||||
<string name="streams_notifications_network_title">Required network connection</string>
|
||||
<string name="any_network">Any network</string>
|
||||
<string name="updates_setting_title">Updates</string>
|
||||
<string name="updates_setting_description">Show a notification to prompt an application update when a new version is available</string>
|
||||
<string name="check_for_updates">Check for updates</string>
|
||||
<string name="auto_update_check_description">NewPipe can automatically check for new versions from time to time and notify you once they are available.\nDo you want to enable this?</string>
|
||||
<string name="manual_update_description">Manually check for new versions</string>
|
||||
<string name="minimize_on_exit_title">Minimise on app switch</string>
|
||||
<string name="minimize_on_exit_none_description">None</string>
|
||||
<string name="minimize_on_exit_background_description">Minimise to background player</string>
|
||||
<string name="minimize_on_exit_popup_description">Minimise to pop-up player</string>
|
||||
<string name="wifi_only">Only on Wi-Fi</string>
|
||||
<string name="never">Never</string>
|
||||
<string name="list_view_mode">List view mode</string>
|
||||
<string name="list">List</string>
|
||||
<string name="grid">Grid</string>
|
||||
<string name="card">Card</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="seekbar_preview_thumbnail_title">Seek-bar thumbnail preview</string>
|
||||
<string name="high_quality_larger">High quality (larger)</string>
|
||||
<string name="low_quality_smaller">Low quality (smaller)</string>
|
||||
<string name="dont_show">Do not show</string>
|
||||
<string name="app_update_unavailable_toast">You are running the latest version of NewPipe</string>
|
||||
<string name="app_update_available_notification_title">NewPipe update is available!</string>
|
||||
<string name="app_update_available_notification_text">Tap to download %s</string>
|
||||
<string name="missions_header_finished">Finished</string>
|
||||
<string name="missions_header_pending">Pending</string>
|
||||
<string name="paused">paused</string>
|
||||
<string name="queued">queued</string>
|
||||
<string name="post_processing">post-processing</string>
|
||||
<string name="recovering">recovering</string>
|
||||
<string name="enqueue">Enqueue</string>
|
||||
<string name="permission_denied">Action denied by the system</string>
|
||||
<string name="checking_updates_toast">Checking for updates…</string>
|
||||
<string name="download_failed">Download failed</string>
|
||||
<plurals name="download_finished_notification">
|
||||
<item quantity="one">Download finished</item>
|
||||
<item quantity="other">%s downloads finished</item>
|
||||
</plurals>
|
||||
<string name="reset_settings_title">Reset settings</string>
|
||||
<string name="reset_settings_summary">Reset all settings to their default values</string>
|
||||
<string name="reset_all_settings">Resetting all settings will discard all of your preferred settings and restarts the application.\n\nAre you sure you want to proceed?</string>
|
||||
<string name="generate_unique_name">Generate unique name</string>
|
||||
<string name="overwrite">Overwrite</string>
|
||||
<string name="overwrite_unrelated_warning">A file with this name already exists</string>
|
||||
<string name="overwrite_finished_warning">A downloaded file with this name already exists</string>
|
||||
<string name="overwrite_failed">cannot overwrite the file</string>
|
||||
<string name="download_already_running">There is a download in progress with this name</string>
|
||||
<string name="download_already_pending">There is a pending download with this name</string>
|
||||
<string name="show_error">Show error</string>
|
||||
<string name="error_file_creation">The file cannot be created</string>
|
||||
<string name="error_path_creation">The destination folder cannot be created</string>
|
||||
<string name="error_ssl_exception">Could not establish a secure connection</string>
|
||||
<string name="error_unknown_host">Could not find the server</string>
|
||||
<string name="error_connect_host">Cannot connect to the server</string>
|
||||
<string name="error_http_no_content">The server does not send data</string>
|
||||
<string name="error_http_unsupported_range">The server does not accept multi-threaded downloads, retry with @string/msg_threads = 1</string>
|
||||
<string name="error_http_not_found">Not found</string>
|
||||
<string name="error_postprocessing_failed">Post-processing failed</string>
|
||||
<string name="error_postprocessing_stopped">NewPipe was closed while working on the file</string>
|
||||
<string name="error_insufficient_storage">No space left on device</string>
|
||||
<string name="error_insufficient_storage_left">No space left on device</string>
|
||||
<string name="error_progress_lost">Progress lost, because the file was deleted</string>
|
||||
<string name="error_timeout">Connection time-out</string>
|
||||
<string name="error_download_resource_gone">Cannot recover this download</string>
|
||||
<string name="clear_download_history">Clear download history</string>
|
||||
<string name="confirm_prompt">Do you want to clear your download history, or delete all downloaded files?</string>
|
||||
<string name="delete_downloaded_files">Delete downloaded files</string>
|
||||
<string name="delete_downloaded_files_confirm">Erase all downloaded files from disk?</string>
|
||||
<plurals name="deleted_downloads_toast">
|
||||
<item quantity="one">Deleted %1$s download</item>
|
||||
<item quantity="other">Deleted %1$s downloads</item>
|
||||
</plurals>
|
||||
<string name="stop">Stop</string>
|
||||
<string name="max_retry_msg">Maximum retries</string>
|
||||
<string name="pause_downloads_on_mobile">Interrupt on metered networks</string>
|
||||
<string name="pause_downloads_on_mobile_desc">Useful when switching to mobile data, although some downloads cannot be suspended</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="enable_queue_limit">Limit download queue</string>
|
||||
<string name="enable_queue_limit_desc">One download will run at the same time</string>
|
||||
<string name="start_downloads">Start downloads</string>
|
||||
<string name="pause_downloads">Pause downloads</string>
|
||||
<string name="downloads_storage_ask_title">Ask where to download</string>
|
||||
<string name="downloads_storage_ask_summary">You will be asked where to save each download.\nEnable the System Folder Picker (SAF) if you want to download to an external SD card</string>
|
||||
<string name="downloads_storage_ask_summary_no_saf_notice">You will be asked where to save each download</string>
|
||||
<string name="downloads_storage_use_saf_title">Use System Folder Picker (SAF)</string>
|
||||
<string name="downloads_storage_use_saf_summary">The \'Storage Access Framework\' allows downloads to an external SD card</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">Starting from Android 10 only \'Storage Access Framework\' is supported</string>
|
||||
<string name="choose_instance_prompt">Choose an instance</string>
|
||||
<string name="app_language_title">Application language</string>
|
||||
<string name="systems_language">System default</string>
|
||||
<string name="remove_watched">Remove watched</string>
|
||||
<string name="remove_watched_popup_title">Remove watched streams?</string>
|
||||
<string name="remove_duplicates">Remove duplicates</string>
|
||||
<string name="remove_duplicates_title">Remove duplicates?</string>
|
||||
<string name="remove_duplicates_message">Do you want to remove all duplicate streams in this playlist?</string>
|
||||
<string name="remove_watched_popup_warning">Streams that have been watched before and after being added to the playlist will be removed.\nAre you sure?</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Remove partially watched streams</string>
|
||||
<string name="new_seek_duration_toast">Due to ExoPlayer constraints the seek duration was set to %d seconds</string>
|
||||
<plurals name="seconds">
|
||||
<item quantity="one">%d second</item>
|
||||
<item quantity="other">%d seconds</item>
|
||||
</plurals>
|
||||
<plurals name="minutes">
|
||||
<item quantity="one">%d minute</item>
|
||||
<item quantity="other">%d minutes</item>
|
||||
</plurals>
|
||||
<plurals name="hours">
|
||||
<item quantity="one">%d hour</item>
|
||||
<item quantity="other">%d hours</item>
|
||||
</plurals>
|
||||
<plurals name="days">
|
||||
<item quantity="one">%d day</item>
|
||||
<item quantity="other">%d days</item>
|
||||
</plurals>
|
||||
<string name="fragment_feed_title">What\'s New</string>
|
||||
<string name="feed_group_page_summary">Channel group page</string>
|
||||
<string name="feed_groups_header_title">Channel groups</string>
|
||||
<string name="feed_oldest_subscription_update">Feed last updated: %s</string>
|
||||
<string name="feed_subscription_not_loaded_count">Not loaded: %d</string>
|
||||
<string name="feed_notification_loading">Loading feed…</string>
|
||||
<string name="feed_processing_message">Processing feed…</string>
|
||||
<string name="feed_new_items">New feed items</string>
|
||||
<string name="feed_group_dialog_select_subscriptions">Select subscriptions</string>
|
||||
<string name="feed_group_dialog_empty_selection">No subscription selected</string>
|
||||
<plurals name="feed_group_dialog_selection_count">
|
||||
<item quantity="one">%d selected</item>
|
||||
<item quantity="other">%d selected</item>
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_empty_name">Empty group name</string>
|
||||
<string name="feed_group_dialog_delete_message">Do you want to delete this group?</string>
|
||||
<string name="feed_create_new_group_button_title">New</string>
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">Show only ungrouped subscriptions</string>
|
||||
<string name="settings_category_feed_title">Feed</string>
|
||||
<string name="feed_update_threshold_title">Feed update threshold</string>
|
||||
<string name="feed_update_threshold_option_always_update">Always update</string>
|
||||
<string name="feed_load_error">Error loading feed</string>
|
||||
<string name="feed_load_error_account_info">Could not load feed for \'%s\'.</string>
|
||||
<string name="feed_load_error_terminated">The author\'s account has been terminated.\nNewPipe will not be able to load this feed in the future.\nDo you want to unsubscribe from this channel?</string>
|
||||
<string name="feed_load_error_fast_unknown">The fast feed mode does not provide more info on this.</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">Fetch from dedicated feed when available</string>
|
||||
<string name="feed_use_dedicated_fetch_method_enable_button">Enable fast mode</string>
|
||||
<string name="feed_use_dedicated_fetch_method_disable_button">Disable fast mode</string>
|
||||
<string name="feed_hide_streams_title">Show the following streams</string>
|
||||
<string name="feed_show_hide_streams">Show/Hide streams</string>
|
||||
<string name="feed_fetch_channel_tabs">Fetch channel tabs</string>
|
||||
<string name="feed_fetch_channel_tabs_summary">Tabs to fetch when updating the feed. This option has no effect if a channel is updated using fast mode.</string>
|
||||
<string name="channel_created_by">Created by %s</string>
|
||||
<string name="video_detail_by">By %s</string>
|
||||
<string name="playlist_page_summary">Playlist page</string>
|
||||
<string name="show_thumbnail_title">Show thumbnail</string>
|
||||
<string name="show_thumbnail_summary">Use thumbnail for both lock screen background and notifications</string>
|
||||
<string name="recent">Recent</string>
|
||||
<string name="chapters">Chapters</string>
|
||||
<string name="no_app_to_open_intent">No app on your device can open this</string>
|
||||
<string name="no_appropriate_file_manager_message">No appropriate file manager was found for this action. \nPlease install a file manager or try to disable \'%s\' in the download settings</string>
|
||||
<string name="no_appropriate_file_manager_message_android_10">No appropriate file manager was found for this action. \nPlease install a Storage Access Framework compatible file manager</string>
|
||||
<string name="georestricted_content">This content is not available in your country.</string>
|
||||
<string name="soundcloud_go_plus_content">This is a SoundCloud Go+ track, at least in your country, so it cannot be streamed or downloaded by NewPipe.</string>
|
||||
<string name="private_content">This content is private, so it cannot be streamed or downloaded by NewPipe.</string>
|
||||
<string name="youtube_music_premium_content">This video is available only to YouTube Music Premium members, so it cannot be streamed or downloaded by NewPipe.</string>
|
||||
<string name="account_terminated">Account terminated</string>
|
||||
<string name="account_terminated_service_provides_reason">Account terminated\n\n%1$s provides this reason: %2$s</string>
|
||||
<string name="paid_content">This content is only available to users who have paid, so it cannot be streamed or downloaded by NewPipe.</string>
|
||||
<string name="featured">Featured</string>
|
||||
<string name="radio">Radio</string>
|
||||
<string name="auto_device_theme_title">Automatic (device theme)</string>
|
||||
<string name="select_night_theme_toast">You can select your favourite night theme below</string>
|
||||
<string name="night_theme_available">This option is only available if %s is selected for Theme</string>
|
||||
<string name="download_has_started">Download has started</string>
|
||||
<string name="description_select_note">You can now select text inside the description. Note that the page may flicker and links may not be clickable while in selection mode.</string>
|
||||
<string name="description_select_enable">Enable selecting text in the description</string>
|
||||
<string name="description_select_disable">Disable selecting text in the description</string>
|
||||
<string name="metadata_category">Category</string>
|
||||
<string name="metadata_tags">Tags</string>
|
||||
<string name="metadata_licence">Licence</string>
|
||||
<string name="metadata_privacy">Privacy</string>
|
||||
<string name="metadata_age_limit">Age limit</string>
|
||||
<string name="metadata_language">Language</string>
|
||||
<string name="metadata_support">Support</string>
|
||||
<string name="metadata_host">Host</string>
|
||||
<string name="metadata_thumbnails">Thumbnails</string>
|
||||
<string name="metadata_uploader_avatars">Uploader avatars</string>
|
||||
<string name="metadata_subchannel_avatars">Sub-channel avatars</string>
|
||||
<string name="metadata_avatars">Avatars</string>
|
||||
<string name="metadata_banners">Banners</string>
|
||||
<string name="metadata_privacy_public">Public</string>
|
||||
<string name="metadata_privacy_unlisted">Unlisted</string>
|
||||
<string name="metadata_privacy_private">Private</string>
|
||||
<string name="metadata_privacy_internal">Internal</string>
|
||||
<string name="metadata_subscribers">Subscribers</string>
|
||||
<string name="detail_pinned_comment_view_description">Pinned comment</string>
|
||||
<string name="detail_heart_img_view_description">Hearted by creator</string>
|
||||
<string name="open_website_license">Open website</string>
|
||||
<string name="tablet_mode_title">Tablet mode</string>
|
||||
<string name="on">On</string>
|
||||
<string name="off">Off</string>
|
||||
<string name="progressive_load_interval_exoplayer_default">ExoPlayer default</string>
|
||||
<string name="notifications_disabled">Notifications are disabled</string>
|
||||
<string name="get_notified">Get notified</string>
|
||||
<string name="you_successfully_subscribed">You now subscribed to this channel</string>
|
||||
<string name="enumeration_comma">,</string>
|
||||
<string name="toggle_all">Toggle all</string>
|
||||
<string name="streams_not_yet_supported_removed">Streams which are not yet supported by the downloader are not shown</string>
|
||||
<string name="audio_track_present_in_video">An audio track should be already present in this stream</string>
|
||||
<string name="selected_stream_external_player_not_supported">The selected stream is not supported by external players</string>
|
||||
<string name="no_audio_streams_available_for_external_players">No audio streams are available for external players</string>
|
||||
<string name="no_video_streams_available_for_external_players">No video streams are available for external players</string>
|
||||
<string name="select_quality_external_players">Select quality for external players</string>
|
||||
<string name="select_audio_track_external_players">Select audio track for external players</string>
|
||||
<string name="unknown_format">Unknown format</string>
|
||||
<string name="unknown_quality">Unknown quality</string>
|
||||
<string name="unknown_audio_track">Unknown</string>
|
||||
<string name="feed_show_watched">Fully watched</string>
|
||||
<string name="feed_show_partially_watched">Partially watched</string>
|
||||
<string name="feed_show_upcoming">Upcoming</string>
|
||||
<string name="sort">Sort</string>
|
||||
<string name="settings_category_exoplayer_title">ExoPlayer settings</string>
|
||||
<string name="settings_category_exoplayer_summary">Manage some ExoPlayer settings. These changes require a player restart to take effect</string>
|
||||
<string name="use_exoplayer_decoder_fallback_title">Use ExoPlayer\'s decoder fallback feature</string>
|
||||
<string name="use_exoplayer_decoder_fallback_summary">Enable this option if you have decoder initialisation issues, which falls back to lower-priority decoders if primary decoders initialisation fail. This may result in poor playback performance than when using primary decoders</string>
|
||||
<string name="always_use_exoplayer_set_output_surface_workaround_title">Always use ExoPlayer\'s video output surface setting workaround</string>
|
||||
<string name="always_use_exoplayer_set_output_surface_workaround_summary">This workaround releases and re-instantiates video codecs when a surface change occurs, instead of setting the surface to the codec directly. Already used by ExoPlayer on some devices with this issue, this setting has only an effect on Android 6 and higher\n\nEnabling this option may prevent playback errors when switching the current video player or switching to fullscreen</string>
|
||||
<string name="audio_track_name">%1$s %2$s</string>
|
||||
<string name="audio_track_type_original">original</string>
|
||||
<string name="audio_track_type_dubbed">dubbed</string>
|
||||
<string name="audio_track_type_descriptive">descriptive</string>
|
||||
<string name="audio_track_type_secondary">secondary</string>
|
||||
<string name="channel_tab_videos">Videos</string>
|
||||
<string name="channel_tab_tracks">Tracks</string>
|
||||
<string name="channel_tab_shorts">Shorts</string>
|
||||
<string name="channel_tab_livestreams">Live</string>
|
||||
<string name="channel_tab_channels">Channels</string>
|
||||
<string name="channel_tab_playlists">Playlists</string>
|
||||
<string name="channel_tab_albums">Albums</string>
|
||||
<string name="channel_tab_likes">Likes</string>
|
||||
<string name="channel_tab_about">About</string>
|
||||
<string name="show_channel_tabs">Channel tabs</string>
|
||||
<string name="show_channel_tabs_summary">What tabs are shown on the channel pages</string>
|
||||
<string name="open_play_queue">Open play queue</string>
|
||||
<string name="toggle_fullscreen">Toggle fullscreen</string>
|
||||
<string name="toggle_screen_orientation">Toggle screen orientation</string>
|
||||
<string name="previous_stream">Previous stream</string>
|
||||
<string name="next_stream">Next stream</string>
|
||||
<string name="play">Play</string>
|
||||
<string name="replay">Replay</string>
|
||||
<string name="more_options">More options</string>
|
||||
<string name="duration">Duration</string>
|
||||
<string name="rewind">Rewind</string>
|
||||
<string name="forward">Forward</string>
|
||||
<string name="image_quality_title">Image quality</string>
|
||||
<string name="image_quality_summary">Choose the quality of images and whether to load images at all, to reduce data and memory usage. Changes clear both in-memory and on-disk image cache — %s</string>
|
||||
<string name="image_quality_none">Do not load images</string>
|
||||
<string name="image_quality_low">Low quality</string>
|
||||
<string name="image_quality_medium">Medium quality</string>
|
||||
<string name="image_quality_high">High quality</string>
|
||||
<string name="question_mark">\?</string>
|
||||
<string name="share_playlist">Share playlist</string>
|
||||
<string name="share_playlist_with_titles">Share with titles</string>
|
||||
<string name="share_playlist_with_list">Share URL list</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Share as YouTube temporary playlist</string>
|
||||
<string name="video_details_list_item">- %1$s: %2$s</string>
|
||||
<string name="share_playlist_content_details">%1$s\n%2$s</string>
|
||||
<plurals name="replies">
|
||||
<item quantity="one">%s reply</item>
|
||||
<item quantity="other">%s replies</item>
|
||||
</plurals>
|
||||
<string name="show_more">Show more</string>
|
||||
<string name="show_less">Show less</string>
|
||||
<string name="import_settings_vulnerable_format">The settings in the export being imported use a vulnerable format that was deprecated since NewPipe 0.27.0. Make sure the export being imported is from a trusted source, and prefer using only exports obtained from NewPipe 0.27.0 or newer in the future. Support for importing settings in this vulnerable format will soon be removed completely, and then old versions of NewPipe will not be able to import settings of exports from new versions anymore.</string>
|
||||
<string name="migration_info_6_7_title">SoundCloud Top 50 page removed</string>
|
||||
<string name="migration_info_6_7_message">SoundCloud has discontinued the original Top 50 charts. The corresponding tab has been removed from your main page.</string>
|
||||
<string name="migration_info_7_8_title">YouTube combined trending removed</string>
|
||||
<string name="migration_info_7_8_message">YouTube has discontinued the combined trending page as of 21st July 2025. NewPipe replaced the default trending page with the trending livestreams.\n\nYou can also select different trending pages in \'Settings > Content > Content of main page\'.</string>
|
||||
<string name="trending_gaming">Gaming trends</string>
|
||||
<string name="trending_podcasts">Trending podcasts</string>
|
||||
<string name="trending_movies">Trending movies and shows</string>
|
||||
<string name="trending_music">Trending music</string>
|
||||
<string name="entry_deleted">Entry deleted</string>
|
||||
<string name="player_http_403">HTTP error 403 received from server while playing, likely caused by streaming URL expiration or an IP ban</string>
|
||||
<string name="player_http_invalid_status">HTTP error %1$s received from server while playing</string>
|
||||
<string name="youtube_player_http_403">HTTP error 403 received from server while playing, likely caused by an IP ban or streaming URL de-obfuscation issues</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s refused to provide data, asking for a login to confirm the requester is not a bot.\n\nYour IP might have been temporarily banned by %1$s, you can wait some time or switch to a different IP (for example by turning on/off a VPN, or by switching from WiFi to mobile data).\n\nPlease see <a href="%2$s">this FAQ entry</a> for more information.</string>
|
||||
<string name="unsupported_content_in_country">This content is not available for the currently selected content country.\n\nChange your selection from \'Settings > Content > Default content country\'.</string>
|
||||
<string name="kao_dialog_warning">In August 2025, Google announced that, as of September 2026, installing apps will require developer verification for all Android apps on certified devices, including those installed outside of the Play Store. Since the developers of NewPipe do not agree to this requirement, NewPipe will no longer work on certified Android devices after that time.</string>
|
||||
<string name="kao_dialog_more_info">Details</string>
|
||||
<string name="kao_solution">Solution</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="upload_date_text">Publicado en %1$s</string>
|
||||
<string name="no_player_found">No se encontró ningún reproductor de retransmisiones. ¿Instalar VLC\?</string>
|
||||
<string name="upload_date_text">Publicado el %1$s</string>
|
||||
<string name="no_player_found">No se encontró ningún reproductor de streaming. ¿Quieres instalar VLC?</string>
|
||||
<string name="install">Instalar</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="open_in_browser">Abrir en el navegador</string>
|
||||
@@ -104,12 +104,12 @@
|
||||
<string name="title_activity_about">Acerca de NewPipe</string>
|
||||
<string name="title_licenses">Licencias de terceros</string>
|
||||
<string name="copyright" formatted="true">© %1$s por %2$s, bajo %3$s</string>
|
||||
<string name="tab_about">FAQ y Acerca de</string>
|
||||
<string name="tab_about">Acerca de y preguntas frecuentes</string>
|
||||
<string name="tab_licenses">Licencias</string>
|
||||
<string name="app_description">Reproducción de transmisiones ligera y libre para Android.</string>
|
||||
<string name="app_description">Streaming libre y ligero en Android.</string>
|
||||
<string name="view_on_github">Ver en GitHub</string>
|
||||
<string name="app_license_title">Licencia de NewPipe</string>
|
||||
<string name="contribution_encouragement">Si puedes traducir, quieres cambiar el diseño, tienes ideas para mejorar el código o proponer mejoras grandes, siempre agradeceremos tu ayuda. ¡Mientras más manos participen, mejor!</string>
|
||||
<string name="contribution_encouragement">Tanto si tiene ideas de traducción, cambios de diseño, limpieza de código o modificaciones profundas en el código, la ayuda siempre es bienvenida. ¡Cuanto más se haga, mejor se vuelve!</string>
|
||||
<string name="read_full_license">Leer licencia</string>
|
||||
<string name="contribution_title">Contribuir</string>
|
||||
<string name="subscribe_button_title">Suscribirse</string>
|
||||
@@ -184,17 +184,17 @@
|
||||
<string name="new_and_hot">Lo nuevo y lo mejor</string>
|
||||
<string name="hold_to_append">Mantener pulsado para añadir a la cola</string>
|
||||
<string name="donation_title">Donar</string>
|
||||
<string name="donation_encouragement">NewPipe es desarrollado por voluntarios que emplean su tiempo libre para brindarle la mejor experiencia. Haz una aportación para ayudarlos a crear un NewPipe mejor mientras disfrutan de una taza de café.</string>
|
||||
<string name="give_back">Devolver</string>
|
||||
<string name="website_title">Sitio web</string>
|
||||
<string name="website_encouragement">Visita el sitio web de NewPipe para más información y noticias.</string>
|
||||
<string name="donation_encouragement">NewPipe es desarrollado por voluntarios que dedican su tiempo libre a ofrecerle la mejor experiencia de usuario. Puedes hacer una donación para ayudar a los desarrolladores y hacer que NewPipe sea aún mejor mientras disfrutan de una taza de café.</string>
|
||||
<string name="give_back">Colaborar</string>
|
||||
<string name="website_title">Sito web</string>
|
||||
<string name="website_encouragement">Visita el nuevo sitio web de NewPipe para más detalles y noticias.</string>
|
||||
<string name="default_content_country_title">País predefinido del contenido</string>
|
||||
<string name="switch_to_background">Cambiar a segundo plano</string>
|
||||
<string name="switch_to_popup">Cambiar a emergente</string>
|
||||
<string name="switch_to_main">Cambiar a principal</string>
|
||||
<string name="drawer_open">Abrir cajón</string>
|
||||
<string name="drawer_close">Cerrar cajón</string>
|
||||
<string name="no_player_found_toast">No se encontró ningún reproductor de retransmisiones (puedes instalar VLC para reproducirlo).</string>
|
||||
<string name="no_player_found_toast">No se encuentra un reproductor (puedes instalar VLC para reproducirlo).</string>
|
||||
<string name="always">Siempre</string>
|
||||
<string name="just_once">Solo una vez</string>
|
||||
<string name="external_player_unsupported_link_type">Los reproductores externos no soportan este tipo de enlaces</string>
|
||||
@@ -244,7 +244,7 @@
|
||||
<string name="caption_auto_generated">Auto generados</string>
|
||||
<string name="enable_leak_canary_summary">La monitorización de fugas de memoria puede causar que la aplicación no responda al realizar el volcado de memoria</string>
|
||||
<string name="enable_disposed_exceptions_title">Informar errores fuera del ciclo de vida</string>
|
||||
<string name="enable_disposed_exceptions_summary">Forzar informe de excepciones no entregables de RX fuera del fragmento o del ciclo de actividad después del descarte</string>
|
||||
<string name="enable_disposed_exceptions_summary">Forzar informe de excepciones no entregables de Rx fuera del fragmento o del ciclo de actividad después del descarte</string>
|
||||
<string name="use_inexact_seek_title">Usar búsqueda rápida e inexacta</string>
|
||||
<string name="use_inexact_seek_summary">La búsqueda inexacta permite al reproductor buscar posiciones más rápido con menor precisión. Buscar de a 5, 15 o 25 segundos no funciona</string>
|
||||
<string name="auto_queue_title">Poner en cola automáticamente la siguiente transmisión</string>
|
||||
@@ -301,7 +301,7 @@
|
||||
<string name="delete_search_history_alert">¿Borrar todo el historial de búsqueda\?</string>
|
||||
<string name="search_history_deleted">Historial de búsquedas borrado</string>
|
||||
<string name="one_item_deleted">Se ha borrado 1 elemento.</string>
|
||||
<string name="app_license">NewPipe es un software copyleft libre: puedes usarlo, estudiarlo, compartirlo y mejorarlo a voluntad. Específicamente, puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la licencia, o (a tu elección) cualquier versión posterior.</string>
|
||||
<string name="app_license">NewPipe es software libre con copyleft: puedes usarlo, estudiarlo, compartirlo y mejorarlo a voluntad. Específicamente, puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por la Free Software Foundation, ya sea la versión 3 de la licencia o (a tu elección) cualquier versión posterior.</string>
|
||||
<string name="import_settings">¿Quieres importar también los ajustes\?</string>
|
||||
<string name="privacy_policy_title">Política de privacidad de NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">El proyecto NewPipe toma tu privacidad muy en serio. Por ello, la aplicación no recopila ningún dato sin tu consentimiento.
|
||||
@@ -443,8 +443,8 @@
|
||||
<string name="permission_display_over_apps">Dar permiso para mostrar sobre otras aplicaciones</string>
|
||||
<string name="app_language_title">Idioma de aplicación</string>
|
||||
<string name="systems_language">Predefinido del sistema</string>
|
||||
<string name="subtitle_activity_recaptcha">Pulsa en «Hecho» al resolverlo</string>
|
||||
<string name="done">Hecho</string>
|
||||
<string name="subtitle_activity_recaptcha">Pulsa en «Listo» al resolverlo</string>
|
||||
<string name="done">Listo</string>
|
||||
<string name="videos_string">Vídeos</string>
|
||||
<plurals name="seconds">
|
||||
<item quantity="one">%d segundo</item>
|
||||
@@ -647,7 +647,7 @@
|
||||
<string name="start_main_player_fullscreen_summary">Si la rotación automática está bloqueada, no inicie los videos en el mini reproductor, sino pase directamente a modo de pantalla completa. Aún podrá acceder al mini reproductor al salir del modo pantalla completa</string>
|
||||
<string name="start_main_player_fullscreen_title">Iniciar reproductor principal en pantalla completa</string>
|
||||
<string name="enqueued_next">Añadido el siguiente vídeo a la cola</string>
|
||||
<string name="enqueue_next_stream">Añadir el siguiente vídeo a la cola</string>
|
||||
<string name="enqueue_next_stream">Añadir vídeo a la cola como siguiente</string>
|
||||
<string name="processing_may_take_a_moment">Procesando… Podría tomar un momento</string>
|
||||
<string name="check_for_updates">Buscar actualizaciones</string>
|
||||
<string name="manual_update_description">Buscar nuevas versiones manualmente</string>
|
||||
@@ -701,7 +701,7 @@
|
||||
<string name="unknown_format">Formato desconocido</string>
|
||||
<string name="unknown_quality">Calidad desconocida</string>
|
||||
<string name="progressive_load_interval_title">Tamaño del intervalo de carga de reproducción</string>
|
||||
<string name="faq">Ver en la página web</string>
|
||||
<string name="faq">Ver en el sitio web</string>
|
||||
<string name="faq_title">Preguntas frecuentes</string>
|
||||
<string name="faq_description">Si tienes problemas al usar la aplicación, ¡Asegúrate de verificar estas respuestas a preguntas comunes!</string>
|
||||
<string name="sort">Ordenar</string>
|
||||
@@ -763,7 +763,7 @@
|
||||
<string name="metadata_subscribers">Suscriptores</string>
|
||||
<string name="show_channel_tabs_summary">Qué pestañas se muestran en las páginas del canal</string>
|
||||
<string name="show_channel_tabs">Pestañas del canal</string>
|
||||
<string name="channel_tab_shorts">Shorts</string>
|
||||
<string name="channel_tab_shorts">Vídeos cortos</string>
|
||||
<string name="loading_metadata_title">Cargando metadatos…</string>
|
||||
<string name="feed_fetch_channel_tabs">Recuperar las fichas del canal</string>
|
||||
<string name="channel_tab_about">Acerca de</string>
|
||||
@@ -793,7 +793,7 @@
|
||||
<string name="image_quality_high">Calidad alta</string>
|
||||
<string name="image_quality_medium">Calidad media</string>
|
||||
<string name="metadata_uploader_avatars">avatares subidos</string>
|
||||
<string name="metadata_banners">Banners</string>
|
||||
<string name="metadata_banners">Anuncios</string>
|
||||
<string name="image_quality_summary">Elige la calidad de las imágenes y si cargar imágenes en su totalidad, para reducir el uso de datos y memoria. Los cambios borran la caché de las imágenes en la memoria y en el disco - %s</string>
|
||||
<string name="metadata_thumbnails">Miniaturas</string>
|
||||
<string name="share_playlist_with_list">Compartir la lista de la dirección URL</string>
|
||||
@@ -819,7 +819,7 @@
|
||||
<string name="no">No</string>
|
||||
<string name="auto_update_check_description">NewPipe puede buscar automáticamente nuevas versiones de vez en cuando y notificarle cuando estén disponibles.
|
||||
\n¿Quieres habilitar esto?</string>
|
||||
<string name="import_settings_vulnerable_format">La configuración de la exportación que se importa utiliza un formato vulnerable que quedó obsoleto desde NewPipe 0.27.0. Asegúrese de que la exportación que se está importando provenga de una fuente confiable y prefiera usar solo exportaciones obtenidas de NewPipe 0.27.0 o posterior en el futuro. La compatibilidad con la importación de configuraciones en este formato vulnerable pronto se eliminará por completo y, luego, las versiones antiguas de NewPipe ya no podrán importar configuraciones de exportaciones desde las nuevas versiones.</string>
|
||||
<string name="import_settings_vulnerable_format">Los ajustes de la exportación que se importa utiliza un formato vulnerable que quedó obsoleto desde NewPipe 0.27.0. Asegúrese de que la exportación que se está importando provenga de una fuente confiable y prefiera usar solo exportaciones obtenidas de NewPipe 0.27.0 o posterior en el futuro. La compatibilidad con la importación de configuraciones en este formato vulnerable pronto se eliminará por completo y, luego, las versiones antiguas de NewPipe ya no podrán importar configuraciones de exportaciones desde las nuevas versiones.</string>
|
||||
<string name="audio_track_type_secondary">secundaria</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Compartir como lista de reproducción temporal de YouTube</string>
|
||||
<string name="tab_bookmarks_short">Lista de reproducción</string>
|
||||
@@ -837,41 +837,44 @@
|
||||
<string name="trending_podcasts">Tendencias pódcasts</string>
|
||||
<string name="trending_movies">Tendencias películas y programas</string>
|
||||
<string name="trending_music">Tendencias música</string>
|
||||
<string name="permission_display_over_apps_permission_name">“Permitir mostrar sobre otras aplicaciones”</string>
|
||||
<string name="delete_file">Eliminar archivo</string>
|
||||
<string name="short_thousand">%sM</string>
|
||||
<string name="short_million">%sM</string>
|
||||
<string name="delete_entry">Eliminar entrada</string>
|
||||
<string name="account_terminated_service_provides_reason">Cuenta cancelada\n\n%1$s proporciona esta razón: %2$s</string>
|
||||
<string name="entry_deleted">Entrada eliminada</string>
|
||||
<string name="player_http_403">Error HTTP 403 recibido del servidor durante la reproducción, probablemente causado por la expiración de la URL de transmisión o una prohibición de IP</string>
|
||||
<string name="player_http_invalid_status">Error HTTP %1$s recibido del servidor durante la reproducción</string>
|
||||
<string name="youtube_player_http_403">Error HTTP 403 recibido del servidor durante la reproducción, probablemente causado por una prohibición de IP o problemas de desofuscación de la URL de transmisión</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s se negó a proporcionar datos y solicitó un inicio de sesión para confirmar que el solicitante no es un bot.\n\nEs posible que tu IP haya sido bloqueada temporalmente por %1$s. Puedes esperar un tiempo o cambiar a una IP diferente (por ejemplo, habilitando o deshabilitando una VPN, o cambiando de WiFi a datos móviles).</string>
|
||||
<string name="short_billion">%sMM</string>
|
||||
<string name="unsupported_content_in_country">Este contenido no está disponible para el país seleccionado actualmente.\n\nCambia tu selección en «Ajustes > Contenido > País predefinido del contenido».</string>
|
||||
<string name="permission_display_over_apps_message">Para usar el reproductor emergente, seleccione %1$s en el siguiente menú de la configuración de Android y habilite %2$s.</string>
|
||||
<string name="permission_display_over_apps_permission_name">\"Permitir la visualización sobre otras aplicaciones\"</string>
|
||||
<string name="delete_file">Eliminar el archivo</string>
|
||||
<string name="short_thousand">%s K</string>
|
||||
<string name="short_million">%s M</string>
|
||||
<string name="delete_entry">Eliminar la entrada</string>
|
||||
<string name="account_terminated_service_provides_reason">Cuenta cerrada\n\n%1$s proporciona este motivo: %2$s</string>
|
||||
<string name="entry_deleted">Entrada suprimida</string>
|
||||
<string name="player_http_403">Error HTTP 403 recibido del servidor durante la reproducción, probablemente causado por la caducidad de la URL de transmisión o una prohibición por IP</string>
|
||||
<string name="player_http_invalid_status">Error HTTP %1$s del servidor en la reproducción</string>
|
||||
<string name="youtube_player_http_403">Se ha recibido un error HTTP 403 del servidor durante la reproducción, probablemente causado por una prohibición de IP o problemas de desofuscación de la URL de transmisión</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s se ha negado a proporcionar datos y solicita un inicio de sesión para confirmar que el solicitante no es un bot.\n\nEs posible que %1$s haya bloqueado temporalmente tu IP. Puedes esperar un rato o cambiar a una IP diferente (por ejemplo, activando o desactivando una VPN, o cambiando de WiFi a datos móviles).</string>
|
||||
<string name="short_billion">%s bill.</string>
|
||||
<string name="unsupported_content_in_country">Este contenido no está disponible para el país actualmente seleccionado.\n\nPuedes cambiarlo en: «Configuración > Contenido > País predeterminado para el contenido».</string>
|
||||
<string name="permission_display_over_apps_message">Para usar el reproductor emergente, selecciona %1$s en el siguiente menú de la configuración de Android y habilita %2$s.</string>
|
||||
<string name="kao_dialog_warning">En Agosto de 2025, Google ha anunciado que, a partir de 2026/2027, todas las aplicaciones en dispositivos Android certificados requerirán que los desarrolladores envíen sus datos personales de identidad directamente a Google. Como los desarrolladores de NewPipe no están de acuerdo con este requisito, la aplicación dejará de funcionar en dispositivos Android certificados después de esa fecha.</string>
|
||||
<string name="kao_dialog_more_info">Detalles</string>
|
||||
<string name="kao_solution">Solución</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Exportando %d suscripción…</item>
|
||||
<item quantity="one">Exportando la suscripción %d…</item>
|
||||
<item quantity="many">Exportando %d suscripciones…</item>
|
||||
<item quantity="other">Exportando %d suscripciones…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Cargando %d suscripción…</item>
|
||||
<item quantity="one">Cargando la suscripción %d…</item>
|
||||
<item quantity="many">Cargando %d suscripciones…</item>
|
||||
<item quantity="other">Cargando %d suscripciones…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Importando %d suscripción…</item>
|
||||
<item quantity="one">Importando la suscripción %d…</item>
|
||||
<item quantity="many">Importando %d suscripciones…</item>
|
||||
<item quantity="other">Importando %d suscripciones…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">Importar suscripciones</string>
|
||||
<string name="export_subscriptions_title">Exportar suscripciones</string>
|
||||
<string name="import_subscriptions_summary">Importar suscripciones desde una exportación .json anterior</string>
|
||||
<string name="export_subscriptions_summary">Exportar suscripciones a un archivo .json</string>
|
||||
<string name="import_from_previous_export">Importar desde exportación anterior</string>
|
||||
<string name="import_subscriptions_title">Importar las suscripciones</string>
|
||||
<string name="export_subscriptions_title">Exportar las suscripciones</string>
|
||||
<string name="import_subscriptions_summary">Importar las suscripciones desde un archivo .json</string>
|
||||
<string name="export_subscriptions_summary">Exportar tus suscripciones a un archivo . json</string>
|
||||
<string name="import_from_previous_export">Importar desde la exportación anterior</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe dejará de soportar Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Desafortunadamente, NewPipe depende de algunas bibliotecas que dejaron de soportar Android 5.0 y 5.1. La próxima versión de NewPipe sólo funcionará en dispositivos con Android 6 o superior, tristemente. Lea más en el artículo de nuestro blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Artículo</string>
|
||||
</resources>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<string name="main_bg_subtitle">Alustamiseks toksa suurendusklaasi ikooni.</string>
|
||||
<string name="upload_date_text">Avaldatud %1$s</string>
|
||||
<string name="no_player_found">Voogesituseks puudub pleier. Kas paigaldame VLC\?</string>
|
||||
<string name="no_player_found_toast">Voogesituseks puudub pleier (selleks võid paigaldada VLC).</string>
|
||||
<string name="no_player_found_toast">Voogesituseks puudub pleier (selleks saad paigaldada VLC).</string>
|
||||
<string name="install">Paigalda</string>
|
||||
<string name="cancel">Tühista</string>
|
||||
<string name="open_in_browser">Ava veebilehitsejas</string>
|
||||
@@ -198,7 +198,7 @@
|
||||
<string name="title_licenses">Kolmanda osapoole litsentsid</string>
|
||||
<string name="tab_about">Rakenduse teave ja KKK</string>
|
||||
<string name="tab_licenses">Litsentsid</string>
|
||||
<string name="contribution_title">Panusta</string>
|
||||
<string name="contribution_title">Tee kaastööd</string>
|
||||
<string name="view_on_github">Vaata GitHubis</string>
|
||||
<string name="donation_title">Anneta</string>
|
||||
<string name="website_title">Veebisait</string>
|
||||
@@ -852,4 +852,9 @@
|
||||
<string name="import_subscriptions_summary">Impordi tellimusi varasemeksporditud json-failist</string>
|
||||
<string name="export_subscriptions_summary">Ekspirdi oma tellimused json-faili</string>
|
||||
<string name="import_from_previous_export">Impordi tellimusi varasemeksporditud failist</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe loobub Android 5 toest</string>
|
||||
<string name="api23_requirement_dialog_message">Kahjuks sõltub NewPipe mõnest teegist, mis on lõpetanud Androidi versioonide 5.0 ja 5.1 toetamise. Seetõttu töötab järgmine NewPipe’i versioon kahjuks ainult nutiseadmetes, millel on Android 6 või uuem versioon. Lisateavet leiad ajaveebi postitusest.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Postitus meie ajaveebis</string>
|
||||
<string name="channel_tab_podcasts">Taskuhäälingud</string>
|
||||
<string name="channel_tab_courses">Kursused</string>
|
||||
</resources>
|
||||
|
||||
@@ -189,9 +189,9 @@
|
||||
<string name="title_last_played">آخرین پخششده</string>
|
||||
<string name="title_most_played">بیشترین پخششده</string>
|
||||
<string name="main_page_content">محتوای صفحه اصلی</string>
|
||||
<string name="blank_page_summary">صفحه خالی</string>
|
||||
<string name="kiosk_page_summary">صفحه کیوسک</string>
|
||||
<string name="channel_page_summary">صفحه کانال</string>
|
||||
<string name="blank_page_summary">صفحهٔ خالی</string>
|
||||
<string name="kiosk_page_summary">صفحهٔ کیوسک</string>
|
||||
<string name="channel_page_summary">صفحهٔ کانال</string>
|
||||
<string name="select_a_channel">کانالی را انتخاب کنید</string>
|
||||
<string name="no_channel_subscribed_yet">هنز کانال مشترکشدهای وجود ندارد</string>
|
||||
<string name="select_a_kiosk">یک کیوسک را انتخاب کنید</string>
|
||||
@@ -220,9 +220,9 @@
|
||||
<string name="unsubscribe">لغو اشتراک</string>
|
||||
<string name="tab_choose">گزینش زبانه</string>
|
||||
<string name="enable_watch_history_title">تاریخچه تماشا</string>
|
||||
<string name="settings_category_history_title">تاریخچه و حافظه نهان</string>
|
||||
<string name="settings_category_history_title">تاریخچه و انباره</string>
|
||||
<string name="settings_category_debug_title">اشکالزدایی</string>
|
||||
<string name="settings_category_updates_title">بهروزرسانیها</string>
|
||||
<string name="settings_category_updates_title">بهروز رسانیها</string>
|
||||
<string name="open_in_popup_mode">گشودن در حالت تصویردرتصویر</string>
|
||||
<string name="default_popup_resolution_title">وضوح پیشگزیدهٔ تصویردرتصویر</string>
|
||||
<string name="controls_popup_title">تصویردرتصویر</string>
|
||||
@@ -341,8 +341,7 @@
|
||||
<string name="caption_setting_description">تغییر سبک پسزمینه و اندازه متن توضیحات پخشکننده. برای تأثیر، نیازمند آغاز دوبارهٔ کاره است</string>
|
||||
<string name="clear_views_history_summary">پاک کردن تاریخچه جریانهای پخش شه و موقعیتهای پخش</string>
|
||||
<string name="app_license">نیوپایپ یک نرمافزار آزاد کپیلفتی است: میتوانید به دلخواه خود استفاده، بررسی، همرسانی و بهترش کنید. به طور خاص میتوانید ذیل نگارش ۳ یا هر نگارش بالاتری از پروانهٔ جامع همگانی گنو که به دست بنیاد نرمافزار آزاد منتشر شده، تغییر و بازنشرش دهید.</string>
|
||||
<string name="privacy_policy_encouragement">حریم شخصی شما برای پروژه نیویایپ بسیاری جدی است. در نتیجه، این برنامه هیچ اطلاعاتی را بدون رضایت شما گردآوری نمیکند.
|
||||
\nسیاستهای حریم شخصی نیوپایپ با جزئیات توضیح میدهد که وقتی گزارش یک خطا را میفرستید، چه دادههایی ذخیره و فرستاده میشود.</string>
|
||||
<string name="privacy_policy_encouragement">پروژهٔ نیوپایپ محرمانگیتان را بسیار جدی میگیرد. برای همین کاره هیچ دادهای را بدون رضایتتان جمعآوری نمیکند.\nسیاست محرمانگی نیوپایپ با جزییات توضیح میدهد که هنگام گزارش فروپاشی چه دادههایی فرستاده و ذخیره میشوند.</string>
|
||||
<string name="start_accept_privacy_policy">به منظور هماهنگی با مقرّرات حفاظت دادهٔ عمومی اروپا (GDPR) توجهتان را به سیاست محرمانگی نیوپایپ جلب میکنیم. لطفاً به دقّت مطالعهاش کنید.
|
||||
\nبرای فرستادن گزارش مشکل باید بپذیریدش.</string>
|
||||
<string name="limit_mobile_data_usage_title">کیفیت را در زمان استفاده از داده همراه محدود کن</string>
|
||||
@@ -450,7 +449,7 @@
|
||||
<item quantity="other">%d ثانیه</item>
|
||||
</plurals>
|
||||
<string name="remove_watched_popup_partially_watched_streams">بله، و ویدیوهای ناقص دیده شده</string>
|
||||
<string name="remove_watched_popup_title">برداشتن ویدیوهای دیده شده؟</string>
|
||||
<string name="remove_watched_popup_title">برداشتن جریانهای دیده شده؟</string>
|
||||
<string name="remove_watched">پاک کردن دیده شدهها</string>
|
||||
<string name="systems_language">پیشفرض دستگاه</string>
|
||||
<string name="app_language_title">زبان برنامه</string>
|
||||
@@ -500,7 +499,7 @@
|
||||
<string name="feed_group_show_only_ungrouped_subscriptions">نمایش اشتراک های دسته بندی نشده</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">آواتار بندانگشتی کانال</string>
|
||||
<string name="playlist_page_summary">صفحه فهرست پخش</string>
|
||||
<string name="remove_watched_popup_warning">ویدیوهایی که پیش و پس از افزوده شدن به سیاههٔ پخش دیده شدهاند حذف خواهند شد. \nمطمئنید؟ این کار قابل بازگشت نیست!</string>
|
||||
<string name="remove_watched_popup_warning">ویدیوهایی که پیش و پس از افزوده شدن به سیاههٔ پخش دیده شدهاند حذف خواهند شد. \nمطمئنید؟</string>
|
||||
<string name="enable_disposed_exceptions_summary">گزارش اجباری خطاهای Rx غیرقابل تحویل خارج از چرخه حیات فعالیت یا بخش پس از اتمام</string>
|
||||
<string name="feed_use_dedicated_fetch_method_help_text">فکر میکنید دریافت خوراک بیش از حد آهسته است؟ اگر چنین است، بارگیری سریع را فعالی کنید (میتوانید آن را در تنظیمات یا با فشردن دکمه زیر تغییر دهید)
|
||||
\n
|
||||
@@ -756,7 +755,7 @@
|
||||
<string name="duration">مدّت</string>
|
||||
<string name="rewind">پسروی</string>
|
||||
<string name="question_mark">؟</string>
|
||||
<string name="settings_category_backup_restore_title">پشتیبانگیری و بازیابی</string>
|
||||
<string name="settings_category_backup_restore_title">پشتیبان و بازگردانی</string>
|
||||
<string name="no_live_streams">بدون جریان زنده</string>
|
||||
<string name="image_quality_title">کیفیت تصویر</string>
|
||||
<string name="image_quality_medium">کیفیت متوسّط</string>
|
||||
@@ -813,4 +812,47 @@
|
||||
<string name="open_play_queue">گشودن صف پخش</string>
|
||||
<string name="remove_duplicates_message">میخواهید همهٔ جریانهای تکراری را در این سیاههٔ پخش بردارید؟</string>
|
||||
<string name="feed_fetch_channel_tabs_summary">زبانههایی که هنگام بهروز رسانی خوراک واکشی میشوند. این گزینه تأثیری روی کانالهایی که با ساتفاده از حالت سریع بهروز میشوند ندارد.</string>
|
||||
<string name="short_thousand">%sه</string>
|
||||
<string name="short_million">%sم</string>
|
||||
<string name="short_billion">%sمیلیارد</string>
|
||||
<string name="channel_tab_likes">پسندها</string>
|
||||
<string name="kao_dialog_more_info">جزییات</string>
|
||||
<string name="kao_solution">راهکار</string>
|
||||
<string name="search_with_service_name">جستوجوی %1$s</string>
|
||||
<string name="api23_requirement_dialog_blogpost">فرستهٔ وبلاگ</string>
|
||||
<string name="trending_gaming">داغهای بازی</string>
|
||||
<string name="trending_podcasts">داغهای پادپخش</string>
|
||||
<string name="trending_music">آهنگهای داغ</string>
|
||||
<string name="delete_file">حذف پرونده</string>
|
||||
<string name="delete_entry">حذف ورودی</string>
|
||||
<string name="entry_deleted">ورودی حذف شد</string>
|
||||
<string name="import_subscriptions_title">درونریزی اشتراکها</string>
|
||||
<string name="export_subscriptions_title">برونریزی اشتراکها</string>
|
||||
<string name="feed_group_page_summary">صفحهٔ گروه کانال</string>
|
||||
<string name="search_with_service_name_and_filter">جستوجوی %1$s (%2$s)</string>
|
||||
<string name="select_a_feed_group">گزینش گروه خوراک</string>
|
||||
<string name="migration_info_7_8_title">داغهای ترکیبی یوتوب برداشته شد</string>
|
||||
<string name="trending_movies">فیلم و سریالهای داغ</string>
|
||||
<string name="import_from_previous_export">درونریزی از برونریزی پیشین</string>
|
||||
<string name="no_feed_group_created_yet">هنوز گروه خوراکی ایجاد نشده</string>
|
||||
<string name="migration_info_6_7_title">۵۰ صفحهٔ برتر سوندکلود برداشته شد</string>
|
||||
<string name="permission_display_over_apps_permission_name">«اجازهٔ نمایش روی دیگر کارهها»</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">برون ریختن %d اشتراک…</item>
|
||||
<item quantity="other">برون ریختن %d اشتراک…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">بار کردن %d اشتراک…</item>
|
||||
<item quantity="other">بار کردن %d اشتراک…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">درون ریختن %d اشتراک…</item>
|
||||
<item quantity="other">درون ریختن %d اشتراک…</item>
|
||||
</plurals>
|
||||
<string name="account_terminated_service_provides_reason">حساب از بین رفت\n\n%1$s این دلیل را گفته: %2$s</string>
|
||||
<string name="import_subscriptions_summary">درونریزی اشتراکها از برونریزی پیشین .json</string>
|
||||
<string name="export_subscriptions_summary">برونریزی اشتراکهایتان به پروندهٔ .json</string>
|
||||
<string name="api23_requirement_dialog_title">نیوپایپ دارد پشتیبانی از اندروید ۵ را رها میکند</string>
|
||||
<string name="player_http_invalid_status">هنگام پخش کردن کارساز خطای HTTP %1$s داد</string>
|
||||
<string name="permission_display_over_apps_message">برای استفاده از پخشکنندهٔ بالاپریدنی %1$s را در فهرست تنظیمات اندروید زیر گزیده و %2$s را به کار بیندازید.</string>
|
||||
</resources>
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
<string name="install">Installer</string>
|
||||
<string name="kore_not_found">Installer l’application Kore manquante \?</string>
|
||||
<string name="no_player_found">Aucun lecteur de flux trouvé. Installer VLC \?</string>
|
||||
<string name="open_in_browser">Ouvrir dans un navigateur</string>
|
||||
<string name="open_in_browser">Ouvrir dans le navigateur</string>
|
||||
<string name="play_with_kodi_title">Lire avec Kodi</string>
|
||||
<string name="search">Rechercher</string>
|
||||
<string name="search">Chercher</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="share">Partager</string>
|
||||
<string name="share_dialog_title">Partager avec</string>
|
||||
@@ -107,18 +107,18 @@
|
||||
<string name="channel_unsubscribed">Désabonné de la chaîne</string>
|
||||
<string name="tab_subscriptions">Abonnements</string>
|
||||
<string name="settings_category_downloads_title">Téléchargement</string>
|
||||
<string name="title_licenses">Licences tierce partie</string>
|
||||
<string name="title_licenses">Licences de tiers</string>
|
||||
<string name="tab_about">À propos & FAQ</string>
|
||||
<string name="tab_licenses">Licences</string>
|
||||
<string name="app_description">Lecteur multimédia libre et léger pour Android.</string>
|
||||
<string name="view_on_github">Voir sur GitHub</string>
|
||||
<string name="app_description">Streaming libre et léger sur Android.</string>
|
||||
<string name="view_on_github">Consulter sur GitHub</string>
|
||||
<string name="app_license_title">Licence de NewPipe</string>
|
||||
<string name="read_full_license">Lire la licence</string>
|
||||
<string name="contribution_title">Contribuer</string>
|
||||
<string name="charset_letters_and_digits">Lettres et chiffres</string>
|
||||
<string name="title_activity_about">À propos de NewPipe</string>
|
||||
<string name="copyright" formatted="true">© %1$s par %2$s sous %3$s</string>
|
||||
<string name="contribution_encouragement">Que ce soit pour des idées de traductions, de changements de design, de nettoyage de code ou de gros changements de code, une aide est toujours la bienvenue. Plus on en fera meilleur il sera !</string>
|
||||
<string name="contribution_encouragement">Que vous ayez des idées concernant la traduction, des modifications de conception, le nettoyage du code ou des modifications techniques importantes, votre aide est toujours la bienvenue. Plus on y met du nôtre, meilleurs sont les résultats !</string>
|
||||
<string name="subscription_change_failed">Impossible de modifier l’abonnement</string>
|
||||
<string name="subscription_update_failed">Impossible d’actualiser l’abonnement</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">Continuer la lecture après les interruptions (ex. : appels téléphoniques)</string>
|
||||
@@ -183,11 +183,11 @@
|
||||
<string name="hold_to_append">Maintenir pour ajouter à la file</string>
|
||||
<string name="start_here_on_background">Démarrer la lecture en arrière-plan</string>
|
||||
<string name="start_here_on_popup">Démarrer la lecture dans une fenêtre flottante</string>
|
||||
<string name="donation_title">Donner</string>
|
||||
<string name="donation_encouragement">NewPipe est développé par des volontaires sur leur temps libre afin de vous proposer la meilleure expérience possible. Vous pouvez leur offrir un café pour les soutenir dans leurs efforts et rendre NewPipe encore meilleur.</string>
|
||||
<string name="website_title">Site Web</string>
|
||||
<string name="website_encouragement">Visitez le site Web de NewPipe pour plus d’informations et de nouvelles.</string>
|
||||
<string name="give_back">Donner en retour</string>
|
||||
<string name="donation_title">Faire un don</string>
|
||||
<string name="donation_encouragement">NewPipe est développé par des bénévoles qui consacrent leur temps libre à vous offrir la meilleure expérience utilisateur possible. Contribuez à aider les développeurs à améliorer encore NewPipe tout en leur permettant de s\'offrir une tasse de café.</string>
|
||||
<string name="website_title">Site web</string>
|
||||
<string name="website_encouragement">Rendez-vous sur le site Web de NewPipe pour plus d\'informations et les dernières actualités.</string>
|
||||
<string name="give_back">Redonner</string>
|
||||
<string name="default_content_country_title">Pays du contenu par défaut</string>
|
||||
<string name="switch_to_background">Basculer en arrière-plan</string>
|
||||
<string name="switch_to_popup">Basculer en mode flottant</string>
|
||||
@@ -253,7 +253,7 @@
|
||||
<string name="controls_download_desc">Télécharger le flux</string>
|
||||
<string name="auto_queue_title">Ajout automatique du flux suivant à la file de lecture</string>
|
||||
<string name="auto_queue_summary">Continue la file de lecture (non répétitive) en ajoutant un flux lié</string>
|
||||
<string name="settings_category_debug_title">Débogage</string>
|
||||
<string name="settings_category_debug_title">Corriger</string>
|
||||
<string name="resize_fill">Remplir</string>
|
||||
<string name="caption_auto_generated">Générés automatiquement</string>
|
||||
<string name="enable_leak_canary_summary">La surveillance des fuites de mémoire peut geler l’application durant le vidage du tas</string>
|
||||
@@ -305,9 +305,9 @@
|
||||
<string name="delete_search_history_alert">Voulez-vous supprimer entièrement l’historique de recherche \?</string>
|
||||
<string name="search_history_deleted">Historique de recherche supprimé</string>
|
||||
<string name="one_item_deleted">1 élément supprimé.</string>
|
||||
<string name="app_license">NewPipe est un logiciel sous licence libre copyleft : vous pouvez l’utiliser, l’étudier, le partager, et l’améliorer comme bon vous semble. Plus précisément, vous pouvez le redistribuer ou le modifier sous les termes de la licence générale publique GNU, comme publiée par la Free Software Foundation, dans sa version 3, ou, à votre convenance, dans une quelconque version ultérieure.</string>
|
||||
<string name="app_license">NewPipe est un logiciel libre sous licence copyleft : vous pouvez l\'utiliser, l\'étudier, le partager et l\'améliorer à votre guise. Plus précisément, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure.</string>
|
||||
<string name="privacy_policy_title">Politique de confidentialité de NewPipe</string>
|
||||
<string name="read_privacy_policy">Lire la politique de confidentialité</string>
|
||||
<string name="read_privacy_policy">Consultez notre politique de confidentialité</string>
|
||||
<string name="import_settings">Voulez-vous également importer les paramètres \?</string>
|
||||
<string name="accept">Accepter</string>
|
||||
<string name="decline">Refuser</string>
|
||||
@@ -712,8 +712,8 @@
|
||||
<string name="no_video_streams_available_for_external_players">Aucun flux vidéo n’est disponible pour les lecteurs externes</string>
|
||||
<string name="progressive_load_interval_title">Taille de l\'intervalle de chargement de la lecture</string>
|
||||
<string name="faq_title">Foire aux questions</string>
|
||||
<string name="faq">Voir sur le site web</string>
|
||||
<string name="faq_description">Si vous avez des difficultés à utiliser l\'application, consultez les réponses aux questions les plus fréquentes !</string>
|
||||
<string name="faq">Consulter sur le site web</string>
|
||||
<string name="faq_description">Si vous rencontrez des difficultés avec l\'application, n\'hésitez pas à consulter ces réponses aux questions fréquentes !</string>
|
||||
<string name="sort">Trier</string>
|
||||
<string name="fast_mode">Mode rapide</string>
|
||||
<string name="import_subscriptions_hint">Importer ou exporter des abonnements à partir du menu</string>
|
||||
@@ -886,4 +886,9 @@
|
||||
<string name="import_subscriptions_summary">Importer des abonnements à partir d\'une exportation .json précédente</string>
|
||||
<string name="export_subscriptions_summary">Exportez vos abonnements dans un fichier .json</string>
|
||||
<string name="import_from_previous_export">Importer à partir d\'une exportation précédente</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe ne prendra plus en charge Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Malheureusement, NewPipe dépend de certaines bibliothèques qui ne prennent plus en charge Android 5.0 et 5.1. La prochaine version de NewPipe ne fonctionnera donc, à notre grand regret, que sur les appareils équipés d\'Android 6 ou d\'une version ultérieure. Pour en savoir plus, consultez l\'article de blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Article de blog</string>
|
||||
<string name="channel_tab_podcasts">Podcasts</string>
|
||||
<string name="channel_tab_courses">Cours</string>
|
||||
</resources>
|
||||
|
||||
@@ -200,25 +200,25 @@
|
||||
<string name="settings_file_replacement_character_title">Carácter de substitución</string>
|
||||
<string name="charset_letters_and_digits">Letras e díxitos</string>
|
||||
<string name="charset_most_special_characters">A maioría dos caracteres especiais</string>
|
||||
<string name="title_activity_about">Sobre o NewPipe</string>
|
||||
<string name="title_licenses">Licenzas de terceiros</string>
|
||||
<string name="title_activity_about">Sobre NewPipe</string>
|
||||
<string name="title_licenses">Licenzas de terceiras partes</string>
|
||||
<string name="copyright" formatted="true">© %1$s de %2$s, so %3$s</string>
|
||||
<string name="tab_about">Sobre e preguntas frecuentes</string>
|
||||
<string name="tab_about">Acerca de e preguntas frecuentes</string>
|
||||
<string name="tab_licenses">Licenzas</string>
|
||||
<string name="app_description">Reprodutor lixeiro e libre para Android.</string>
|
||||
<string name="contribution_title">Colaborar</string>
|
||||
<string name="contribution_encouragement">Se ten ideas de tradución, mudanzas ao deseño, limpeza de código ou mudanzas serias deste—a axuda sempre é benvida. Canto máis fixermos, tanto máis vai mellorar!</string>
|
||||
<string name="view_on_github">Ver no GitHub</string>
|
||||
<string name="app_description">Transmisión lixeira e libre en Android.</string>
|
||||
<string name="contribution_title">Contribúe</string>
|
||||
<string name="contribution_encouragement">Tanto se tes ideas para traducións, cambios de deseño, limpeza de código ou cambios de código moi importantes, a axuda sempre é benvida. Canto máis se faga, mellor será!</string>
|
||||
<string name="view_on_github">Ver en GitHub</string>
|
||||
<string name="donation_title">Doar</string>
|
||||
<string name="donation_encouragement">NewPipe é desenvolvido por voluntarios que pasan o seu tempo libre para brindarte a mellor experiencia de usuario. Regresa aos desenvolvedores para que NewPipe sexa aínda mellor mentres gozan dunha cunca de café.</string>
|
||||
<string name="give_back">Retribuír</string>
|
||||
<string name="website_title">Sitio web</string>
|
||||
<string name="website_encouragement">Visite o sitio web do NewPipe para saber máis e ver noticias sobre o proxecto.</string>
|
||||
<string name="privacy_policy_title">Política de privacidade do NewPipe</string>
|
||||
<string name="donation_encouragement">NewPipe está desenvolvido por persoas voluntarias que dedican o seu tempo libre a ofrecerche a mellor experiencia como persoa usuaria. Axuda ás persoas desenvolvedoras a mellorar NewPipe mentres gozan dunha cunca de café.</string>
|
||||
<string name="give_back">Devolver</string>
|
||||
<string name="website_title">Páxina web</string>
|
||||
<string name="website_encouragement">Visita o sitio web de NewPipe para obter máis información e novas.</string>
|
||||
<string name="privacy_policy_title">Política de Privacidade de NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">O proxecto NewPipe dá moita importancia á súa privacidade. Por tanto, non recolle ningún dato sen o seu consentimento.
|
||||
\nA política de privacidade do NewPipe explica con máis detalle que datos son enviados e gardados cando envía un relatorio de erros.</string>
|
||||
<string name="read_privacy_policy">Ler a política de privacidade</string>
|
||||
<string name="app_license_title">Licenza do NewPipe</string>
|
||||
<string name="read_privacy_policy">Le a política de privacidade</string>
|
||||
<string name="app_license_title">Licenza de NewPipe</string>
|
||||
<string name="app_license">NewPipe é un software libre copyleft: Pode usar, estudar compartillar e melloralo a vontade. En concreto, pode redistribuír e / ou modificala segundo os termos da Licenza Pública Xeral GNU publicada pola Free Software Foundation, xa sexa a versión 3 da licenza, ou (na súa opción) calquera outra versión posterior.</string>
|
||||
<string name="read_full_license">Ler a licenza</string>
|
||||
<string name="title_activity_history">Historial</string>
|
||||
@@ -228,8 +228,8 @@
|
||||
<string name="title_most_played">Máis reproducido</string>
|
||||
<string name="main_page_content">Contido da páxina principal</string>
|
||||
<string name="blank_page_summary">Páxina en branco</string>
|
||||
<string name="kiosk_page_summary">Páxina do «kiosk»</string>
|
||||
<string name="channel_page_summary">Páxina do canal</string>
|
||||
<string name="kiosk_page_summary">Páxina de quiosco</string>
|
||||
<string name="channel_page_summary">Páxina de canle</string>
|
||||
<string name="select_a_channel">Seleccione un canal</string>
|
||||
<string name="no_channel_subscribed_yet">Non se subscribiu a ningunha canle aínda</string>
|
||||
<string name="select_a_kiosk">Seleccione un «kiosk»</string>
|
||||
@@ -389,7 +389,7 @@
|
||||
<string name="new_seek_duration_toast">Debido ás restricións de ExoPlayer, a duración da busca estableceuse en %d segundos</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Si, e visualizou parcialmente estes vídeos</string>
|
||||
<string name="remove_watched_popup_warning">Eliminaranse as emisións vistas antes e despois de seren engadidas á lista de reprodución.\nEstás seguro?</string>
|
||||
<string name="remove_watched_popup_title">Borrar todos os vídeos vistos?</string>
|
||||
<string name="remove_watched_popup_title">Eliminar as transmisións vistas?</string>
|
||||
<string name="remove_watched">Eliminar o visto</string>
|
||||
<string name="systems_language">Sistema predeterminado</string>
|
||||
<string name="app_language_title">Lingua do aplicativo</string>
|
||||
@@ -819,4 +819,51 @@
|
||||
<string name="search_with_service_name_and_filter">Procurar %1$s (%2$s)</string>
|
||||
<string name="tab_bookmarks_short">Listas de reprodución</string>
|
||||
<string name="feed_group_page_summary">Páxina do grupo de canles</string>
|
||||
<string name="permission_display_over_apps_message">Para usar o reprodutor emerxente, selecciona %1$s no seguinte menú de configuración de Android e activa %2$s.</string>
|
||||
<string name="permission_display_over_apps_permission_name">“Permitir a visualización sobre outras aplicacións”</string>
|
||||
<string name="delete_file">Eliminar ficheiro</string>
|
||||
<string name="delete_entry">Eliminar entrada</string>
|
||||
<string name="select_a_feed_group">Selecciona un grupo de feeds</string>
|
||||
<string name="no_feed_group_created_yet">Aínda non se creou ningún grupo de feeds</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Exportando %d subscrición…</item>
|
||||
<item quantity="other">Exportando %d subscricións…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Cargando %d subscrición…</item>
|
||||
<item quantity="other">Cargando %d subscricións…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Importando %d subscrición…</item>
|
||||
<item quantity="other">Importando %d subscricións…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">Importar subscricións</string>
|
||||
<string name="export_subscriptions_title">Exportar subscricións</string>
|
||||
<string name="import_subscriptions_summary">Importar subscricións dunha exportación .json anterior</string>
|
||||
<string name="export_subscriptions_summary">Exportar as túas subscricións a un ficheiro .json</string>
|
||||
<string name="import_from_previous_export">Importar dunha exportación anterior</string>
|
||||
<string name="account_terminated_service_provides_reason">Conta cancelada\n\n%1$s proporciona este motivo: %2$s</string>
|
||||
<string name="audio_track_type_secondary">secundario</string>
|
||||
<string name="channel_tab_likes">Gústame</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Compartir como lista de reprodución temporal de YouTube</string>
|
||||
<string name="migration_info_6_7_title">Páxina dos 50 mellores de SoundCloud eliminada</string>
|
||||
<string name="migration_info_6_7_message">SoundCloud deixou de publicar as listas orixinais dos 50 mellores. Eliminouse a pestana correspondente da túa páxina principal.</string>
|
||||
<string name="migration_info_7_8_title">Tendencias combinadas de YouTube eliminadas</string>
|
||||
<string name="migration_info_7_8_message">YouTube deixou de ofrecer a páxina de tendencias combinadas desde o 21 de xullo de 2025. NewPipe substituíu a páxina de tendencias predeterminada polas transmisións en directo en tendencia.\n\nTamén podes seleccionar diferentes páxinas de tendencias en \"Configuración > Contido > Contido da páxina principal\".</string>
|
||||
<string name="trending_gaming">Tendencias de videoxogos</string>
|
||||
<string name="trending_podcasts">Podcasts en tendencia</string>
|
||||
<string name="trending_movies">Películas e programas en tendencia</string>
|
||||
<string name="trending_music">Música en tendencia</string>
|
||||
<string name="entry_deleted">Entrada eliminada</string>
|
||||
<string name="player_http_403">Erro HTTP 403 recibido do servidor mentres se reproducía, probablemente causado pola caducidade do URL de transmisión ou por unha prohibición de IP</string>
|
||||
<string name="player_http_invalid_status">Erro HTTP %1$s recibido do servidor mentres se reproducía</string>
|
||||
<string name="youtube_player_http_403">Erro HTTP 403 recibido do servidor mentres se reproducía, probablemente causado por unha prohibición de IP ou problemas de desofuscación do URL de transmisión</string>
|
||||
<string name="sign_in_confirm_not_bot_error">\"%1$s negouse a proporcionar datos, solicitando un inicio de sesión para confirmar que o solicitante non é un bot.\n\nO teu IP pode ter sido prohibido temporalmente por %1$s, podes esperar un tempo ou cambiar a un IP diferente (por exemplo, activando/desactivando unha VPN ou cambiando de WiFi a datos móbiles).\n\nConsulta <a href="%2$s">esta entrada de preguntas frecuentes</a> para obter máis información.’</string>
|
||||
<string name="unsupported_content_in_country">Este contido non está dispoñible para o país de contido seleccionado actualmente.\n\nCambia a túa selección desde \"Configuración > Contido > País de contido predeterminado\".</string>
|
||||
<string name="kao_dialog_warning">En agosto de 2025, Google anunciou que, a partir de setembro de 2026, a instalación de aplicacións requirirá a verificación do desenvolvedor para todas as aplicacións de Android en dispositivos certificados, incluídas as instaladas fóra de Play Store. Dado que os desenvolvedores de NewPipe non están de acordo con este requisito, NewPipe deixará de funcionar en dispositivos Android certificados despois dese tempo.</string>
|
||||
<string name="kao_dialog_more_info">Detalles</string>
|
||||
<string name="kao_solution">Solución</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe deixa de ser compatible con Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Desafortunadamente, NewPipe depende dalgunhas bibliotecas que deixaron de ser compatible con Android 5.0 e 5.1. Polo tanto, a próxima versión de NewPipe só funcionará en dispositivos con Android 6 ou superior. Le máis na publicación do blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Publicación do blog</string>
|
||||
</resources>
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
<string name="show_next_and_similar_title">להציג סרטונים דומים והבאים בתור</string>
|
||||
<string name="unsupported_url">כתובת לא נתמכת</string>
|
||||
<string name="content_language_title">שפת התוכן המועדפת</string>
|
||||
<string name="settings_category_video_audio_title">סרטונים ושמע</string>
|
||||
<string name="settings_category_appearance_title">תצוגה</string>
|
||||
<string name="settings_category_video_audio_title">וידאו ושמע</string>
|
||||
<string name="settings_category_appearance_title">מראה</string>
|
||||
<string name="background_player_playing_toast">מתנגן ברקע</string>
|
||||
<string name="popup_playing_toast">מתנגן בחלון צף</string>
|
||||
<string name="content">תוכן</string>
|
||||
@@ -156,20 +156,20 @@
|
||||
<string name="settings_file_replacement_character_title">תו חלופי</string>
|
||||
<string name="charset_letters_and_digits">אותיות וספרות</string>
|
||||
<string name="charset_most_special_characters">רוב התווים המיוחדים</string>
|
||||
<string name="title_activity_about">על אודות NewPipe</string>
|
||||
<string name="title_licenses">רישיונות צד שלישי</string>
|
||||
<string name="title_activity_about">על NewPipe</string>
|
||||
<string name="title_licenses">רישיונות צד־שלישי</string>
|
||||
<string name="copyright" formatted="true">© %1$s ע״י %2$s תחת %3$s</string>
|
||||
<string name="tab_about">על אודות ושו״ת</string>
|
||||
<string name="tab_licenses">רישיונות</string>
|
||||
<string name="app_description">נגן קל וחופשי להזרמת מדיה עבור Android.</string>
|
||||
<string name="app_description">הזרמה חופשית וקלילה ב־Android.</string>
|
||||
<string name="contribution_title">התנדבות</string>
|
||||
<string name="contribution_encouragement">אם יש לך רעיון כלשהו בנוגע לתרגום, שינויי עיצוב, ניקוי הקוד או שינויים מהותיים בקוד - אנו תמיד שמחים לקבל עזרה. ככל שיותר דברים מתבצעים כך היישומון משתפר!</string>
|
||||
<string name="contribution_encouragement">אם יש לך רעיונות ליכולות מסוימות, בא לך לתרגם, לשנות את העיצוב או לבצע שינויים מהותיים בקוד - אנו תמיד שמחים לקבל עזרה. ככל שיותר דברים נעשים ככה הוא נהיה טוב יותר!</string>
|
||||
<string name="view_on_github">הצגה ב־GitHub</string>
|
||||
<string name="donation_title">תרומה</string>
|
||||
<string name="donation_encouragement">הפיתוח של NewPipe נערך ע״י מתנדבים שמשקיעים את זמנם הפנוי כדי להגיש לך את חווית השימוש הטובה ביותר. באפשרותך להעניק בחזרה כדי לסייע למפתחים לשפר את NewPipe בעודם נהנים מכוס קפה.</string>
|
||||
<string name="give_back">לתרום בחזרה</string>
|
||||
<string name="website_title">אתר הבית</string>
|
||||
<string name="website_encouragement">מומלץ לבקר באתר של NewPipe לפרטים נוספים ולחדשות.</string>
|
||||
<string name="donation_encouragement">NewPipe מפותח על ידי מתנדבים שמשקיעים את זמן החופשי כדי לספק לך את חוויית המשתמש הטובה ביותר. אפשר לתת בחזרה כדי לסייע למפתחים לשפר את NewPipe עוד יותר תוך שהם נהנים מכוס קפה.</string>
|
||||
<string name="give_back">לתת בחזרה</string>
|
||||
<string name="website_title">אתר</string>
|
||||
<string name="website_encouragement">יש לבקר באתר של NewPipe למידע נוסף ולחדשות.</string>
|
||||
<string name="app_license_title">הרישיון של NewPipe</string>
|
||||
<string name="read_full_license">הצגת הרישיון</string>
|
||||
<string name="title_activity_history">היסטוריה</string>
|
||||
@@ -724,8 +724,8 @@
|
||||
<string name="progressive_load_interval_title">גודל משך טעינת נגינה</string>
|
||||
<string name="sort">מיון</string>
|
||||
<string name="faq">הצגה באתר</string>
|
||||
<string name="faq_title">תשובות לשאלות נפוצות</string>
|
||||
<string name="faq_description">אם נתקלת בתקלות כשניסית להשתמש ביישומון, כדאי לעיין בתשובות לשאלות הנפוצות!</string>
|
||||
<string name="faq_title">שאלות נפוצות</string>
|
||||
<string name="faq_description">אם נתקלת בבעיות בשימוש ביישומון, חשוב לעיין בתשובות האלו לשאלות נפוצות!</string>
|
||||
<string name="import_subscriptions_hint">ניתן לייבא או לייצא מינויים מתפריט 3 הנקודות</string>
|
||||
<string name="app_update_available_notification_text">נגיעה כאן תוריד את %s</string>
|
||||
<string name="fast_mode">מצב מהיר</string>
|
||||
@@ -872,6 +872,32 @@
|
||||
<string name="player_http_403">שגיאת HTTP 403 שהתקבלה מהשרת בזמן השמעה, ככל הנראה נגרמת עקב פקיעת כתובת URL של סטרימינג או חסימת IP</string>
|
||||
<string name="player_http_invalid_status">שגיאת HTTP %1$s התקבלה מהשרת בזמן הניגון</string>
|
||||
<string name="youtube_player_http_403">שגיאת HTTP 403 שהתקבלה מהשרת בזמן הניגון, ככל הנראה נגרמה עקב חסימת IP או בעיות בהסרת ערפול כתובת תזרים</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s סירב לספק נתונים, וביקש התחברות כדי לאשר שהמבקש אינו בוט.\n\nכנראה שה־IP שלך נחסם זמנית על ידי %1$s, ניתן להמתין זמן מה או לעבור ל־IP אחר (לדוגמה על ידי הפעלה/כיבוי של VPN, או על ידי מעבר מרשת אלחוטית לתקשורת נתונים סלולרית).</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s סירב לספק נתונים, וביקש התחברות כדי לאשר שהמבקש אינו בוט.\n\nכנראה שה־IP שלך נחסם זמנית על ידי %1$s, ניתן להמתין זמן מה או לעבור ל־IP אחר (לדוגמה על ידי הפעלה/כיבוי של VPN, או על ידי מעבר מרשת אלחוטית לתקשורת נתונים סלולרית).\n\nנא לקרוא <a href="%2$s">את רשומת FAQ הזאת</a> למידע נוסף.</string>
|
||||
<string name="unsupported_content_in_country">תוכן זה אינו זמין עבור מדינת התוכן שנבחרה כעת.\n\nניתן לשנות את בחירתך דרך „הגדרות > תוכן > מדינת תוכן ברירת מחדל”.</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">מייצא מנוי %d …</item>
|
||||
<item quantity="two">מייצא %d מנויים…</item>
|
||||
<item quantity="other">מייצא %d מנויים…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">טוען מנוי %d …</item>
|
||||
<item quantity="two">טוען %d מנויים…</item>
|
||||
<item quantity="other">טוען %d מנויים…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">מייבא מנוי %d …</item>
|
||||
<item quantity="two">מייבא %d מנויים…</item>
|
||||
<item quantity="other">מייבא %d מנויים…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">ייבוא מנויים</string>
|
||||
<string name="export_subscriptions_title">ייצוא מנויים</string>
|
||||
<string name="import_subscriptions_summary">ייבוא מנויים מייצוא קודם בקובץ .json</string>
|
||||
<string name="export_subscriptions_summary">ייצא את המינויים שלך לקובץ .json</string>
|
||||
<string name="import_from_previous_export">ייבוא מייצוא קודם</string>
|
||||
<string name="kao_dialog_warning">באוגוסט 2025, גוגל הודיעה כי החל מספטמבר 2026, התקנת יישומים תדרוש אימות מפתח עבור כל יישומי אנדרואיד במכשירים מוסמכים, כולל אלה שהותקנו מחוץ לחנות Play. מכיוון שהמפתחים של NewPipe אינם מסכימים לדרישה זו, NewPipe כבר לא יעבוד על מכשירי אנדרואיד מוסמכים לאחר זמן זה.</string>
|
||||
<string name="kao_dialog_more_info">פרטים</string>
|
||||
<string name="kao_solution">פתרון</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe מורידה את התמיכה באנדרואיד 5</string>
|
||||
<string name="api23_requirement_dialog_message">למרבה הצער, NewPipe תלויה במספר ספריות שהורידו את התמיכה באנדרואיד 5.0 ו־5.1. הגירסה החדשה הבאה תעבוד רק על מכשירים עם אנדרואיד 6 ומעלה, למרבה הצער. קרא עוד בבלוג.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">פוסט בבלוג</string>
|
||||
</resources>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<string name="install">इंस्टॉल करें</string>
|
||||
<string name="open_in_browser">ब्राउज़र में खोलें</string>
|
||||
<string name="open_in_popup_mode">पॉपअप मोड में खोलें</string>
|
||||
<string name="share">शेयर करें</string>
|
||||
<string name="share">साझा करें</string>
|
||||
<string name="download">डाउनलोड करें</string>
|
||||
<string name="search">खोजें</string>
|
||||
<string name="settings">सेटिंग्स</string>
|
||||
@@ -26,11 +26,11 @@
|
||||
<string name="no_views">कोई विऊ नहीं</string>
|
||||
<string name="no_videos">कोई वीडियो नहीं</string>
|
||||
<string name="title_activity_about">न्यूपाइप के बारे में जानें</string>
|
||||
<string name="title_licenses">तृतीय-पक्ष लाइसेंस</string>
|
||||
<string name="title_licenses">थर्ड-पार्टी लाइसेंस</string>
|
||||
<string name="tab_about">ऐप के बारे में और सामान्य प्रश्न</string>
|
||||
<string name="tab_licenses">लाइसेंस</string>
|
||||
<string name="view_on_github">गिटहब पर देखें</string>
|
||||
<string name="app_license_title">न्यूपाइप का लाइसेंस</string>
|
||||
<string name="view_on_github">GitHub पर देखें</string>
|
||||
<string name="app_license_title">NewPipe का लाइसेंस</string>
|
||||
<string name="read_full_license">लाइसेंस पढ़ें</string>
|
||||
<string name="contribution_title">योगदान करें</string>
|
||||
<string name="title_activity_history">इतिहास</string>
|
||||
@@ -96,7 +96,7 @@
|
||||
<string name="undo">अन-डू करें</string>
|
||||
<string name="play_all">सभी प्ले करें</string>
|
||||
<string name="notification_channel_name">न्यूपाइप की नोटीफिकेशन</string>
|
||||
<string name="notification_channel_description">न्यूपाइप के प्लेयर के लिए नोटीफिकेशन</string>
|
||||
<string name="notification_channel_description">न्यूपाइप के प्लेयर के लिए नोटिफ़िकेशन</string>
|
||||
<string name="unknown_content">[अज्ञात]</string>
|
||||
<string name="general_error">त्रुटी</string>
|
||||
<string name="network_error">नेटवर्क में त्रुटी</string>
|
||||
@@ -203,8 +203,8 @@
|
||||
<string name="dismiss">ख़ारिज करें</string>
|
||||
<string name="rename">नाम बदलें</string>
|
||||
<string name="donation_title">दान करें</string>
|
||||
<string name="donation_encouragement">न्यूपाइप स्वयंसेवकों द्वारा विकसित किया जाता है जो आपको अच्छा अनुभव देने के लिए अपना खाली समय इस एप्लिकेशन को देते हैं। स्वयंसेवको को मदद भेजे, ताकि वह न्यूपाइप को और अच्छा बना सके।</string>
|
||||
<string name="give_back">वापस दें</string>
|
||||
<string name="donation_encouragement">न्यूपाइप वॉलंटियर्स द्वारा विकसित किया जाता है जो आपको अच्छा अनुभव देने के लिए अपना खाली समय इस एप्लिकेशन को देते हैं। डेवलपर्स को मदद भेजे, ताकि वह न्यूपाइप को और अच्छा बना सके।</string>
|
||||
<string name="give_back">वापस दो</string>
|
||||
<string name="website_title">वेबसाइट</string>
|
||||
<string name="website_encouragement">अधिक जानकारी और खबरों के लिए न्यूपाइप की वेबसाइट पर जाएं।</string>
|
||||
<string name="title_last_played">पिछला चलाया गया</string>
|
||||
@@ -237,7 +237,7 @@
|
||||
<string name="resize_fit">फिट</string>
|
||||
<string name="resize_fill">भरें</string>
|
||||
<string name="resize_zoom">ज़ूम</string>
|
||||
<string name="settings_category_debug_title">डीबग करें</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">चक्र से बाहर त्रुटियों की रिपोर्ट करें</string>
|
||||
@@ -269,10 +269,9 @@
|
||||
<string name="error_occurred_detail">एक त्रुटी उत्पन्न हुई: %1$s</string>
|
||||
<string name="no_streams_available_download">डाउनलोड करने के लिए कोई स्ट्रीम उपलब्ध नहीं है</string>
|
||||
<string name="one_item_deleted">एक आइटम मिटा दी गई।</string>
|
||||
<string name="privacy_policy_title">न्यूपाइप की गोपनीयता नीति</string>
|
||||
<string name="privacy_policy_encouragement">न्यूपाइप परियोजना आपकी गोपनीयता को बहुत गंभीर रूप से लेता है। इसलिए, ऐप आपकी अनुमति के बिना कोई डेटा जमा नहीं करता।
|
||||
\nन्यूपाइप की गोपनीयता नीति विस्तार से समझाती है कि कौनसा डेटा भेजा और संग्रह किया जाता है जब आप क्रेश विवरण भेजते हैं।</string>
|
||||
<string name="read_privacy_policy">गोपनीयता नीति पढें</string>
|
||||
<string name="privacy_policy_title">न्यूपाइप की प्राइवेसी पॉलिसी</string>
|
||||
<string name="privacy_policy_encouragement">न्यूपाइप परियोजना आपकी गोपनीयता को बहुत गंभीर रूप से लेता है। इसलिए, ऐप आपकी अनुमति के बिना कोई डेटा जमा नहीं करता।\nन्यूपाइप की गोपनीयता नीति विस्तार से समझाती है कि कौनसा डेटा भेजा और संग्रह किया जाता है जब आप क्रेश विवरण भेजते हैं।</string>
|
||||
<string name="read_privacy_policy">प्राइवेसी पॉलिसी पढ़ें</string>
|
||||
<string name="import_settings">क्या आप सेटिंग्स भी आयात करना चाहते हैं\?</string>
|
||||
<string name="preferred_open_action_settings_title">\'खोलने\' पर तरजीही एक्शन</string>
|
||||
<string name="preferred_open_action_settings_summary">सामग्री खोलते समय डिफ़ॉल्ट कारवाही — %s</string>
|
||||
@@ -323,7 +322,7 @@
|
||||
<string name="settings_category_updates_title">अपडेटस</string>
|
||||
<string name="file_deleted">फाइल मिटा दी गयी</string>
|
||||
<string name="app_update_notification_channel_name">ऐप अपडेट नोटीफिकेशन</string>
|
||||
<string name="app_update_notification_channel_description">नए नयूपाईप अपडेट का नोटीफिकेशन</string>
|
||||
<string name="app_update_notification_channel_description">नए नयूपाईप अपडेट का नोटिफ़िकेशन</string>
|
||||
<string name="download_to_sdcard_error_title">एक्सटर्नल स्टोरेज अनुपलब्ध</string>
|
||||
<string name="download_to_sdcard_error_message">SD कार्ड पर डाउनलोड करना संभव नहीं। डाउनलोड स्थान पुनः चुनें\?</string>
|
||||
<string name="restore_defaults">डिफ़ॉल्टस पुन: स्थापित करें</string>
|
||||
@@ -507,7 +506,7 @@
|
||||
<string name="error_report_open_github_notice">कृपया जांचें लें कि क्या आपके क्रैश पर चर्चा करने वाला मुद्दा पहले से मौजूद है। डुप्लिकेट टिकट बनाते समय, आप हमसे समय लेते हैं जो हम वास्तविक बग को ठीक करने के लिए खर्च कर सकते हैं।</string>
|
||||
<string name="error_report_open_issue_button_text">गिटहब पर रिपोर्ट करें</string>
|
||||
<string name="permission_display_over_apps">अन्य ऐप्स पर प्रदर्शित करने की अनुमति दें</string>
|
||||
<string name="hash_channel_description">विडीओ हैशिंग की प्रगति का नोटीफिकेशन</string>
|
||||
<string name="hash_channel_description">वीडियो हैशिंग की प्रगति के लिए सूचनाएं</string>
|
||||
<string name="hash_channel_name">वीडियो हैश नोटीफिकेशन</string>
|
||||
<string name="show_meta_info_summary">स्ट्रीम निर्माता, स्ट्रीम सामग्री या खोज अनुरोध के बारे में अतिरिक्त जानकारी देते मेटा जानकारी बक्से को छिपाने के लिए बंद करें</string>
|
||||
<string name="show_meta_info_title">मेटा जानकारी दिखाएं</string>
|
||||
@@ -555,9 +554,9 @@
|
||||
<string name="metadata_privacy_public">सार्वजनिक</string>
|
||||
<string name="settings_category_player_notification_summary">चल रही स्ट्रीम की नोटीफिकेशन को कॉन्फ़िगर करें</string>
|
||||
<string name="streams_notification_channel_name">नई स्ट्रीमें</string>
|
||||
<string name="streams_notification_channel_description">सब्सक्रिप्शनस की नई स्ट्रीमों के नोटीफिकेशन</string>
|
||||
<string name="streams_notification_channel_description">सब्सक्रिप्शनस की नई स्ट्रीमों के बारे में नोटिफ़िकेशन</string>
|
||||
<string name="error_report_channel_name">त्रुटि रिपोर्ट नोटीफिकेशन</string>
|
||||
<string name="error_report_channel_description">त्रुटियों की रिपोर्ट करने के लिए नोटीफिकेशन</string>
|
||||
<string name="error_report_channel_description">त्रुटियों की रिपोर्ट करने के लिए नोटिफ़िकेशन</string>
|
||||
<string name="error_report_notification_title">न्यूपाइप को एक त्रुटि का सामना करना पड़ा, रिपोर्ट करने के लिए टैप करें</string>
|
||||
<string name="recaptcha_solve">हल करें</string>
|
||||
<string name="enqueue_stream">कतारबद्ध करें</string>
|
||||
@@ -589,7 +588,7 @@
|
||||
<string name="feed_load_error">फ़ीड लोड करने में त्रुटि हूई</string>
|
||||
<string name="feed_load_error_account_info">\'%s\' के लिए फ़ीड लोड नहीं हो सकी।</string>
|
||||
<string name="recent">हाल ही के</string>
|
||||
<string name="description_select_enable">विवरण में पाठ का चयन सक्षम करें</string>
|
||||
<string name="description_select_enable">विवरण में टेक्स्ट चुनने की सुविधा चालू करें</string>
|
||||
<string name="metadata_privacy">गोपनीयता</string>
|
||||
<string name="description_select_note">अब आप विवरण के अंदर पाठ का चयन कर सकते हैं। ध्यान दें कि पृष्ठ झिलमिला सकता है और चयन मोड में लिंक क्लिक करने योग्य नहीं हो सकते हैं।</string>
|
||||
<string name="metadata_age_limit">आयु सीमा</string>
|
||||
@@ -612,7 +611,7 @@
|
||||
<string name="downloads_storage_ask_summary_no_saf_notice">आपसे पूछा जाएगा कि प्रत्येक डाउनलोड को कहां सहेजना है</string>
|
||||
<string name="off">ऑफ़</string>
|
||||
<string name="feed_update_threshold_option_always_update">हमेशा अपडेट करें</string>
|
||||
<string name="description_select_disable">विवरण में पाठ का चयन अक्षम करें</string>
|
||||
<string name="description_select_disable">विवरण में टेक्स्ट चुनने की सुविधा बंद करें</string>
|
||||
<string name="dont_show">मत दिखाओ</string>
|
||||
<string name="remote_search_suggestions">रिमोट खोज सुझाव</string>
|
||||
<plurals name="new_streams">
|
||||
@@ -729,7 +728,7 @@
|
||||
<string name="right_gesture_control_summary">प्लेयर स्क्रीन के दाहिने आधे हिस्से के लिए जेस्चर चुनें</string>
|
||||
<string name="right_gesture_control_title">दाएँ इशारा क्रिया</string>
|
||||
<string name="prefer_original_audio_title">मूल ऑडियो को प्राथमिकता दें</string>
|
||||
<string name="prefer_descriptive_audio_summary">यदि उपलब्ध हो तो दृष्टिबाधित लोगों के लिए विवरण के साथ एक ऑडियो ट्रैक का चयन करें</string>
|
||||
<string name="prefer_descriptive_audio_summary">यदि उपलब्ध हो, तो दृष्टिबाधित लोगों के लिए विवरण वाला ऑडियो ट्रैक चुनें</string>
|
||||
<string name="prefer_descriptive_audio_title">वर्णनात्मक ऑडियो को प्राथमिकता दें</string>
|
||||
<string name="prefer_original_audio_summary">भाषा की परवाह किए बिना मूल ऑडियो ट्रैक का चयन करें</string>
|
||||
<string name="play_queue_audio_track">ऑडियो: %s</string>
|
||||
@@ -850,4 +849,24 @@
|
||||
<string name="kao_dialog_warning">अगस्त 2025 में, Google ने घोषणा की कि सितंबर 2026 से, सर्टिफाइड डिवाइस पर सभी Android ऐप्स जिनमें Play Store के बाहर से इंस्टॉल किए गए ऐप्स भी शामिल हैं, को इंस्टॉल करने के लिए डेवलपर वेरिफिकेशन ज़रूरी होगा। चूंकि NewPipe के डेवलपर्स इस शर्त से सहमत नहीं हैं, इसलिए उस समय के बाद NewPipe सर्टिफाइड Android डिवाइस पर काम नहीं करेगा।</string>
|
||||
<string name="kao_dialog_more_info">विवरण</string>
|
||||
<string name="kao_solution">समाधान</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">%d सब्सक्रिप्शन एक्सपोर्ट किया जा रहा है…</item>
|
||||
<item quantity="other">%d सब्सक्रिप्शन एक्सपोर्ट किए जा रहे हैं…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">%d सब्सक्रिप्शन लोड हो रहा है…</item>
|
||||
<item quantity="other">%d सब्सक्रिप्शन लोड हो रहे हैं…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">%d सब्सक्रिप्शन इंपोर्ट किया जा रहा है…</item>
|
||||
<item quantity="other">%d सब्सक्रिप्शन इंपोर्ट किए जा रहे हैं…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">सब्सक्रिप्शन इंपोर्ट करें</string>
|
||||
<string name="export_subscriptions_title">सब्सक्रिप्शन एक्सपोर्ट करें</string>
|
||||
<string name="import_subscriptions_summary">पिछले .json एक्सपोर्ट से सब्सक्रिप्शन इंपोर्ट करें</string>
|
||||
<string name="export_subscriptions_summary">अपनी सब्सक्रिप्शन को एक .json फ़ाइल में एक्सपोर्ट करें</string>
|
||||
<string name="import_from_previous_export">पिछले एक्सपोर्ट से इंपोर्ट करें</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe, Android 5 के लिए सपोर्ट बंद कर रहा है</string>
|
||||
<string name="api23_requirement_dialog_message">दुर्भाग्य से, NewPipe कुछ ऐसी लाइब्रेरीज़ पर निर्भर है जिन्होंने Android 5.0 और 5.1 के लिए सपोर्ट बंद कर दिया है। इसलिए, अफ़सोस की बात है कि NewPipe का अगला वर्शन सिर्फ़ Android 6 या उससे नए वर्शन वाले डिवाइस पर ही काम करेगा। ज़्यादा जानकारी के लिए ब्लॉग पोस्ट पढ़ें।</string>
|
||||
<string name="api23_requirement_dialog_blogpost">ब्लॉगपोस्ट</string>
|
||||
</resources>
|
||||
|
||||
@@ -120,17 +120,17 @@
|
||||
<string name="settings_file_replacement_character_title">Znak za zamjenu</string>
|
||||
<string name="charset_letters_and_digits">Slova i brojevi</string>
|
||||
<string name="charset_most_special_characters">Najviše posebnih znakova</string>
|
||||
<string name="title_activity_about">O NewPipeu</string>
|
||||
<string name="title_activity_about">O aplikaciji NewPipe</string>
|
||||
<string name="title_licenses">Licence treće strane</string>
|
||||
<string name="copyright" formatted="true">© %1$s od %2$s pod %3$s</string>
|
||||
<string name="tab_about">O aplikaciji i ČPP</string>
|
||||
<string name="tab_about">Informacije i ČPP</string>
|
||||
<string name="tab_licenses">Licence</string>
|
||||
<string name="app_description">Slobodan i mali tok na Android uređaju.</string>
|
||||
<string name="app_description">Slobodan i jednostavan streaming na Android uređaju.</string>
|
||||
<string name="view_on_github">Pogledaj na GitHubu</string>
|
||||
<string name="app_license_title">NewPipe licenca</string>
|
||||
<string name="app_license_title">NewPipeova licenca</string>
|
||||
<string name="contribution_encouragement">Ako imate ideja za prijevod, promjene u dizajnu, čišćenje koda ili neke veće promjene u kodu, pomoć je uvijek dobro došla. Što više radimo, to bolji postajemo!</string>
|
||||
<string name="read_full_license">Pročitaj licencu</string>
|
||||
<string name="contribution_title">Doprinos</string>
|
||||
<string name="contribution_title">Doprinesi</string>
|
||||
<string name="title_activity_history">Povijest</string>
|
||||
<string name="action_history">Povijest</string>
|
||||
<string name="notification_channel_name">NewPipe obavijest</string>
|
||||
@@ -245,7 +245,7 @@
|
||||
<string name="dismiss">Odbaci</string>
|
||||
<string name="rename">Preimenuj</string>
|
||||
<string name="one_item_deleted">1 stavka izbrisana.</string>
|
||||
<string name="give_back">Vrati</string>
|
||||
<string name="give_back">Daj nešto zauzvrat</string>
|
||||
<string name="website_encouragement">Posjeti NewPipe web-stranicu za više informacija i vijesti.</string>
|
||||
<string name="privacy_policy_title">NewPipe pravila o privatnosti</string>
|
||||
<string name="read_privacy_policy">Pročitaj pravila o privatnosti</string>
|
||||
@@ -381,8 +381,7 @@
|
||||
<string name="error_unable_to_load_comments">Nije bilo moguće učitati komentare</string>
|
||||
<string name="close">Zatvori</string>
|
||||
<string name="app_license">NewPipe je copyleft libre softver: Može se koristiti, proučavati i poboljšavati po volji. Konkretno, može se redistribuirati i / ili modificirati pod uvjetima GNU opće javne licence koju je objavila zaklada Free Software Foundation, pod verzijom 3 licence, ili (po vlastitom izboru) bilo koje kasnije verzije.</string>
|
||||
<string name="privacy_policy_encouragement">Projekt NewPipe ozbiljno shvaća temu o privatnosti. Stoga aplikacija ne prikuplja podatke bez tvog pristanka.
|
||||
\nNewPipe pravila o privatnosti detaljno objašnjavaju koji se podaci šalju i spremaju kad šalješ izvještaje o prekidu rada aplikacije.</string>
|
||||
<string name="privacy_policy_encouragement">Projekt NewPipe ozbiljno shvaća temu o privatnosti. Stoga aplikacija ne prikuplja podatke bez tvog pristanka. \nNewPipeova pravila o privatnosti detaljno objašnjavaju koji se podaci šalju i spremaju kad šalješ izvještaje o prekidu rada aplikacije.</string>
|
||||
<string name="start_accept_privacy_policy">Kako bismo se uskladili s Europskom općom uredbom o zaštiti podataka (GDPR), ovime upozoravamo na NewPipe politiku privatnosti. Pažljivo je pročitaj.
|
||||
\nZa slanje izvješća o pogreškama moraš prihvatiti politiku privatnosti.</string>
|
||||
<string name="enable_playback_resume_title">Nastavi reprodukciju</string>
|
||||
@@ -741,7 +740,7 @@
|
||||
<string name="msg_failed_to_copy">Neuspjelo kopiranje u međuspremnik</string>
|
||||
<string name="faq_title">Često postavljena pitanja</string>
|
||||
<string name="faq_description">Ako imaš problema s korištenjem aplikacije, pogledaj odgovore na česta pitanja!</string>
|
||||
<string name="faq">Pogledaj na web stranici</string>
|
||||
<string name="faq">Pogledaj na web-stranici</string>
|
||||
<string name="play_queue_audio_track">Audio snimka: %s</string>
|
||||
<string name="audio_track">Traka audio snimke</string>
|
||||
<string name="duplicate_in_playlist">Zasivljene playliste već sadrže ovu stavku.</string>
|
||||
@@ -857,6 +856,31 @@
|
||||
<string name="player_http_403">HTTP greška 403 primljena od poslužitelja tijekom reprodukcije, vjerojatno uzrokovana istekom URL-a za streaming ili zabranom IP adrese</string>
|
||||
<string name="player_http_invalid_status">HTTP greška %1$s primljena od poslužitelja tijekom reprodukcije</string>
|
||||
<string name="youtube_player_http_403">HTTP greška 403 primljena od poslužitelja tijekom reprodukcije, vjerojatno uzrokovana zabranom IP adrese ili problemima s deobfuskacijom URL-a za streaming</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s je odbio dati podatke, tražeći prijavu kako bi potvrdio da podnositelj zahtjeva nije bot.\n\nVašu IP adresu je možda privremeno zabranio %1$s, možete pričekati neko vrijeme ili se prebaciti na drugu IP adresu (na primjer uključivanjem/isključivanjem VPN-a ili prebacivanjem s WiFi-ja na mobilne podatke).</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s je odbio dati podatke, tražeći prijavu kako bi potvrdio da podnositelj zahtjeva nije bot.\n\nVašu IP adresu je možda privremeno zabranio %1$s, možete pričekati neko vrijeme ili se prebaciti na drugu IP adresu (na primjer uključivanjem/isključivanjem VPN-a ili prebacivanjem s WiFi-ja na mobilne podatke).\n\nZa više informacija pogledajte <a href="%2$s">ovaj unos u često postavljanim pitanjima</a>.</string>
|
||||
<string name="unsupported_content_in_country">Ovaj sadržaj nije dostupan za trenutno odabranu zemlju sadržaja.\n\nPromijenite odabir u \"Postavke > Sadržaj > Zadana zemlja sadržaja\".</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Izvozi se %d pretplata …</item>
|
||||
<item quantity="few">Izvoze se %d pretplate …</item>
|
||||
<item quantity="other">Izvozi se %d pretplata …</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Učitava se %d pretplata …</item>
|
||||
<item quantity="few">Učitavaju se %d pretplate …</item>
|
||||
<item quantity="other">Učitavaju se %d pretplate …</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Uvozi se %d pretplata …</item>
|
||||
<item quantity="few">Uvoze se %d pretplate …</item>
|
||||
<item quantity="other">Uvozi se %d pretplata …</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">Uvezi pretplate</string>
|
||||
<string name="export_subscriptions_title">Izvezi pretplate</string>
|
||||
<string name="import_subscriptions_summary">Uvezi pretplate iz jednog prijašnjeg .json izvoza</string>
|
||||
<string name="export_subscriptions_summary">Izvezi svoje pretplate u .json datoteku</string>
|
||||
<string name="import_from_previous_export">Uvezi iz prethodnog izvoza</string>
|
||||
<string name="kao_dialog_more_info">Detalji</string>
|
||||
<string name="kao_solution">Rješenje</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe ukida podršku za Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Nažalost NewPipe ovisi o nekoliko biblioteka koje su ukinule podršku za Android 5.0 i 5.1. Sljedeće NewPipe izdanje će stoga nažalost raditi samo na uređajima s Androidom 6 ili novije. Pročitaj više u objavi na blogu.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Objava na blogu</string>
|
||||
</resources>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<string name="network_error">Hálózati hiba</string>
|
||||
<string name="background_player_playing_toast">Lejátszás a háttérben</string>
|
||||
<string name="settings_category_video_audio_title">Videó és hang</string>
|
||||
<string name="settings_category_appearance_title">Megjelenés</string>
|
||||
<string name="settings_category_appearance_title">Kinézet</string>
|
||||
<string name="content_language_title">Tartalom alapértelmezett nyelve</string>
|
||||
<string name="show_next_and_similar_title">„Következő” és „Hasonló” videók megjelenítése</string>
|
||||
<string name="dark_theme_title">Sötét</string>
|
||||
@@ -107,7 +107,7 @@
|
||||
<string name="settings_category_player_title">Lejátszó</string>
|
||||
<string name="settings_category_player_behavior_title">Működés</string>
|
||||
<string name="settings_category_history_title">Előzmények és gyorsítótár</string>
|
||||
<string name="settings_category_debug_title">Hibaelhárítás</string>
|
||||
<string name="settings_category_debug_title">Hibakeresés</string>
|
||||
<string name="popup_playing_toast">Lejátszás felugró módban</string>
|
||||
<string name="all">Összes</string>
|
||||
<string name="disabled">Letiltva</string>
|
||||
@@ -197,21 +197,20 @@
|
||||
<string name="title_activity_about">A NewPipe névjegye</string>
|
||||
<string name="tab_about">Névjegy és GYIK</string>
|
||||
<string name="tab_licenses">Licencek</string>
|
||||
<string name="app_description">Szabad, egyszerű közvetítésnézés Androidon.</string>
|
||||
<string name="app_description">Szabad és könnyed közvetítés Androidon.</string>
|
||||
<string name="contribution_title">Közreműködés</string>
|
||||
<string name="contribution_encouragement">Akár fordítással, tervezési változtatásokkal, kódtisztítással, vagy valódi nehéz kódváltoztatással kapcsolatos ötletei vannak, bármilyen segítséget szívesen fogadunk. Minél több minden készül el, annál jobb lesz!</string>
|
||||
<string name="contribution_encouragement">Legyen szó fordításról, dizájnmódosításokról, kódtisztításról vagy komolyabb fejlesztésekről, minden segítséget szívesen fogadunk. Minél többen járulnak hozzá, annál jobb lesz a projekt!</string>
|
||||
<string name="view_on_github">Megtekintés a GitHubon</string>
|
||||
<string name="donation_title">Adományozás</string>
|
||||
<string name="donation_encouragement">A NewPipe alkalmazást önkéntesek fejlesztik a szabadidejükben, hogy a lehető legjobb felhasználói élményt nyújtsák. Járuljon hozzá, hogy a fejlesztők még jobbá tegyék alkalmazást, miközben egy csésze kávét szürcsölnek.</string>
|
||||
<string name="give_back">Hozzájárulás</string>
|
||||
<string name="donation_title">Adakozás</string>
|
||||
<string name="donation_encouragement">A NewPipe-ot önkéntesek fejlesztik a szabadidejükben, hogy a lehető legjobb felhasználói élményt nyújtsák. Támogatásával hozzájárulhat ahhoz, hogy a fejlesztők egy csésze kávé mellett még jobbá tehessék a NewPipe-ot.</string>
|
||||
<string name="give_back">Támogatás</string>
|
||||
<string name="website_title">Weboldal</string>
|
||||
<string name="website_encouragement">Látogasson el a NewPipe weboldalára további információkért és hírekért.</string>
|
||||
<string name="website_encouragement">Látogassa meg a NewPipe weboldalát további információkért és hírekért.</string>
|
||||
<string name="privacy_policy_title">A NewPipe adatvédelmi irányelvei</string>
|
||||
<string name="privacy_policy_encouragement">A NewPipe projekt komolyan veszi az adatvédelmét. Az alkalmazás nem gyűjt semmilyen adatot a beleegyezése nélkül.
|
||||
\nA NewPipe adatvédelmi irányelve részletesen elmagyarázza, mely adatok kerülnek elküldésre és tárolásra az alkalmazás összeomlásának jelentésekor.</string>
|
||||
<string name="read_privacy_policy">Adatvédelmi irányelvek elolvasása</string>
|
||||
<string name="privacy_policy_encouragement">A NewPipe projekt komolyan veszi az adatvédelmét. Az alkalmazás nem gyűjt semmilyen adatot a beleegyezése nélkül.\nA NewPipe adatvédelmi irányelve részletesen elmagyarázza, mely adatok kerülnek elküldésre és tárolásra az alkalmazás összeomlásának jelentésekor.</string>
|
||||
<string name="read_privacy_policy">Adatvédelmi irányelvek megtekintése</string>
|
||||
<string name="app_license_title">A NewPipe licence</string>
|
||||
<string name="read_full_license">Licenc elolvasása</string>
|
||||
<string name="read_full_license">Licenc megtekintése</string>
|
||||
<string name="title_activity_history">Előzmények</string>
|
||||
<string name="action_history">Előzmények</string>
|
||||
<string name="delete_item_search_history">Törli ezt az elemet a keresési előzmények közül\?</string>
|
||||
@@ -530,7 +529,7 @@
|
||||
<string name="show_channel_details">Csatorna részleteinek megjelenítése</string>
|
||||
<string name="hold_to_append">Tartsa a sorba állításhoz</string>
|
||||
<string name="default_kiosk_page_summary">Alapértelmezett témagyűjtemény</string>
|
||||
<string name="app_license">A NewPipe egy copyleft szabad szoftver: tetszése szerint felhasználhatja, tanulmányozhatja, megoszthatja és fejlesztheti. Egész pontosan a Free Software Foundation által kiadott GNU General Public License 3-as, vagy (választható módon) újabb verziójának feltételei szerint módosíthatja vagy adhatja tovább.</string>
|
||||
<string name="app_license">A NewPipe copyleft, szabad szoftver: Ön szabadon használhatja, tanulmányozhatja, megoszthatja és továbbfejlesztheti. Különösen jogosult arra, hogy a Free Software Foundation által közzétett GNU General Public License feltételei szerint terjessze és/vagy módosítsa, akár a licenc 3-as verziója, akár – saját belátása szerint – bármely későbbi verziója alapján.</string>
|
||||
<string name="recaptcha_solve">Megoldás</string>
|
||||
<string name="subtitle_activity_recaptcha">Nyomja meg a „Kész” gombot, ha megoldotta</string>
|
||||
<string name="msg_calculating_hash">Ujjlenyomat számítása</string>
|
||||
@@ -673,7 +672,7 @@
|
||||
<string name="faq_title">Gyakran ismételt kérdések</string>
|
||||
<string name="faq">Megtekintés a weboldalon</string>
|
||||
<string name="sort">Rendezés</string>
|
||||
<string name="faq_description">Ha problémája van az alkalmazás használatával, akkor nézze meg az ezekre a gyakori kérdésekre adott válaszokat!</string>
|
||||
<string name="faq_description">Ha problémái adódnak az alkalmazás használata során, érdemes áttekintenie a gyakori kérdésekre adott válaszokat!</string>
|
||||
<string name="fast_mode">Gyors mód</string>
|
||||
<string name="import_subscriptions_hint">Feliratkozások importálása vagy exportálása a 3 pontos menüből</string>
|
||||
<string name="app_update_unavailable_toast">Ön a Newpipe legfrissebb verzióját futtatja</string>
|
||||
@@ -778,7 +777,7 @@
|
||||
<string name="error_insufficient_storage">Nincs elég szabad hely az eszközön</string>
|
||||
<string name="yes">Igen</string>
|
||||
<string name="no">Nem</string>
|
||||
<string name="settings_category_backup_restore_title">Biztonsági mentés és helyreállítás</string>
|
||||
<string name="settings_category_backup_restore_title">Biztonsági mentés és visszaállítás</string>
|
||||
<string name="auto_update_check_description">A NewPipe időről időre automatikusan ellenőrzi az új verziókat, és értesít, amint azok elérhetővé válnak.
|
||||
\nSzeretné engedélyezni ezt?</string>
|
||||
<string name="reset_settings_title">Beállítások alaphelyzetbe állítása</string>
|
||||
@@ -838,4 +837,9 @@
|
||||
<string name="import_subscriptions_summary">Feliratkozások importálása korábbi .json-fájlból</string>
|
||||
<string name="export_subscriptions_summary">Feliratkozások exportálása .json-fájlba</string>
|
||||
<string name="import_from_previous_export">Importálás korábbi exportból</string>
|
||||
<string name="api23_requirement_dialog_title">A NewPipe megszünteti az Android 5 támogatását</string>
|
||||
<string name="api23_requirement_dialog_message">Sajnos a NewPipe néhány olyan programkönyvtárra támaszkodik, amelyek megszüntették az Android 5.0 és 5.1 verziójának támogatását. A NewPipe következő verziója ezért sajnos csak Android 6 vagy újabb rendszerrel rendelkező eszközökön fog működni. További információt a blogbejegyzésben olvashat.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Blogbejegyzés</string>
|
||||
<string name="channel_tab_podcasts">Podcastok</string>
|
||||
<string name="channel_tab_courses">Tanfolyamok</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="main_bg_subtitle">Ketuk kaca pembesar untuk memulai.</string>
|
||||
<string name="main_bg_subtitle">Sentuh kaca pembesar untuk memulai.</string>
|
||||
<string name="upload_date_text">Diterbitkan pada %1$s</string>
|
||||
<string name="install">Instal</string>
|
||||
<string name="install">Pasang</string>
|
||||
<string name="cancel">Batal</string>
|
||||
<string name="open_in_browser">Buka di peramban</string>
|
||||
<string name="share">Bagikan</string>
|
||||
<string name="download">Unduh</string>
|
||||
<string name="search">Telusur</string>
|
||||
<string name="settings">Pengaturan</string>
|
||||
<string name="share_dialog_title">Bagikan dengan</string>
|
||||
<string name="use_external_video_player_title">Gunakan pemutar video eksternal</string>
|
||||
<string name="use_external_audio_player_title">Gunakan pemutar audio eksternal</string>
|
||||
<string name="share_dialog_title">Bagi dengan</string>
|
||||
<string name="use_external_video_player_title">Gunakan pemutar video lain</string>
|
||||
<string name="use_external_audio_player_title">Gunakan pemutar audio lain</string>
|
||||
<string name="download_path_title">Folder unduhan video</string>
|
||||
<string name="download_path_summary">Berkas video yang diunduh akan disimpan di sini</string>
|
||||
<string name="download_path_summary">Berkas video yang diunduh disimpan di sini</string>
|
||||
<string name="download_path_dialog_title">Pilih folder unduhan untuk berkas video</string>
|
||||
<string name="download_path_audio_title">Folder unduhan audio</string>
|
||||
<string name="download_path_audio_summary">Berkas audio yang diunduh akan disimpan di sini</string>
|
||||
<string name="download_path_audio_summary">Berkas audio yang diunduh disimpan di sini</string>
|
||||
<string name="download_path_audio_dialog_title">Pilih folder unduhan untuk berkas audio</string>
|
||||
<string name="default_resolution_title">Pilih kualitas</string>
|
||||
<string name="play_with_kodi_title">Putar dengan Kodi</string>
|
||||
@@ -31,14 +31,14 @@
|
||||
<string name="show_next_and_similar_title">Video \'Berikutnya\' dan \'Serupa\'</string>
|
||||
<string name="unsupported_url">URL tidak didukung</string>
|
||||
<string name="content_language_title">Bahasa konten</string>
|
||||
<string name="settings_category_video_audio_title">Video dan audio</string>
|
||||
<string name="settings_category_appearance_title">Tampilan</string>
|
||||
<string name="settings_category_video_audio_title">Audio dan Video</string>
|
||||
<string name="settings_category_appearance_title">Penampilan</string>
|
||||
<string name="background_player_playing_toast">Memutar di latar belakang</string>
|
||||
<string name="content">Konten</string>
|
||||
<string name="show_age_restricted_content_title">Tampilkan konten yang dibatasi usia</string>
|
||||
<string name="network_error">Galat jaringan</string>
|
||||
<string name="could_not_load_thumbnails">Tidak bisa memuat semua thumbnail</string>
|
||||
<string name="did_you_mean">Mungkin yang kamu maksud \"%1$s\"?</string>
|
||||
<string name="did_you_mean">Maksud Anda \"%1$s\"?</string>
|
||||
<string name="duration_live">Langsung</string>
|
||||
<string name="downloads">Unduhan</string>
|
||||
<string name="downloads_title">Unduhan</string>
|
||||
@@ -66,7 +66,7 @@
|
||||
<string name="start">Mulai</string>
|
||||
<string name="pause">Jeda</string>
|
||||
<string name="checksum">Ceksum</string>
|
||||
<string name="ok">Oke</string>
|
||||
<string name="ok">Baik</string>
|
||||
<string name="msg_name">Nama berkas</string>
|
||||
<string name="msg_error">Galat</string>
|
||||
<string name="msg_running">NewPipe Sedang Mengunduh</string>
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="msg_wait">Mohon tunggu…</string>
|
||||
<string name="msg_copied">Disalin ke papan klip</string>
|
||||
<string name="no_available_dir">Silakan pilih folder unduhan di pengaturan</string>
|
||||
<string name="no_player_found">Pemutar penjaliran tidak ditemukan. Pasang VLC?</string>
|
||||
<string name="no_player_found">Pemutar streaming tidak ketemu. Pasang VLC?</string>
|
||||
<string name="app_ui_crash">App/UI rusak</string>
|
||||
<string name="info_labels">Apa:\nPermintaan:\nBahasa Konten:\nNegara Konten:\nBahasa Apl:\nLayanan:\nWaktu GMT:\nPaket:\nVersi:\nVersi OS:</string>
|
||||
<string name="msg_threads">Thread</string>
|
||||
@@ -82,48 +82,48 @@
|
||||
<string name="recaptcha_request_toast">Meminta kode reCAPTCHA</string>
|
||||
<string name="black_theme_title">Hitam</string>
|
||||
<string name="all">Semua</string>
|
||||
<string name="open_in_popup_mode">Buka pada mode sembulan</string>
|
||||
<string name="open_in_popup_mode">Buka di mode sembulan</string>
|
||||
<string name="msg_popup_permission">Izin ini dibutuhkan untuk
|
||||
\nmembuka di mode sembul</string>
|
||||
<string name="popup_playing_toast">Memutar dalam mode sembul</string>
|
||||
<string name="disabled">Dinonaktifkan</string>
|
||||
<string name="default_video_format_title">Format video</string>
|
||||
<string name="default_popup_resolution_title">Kualitas mode sembulan bawaan</string>
|
||||
<string name="show_higher_resolutions_title">Tampilkan kualitas yang lebih tinggi</string>
|
||||
<string name="show_higher_resolutions_summary">Hanya perangkat tertentu saja yang bisa memutar video 2K/4K</string>
|
||||
<string name="default_popup_resolution_title">Kualitas sembulan bawaan</string>
|
||||
<string name="show_higher_resolutions_title">Tampilkan kualitas lebih</string>
|
||||
<string name="show_higher_resolutions_summary">Hanya perangkat tertentu mendukung video 2K/4K</string>
|
||||
<string name="controls_background_title">Latar Belakang</string>
|
||||
<string name="controls_popup_title">Sembulan</string>
|
||||
<string name="clear">Bersihkan</string>
|
||||
<string name="use_external_video_player_summary">Menghapus audio pada beberapa resolusi</string>
|
||||
<string name="use_external_video_player_summary">Menghapus audio di kualitas tertentu</string>
|
||||
<string name="popup_remember_size_pos_title">Ingat ciri-ciri sembulan</string>
|
||||
<string name="popup_remember_size_pos_summary">Ingat ukuran dan posisi terakhir sembulan</string>
|
||||
<string name="show_search_suggestions_title">Saran pencarian</string>
|
||||
<string name="show_search_suggestions_summary">Menampilkan saran pencarian saat mencari</string>
|
||||
<string name="best_resolution">Resolusi terbaik</string>
|
||||
<string name="settings_category_downloads_title">Unduhan</string>
|
||||
<string name="best_resolution">Kualitas terbaik</string>
|
||||
<string name="settings_category_downloads_title">Unduh</string>
|
||||
<string name="settings_file_charset_title">Karakter yang diizinkan sebagai nama berkas</string>
|
||||
<string name="settings_file_replacement_character_summary">Karakter yang tidak valid akan diganti dengan karakter ini</string>
|
||||
<string name="settings_file_replacement_character_title">Karakter pengganti</string>
|
||||
<string name="charset_letters_and_digits">Huruf dan angka</string>
|
||||
<string name="charset_most_special_characters">Karakter spesial umum</string>
|
||||
<string name="title_activity_about">Tentang NewPipe</string>
|
||||
<string name="title_licenses">Lisensi pihak ketiga</string>
|
||||
<string name="title_licenses">Lisensi Pihak-ketiga</string>
|
||||
<string name="copyright" formatted="true">© %1$s oleh %2$s di bawah %3$s</string>
|
||||
<string name="tab_about">Tentang & SSD</string>
|
||||
<string name="tab_about">Tentang & FAQ</string>
|
||||
<string name="tab_licenses">Lisensi</string>
|
||||
<string name="app_description">Aplikasi video penjaliran daring yang bebas dan ringan untuk Android.</string>
|
||||
<string name="app_description">Streaming ringan Libre di Android.</string>
|
||||
<string name="view_on_github">Lihat di GitHub</string>
|
||||
<string name="app_license_title">Lisensi NewPipe</string>
|
||||
<string name="contribution_encouragement">Terlepas apakah kamu memiliki ide: terjemahan, perubahan desain, pembersihan kode, atau perubahan kode yang signifikan, segala bantuan akan selalu kami terima. Semakin banyak ide akan semakin baik jadinya!</string>
|
||||
<string name="contribution_encouragement">Baik Anda memiliki ide tentang; terjemahan, pengubahan desain, pembersihan kode, atau pengubahan kode yang besar—bantuan selalu diterima. Semakin banyak yang dilakukan, semakin banyak hasilnya!</string>
|
||||
<string name="read_full_license">Baca lisensi</string>
|
||||
<string name="contribution_title">Kontribusi</string>
|
||||
<string name="subscribe_button_title">Berlangganan</string>
|
||||
<string name="subscribe_button_title">Berlanggan</string>
|
||||
<string name="subscribed_button_title">Dilanggani</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>
|
||||
<string name="enable_search_history_title">Riwayat pencarian</string>
|
||||
<string name="enable_search_history_summary">Simpan pencarian secara lokal</string>
|
||||
<string name="enable_search_history_summary">Simpan pencarian di perangkat</string>
|
||||
<string name="enable_watch_history_title">Riwayat tontonan</string>
|
||||
<string name="notification_channel_name">Notifikasi NewPipe</string>
|
||||
<string name="title_activity_history">Riwayat</string>
|
||||
@@ -139,7 +139,7 @@
|
||||
<string name="default_content_country_title">Lokasi Konten</string>
|
||||
<string name="settings_category_player_title">Pemutar</string>
|
||||
<string name="settings_category_player_behavior_title">Perilaku</string>
|
||||
<string name="settings_category_history_title">Riwayat dan cache</string>
|
||||
<string name="settings_category_history_title">Riwayat & Cache</string>
|
||||
<string name="settings_category_debug_title">Debug</string>
|
||||
<string name="undo">Urungkan</string>
|
||||
<string name="play_all">Putar Semua</string>
|
||||
@@ -166,7 +166,7 @@
|
||||
<string name="invalid_file">Berkas tidak tersedia atau tidak memiliki izin baca atau tulis</string>
|
||||
<string name="file_name_empty_error">Nama berkas tidak boleh kosong</string>
|
||||
<string name="error_occurred_detail">Telah terjadi galat: %1$s</string>
|
||||
<string name="search_no_results">Tidak ada hasil</string>
|
||||
<string name="search_no_results">Tak ada hasil</string>
|
||||
<string name="empty_list_subtitle">Tidak ada apa pun di sini selain jangkrik</string>
|
||||
<string name="detail_drag_description">Geser untuk ubah urutan</string>
|
||||
<string name="no_subscribers">Tidak ada pelanggan</string>
|
||||
@@ -182,11 +182,11 @@
|
||||
<string name="dismiss">Abaikan</string>
|
||||
<string name="rename">Ubah nama</string>
|
||||
<string name="donation_title">Donasi</string>
|
||||
<string name="donation_encouragement">NewPipe dikembangkan oleh relawan yang menyisihkan waktu luang untuk memberi kamu sebuah pengalaman terbaik. Segala dukungan yang diberikan kepada para pengembang akan membuat NewPipe menjadi lebih baik sembari mereka menikmati secangkir kopi.</string>
|
||||
<string name="give_back">Beri dukungan</string>
|
||||
<string name="website_title">Situs Web</string>
|
||||
<string name="website_encouragement">Kunjungi situs web NewPipe untuk melihat info dan berita lebih lanjut.</string>
|
||||
<string name="delete_item_search_history">Apakah Anda ingin menghapus item ini dari riwayat pencarian\?</string>
|
||||
<string name="donation_encouragement">NewPipe dikembangkan oleh para sukarelawan yang meluangkan waktu luang mereka untuk memberikan Anda pengalaman pengguna terbaik. Berikan dukungan untuk membantu para pengembang membuat NewPipe menjadi lebih baik lagi sementara mereka menikmati secangkir kopi.</string>
|
||||
<string name="give_back">Berikan</string>
|
||||
<string name="website_title">Situs web</string>
|
||||
<string name="website_encouragement">Kunjungi Situs Web NewPipe untuk info dan berita lainnya.</string>
|
||||
<string name="delete_item_search_history">Apakah ingin hapus butir ini dari riwayat pencarian?</string>
|
||||
<string name="title_last_played">Terakhir Diputar</string>
|
||||
<string name="title_most_played">Sering Diputar</string>
|
||||
<string name="main_page_content">Konten halaman utama</string>
|
||||
@@ -234,9 +234,9 @@
|
||||
<string name="resize_fill">Isi</string>
|
||||
<string name="resize_zoom">Perbesar</string>
|
||||
<string name="caption_auto_generated">Otomatis dibuat</string>
|
||||
<string name="no_player_found_toast">Pemutar penjaliran tidak ditemukan (kamu dapat menginstal VLC agar penjaliran dapat diputar).</string>
|
||||
<string name="controls_download_desc">Unduh berkas penjaliran</string>
|
||||
<string name="subscription_change_failed">Tidak dapat mengubah langganan</string>
|
||||
<string name="no_player_found_toast">Pemutar streaming tidak ketemu (boleh pasang VLC untuk video).</string>
|
||||
<string name="controls_download_desc">Unduh berkas streaming</string>
|
||||
<string name="subscription_change_failed">Tidak dapat ubah langganan</string>
|
||||
<string name="show_info">Tampilkan info</string>
|
||||
<string name="controls_add_to_playlist_title">Tambah Ke</string>
|
||||
<string name="clear_views_history_title">Hapus riwayat tontonan</string>
|
||||
@@ -244,19 +244,19 @@
|
||||
<string name="delete_view_history_alert">Hapus seluruh riwayat tontonan\?</string>
|
||||
<string name="watch_history_deleted">Riwayat tontonan dihapus</string>
|
||||
<string name="clear_search_history_title">Hapus riwayat pencarian</string>
|
||||
<string name="clear_search_history_summary">Hapus riwayat lema pencarian</string>
|
||||
<string name="clear_search_history_summary">Hapus riwayat kata kunci pencarian</string>
|
||||
<string name="delete_search_history_alert">Hapus seluruh riwayat pencarian\?</string>
|
||||
<string name="search_history_deleted">Riwayat pencarian dihapus</string>
|
||||
<string name="no_streams_available_download">Tidak ada video yang tersedia untuk diunduh</string>
|
||||
<string name="one_item_deleted">1 item dihapus.</string>
|
||||
<string name="tab_bookmarks">Daftar Putar</string>
|
||||
<string name="tab_bookmarks">Daftar Markah</string>
|
||||
<string name="auto_queue_title">Putar otomatis video berikutnya</string>
|
||||
<string name="channel_unsubscribed">Berhenti berlangganan saluran</string>
|
||||
<string name="subscription_update_failed">Tidak dapat memperbarui langganan</string>
|
||||
<string name="channel_unsubscribed">Batal berlanggan saluran</string>
|
||||
<string name="subscription_update_failed">Tidak dapat perbarui langganan</string>
|
||||
<string name="tab_subscriptions">Langganan</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>
|
||||
<string name="use_inexact_seek_title">Pakai intip cepat tak presisi</string>
|
||||
<string name="use_inexact_seek_summary">Intip tak presisi membantu pengguna mengintip posisi video dengan cepat tapi presisi rendah. Mengintip 5, 15, atau 25 detik saja tidak berfungsi</string>
|
||||
<string name="app_license">Aplikasi ini adalah perangkat lunak bebas copyleft: Anda dapat menggunakan, mempelajari, membagikan, dan memperbaikinya sesuka hati. Secara khusus, Anda dapat mendistribusikan dan/atau memodifikasinya berdasarkan ketentuan Lisensi Publik Umum GNU sebagaimana diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi, atau (sesuai pilihan Anda) versi apapun yang lebih baru.</string>
|
||||
<string name="import_settings">Apakah Anda juga ingin mengimpor pengaturan\?</string>
|
||||
<string name="preferred_open_action_settings_title">Tindakan \'buka\' yang diinginkan</string>
|
||||
<string name="preferred_open_action_settings_summary">Tindakan bawaan ketika membuka konten — %s</string>
|
||||
@@ -313,13 +313,13 @@
|
||||
<string name="accept">Setuju</string>
|
||||
<string name="decline">Tolak</string>
|
||||
<string name="limit_data_usage_none_description">Tanpa batas</string>
|
||||
<string name="limit_mobile_data_usage_title">Batasi resolusi ketika menggunakan data seluler</string>
|
||||
<string name="limit_mobile_data_usage_title">Batasi kualitas saat dengan data seluler</string>
|
||||
<string name="minimize_on_exit_title">Minimalkan saat beralih apl</string>
|
||||
<string name="minimize_on_exit_summary">Tindakan ketika beralih ke apl lain dari pemutar video utama — %s</string>
|
||||
<string name="minimize_on_exit_none_description">Nihil</string>
|
||||
<string name="minimize_on_exit_background_description">Minimalkan ke pemutar latar belakang</string>
|
||||
<string name="minimize_on_exit_popup_description">Minimalkan ke pemutar popup</string>
|
||||
<string name="unsubscribe">Berhenti Berlangganan</string>
|
||||
<string name="unsubscribe">Batal Berlanggan</string>
|
||||
<string name="tab_choose">Pilih Tab</string>
|
||||
<string name="theme_title">Tema</string>
|
||||
<string name="settings_category_updates_title">Pembaruan</string>
|
||||
@@ -529,7 +529,7 @@
|
||||
<string name="notification_action_shuffle">Aduk</string>
|
||||
<string name="notification_action_repeat">Ulangi</string>
|
||||
<string name="notification_actions_at_most_three">Anda bisa memilih hingga tiga tindakan untuk ditampilkan dalam notifikasi ringkas!</string>
|
||||
<string name="notification_actions_summary">Sentuh untuk menyunting tindakan notifikasi di bawah. Pilih hingga tiga di antaranya untuk ditampilkan dalam notifikasi ringkas dengan menggunakan kotak centang di sebelah kanan.</string>
|
||||
<string name="notification_actions_summary">Sentuh tindakan notifikasi di bawah untuk menyunting. Pilih hingga tiga di antaranya untuk di notifikasi ringkas menggunakan kotak centang di sebelah kanan.</string>
|
||||
<string name="notification_action_4_title">Tombol tindakan kelima</string>
|
||||
<string name="notification_action_3_title">Tombol tindakan keempat</string>
|
||||
<string name="notification_action_2_title">Tombol tindakan ketiga</string>
|
||||
@@ -551,7 +551,7 @@
|
||||
<string name="show_thumbnail_title">Tampilkan thumbnail</string>
|
||||
<string name="msg_calculating_hash">Menghitung pilah</string>
|
||||
<string name="recent">Baru-baru ini</string>
|
||||
<string name="show_meta_info_summary">Nonaktifkan untuk menyembunyikan kotak info dengan informasi tambahan tentang kreator, konten stream atau pencarian</string>
|
||||
<string name="show_meta_info_summary">Nonaktifkan untuk menyembunyikan kotak informasi tambahan tentang kreator, konten stream, atau pencarian</string>
|
||||
<string name="show_meta_info_title">Tampilkan info meta</string>
|
||||
<string name="hash_channel_description">Notifikasi untuk laju pemrosesan hash video</string>
|
||||
<string name="hash_channel_name">Notifikasi hash video</string>
|
||||
@@ -616,15 +616,15 @@
|
||||
<string name="high_quality_larger">Kualitas tinggi (lebih besar)</string>
|
||||
<string name="comments_are_disabled">Komentar dinonaktifkan</string>
|
||||
<string name="seekbar_preview_thumbnail_title">Pratinjau thumbnail bilah laju</string>
|
||||
<string name="mark_as_watched">Tandai sebagai \'sudah ditonton\'</string>
|
||||
<string name="mark_as_watched">Tandai \'sudah tonton\'</string>
|
||||
<string name="start_main_player_fullscreen_title">Buka pemutar utama dalam layar penuh</string>
|
||||
<plurals name="download_finished_notification">
|
||||
<item quantity="other">%s unduhan selesai</item>
|
||||
</plurals>
|
||||
<string name="main_page_content_swipe_remove">Geser agar item terbuang</string>
|
||||
<string name="detail_heart_img_view_description">Disukai oleh kreator</string>
|
||||
<string name="local_search_suggestions">Saran pencarian lokal</string>
|
||||
<string name="remote_search_suggestions">Saran pencarian remote</string>
|
||||
<string name="local_search_suggestions">Saran pencarian setempat</string>
|
||||
<string name="remote_search_suggestions">Saran pencarian jauh</string>
|
||||
<plurals name="deleted_downloads_toast">
|
||||
<item quantity="other">Menghapus %1$s unduhan</item>
|
||||
</plurals>
|
||||
@@ -684,8 +684,8 @@
|
||||
<string name="unknown_format">Format tidak diketahui</string>
|
||||
<string name="progressive_load_interval_title">Ukuran selang pemuatan putar balik</string>
|
||||
<string name="faq_title">Pertanyaan yang sering diajukan</string>
|
||||
<string name="faq_description">Jika kamu mengalami masalah dalam penggunaan aplikasi, pastikan untuk melihat jawaban soal sering ditanya (SSD)!</string>
|
||||
<string name="faq">Tampilkan di situs web</string>
|
||||
<string name="faq_description">Jika Anda mengalami kesulitan menggunakan aplikasi, pastikan untuk memeriksa jawaban atas pertanyaan umum ini!</string>
|
||||
<string name="faq">Lihat di situs web</string>
|
||||
<string name="sort">Urutan</string>
|
||||
<string name="fast_mode">Mode cepat</string>
|
||||
<string name="import_subscriptions_hint">Impor atau ekspor langganan dari menu 3 titik</string>
|
||||
@@ -784,14 +784,14 @@
|
||||
<string name="share_playlist">Bagikan Daftar Putar</string>
|
||||
<string name="metadata_banners">Panji</string>
|
||||
<string name="video_details_list_item">- %1$s: %2$s</string>
|
||||
<string name="notification_actions_summary_android13">Sentuh untuk menyunting tindakan notifikasi di bawah. Tiga tindakan pertama (mainkan/jeda, sebelumnya dan selanjutnya) disetel oleh sistem dan tidak bisa dikustomisasi.</string>
|
||||
<string name="notification_actions_summary_android13">Sentuh tindakan notifikasi di bawah untuk menyunting. Tiga tindakan pertama (putar/jeda, sebelum, dan selanjutnya) diatur oleh sistem dan tidak bisa dikustom.</string>
|
||||
<string name="show_less">Tampilkan lebih sedikit</string>
|
||||
<string name="show_more">Tampilkan lebih banyak</string>
|
||||
<plurals name="replies">
|
||||
<item quantity="other">%s balasan</item>
|
||||
</plurals>
|
||||
<string name="error_insufficient_storage">Tidak ada ruang yang cukup pada perangkat</string>
|
||||
<string name="yes">Ya</string>
|
||||
<string name="yes">Iya</string>
|
||||
<string name="no">Tidak</string>
|
||||
<string name="reset_settings_title">Atur ulang pengaturan</string>
|
||||
<string name="reset_settings_summary">Atur ulang pengaturan ke nilai bawaan</string>
|
||||
@@ -800,7 +800,7 @@
|
||||
\nApakah Anda yakin ingin melanjutkan?</string>
|
||||
<string name="auto_update_check_description">NewPipe dapat memeriksa versi baru secara berkala dan memberi tahu Anda ketika ada yang baru.
|
||||
\nApakah Anda ingin mengaktifkan ini?</string>
|
||||
<string name="settings_category_backup_restore_title">Cadangkan dan pulihkan</string>
|
||||
<string name="settings_category_backup_restore_title">Cadangkan dan Pulihkan</string>
|
||||
<string name="import_settings_vulnerable_format">Pengaturan dalam ekspor yang diimpor menggunakan format rentan yang tidak digunakan lagi sejak NewPipe 0.27.0. Pastikan ekspor yang diimpor berasal dari sumber tepercaya, dan lebih memilih hanya menggunakan ekspor yang diperoleh dari NewPipe 0.27.0 atau yang lebih baru di masa mendatang. Dukungan untuk mengimpor pengaturan dalam format rentan ini akan segera dihapus sepenuhnya, dan NewPipe versi lama tidak akan dapat lagi mengimpor pengaturan ekspor dari versi baru.</string>
|
||||
<string name="audio_track_type_secondary">sekunder</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Daftar putar</string>
|
||||
@@ -850,4 +850,7 @@
|
||||
<string name="import_subscriptions_summary">Impor langganan dari ekspor .json sebelumnya</string>
|
||||
<string name="export_subscriptions_summary">Ekspor langganan Anda ke berkas .json</string>
|
||||
<string name="import_from_previous_export">Impor dari ekspor sebelumnya</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe akan sudahi dukungan Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Sayangnya, NewPipe dibuat dengan pustaka yang akan menyudahi dukungan Android 5.0 dan 5.1. Maka, rilis NewPipe berikutnya hanya akan berfungsi pada perangkat Android 6 ke atas. Rincian ada di postingan blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Postingan</string>
|
||||
</resources>
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<string name="app_update_notification_channel_description">Tilkynningar fyrir nýjar útgáfur NewPipe</string>
|
||||
<string name="clear_cookie_summary">Hreinsa vefkökur sem NewPipe geymir þegar þú leysir reCAPTCHA</string>
|
||||
<string name="error_report_notification_title">NewPipe rakst á villu, ýttu til að tilkynna hana</string>
|
||||
<string name="tab_about">Um okkur og algengar spurningar</string>
|
||||
<string name="tab_about">Um okkur & algengar spurningar</string>
|
||||
<string name="subscribe_button_title">Gerast áskrifandi</string>
|
||||
<string name="show_higher_resolutions_summary">Aðeins sum tæki geta spilað 2K/4K myndskeið</string>
|
||||
<string name="play_with_kodi_title">Spila með Kodi</string>
|
||||
@@ -133,7 +133,7 @@
|
||||
<string name="privacy_policy_encouragement">NewPipe verkefnið tekur friðhelgi þína mjög alvarlega. Þess vegna safnar forritið ekkert án samþykkis þíns.
|
||||
\nPersónuverndarstefna NewPipe útskýrir í smáatriðum hvaða gögn eru send og geymd þegar þú sendir hrunskýrslu.</string>
|
||||
<string name="settings_category_player_title">Spilari</string>
|
||||
<string name="settings_category_debug_title">Aflúsa</string>
|
||||
<string name="settings_category_debug_title">Villuleit</string>
|
||||
<string name="content_language_title">Sjálfgefið tungumál efnis</string>
|
||||
<string name="metadata_language">Tungumál</string>
|
||||
<string name="controls_add_to_playlist_title">Bæta við</string>
|
||||
@@ -142,7 +142,7 @@
|
||||
<string name="black_theme_title">Svört</string>
|
||||
<string name="auto_queue_title">Setja næsta streymi sjálfkrafa í biðröð</string>
|
||||
<string name="notification_action_shuffle">Stokka</string>
|
||||
<string name="content">Innihald</string>
|
||||
<string name="content">Efni</string>
|
||||
<string name="notification_action_nothing">Ekkert</string>
|
||||
<string name="clear">Hreinsa</string>
|
||||
<string name="theme_title">Þema</string>
|
||||
@@ -250,19 +250,19 @@
|
||||
<string name="recaptcha_solve">Leysa</string>
|
||||
<string name="done">Lokið</string>
|
||||
<string name="recaptcha_request_toast">Beðið eftir þraut reCAPTCHA</string>
|
||||
<string name="title_licenses">Leyfi þriðja aðila</string>
|
||||
<string name="title_licenses">Notkunarleyfi utanaðkomandi aðila</string>
|
||||
<string name="tab_licenses">Hugbúnaðarleyfi</string>
|
||||
<string name="copyright">© %1$s • %2$s • %3$s</string>
|
||||
<string name="contribution_title">Taka þátt</string>
|
||||
<string name="contribution_encouragement">Allt er velkomið — hugmyndir, þýðingar, endurhönnun, kóðahreinsun eða miklar kóðabreytingar. Því fleiri, því betra!</string>
|
||||
<string name="view_on_github">Skoða á GitHub</string>
|
||||
<string name="donation_title">Gefa pening</string>
|
||||
<string name="give_back">Gefa</string>
|
||||
<string name="donation_title">Styrkja</string>
|
||||
<string name="give_back">Gefa til baka</string>
|
||||
<string name="website_title">Vefsíða</string>
|
||||
<string name="read_privacy_policy">Lesa persónuverndarstefnu</string>
|
||||
<string name="title_activity_history">Áhorf</string>
|
||||
<string name="action_history">Áhorf</string>
|
||||
<string name="read_full_license">Lesa leyfi</string>
|
||||
<string name="read_full_license">Lesa notkunarleyfi</string>
|
||||
<string name="title_last_played">Nýlega spilað</string>
|
||||
<string name="title_most_played">Mest spilað</string>
|
||||
<string name="main_page_content">Aðalsíða</string>
|
||||
@@ -821,4 +821,25 @@
|
||||
<string name="player_http_invalid_status">Tók við HTTP-villu %1$s frá þjóni á meðan afspilun stóð</string>
|
||||
<string name="youtube_player_http_403">Tók við HTTP-villu 403 frá þjóni á meðan afspilun stóð, líklega vegna banns á IP-vistfang eða vandamála með afkóðun URL-slóðar streymis</string>
|
||||
<string name="unsupported_content_in_country">Þetta efni er ekki í boði fyrir valið landsvæði efnis.\n\nBreyttu valinu með því að fara í \"Stillingar > Efni > Sjálfgefið landsvæði efnis\".</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Flyt út %d áskrift…</item>
|
||||
<item quantity="other">Flyt út %d áskriftir…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Hleð inn %d áskrift…</item>
|
||||
<item quantity="other">Hleð inn %d áskriftum…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Flyt út %d áskrift…</item>
|
||||
<item quantity="other">Flyt út %d áskriftir…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">Flytja inn áskriftir</string>
|
||||
<string name="export_subscriptions_title">Flytja út áskriftir</string>
|
||||
<string name="import_subscriptions_summary">Flytja áskriftir inn úr fyrri .json útflutningsskrá</string>
|
||||
<string name="export_subscriptions_summary">Flytja áskriftirnar þínar í .json-skrá</string>
|
||||
<string name="import_from_previous_export">Flytja inn úr fyrri útflutningsskrá</string>
|
||||
<string name="kao_dialog_more_info">Nánar</string>
|
||||
<string name="kao_solution">Lausn</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe er að hætta stuðningi við Android 5</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Bloggfærsla</string>
|
||||
</resources>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<string name="content_not_available">Contenuto non disponibile</string>
|
||||
<string name="parsing_error">Impossibile analizzare il sito web</string>
|
||||
<string name="could_not_setup_download_menu">Impossibile impostare il menu di download</string>
|
||||
<string name="content">Contenuti</string>
|
||||
<string name="content">Contenuto</string>
|
||||
<string name="show_age_restricted_content_title">Mostra contenuti con restrizioni di età</string>
|
||||
<string name="main_bg_subtitle">Tocca la lente d\'ingrandimento per iniziare.</string>
|
||||
<string name="duration_live">In diretta</string>
|
||||
@@ -103,13 +103,13 @@
|
||||
\nper utilizzare il lettore popup</string>
|
||||
<string name="title_licenses">Licenze di terze parti</string>
|
||||
<string name="copyright" formatted="true">© %1$s di %2$s protetto da licenza %3$s</string>
|
||||
<string name="tab_about">Info e domande frequenti</string>
|
||||
<string name="tab_about">Informazioni e domande frequenti</string>
|
||||
<string name="tab_licenses">Licenze</string>
|
||||
<string name="app_description">Streaming libero e leggero su Android.</string>
|
||||
<string name="view_on_github">Mostra su GitHub</string>
|
||||
<string name="view_on_github">Vedi su GitHub</string>
|
||||
<string name="app_license_title">Licenza di NewPipe</string>
|
||||
<string name="contribution_encouragement">Un aiuto è sempre gradito: traduzioni, modifiche al design, pulizia del codice, cambiamenti radicali. Più si fa, meglio è!</string>
|
||||
<string name="read_full_license">Leggi la Licenza</string>
|
||||
<string name="contribution_encouragement">Un aiuto è sempre gradito per qualsiasi cosa: traduzioni, modifiche al design, pulizia del codice o cambiamenti radicali. Più si fa, meglio è!</string>
|
||||
<string name="read_full_license">Leggi la licenza</string>
|
||||
<string name="contribution_title">Contribuisci</string>
|
||||
<string name="title_activity_about">Informazioni su NewPipe</string>
|
||||
<string name="subscribe_button_title">Iscriviti</string>
|
||||
@@ -125,7 +125,7 @@
|
||||
<string name="enable_watch_history_summary">Salva la cronologia degli elementi visualizzati</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Riprendi la riproduzione</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">Continua a riprodurre dopo le interruzioni (es. telefonate)</string>
|
||||
<string name="settings_category_downloads_title">Download</string>
|
||||
<string name="settings_category_downloads_title">Scaricamenti</string>
|
||||
<string name="settings_file_charset_title">Caratteri ammessi per i nomi dei file</string>
|
||||
<string name="settings_file_replacement_character_summary">I caratteri non validi vengono sostituiti con il valore specificato</string>
|
||||
<string name="settings_file_replacement_character_title">Carattere sostitutivo</string>
|
||||
@@ -184,10 +184,10 @@
|
||||
<string name="start_here_on_background">Riproduci in sottofondo</string>
|
||||
<string name="start_here_on_popup">Riproduci nel lettore popup</string>
|
||||
<string name="donation_title">Dona</string>
|
||||
<string name="website_title">Sito</string>
|
||||
<string name="website_encouragement">Visita il sito di NewPipe per informazioni e novità.</string>
|
||||
<string name="donation_encouragement">NewPipe è sviluppato da volontari che impiegano il loro tempo libero per offrire agli utenti un\'esperienza migliore. Restituisci il favore, aiutandoli a rendere NewPipe ancora più piacevole, mentre si gustano una tazza di caffè.</string>
|
||||
<string name="give_back">Restituisci</string>
|
||||
<string name="website_title">Sito web</string>
|
||||
<string name="website_encouragement">Visita il sito di NewPipe per maggiori info e notizie.</string>
|
||||
<string name="donation_encouragement">NewPipe è sviluppato da volontari che impiegano il loro tempo libero per offrirti un\'esperienza d\'uso migliore. Restituisci il favore, aiutandoli a rendere NewPipe ancora più piacevole mentre si gustano una tazza di caffè.</string>
|
||||
<string name="give_back">Restituisci il favore</string>
|
||||
<string name="default_content_country_title">Paese predefinito per i contenuti</string>
|
||||
<string name="switch_to_background">Passa in sottofondo</string>
|
||||
<string name="switch_to_popup">Passa alla modalità popup</string>
|
||||
@@ -305,12 +305,12 @@
|
||||
<string name="delete_search_history_alert">Eliminare la cronologia delle ricerche\?</string>
|
||||
<string name="search_history_deleted">Cronologia delle ricerche eliminata</string>
|
||||
<string name="one_item_deleted">1 elemento eliminato.</string>
|
||||
<string name="app_license">NewPipe è un software libero con licenza copyleft: si può utilizzare, studiare, condividere e migliorare a proprio piacimento. In particolare, è possibile ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License (Free Software Foundation), nella versione 3 o successiva, a propria discrezione.</string>
|
||||
<string name="app_license">NewPipe è software libre copyleft: puoi utilizzare, studiare, condividere e migliorare a volontà il suo codice sorgente. Nello specifico è possibile ridistribuirlo e/o modificarlo in base ai termini della GNU General Public License come pubblicato dalla Free Software Foundation, sia la versione 3 della licenza sia (a vostra scelta) qualsiasi versione successiva.</string>
|
||||
<string name="import_settings">Vuoi anche importare le impostazioni?</string>
|
||||
<string name="privacy_policy_title">Informativa sulla privacy</string>
|
||||
<string name="privacy_policy_title">Politica di riservatezza di NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">Il progetto NewPipe tiene molto alla tua privacy. Perciò, l\'app non raccoglie alcun dato senza il tuo consenso.
|
||||
\nL\'informativa sulla privacy spiega nel dettaglio quali dati vengono trattati e memorizzati durante l\'invio di segnalazioni per arresti anomali.</string>
|
||||
<string name="read_privacy_policy">Leggi l\'informativa sulla privacy</string>
|
||||
<string name="read_privacy_policy">Leggi la politica di riservatezza</string>
|
||||
<string name="start_accept_privacy_policy">Per rispettare il regolamento europeo sulla protezione dei dati (GDPR), richiamiamo la vostra attenzione sull\'informativa sulla privacy di NewPipe. Si prega di leggerla attentamente.
|
||||
\nDeve essere accettata per poter inviare la segnalazione.</string>
|
||||
<string name="accept">Accetto</string>
|
||||
@@ -710,9 +710,9 @@
|
||||
<string name="unknown_format">Formato sconosciuto</string>
|
||||
<string name="progressive_load_interval_title">Dimensione intervallo di caricamento della riproduzione</string>
|
||||
<string name="faq_title">Domande frequenti</string>
|
||||
<string name="faq_description">Se riscontri problemi nell\'utilizzo dell\'app, dai un\'occhiata alle risposte delle domande più comuni!</string>
|
||||
<string name="faq_description">Se stai avendo problemi durante l\'uso dell\'app, dai un occhio alle risposte a queste domande comuni!</string>
|
||||
<string name="sort">Ordina</string>
|
||||
<string name="faq">Visualizza sul sito</string>
|
||||
<string name="faq">Guarda sul sito web</string>
|
||||
<string name="fast_mode">Recupero veloce</string>
|
||||
<string name="app_update_available_notification_text">Premi per scaricare %s</string>
|
||||
<string name="app_update_unavailable_toast">Stai già usando l\'ultima versione di NewPipe</string>
|
||||
@@ -884,4 +884,9 @@
|
||||
<string name="import_subscriptions_summary">Importa iscrizioni da un\'esportazione .json precedente</string>
|
||||
<string name="export_subscriptions_summary">Esporta le tue iscrizioni su un file .json</string>
|
||||
<string name="import_from_previous_export">Importa da un\'esportazione precedente</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe sta abbandonando il supporto per Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Purtroppo NewPipe dipende da alcune librerie che hanno abbandonato il supporto per Android 5.0 e 5.1. La prossima versione di NewPipe funzionerà solo su dispositivi con Android 6 o superiore, purtroppo. Maggiori info nel post del blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Post del blog</string>
|
||||
<string name="channel_tab_podcasts">Podcast</string>
|
||||
<string name="channel_tab_courses">Corsi</string>
|
||||
</resources>
|
||||
|
||||
@@ -101,15 +101,15 @@
|
||||
<string name="show_search_suggestions_title">検索候補の表示</string>
|
||||
<string name="show_search_suggestions_summary">検索時に表示する候補を選択します</string>
|
||||
<string name="best_resolution">最高</string>
|
||||
<string name="title_activity_about">NewPipe について</string>
|
||||
<string name="title_licenses">サードパーティー ライセンス</string>
|
||||
<string name="title_activity_about">NewPipeについて</string>
|
||||
<string name="title_licenses">サードパーティライセンス</string>
|
||||
<string name="copyright" formatted="true">© %1$s 作者 %2$s ライセンス %3$s</string>
|
||||
<string name="tab_about">バージョン情報とよくある質問</string>
|
||||
<string name="tab_about">概要とよくある質問</string>
|
||||
<string name="tab_licenses">ライセンス</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="subscribe_button_title">チャンネル登録</string>
|
||||
@@ -138,26 +138,26 @@
|
||||
<string name="search_no_results">一致する結果はありませんでした</string>
|
||||
<string name="no_subscribers">チャンネル登録者なし</string>
|
||||
<string name="no_videos">動画がありません</string>
|
||||
<string name="settings_category_downloads_title">保存</string>
|
||||
<string name="settings_category_downloads_title">ダウンロード</string>
|
||||
<string name="settings_file_charset_title">ファイル名に使用可能な文字</string>
|
||||
<string name="settings_file_replacement_character_summary">無効な文字はここで指定した文字に置き換えられます</string>
|
||||
<string name="settings_file_replacement_character_title">ファイル名の自動修正</string>
|
||||
<string name="charset_letters_and_digits">文字と数字</string>
|
||||
<string name="charset_most_special_characters">文字と数字と、多くの特殊文字</string>
|
||||
<string name="donation_title">寄付</string>
|
||||
<string name="donation_encouragement">NewPipe は、あなたに最高の体験を提供するために、ボランティアが自分たちの時間を使って開発しています。開発者たちがコーヒーを飲みながら NewPipe を継続的に改良できるよう、ご支援をお願いします。</string>
|
||||
<string name="website_title">Webサイト</string>
|
||||
<string name="website_encouragement">NewPipe の詳しい情報や最新情報については、ウェブサイトをご覧ください。</string>
|
||||
<string name="donation_title">寄付する</string>
|
||||
<string name="donation_encouragement">NewPipeは、最高のユーザー体験を届けるために、ボランティアが自由時間を使って開発しています。開発者がコーヒーを楽しみながらNewPipeをさらに良くできるよう、ぜひ支援してください。</string>
|
||||
<string name="website_title">ウェブサイト</string>
|
||||
<string name="website_encouragement">詳しい情報や最新ニュースについては、NewPipeのウェブサイトをご覧ください。</string>
|
||||
<string name="title_activity_history">履歴</string>
|
||||
<string name="action_history">履歴</string>
|
||||
<string name="delete_item_search_history">このアイテムを検索履歴から削除しますか?</string>
|
||||
<string name="main_page_content">メインページのコンテンツ</string>
|
||||
<string name="blank_page_summary">空白ページ</string>
|
||||
<string name="kiosk_page_summary">Kioskページ</string>
|
||||
<string name="kiosk_page_summary">キオスクページ</string>
|
||||
<string name="channel_page_summary">チャンネルページ</string>
|
||||
<string name="select_a_channel">チャンネルを選択</string>
|
||||
<string name="no_channel_subscribed_yet">登録しているチャンネルはありません</string>
|
||||
<string name="select_a_kiosk">Kioskを選択</string>
|
||||
<string name="select_a_kiosk">キオスクを選択</string>
|
||||
<string name="trending">人気</string>
|
||||
<string name="top_50">トップ50</string>
|
||||
<string name="play_queue_remove">削除</string>
|
||||
@@ -245,8 +245,8 @@
|
||||
<string name="channels">チャンネル</string>
|
||||
<string name="playlists">プレイリスト</string>
|
||||
<string name="users">ユーザー</string>
|
||||
<string name="privacy_policy_title">NewPipe プライバシーポリシー</string>
|
||||
<string name="read_privacy_policy">プライバシーポリシーを確認</string>
|
||||
<string name="privacy_policy_title">NewPipeのプライバシーポリシー</string>
|
||||
<string name="read_privacy_policy">プライバシーポリシーを読む</string>
|
||||
<string name="use_inexact_seek_title">おおまかなシーク</string>
|
||||
<string name="use_inexact_seek_summary">おおまかなシークを使用することで精度が下がる代わりに高速にシークができます。5 秒、15 秒または 25 秒間隔のシークはできません</string>
|
||||
<string name="auto_queue_summary">キューに関連動画を追加して再生を続ける (繰り返ししない場合)</string>
|
||||
@@ -262,9 +262,8 @@
|
||||
</plurals>
|
||||
<string name="one_item_deleted">1 つのアイテムが削除されました。</string>
|
||||
<string name="give_back">支援する</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe プロジェクトはあなたのプライバシーを非常に大切にしています。あなたの同意がない限り、アプリはいかなるデータも収集しません。
|
||||
\nNewPipe のプライバシー・ポリシーでは、クラッシュリポート送信時にどのような種類のデータが送信・記録されるかを詳細に説明しています。</string>
|
||||
<string name="app_license">NewPipe はコピーレフトなソフトウェアです。あなたは自由にそれを使用し、研究し、共有し、そして改善することができます。あなたは、GNU フリーソフトウェア財団が公開する GNU General Public ライセンス バージョン3以降の下に、自由に再配布・修正を行うことができます。</string>
|
||||
<string name="privacy_policy_encouragement">NewPipeプロジェクトは、ユーザーのプライバシーを非常に重視しています。そのため、このアプリがユーザーの同意なくデータを収集することはありません。\nNewPipeのプライバシーポリシーでは、クラッシュレポートを送信した際に、どのようなデータが送信および保存されるかを詳しく説明しています。</string>
|
||||
<string name="app_license">NewPipeは、コピーレフトの自由ソフトウェアです。自由に使用、研究、共有、改良できます。具体的には、フリーソフトウェア財団が公開しているGNU General Public Licenseのバージョン3、またはそれ以降の任意のバージョンの条件に従って、再配布や改変を行えます。</string>
|
||||
<string name="title_last_played">最終再生日時</string>
|
||||
<string name="title_most_played">最も再生された動画</string>
|
||||
<string name="resize_zoom">拡大</string>
|
||||
@@ -320,7 +319,7 @@
|
||||
<string name="playback_step">音階</string>
|
||||
<string name="unsubscribe">登録解除</string>
|
||||
<string name="tab_choose">タブを選択</string>
|
||||
<string name="settings_category_updates_title">アプリの更新</string>
|
||||
<string name="settings_category_updates_title">更新</string>
|
||||
<string name="events">イベント</string>
|
||||
<string name="app_update_notification_channel_description">新しい NewPipe バージョンの通知</string>
|
||||
<string name="download_to_sdcard_error_title">外部記憶装置は利用できません</string>
|
||||
@@ -406,7 +405,7 @@
|
||||
<plurals name="videos">
|
||||
<item quantity="other">%s本の動画</item>
|
||||
</plurals>
|
||||
<string name="default_kiosk_page_summary">デフォルトのKiosk</string>
|
||||
<string name="default_kiosk_page_summary">デフォルトのキオスク</string>
|
||||
<string name="no_one_watching">誰も見ていません</string>
|
||||
<plurals name="watching">
|
||||
<item quantity="other">%s人が視聴中</item>
|
||||
@@ -437,7 +436,7 @@
|
||||
<string name="app_language_title">アプリの言語</string>
|
||||
<string name="systems_language">システムの既定</string>
|
||||
<string name="subtitle_activity_recaptcha">解けたら「完了」を押してください</string>
|
||||
<string name="done">完了</string>
|
||||
<string name="done">閉じる</string>
|
||||
<string name="videos_string">動画</string>
|
||||
<plurals name="seconds">
|
||||
<item quantity="other">%d 秒</item>
|
||||
@@ -497,7 +496,7 @@
|
||||
<string name="restricted_video">この動画には年齢制限があります。
|
||||
\n
|
||||
\n閲覧したい場合、設定から \"%1$s\" を有効化してください。</string>
|
||||
<string name="remove_watched_popup_warning">プレイリストに追加される前も追加された後も視聴した動画はプレイリストから削除されます。 \nよろしいですか?この操作は元に戻せません!</string>
|
||||
<string name="remove_watched_popup_warning">プレイリストへの追加前または追加後に視聴済みとなった動画が削除されます。\nよろしいですか?</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">はい、部分的に視聴した動画も削除します</string>
|
||||
<string name="remove_watched_popup_title">視聴済みの動画を削除しますか?</string>
|
||||
<string name="remove_watched">視聴済みを削除</string>
|
||||
@@ -684,11 +683,11 @@
|
||||
<string name="no_video_streams_available_for_external_players">外部プレイヤーで利用可能な動画ストリームがありません</string>
|
||||
<string name="select_quality_external_players">外部プレイヤーでの品質を選択</string>
|
||||
<string name="sort">並び替え</string>
|
||||
<string name="faq">ウェブサイトを表示</string>
|
||||
<string name="faq">ウェブサイトで見る</string>
|
||||
<string name="app_update_available_notification_text">タップして%sをダウンロード</string>
|
||||
<string name="app_update_unavailable_toast">あなたはNewPipeの最新版を起動しています</string>
|
||||
<string name="faq_title">よくある質問</string>
|
||||
<string name="faq_description">アプリの使い方に困ったときは、よくある質問に答えていますので、ぜひご覧ください!</string>
|
||||
<string name="faq_description">アプリの使用中に問題が発生した場合は、よくある質問への回答をご確認ください!</string>
|
||||
<string name="night_theme_available">%sがテーマに選択された場合のみ、この選択肢が利用可能です</string>
|
||||
<string name="fast_mode">高速モード</string>
|
||||
<string name="import_subscriptions_hint">3点メニューから登録チャンネルの読み込みまたは書き出しが可能</string>
|
||||
@@ -804,8 +803,55 @@
|
||||
<string name="import_settings_vulnerable_format">インポートされているエクスポートの設定は、NewPipe 0.27.0以降は非推奨であった脆弱な形式を使用します。 インポートされているエクスポートは信頼できる情報源からであり、将来的にはNewPipe 0.27.0かこれより新しいバージョンから得られるエクスポートのみを優先して使用します。 この脆弱な形式で設定をインポートするための対応はすぐに完全に削除され、新しいバージョンからエクスポートの設定をインポートすることは出来ません。</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">YouTubeの一時的なプレイリストとして共有</string>
|
||||
<string name="audio_track_type_secondary">二次的</string>
|
||||
<string name="kao_dialog_warning">Google は、2026/2027 年から、認定 Android デバイス上のすべてのアプリについて、開発者が個人の身元情報を直接 Google に提出することを必須にすると発表しました。本アプリの開発者はこの要件に同意していないため、このアプリはその時点以降、認定 Android デバイス上で動作しなくなります。</string>
|
||||
<string name="kao_dialog_warning">2025年8月、Googleは、2026年9月以降、Playストア以外からインストールするアプリを含め、認定済み端末上のすべてのAndroidアプリのインストールに開発者の確認が必要になると発表しました。NewPipeの開発者はこの要件に同意していないため、それ以降、NewPipeは認定済みAndroid端末で動作しなくなります。</string>
|
||||
<string name="kao_dialog_more_info">詳細</string>
|
||||
<string name="kao_solution">解決</string>
|
||||
<string name="short_billion">%sB</string>
|
||||
<string name="search_with_service_name">%1$sを検索</string>
|
||||
<string name="search_with_service_name_and_filter">%1$s(%2$s)を検索</string>
|
||||
<string name="tab_bookmarks_short">プレイリスト</string>
|
||||
<string name="permission_display_over_apps_message">ポップアッププレーヤーを使用するには、次のAndroid設定メニューで%1$sを選択し、%2$sを有効にしてください。</string>
|
||||
<string name="permission_display_over_apps_permission_name">「他のアプリの上に表示」を許可</string>
|
||||
<string name="short_thousand">%sK</string>
|
||||
<string name="short_million">%sM</string>
|
||||
<string name="delete_file">ファイルを削除</string>
|
||||
<string name="delete_entry">エントリを削除</string>
|
||||
<string name="select_a_feed_group">フィードグループを選択</string>
|
||||
<string name="no_feed_group_created_yet">フィードグループはまだ作成されていません</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="other">%d件の登録チャンネルをエクスポートしています…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="other">%d件の登録チャンネルを読み込んでいます…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="other">%d件の登録チャンネルをインポートしています…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">登録チャンネルをインポート</string>
|
||||
<string name="export_subscriptions_title">登録チャンネルをエクスポート</string>
|
||||
<string name="import_subscriptions_summary">以前エクスポートした.jsonファイルから登録チャンネルをインポート</string>
|
||||
<string name="export_subscriptions_summary">登録チャンネルを.jsonファイルにエクスポート</string>
|
||||
<string name="import_from_previous_export">以前のエクスポートからインポート</string>
|
||||
<string name="feed_group_page_summary">チャンネルグループページ</string>
|
||||
<string name="account_terminated_service_provides_reason">アカウントは停止されました\n\n%1$sによる理由: %2$s</string>
|
||||
<string name="channel_tab_likes">高評価</string>
|
||||
<string name="migration_info_6_7_title">SoundCloudのトップ50ページを削除しました</string>
|
||||
<string name="migration_info_6_7_message">SoundCloudは従来のトップ50チャートを終了しました。該当するタブはメインページから削除されました。</string>
|
||||
<string name="migration_info_7_8_title">YouTubeの統合トレンドを削除しました</string>
|
||||
<string name="migration_info_7_8_message">YouTubeは2025年7月21日をもって、統合トレンドページを終了しました。NewPipeでは、デフォルトのトレンドページをトレンドのライブ配信に置き換えました。\n\n設定 > コンテンツ > メインページのコンテンツから、別のトレンドページを選択することもできます。</string>
|
||||
<string name="trending_gaming">ゲームのトレンド</string>
|
||||
<string name="trending_podcasts">トレンドのポッドキャスト</string>
|
||||
<string name="trending_movies">トレンドの映画と番組</string>
|
||||
<string name="trending_music">トレンドの音楽</string>
|
||||
<string name="entry_deleted">エントリを削除しました</string>
|
||||
<string name="player_http_403">再生中にサーバーからHTTPエラー403を受信しました。ストリーミングURLの有効期限切れまたはIPアドレスのブロックが原因である可能性があります</string>
|
||||
<string name="player_http_invalid_status">再生中にサーバーからHTTPエラー%1$sを受信しました</string>
|
||||
<string name="youtube_player_http_403">再生中にサーバーからHTTPエラー403を受信しました。IPアドレスのブロックまたはストリーミングURLの難読化解除に関する問題が原因である可能性があります</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$sは、リクエスト元がボットではないことを確認するためにログインを求め、データの提供を拒否しました。\n\nお使いのIPアドレスが%1$sによって一時的にブロックされている可能性があります。しばらく待つか、別のIPアドレスに切り替えてください(たとえば、VPNのオンとオフを切り替えるか、Wi-Fiからモバイルデータ通信に切り替えます)。\n\n詳しくは <a href="%2$s">こちらのFAQ項目</a> をご覧ください。</string>
|
||||
<string name="unsupported_content_in_country">このコンテンツは、現在選択されているコンテンツの国では利用できません。\n\n設定 > コンテンツ > デフォルトのコンテンツの国から選択を変更してください。</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipeはAndroid 5のサポートを終了します</string>
|
||||
<string name="api23_requirement_dialog_message">残念ながら、NewPipeが依存している一部のライブラリでAndroid 5.0および5.1のサポートが終了しました。そのため、次回リリースのNewPipeはAndroid 6以降の端末でのみ動作します。詳しくはブログ記事をご覧ください。</string>
|
||||
<string name="api23_requirement_dialog_blogpost">ブログ記事</string>
|
||||
<string name="channel_tab_podcasts">ポッドキャスト</string>
|
||||
<string name="channel_tab_courses">コース</string>
|
||||
</resources>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="no_player_found">스트림 플레이어가 발견되지 않았습니다. VLC를 설치할까요\?</string>
|
||||
<string name="install">설치</string>
|
||||
<string name="cancel">취소</string>
|
||||
<string name="open_in_browser">브라우저로 열기</string>
|
||||
<string name="open_in_browser">브라우저에서 열기</string>
|
||||
<string name="share">공유</string>
|
||||
<string name="download">다운로드</string>
|
||||
<string name="search">검색</string>
|
||||
@@ -143,22 +143,22 @@
|
||||
<string name="settings_file_replacement_character_title">대체 문자</string>
|
||||
<string name="charset_letters_and_digits">문자 및 숫자</string>
|
||||
<string name="charset_most_special_characters">가장 특수한 문자</string>
|
||||
<string name="title_activity_about">NewPipe에 대해서</string>
|
||||
<string name="title_licenses">제3자 라이센스</string>
|
||||
<string name="title_activity_about">NewPipe 정보</string>
|
||||
<string name="title_licenses">서드파티 라이선스</string>
|
||||
<string name="copyright" formatted="true">© %3$s 하에서 %2$s 에 의한 %1$s</string>
|
||||
<string name="tab_about">정보 및 자주 묻는 질문</string>
|
||||
<string name="tab_licenses">라이센스</string>
|
||||
<string name="tab_about">정보 및 FAQ</string>
|
||||
<string name="tab_licenses">라이선스</string>
|
||||
<string name="app_description">가볍고 빠른 자유 안드로이드 스트리밍 앱입니다.</string>
|
||||
<string name="contribution_title">기여</string>
|
||||
<string name="contribution_encouragement">번역, 디자인, 코딩 등 다양한 기여를 언제나 환영합니다. 더 나아지도록 도와주세요!</string>
|
||||
<string name="view_on_github">GitHub에서 보기</string>
|
||||
<string name="donation_title">기부</string>
|
||||
<string name="donation_title">후원</string>
|
||||
<string name="donation_encouragement">여러분들의 더 나은 경험을 위해 많은 사람들이 NewPipe를 개발하는데 노력을 기울이고 있습니다. NewPipe에 참여하는 개발자들이 커피 한 잔을 즐길 수 있도록 기부해주세요.</string>
|
||||
<string name="give_back">보답하기</string>
|
||||
<string name="website_title">웹사이트</string>
|
||||
<string name="website_encouragement">NewPipe에 관한 더 많은 정보를 얻으려면 웹사이트를 방문하세요.</string>
|
||||
<string name="app_license_title">NewPipe가 채택한 라이센스</string>
|
||||
<string name="read_full_license">라이센스 읽기</string>
|
||||
<string name="website_encouragement">더 많은 정보와 뉴스를 확인하려면 NewPipe 웹사이트에 방문하세요.</string>
|
||||
<string name="app_license_title">NewPipe의 라이선스</string>
|
||||
<string name="read_full_license">라이선스 읽기</string>
|
||||
<string name="title_activity_history">기록</string>
|
||||
<string name="action_history">기록</string>
|
||||
<string name="delete_item_search_history">이 항목을 검색 기록에서 삭제할까요?</string>
|
||||
@@ -297,10 +297,10 @@
|
||||
<string name="clear_search_history_summary">검색 기록을 모두 삭제합니다</string>
|
||||
<string name="delete_search_history_alert">모든 검색 기록을 삭제하시겠습니까\?</string>
|
||||
<string name="search_history_deleted">검색 기록이 삭제되었습니다</string>
|
||||
<string name="privacy_policy_title">NewPipe 개인정보 보호 정책</string>
|
||||
<string name="privacy_policy_title">NewPipe의 개인정보취급방침</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe 프로젝트는 사용자의 개인 정보 보호를 최우선으로 생각하며, 동의 없이 어떠한 정보도 수집하지 않습니다.
|
||||
\nNewPipe 개인정보 보호 정책에서는 오류 보고 시 어떠한 정보가 수집되고 저장되는지 자세히 명시되어 있습니다.</string>
|
||||
<string name="read_privacy_policy">개인정보 보호 정책 읽기</string>
|
||||
<string name="read_privacy_policy">개인정보취급방침 읽기</string>
|
||||
<string name="app_license">NewPipe는 카피레프트 자유 소프트웨어입니다: 마음대로 사용하고, 연구하고, 공유하고, 개선할 수 있습니다. 특히 자유 소프트웨어 재단에서 발행한 GNU 일반 공중 사용 라이센스의 조건에 따라 라이센스 버전 3 또는 (귀하의 선택에 따라) 이후 버전을 재배포 및/또는 수정할 수 있습니다.</string>
|
||||
<string name="import_settings">설정도 가져오시겠습니까\?</string>
|
||||
<string name="skip_silence_checkbox">무음 구간 빨리 감기</string>
|
||||
@@ -850,4 +850,9 @@
|
||||
<string name="import_subscriptions_summary">이전에 내보낸 .json에서 구독을 가져옵니다</string>
|
||||
<string name="export_subscriptions_summary">구독 현황을 .json 파일로 내보냅니다</string>
|
||||
<string name="import_from_previous_export">이전 내보내기에서 가져오기</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe가 Android 5 지원을 중단합니다</string>
|
||||
<string name="api23_requirement_dialog_message">NewPipe는 Android 5.0 및 5.1 지원을 중단한 몇 라이브러리에 의존합니다. 따라서 유감스럽게도 다음NewPipe 버전은 Android 6 이상 기기에서만 작동할 예정입니다. 자세한 내용은 블로그 게시글을 참조하세요.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">블로그 게시글</string>
|
||||
<string name="channel_tab_podcasts">팟캐스트</string>
|
||||
<string name="channel_tab_courses">강의</string>
|
||||
</resources>
|
||||
|
||||
@@ -31,25 +31,25 @@
|
||||
<string name="unsubscribe">Inscribe</string>
|
||||
<string name="subscribed_button_title">Scriptum</string>
|
||||
<string name="subscribe_button_title">Scribe</string>
|
||||
<string name="no_player_found_toast">Nullus amnem amnibus invenit (potes instalar VLC quia id ludere).</string>
|
||||
<string name="no_player_found">Nullus amnem amnibus invenit. Instalar VLC\?</string>
|
||||
<string name="controls_download_desc">Scarica amnem file</string>
|
||||
<string name="use_external_audio_player_title">Utere ludionem externum</string>
|
||||
<string name="use_external_video_player_summary">Removes sentum aliquas resolutionibus</string>
|
||||
<string name="use_external_video_player_title">Utere lectorem externum</string>
|
||||
<string name="share_dialog_title">Condividi apud</string>
|
||||
<string name="no_player_found_toast">Nullus lusor amnium invenit (VLC collocare potes ut eum ludat).</string>
|
||||
<string name="no_player_found">Nullus lusor amnium invenit. VLC collocare?</string>
|
||||
<string name="controls_download_desc">Tabularium amnicum scaricare</string>
|
||||
<string name="use_external_audio_player_title">Utere lusorem soni externum</string>
|
||||
<string name="use_external_video_player_summary">Sonum aliquis resolutionibus removet</string>
|
||||
<string name="use_external_video_player_title">Utere lusorem taeniae externum</string>
|
||||
<string name="share_dialog_title">Communicare cum</string>
|
||||
<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</string>
|
||||
<string name="settings">Adaptabilitates</string>
|
||||
<string name="main_bg_subtitle">Tange \"Quaere\" ad initium.</string>
|
||||
<string name="search">Quaerere</string>
|
||||
<string name="download">Scarica</string>
|
||||
<string name="share">Condividi</string>
|
||||
<string name="open_with">Aperi apud</string>
|
||||
<string name="open_in_popup_mode">Aperi in popup mode</string>
|
||||
<string name="open_in_browser">Aperi in browser</string>
|
||||
<string name="cancel">Inrita</string>
|
||||
<string name="install">instalar</string>
|
||||
<string name="download">Scaricare</string>
|
||||
<string name="share">Distribuere</string>
|
||||
<string name="open_with">Aperire cum</string>
|
||||
<string name="open_in_popup_mode">In modo popup aperire</string>
|
||||
<string name="open_in_browser">In quaerente aperire</string>
|
||||
<string name="cancel">Rescindere</string>
|
||||
<string name="install">Collocare</string>
|
||||
<string name="upload_date_text">Edita %1$s</string>
|
||||
<string name="start">Initio</string>
|
||||
<string name="pause">Pausa</string>
|
||||
@@ -64,7 +64,7 @@
|
||||
</plurals>
|
||||
<string name="no_subscribers">Nulli signatores</string>
|
||||
<string name="search_no_results">Nullae resultationes</string>
|
||||
<string name="settings_category_appearance_title">Apparentia</string>
|
||||
<string name="settings_category_appearance_title">Facies</string>
|
||||
<string name="settings_category_player_behavior_title">Mos</string>
|
||||
<string name="notification_channel_name">NewPipe notitia</string>
|
||||
<plurals name="listening">
|
||||
@@ -81,7 +81,7 @@
|
||||
<string name="local">Localis</string>
|
||||
<string name="new_and_hot">Novi popularesque</string>
|
||||
<string name="rename_playlist">Renomina</string>
|
||||
<string name="donation_title">Dona</string>
|
||||
<string name="donation_title">Donare</string>
|
||||
<string name="dismiss">Dimitte</string>
|
||||
<string name="never">Namquam</string>
|
||||
<string name="chapters">Capitulum</string>
|
||||
@@ -93,7 +93,7 @@
|
||||
<item quantity="one">%d secundus</item>
|
||||
<item quantity="other">%d secundi</item>
|
||||
</plurals>
|
||||
<string name="done">Factum</string>
|
||||
<string name="done">Finitus</string>
|
||||
<string name="always_ask_open_action">Quaere semper</string>
|
||||
<string name="list">Index</string>
|
||||
<string name="limit_data_usage_none_description">Nullus limus</string>
|
||||
@@ -121,4 +121,38 @@
|
||||
<string name="resize_zoom">Retrahe</string>
|
||||
<string name="resize_fill">Satiatus</string>
|
||||
<string name="resize_fit">Aptus</string>
|
||||
<string name="yes">Ita</string>
|
||||
<string name="no">Non</string>
|
||||
<string name="search_with_service_name">Quaere %1$s</string>
|
||||
<string name="search_with_service_name_and_filter">Quaere %1$s (%2$s)</string>
|
||||
<string name="content">Contentum</string>
|
||||
<string name="notifications">Nuntius</string>
|
||||
<string name="settings_category_video_audio_title">Video et audio</string>
|
||||
<string name="settings_category_downloads_title">Obtinere</string>
|
||||
<string name="settings_category_history_title">Historia et horreum breve</string>
|
||||
<string name="settings_category_updates_title">Res recenter divulgatae</string>
|
||||
<string name="settings_category_backup_restore_title">Servare et restituere</string>
|
||||
<string name="settings_category_debug_title">Errores reperire et amovere</string>
|
||||
<string name="title_activity_about">De NewPipe</string>
|
||||
<string name="title_licenses">Licentiae tertianae</string>
|
||||
<string name="tab_about">De & FAQ</string>
|
||||
<string name="tab_licenses">Licetiae</string>
|
||||
<string name="app_description">Picturae commotae liberiter et leviter accipere.</string>
|
||||
<string name="contribution_title">Conferre</string>
|
||||
<string name="contribution_encouragement">Aut sententias habes de; interpretationibus, commutationibus designationis, purgatio verbarum, aut commutationibus gravibus verbarum—auxilium semper desideratum est. Quo plus factus est, eo melior fit!</string>
|
||||
<string name="view_on_github">Aspicere in GitHub</string>
|
||||
<string name="donation_encouragement">NewPipe voluntariis, qui donant tempus liber eius te dare visum optimum, elaboratus est. Redde, ut elaboratores NewPipe emendare dum pocillum coffeum potant auxilies.</string>
|
||||
<string name="give_back">Reddere</string>
|
||||
<string name="website_title">Situs interretialis</string>
|
||||
<string name="website_encouragement">Visita situs interretialis NewPipe pro plure informationum et novitatibus.</string>
|
||||
<string name="privacy_policy_title">Politia rerum privatarum NewPipe</string>
|
||||
<string name="read_privacy_policy">Politia rerum privatarum legere</string>
|
||||
<string name="app_license_title">Licentia NewPipe</string>
|
||||
<string name="app_license">NewPipe partes programmationis libera et copiantes sinistrorsum sunt: Consumere, studere, distribuere, emendare tibi licet. Imprimis redistribuere et/aut mutare, contitione GNU General Public License quomodo divulgatus a Free Software Foundation, aut versio 3 aut posterior versio, tibi licet.</string>
|
||||
<string name="read_full_license">Licentia legere</string>
|
||||
<string name="faq_title">Interrogationes saepe interrogatas</string>
|
||||
<string name="faq_description">Si difficultates usum adhibere habes, aspice ea responsa ad interrogationes crebras!</string>
|
||||
<string name="faq">Aspicere in situ interretiale</string>
|
||||
<string name="ok">Recte est</string>
|
||||
<string name="mark_as_watched">Aspectum signare</string>
|
||||
</resources>
|
||||
|
||||
@@ -8,21 +8,21 @@
|
||||
<string name="add_to_playlist">Pievienot atskaņošanas sarakstam</string>
|
||||
<string name="name">Nosaukums</string>
|
||||
<string name="rename_playlist">Pārsaukt</string>
|
||||
<string name="create_playlist">Jauns Atskaņošanas Saraksts</string>
|
||||
<string name="create_playlist">Jauns atskaņošanas saraksts</string>
|
||||
<string name="preferred_player_fetcher_notification_message">Ielādē prasīto saturu</string>
|
||||
<string name="preferred_player_fetcher_notification_title">Vāc informāciju…</string>
|
||||
<string name="always_ask_open_action">Vienmēr prasīt</string>
|
||||
<string name="popup_player">Popup atskaņotājs</string>
|
||||
<string name="background_player">Fona atskaņotājs</string>
|
||||
<string name="always_ask_open_action">Jautāt</string>
|
||||
<string name="popup_player">Atvērt uznirstošā loga atskaņotājā</string>
|
||||
<string name="background_player">Atvērt fona atskaņotājā</string>
|
||||
<string name="start_here_on_popup">Sākt atskaņot ar popup</string>
|
||||
<string name="start_here_on_background">Klausīties fonā šo</string>
|
||||
<string name="enqueued">Ielikts rindā</string>
|
||||
<string name="enqueue_stream">Ielikt rindā</string>
|
||||
<string name="hold_to_append">Turiet, lai ieliktu atskaņošanas rindā</string>
|
||||
<string name="enqueued">Pievienots atskaņošanas rindai</string>
|
||||
<string name="enqueue_stream">Pievienot atskaņošanas rindai</string>
|
||||
<string name="hold_to_append">Nospiediet, lai pievienotu atskaņošanas rindai</string>
|
||||
<string name="play_queue_audio_settings">Audio iestatījumi</string>
|
||||
<string name="play_queue_stream_detail">Detaļas</string>
|
||||
<string name="play_queue_stream_detail">Detalizēta informācija</string>
|
||||
<string name="play_queue_remove">Noņemt</string>
|
||||
<string name="title_activity_play_queue">Atskaņošanas saraksts</string>
|
||||
<string name="title_activity_play_queue">Atskaņošanas rinda</string>
|
||||
<string name="conferences">Konferences</string>
|
||||
<string name="recently_added">Nesen pievienots</string>
|
||||
<string name="local">Lokāls</string>
|
||||
@@ -34,11 +34,11 @@
|
||||
<string name="could_not_import_all_files">Uzmanību: Ne visas datnes varēja ievietot.</string>
|
||||
<string name="no_valid_zip_file">Nederīga ZIP datne</string>
|
||||
<string name="import_complete_toast">Ievietošana pabeigta</string>
|
||||
<string name="export_complete_toast">Eksportēts</string>
|
||||
<string name="export_complete_toast">Izgūšana pabeigta</string>
|
||||
<string name="select_a_kiosk">Atlasiet kiosku</string>
|
||||
<string name="no_playlist_bookmarked_yet">Nav atskaņošanas sarakstu pagaidām</string>
|
||||
<string name="no_playlist_bookmarked_yet">Pagaidām nav izveidots vai saglabāts neviens atskaņošanas saraksts</string>
|
||||
<string name="select_a_playlist">Atlasiet atskaņošanas sarakstu</string>
|
||||
<string name="no_channel_subscribed_yet">Nav kanālu abonamentu pagaidām</string>
|
||||
<string name="no_channel_subscribed_yet">Pagaidām nav abonēts neviens kanāls</string>
|
||||
<string name="select_a_channel">Atlasiet kanālu</string>
|
||||
<string name="channel_page_summary">Kanāls</string>
|
||||
<string name="default_kiosk_page_summary">Noklusējuma Kiosks</string>
|
||||
@@ -46,26 +46,26 @@
|
||||
<string name="blank_page_summary">Tukša lapa</string>
|
||||
<string name="main_page_content_summary">Kādas cilnes rādīt galvenajā lapā</string>
|
||||
<string name="main_page_content">Galvenā lapa</string>
|
||||
<string name="title_most_played">Visvairāk Atskaņotais</string>
|
||||
<string name="title_most_played">Visvairāk atskaņotie</string>
|
||||
<string name="title_last_played">Pēdējais atskaņotais</string>
|
||||
<string name="delete_item_search_history">Vai tiešām vēlaties izdzēst šo vaicājumu no meklēšanas vēstures?</string>
|
||||
<string name="action_history">Vēsture</string>
|
||||
<string name="title_activity_history">Vēsture</string>
|
||||
<string name="read_full_license">Lasīt licenci</string>
|
||||
<string name="app_license">Newpipe ir bezmaksas programmatūra: jūs varat izmantot, izpētīt, dalīties un uzlabot to jebkurā brīdī. Tieši jūs varat kopīgot un/ vai modificēt to saskaņā ar GNU Vispārējās Publiskās Licences noteikumiem, ko publicējusi Brīvās Programmatūras Fonds, vai nu 3. licences versija, vai (pēc jūsu izvēles) jebkura vēlāka versija.</string>
|
||||
<string name="app_license_title">NewPipe Licence</string>
|
||||
<string name="read_privacy_policy">Izslasīt privātuma politiku</string>
|
||||
<string name="app_license">NewPipe — bez autortiesību ierobežojumiem (copyleft) licencēta brīva, pieejama bezmaksas, programmatūra: jūs variet izmantot, pētīt, dalīties un uzlabot to jebkurā brīdī pēc saviem ieskatiem. Tieši jūs variet to izplatīt un/vai modificēt saskaņā ar GNU General Public License noteikumiem, ko publicējusi Free Software Foundation, vai nu zem licences 3. versijas, vai (pēc jūsu izvēles) jebkuras jaunākas versijas noteikumiem.</string>
|
||||
<string name="app_license_title">NewPipe licence</string>
|
||||
<string name="read_privacy_policy">Lasīt konfidencialitātes politiku</string>
|
||||
<string name="privacy_policy_encouragement">Datu aizsardzība ir ļoti svarīga NewPipe projektam. Tāpēc lietotne neapkopo datus bez jūsu piekrišanas.\nNewPipe konfidencialitātes politika sīki izskaidro, kādi dati tiek nosūtīti un uzglabāti, kad nosūtiet nobrukšanas ziņojumu.</string>
|
||||
<string name="privacy_policy_title">NewPipe Privātuna Politika</string>
|
||||
<string name="website_encouragement">Apmeklēt NewPipe mājaslapu, lai iegūtu vairāk informācijas un ziņu.</string>
|
||||
<string name="website_title">Mājaslapa</string>
|
||||
<string name="give_back">Dot atpakaļ</string>
|
||||
<string name="donation_encouragement">Newpipe izstrādā brīvprātīgie, kas pavada savu brīvo laiku, sniedzot vislabāko lietotāju pieredzi. Dodiet palīdzību izstrādātājiem, kuri padara NewPipe vēl lābāku.</string>
|
||||
<string name="privacy_policy_title">NewPipe konfidencialitātes politika</string>
|
||||
<string name="website_encouragement">Apmeklējiet NewPipe vietni, lai iegūtu vairāk informācijas un jaunumus.</string>
|
||||
<string name="website_title">Vietne</string>
|
||||
<string name="give_back">Atbalstīt projektu</string>
|
||||
<string name="donation_encouragement">NewPipe izstrādā brīvprātīgie savā brīvajā laikā, lai nodrošinātu jums pašu labāko lietošanas pieredzi. Atbalstiet izstrādātājus, lai palīdzētu padarīt NewPipe vēl labāku, kamēr viņi bauda tasi kafijas.</string>
|
||||
<string name="donation_title">Ziedot</string>
|
||||
<string name="view_on_github">Apskatīt GitHub</string>
|
||||
<string name="contribution_encouragement">Vienalga, kādas idejas Jums ir; Tulkojuma, dizaina izmaiņu, koda tīrīšanas vai reāli smagas kodu izmaiņas - palīdzība vienmēr ir laipni gaidīta. Jo vairāk tiek darīts, jo labāks tas kļūst!</string>
|
||||
<string name="contribution_title">Atbalstiet</string>
|
||||
<string name="app_description">Libre, viegla atskaņošana uz Android.</string>
|
||||
<string name="view_on_github">Skatīt GitHub</string>
|
||||
<string name="contribution_encouragement">Neatkarīgi no tā, vai tās ir tulkojuma, dizaina izmaiņas, koda tīrīšanas un sakārtošanas vai patiešām apjomīgas koda izmaiņas idejas — jebkura palīdzība vienmēr ir gaidīta. Kopā mēs varam padarīt NewPipe projektu vēl labāku!</string>
|
||||
<string name="contribution_title">Dot savu artavu</string>
|
||||
<string name="app_description">Viegls un brīvs, pieejams bezmaksas, straumēšanas atskaņotājs Android ierīcēm.</string>
|
||||
<string name="tab_licenses">Licences</string>
|
||||
<string name="tab_about">Par un BUJ</string>
|
||||
<string name="title_licenses">Trešo pušu licences</string>
|
||||
@@ -76,18 +76,17 @@
|
||||
<string name="settings_file_replacement_character_summary">Nederīgas rakstzīmes tiks aizvietotas ar šo</string>
|
||||
<string name="settings_file_charset_title">Atļautās rakstzīmes failu nosaukumos</string>
|
||||
<string name="settings_category_downloads_title">Lejupielādēt</string>
|
||||
<string name="done">Pabeigts</string>
|
||||
<string name="done">Skaidrs</string>
|
||||
<string name="recaptcha_request_toast">reCAPTCHA izaicinājums dots</string>
|
||||
<string name="subtitle_activity_recaptcha">Nospiediet \"Pabeigts\", kad to atrisinat</string>
|
||||
<string name="title_activity_recaptcha">reCAPTCHA izaicinājums</string>
|
||||
<string name="one_item_deleted">1 vienums dzēsts.</string>
|
||||
<string name="msg_popup_permission">Šī atļauja ir nepieciešama, lai
|
||||
\natvērtu popup režīmā</string>
|
||||
<string name="msg_popup_permission">Šī atļauja ir nepieciešama, lai\nvarētu atskaņot multimediju uznirstošajā logā</string>
|
||||
<string name="no_available_dir">Lūdzu nosakiet lejupielādes mapi iestatījumos vēlāk</string>
|
||||
<string name="msg_copied">Nokopēts uz starpliktuvi</string>
|
||||
<string name="msg_wait">Lūdzu uzgaidiet…</string>
|
||||
<string name="msg_calculating_hash">Aprēķina</string>
|
||||
<string name="msg_running_detail">Nospiediet priekš detaļām</string>
|
||||
<string name="msg_running_detail">Pieskarties, lai iegūtu detalizētu informāciju</string>
|
||||
<string name="msg_running">NewPipe lejupielādē</string>
|
||||
<string name="msg_error">Kļūda</string>
|
||||
<string name="msg_threads">Procesi</string>
|
||||
@@ -97,7 +96,7 @@
|
||||
<string name="dismiss">Noraidīt</string>
|
||||
<string name="checksum">Kontrolsumma</string>
|
||||
<string name="delete">Dzēst</string>
|
||||
<string name="create">Izveidot / Saglabāt</string>
|
||||
<string name="create">Izveidot</string>
|
||||
<string name="pause">Pauzēt</string>
|
||||
<string name="start">Sākt</string>
|
||||
<string name="no_comments">Nav komentāru</string>
|
||||
@@ -116,9 +115,9 @@
|
||||
</plurals>
|
||||
<string name="no_one_listening">Neviens neklausās</string>
|
||||
<plurals name="watching">
|
||||
<item quantity="zero">%s skatītāju</item>
|
||||
<item quantity="one">%s skatītājs</item>
|
||||
<item quantity="other">%s skatītāji</item>
|
||||
<item quantity="zero">%s skatītāji skatās</item>
|
||||
<item quantity="one">%s skatītājs skatās</item>
|
||||
<item quantity="other">%s skatītāji skatās</item>
|
||||
</plurals>
|
||||
<string name="no_one_watching">Neviens neskatās</string>
|
||||
<plurals name="views">
|
||||
@@ -140,7 +139,7 @@
|
||||
<string name="video">Video</string>
|
||||
<string name="detail_drag_description">Velciet, lai mainītu secību</string>
|
||||
<string name="empty_list_subtitle">Šeit nekā nav, tikai sienāži</string>
|
||||
<string name="search_no_results">Nav resultātu</string>
|
||||
<string name="search_no_results">Nav rezultātu</string>
|
||||
<string name="description_tab_description">Apraksts</string>
|
||||
<string name="related_items_tab_description">Līdzīgi video</string>
|
||||
<string name="comments_tab_description">Komentāri</string>
|
||||
@@ -148,13 +147,13 @@
|
||||
<string name="detail_likes_img_view_description">Patīk</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Autora avatāra attēls</string>
|
||||
<string name="detail_thumbnail_view_description">Atskaņot video, ilgums:</string>
|
||||
<string name="error_details_headline">Detaļas:</string>
|
||||
<string name="error_details_headline">Detalizēta informācija:</string>
|
||||
<string name="your_comment">Jūsu komentārs (Angliski):</string>
|
||||
<string name="info_labels">Kas:\nRequest:\nContent Valoda:\nContent Valsts:\nApp Valoda:\nService:\nGMT Laiks:\nPackage:\nVersion:\nOS versija:</string>
|
||||
<string name="info_labels">Kas:\nPieprasījums:\nSatura valoda:\nSatura valsts:\nLietotnes valoda:\nPakalpojums:\nGMT laiks:\nPakotne:\nVersija:\nOS versija:</string>
|
||||
<string name="hash_channel_description">Paziņojumi video apstrādes progresam</string>
|
||||
<string name="hash_channel_name">Video haša paziņojums</string>
|
||||
<string name="popup_remember_size_pos_summary">Atceras pēdējo uznirstošā loga izmēru un pozīciju</string>
|
||||
<string name="popup_remember_size_pos_title">Atcerēties uznirstošā loga īpašības</string>
|
||||
<string name="popup_remember_size_pos_title">Saglabāt uznirstošā loga izmēru, novietojumu</string>
|
||||
<string name="default_popup_resolution_title">Noklusējuma uznirstošā loga izšķirtspēja</string>
|
||||
<string name="controls_popup_title">Skatīt uznirstošā logā</string>
|
||||
<string name="open_in_popup_mode">Atvērt uznirstošā logā</string>
|
||||
@@ -180,9 +179,9 @@
|
||||
<string name="missing_file">Datne pārvietota vai dzēsta</string>
|
||||
<string name="audio_streams_empty">Netika atrasts audio</string>
|
||||
<string name="video_streams_empty">Netika atrasti video</string>
|
||||
<string name="external_player_unsupported_link_type">Ārējie atskaņotāj neatbalsta šāda tipa saites</string>
|
||||
<string name="external_player_unsupported_link_type">Ārējie atskaņotāji neatbalsta šāda tipa saites</string>
|
||||
<string name="player_recoverable_failure">Atgūstas no atskaņotāja kļūdas</string>
|
||||
<string name="player_unrecoverable_failure">Notika kļūda atskaņotājā</string>
|
||||
<string name="player_unrecoverable_failure">Notika neatgūstama atskaņotāja kļūda</string>
|
||||
<string name="player_stream_failure">Nevarēja atskaņot šo video</string>
|
||||
<string name="app_ui_crash">Nobruka lietotne/lietotāja saskarne</string>
|
||||
<string name="could_not_setup_download_menu">Nevarēja iestatīt lejupielādes izvēlni</string>
|
||||
@@ -201,16 +200,16 @@
|
||||
<string name="delete_playback_states_alert">Vai tiešām vēlaties dzēst visas atskaņošanas pozīcijas?</string>
|
||||
<string name="clear_playback_states_summary">Izdzēš visas atskaņošanas pozīcijas</string>
|
||||
<string name="clear_playback_states_title">Notīrīt atskaņošanas pozīcijas</string>
|
||||
<string name="watch_history_deleted">Skatīšanās vēsture dzēsta</string>
|
||||
<string name="delete_view_history_alert">Vai tiešām vēlaties dzēst visu skatīšanās vēsturi?</string>
|
||||
<string name="watch_history_deleted">Atskaņošanas vēsture dzēsta</string>
|
||||
<string name="delete_view_history_alert">Vai tiešām vēlaties dzēst visu atskaņošanas vēsturi?</string>
|
||||
<string name="clear_views_history_summary">Izdzēš atskaņoto video / audio un atskaņošanas pozīciju vēsturi</string>
|
||||
<string name="clear_views_history_title">Notīrīt skatīšanās vēsturi</string>
|
||||
<string name="clear_views_history_title">Notīrīt atskaņošanas vēsturi</string>
|
||||
<string name="clear_cookie_summary">Izdzēš sīkdatnes, kuras NewPipe uzglabā, kad jūs atrisiniet reCAPTCHA</string>
|
||||
<string name="export_data_summary">Eksportēt vēsturi, abonementus, atskaņošanas sarakstus un iestatījumus</string>
|
||||
<string name="import_data_summary">Aizstās jūsu pašreizējo vēsturi, abonementus, atskaņošanas sarakstus un (pēc izvēles) iestatījumus</string>
|
||||
<string name="export_data_summary">Veic skatīšanās/klausīšanās vēstures, abonementu, atskaņošanas sarakstu un iestatījumu rezerves kopijas izveidi</string>
|
||||
<string name="import_data_summary">Aizstās jūsu pašreizējo skatīšanās/klausīšanās vēsturi, abonementus, atskaņošanas sarakstus un (pēc izvēles) iestatījumus</string>
|
||||
<string name="recaptcha_cookies_cleared">reCAPTCHA sīkdatnes dzēstas</string>
|
||||
<string name="clear_cookie_title">Notīrīt reCAPTCHA sīkdatnes</string>
|
||||
<string name="export_data_title">Eksportēt datubāzi</string>
|
||||
<string name="export_data_title">Izgūt datubāzi</string>
|
||||
<string name="import_data_title">Ievietot datubāzi</string>
|
||||
<string name="switch_to_main">Pārslēgt uz Galveno</string>
|
||||
<string name="switch_to_popup">Pārslēgt uz Popup</string>
|
||||
@@ -223,20 +222,20 @@
|
||||
<string name="file">Datne</string>
|
||||
<string name="just_once">Tikai Vienreiz</string>
|
||||
<string name="always">Vienmēr</string>
|
||||
<string name="play_all">Atskaņot Visu</string>
|
||||
<string name="play_all">Atskaņot visus</string>
|
||||
<string name="file_deleted">Datne dzēsta</string>
|
||||
<string name="undo">Atsaukt</string>
|
||||
<string name="best_resolution">Labākā izšķirtspēja</string>
|
||||
<string name="clear">Notīrīt</string>
|
||||
<string name="disabled">Atspējots</string>
|
||||
<string name="artists">Mākslinieki</string>
|
||||
<string name="albums">Albūmi</string>
|
||||
<string name="artists">Izpildītāji</string>
|
||||
<string name="albums">Albumi</string>
|
||||
<string name="songs">Dziesmas</string>
|
||||
<string name="events">Notikumi</string>
|
||||
<string name="events">Pasākumi</string>
|
||||
<string name="users">Lietotāji</string>
|
||||
<string name="tracks">Dziesmas</string>
|
||||
<string name="videos_string">Videoklipi</string>
|
||||
<string name="playlists">Atskaņošanas saraksts</string>
|
||||
<string name="videos_string">Video</string>
|
||||
<string name="playlists">Atskaņošanas saraksti</string>
|
||||
<string name="channels">Kanāli</string>
|
||||
<string name="all">Visi</string>
|
||||
<string name="error_report_title">Kļūdas ziņojums</string>
|
||||
@@ -276,10 +275,8 @@
|
||||
<string name="playlist_page_summary">Atskaņošanas sarakstu lapa</string>
|
||||
<string name="video_detail_by">No %s</string>
|
||||
<string name="channel_created_by">Izveidoja %s</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">Kanāla avatāra attēls</string>
|
||||
<string name="content_not_supported">NewPipe šo saturu vēl neatbalsta.
|
||||
\n
|
||||
\nCerams, ka to atbalstīs nākamajā versijā.</string>
|
||||
<string name="detail_sub_channel_thumbnail_view_description">Kanāla profila attēls</string>
|
||||
<string name="content_not_supported">NewPipe vēl neatbalsta šo saturu.\n\nCerams, ka tā atbalsts parādīsies turpmākajās versijās.</string>
|
||||
<string name="feed_use_dedicated_fetch_method_help_text">Vai jūs domājat, ka plūsmas atjaunināšana ir pārāk lēna? Ja tā, mēģiniet iespējot ātro atjaunināšanu (to var mainīt iestatījumos vai nospiežot pogu zemāk). \n \nNewPipe piedāvā divas plūsmas atjaunināšanas stratēģijas: \n• Notiek visa abonēšanas kanāla iegūšana, kas ir lēna, bet pabeigta. \n• izmantojot īpašu servisu, kas ir ātrs, bet parasti nav pilnīgs. \n \nAtšķirība starp abiem ir tā, ka ātrajā parasti trūkst informācijas, piemēram, video ilgums vai veids (nevar atšķirt tiešraides video no parastajiem), un tas var atgriezt mazāk vienumu. \n \nYouTube ir pakalpojuma piemērs, kas piedāvā šo ātro metodi ar savu RSS plūsmu. \n \nTātad izvēle sakrīt ar vēlamo: ātrums vai precīza informācija.</string>
|
||||
<string name="feed_use_dedicated_fetch_method_disable_button">Izslēgt ātro režīmu</string>
|
||||
<string name="feed_use_dedicated_fetch_method_enable_button">Ieslēgt ātro režīmu</string>
|
||||
@@ -300,12 +297,12 @@
|
||||
</plurals>
|
||||
<string name="feed_group_dialog_empty_selection">Nav atlasīts neviens abonements</string>
|
||||
<string name="feed_group_dialog_select_subscriptions">Atlasīt abonementus</string>
|
||||
<string name="feed_processing_message">Notiek plūsmas apstrāde …</string>
|
||||
<string name="feed_notification_loading">Notiek plūsmas ielāde…</string>
|
||||
<string name="feed_processing_message">Apstrādā kanāla jaunumus…</string>
|
||||
<string name="feed_notification_loading">Ielādē kanāla jaunumus…</string>
|
||||
<string name="feed_subscription_not_loaded_count">Nav ielādēts: %d</string>
|
||||
<string name="feed_oldest_subscription_update">Atjaunināta: %s</string>
|
||||
<string name="feed_groups_header_title">Abonementu grupas</string>
|
||||
<string name="fragment_feed_title">Kas jauns</string>
|
||||
<string name="fragment_feed_title">Abonementu grupas jaunumi</string>
|
||||
<plurals name="days">
|
||||
<item quantity="zero">%d dienas</item>
|
||||
<item quantity="one">%d dienu</item>
|
||||
@@ -327,28 +324,27 @@
|
||||
<item quantity="other">%d sekundes</item>
|
||||
</plurals>
|
||||
<string name="new_seek_duration_toast">ExoPlayer ierobežojumu dēļ tīšanas solis tika iestatīts uz %d sekundēm</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Jā, un daļēji skatītos</string>
|
||||
<string name="remove_watched_popup_warning">Tiešraides, kas iepriekš noskatītas un pēc tam pievienotas atskaņošanas sarakstam, tiks noņemtas. \nVai tiešām turpināt?</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Jā, un daļēji atskaņotos</string>
|
||||
<string name="remove_watched_popup_warning">Tiešraides, kas iepriekš noskatītas un pēc tam pievienotas atskaņošanas sarakstam, tiks noņemtas. \nVai tiešām vēlaties turpināt?</string>
|
||||
<string name="remove_watched_popup_title">Vai tiešām vēlaties noņemt skatītās tiešraides?</string>
|
||||
<string name="remove_watched">Noņemt skatīto</string>
|
||||
<string name="systems_language">System default</string>
|
||||
<string name="systems_language">Sistēmas iestatīto</string>
|
||||
<string name="app_language_title">Lietotnes valoda</string>
|
||||
<string name="choose_instance_prompt">Izvēlieties instanci</string>
|
||||
<string name="downloads_storage_use_saf_title">Izmantot sistēmas mapes izvēlni</string>
|
||||
<string name="downloads_storage_use_saf_summary">“Krātuves Piekļuves Sistēma” ļauj lejupielādēt ārējā SD kartē</string>
|
||||
<string name="downloads_storage_ask_summary">Jums tiks jautāts, kur saglabāt katru lejupielādi.
|
||||
\nIeslēdziet sistēmas mapes izvēlni, ja vēlaties lejupielādēt uz ārējo SD karti</string>
|
||||
<string name="downloads_storage_ask_summary">Jums tiks jautāts, kur saglabāt katru lejupielādi.\nIespējojiet sistēmas mapju atlasītāju (SAF), ja vēlaties lejupielādēt uz ārējo SD karti</string>
|
||||
<string name="downloads_storage_ask_title">Jautājiet, kur lejupielādēt</string>
|
||||
<string name="pause_downloads">Pauzēt lejupielādes</string>
|
||||
<string name="start_downloads">Sākt lejupielādes</string>
|
||||
<string name="enable_queue_limit_desc">Viena lejupielāde notiks vienlaikus</string>
|
||||
<string name="enable_queue_limit_desc">Vienlaikus tiks veikta viena lejupielāde</string>
|
||||
<string name="enable_queue_limit">Ierobežot lejupielāžu rindu</string>
|
||||
<string name="close">Aizvērt</string>
|
||||
<string name="pause_downloads_on_mobile_desc">Noderīgi, pārejot uz mobilajiem datiem, lai gan dažas lejupielādes nevar apturēt</string>
|
||||
<string name="pause_downloads_on_mobile">Pārtraukt ierobežotajos tīklos</string>
|
||||
<string name="max_retry_desc">Maksimālais mēģinājumu skaits pirms lejupielādes atcelšanas</string>
|
||||
<string name="max_retry_msg">Maksimālais atkārtoto mēģinājumu skaits</string>
|
||||
<string name="stop">Stop</string>
|
||||
<string name="stop">Pārtraukt</string>
|
||||
<string name="delete_downloaded_files">Dzēst lejupielādētās datnes</string>
|
||||
<string name="confirm_prompt">Vai tiešām vēlaties dzēst lejupielāžu vēsturi un visas lejupielādētās datnes?</string>
|
||||
<string name="clear_download_history">Notīrīt lejupielāžu vēsturi</string>
|
||||
@@ -365,10 +361,10 @@
|
||||
<string name="error_unknown_host">Nevarēja atrast serveri</string>
|
||||
<string name="error_ssl_exception">Nevarēja izveidot drošu savienojumu</string>
|
||||
<string name="error_path_creation">Nevar izveidot mērķa mapi</string>
|
||||
<string name="error_file_creation">Failu nevar izveidot</string>
|
||||
<string name="error_file_creation">Datni nevar izveidot</string>
|
||||
<string name="show_error">Rādīt kļūdu</string>
|
||||
<string name="download_already_pending">Ir gaidāma lejupielāde ar šo nosaukumu</string>
|
||||
<string name="download_already_running">Notiek lejupielāde ar šo nosaukumu</string>
|
||||
<string name="download_already_running">Lejupielāde ar šādu nosaukumu jau pastāv</string>
|
||||
<string name="overwrite_failed">nevar pārrakstīt datni</string>
|
||||
<string name="overwrite_finished_warning">Lejupielādētā datne ar šādu nosaukumu jau pastāv</string>
|
||||
<string name="overwrite_unrelated_warning">Datne ar šādu nosaukumu jau pastāv</string>
|
||||
@@ -377,7 +373,7 @@
|
||||
<string name="permission_denied">Darbību noraidīja sistēma</string>
|
||||
<string name="recovering">atkopjas</string>
|
||||
<string name="post_processing">pēcapstrāde</string>
|
||||
<string name="queued">ielikts rindā</string>
|
||||
<string name="queued">pievienots rindai</string>
|
||||
<string name="list_view_mode">Saraksta skata režīms</string>
|
||||
<string name="autoplay_summary">Sākt atskaņošanu automātiski — %s</string>
|
||||
<string name="minimize_on_exit_summary">Darbība, pārslēdzoties uz citu lietotni no galvenā video atskaņotāja — %s</string>
|
||||
@@ -385,37 +381,32 @@
|
||||
<string name="playback_step">Solis</string>
|
||||
<string name="skip_silence_checkbox">Klusuma brīžos patīt uz priekšu</string>
|
||||
<string name="unhook_checkbox">Atvienot (var izraisīt traucējumus)</string>
|
||||
<string name="import_network_expensive_warning">Paturiet prātā, ka šī darbība var pieprasīt lielu datu daudzumu\n\nVai vēlaties turpināt?</string>
|
||||
<string name="import_network_expensive_warning">Paturiet prātā, ka šī darbība var pieprasīt lielu datu daudzumu\n\nVai tiešām vēlaties turpināt?</string>
|
||||
<string name="drawer_close">Aizvērt Atvilkni</string>
|
||||
<string name="drawer_open">Atvērt Atvilkni</string>
|
||||
<string name="most_liked">Vispopulārākais</string>
|
||||
<string name="import_soundcloud_instructions_hint">jūsuID , soundcloud.com/jūsuID</string>
|
||||
<string name="import_soundcloud_instructions">Importējiet SoundCloud profilu, ierakstot URL vai ID:
|
||||
\n
|
||||
\n1. Tīmekļa pārlūkprogrammā ieslēdziet \"datoru vietni\" (vietne nav pieejama mobilajām ierīcēm)
|
||||
\n2. Dodieties uz šo URL:%1$s
|
||||
\n3. Ierakstaties, kad tiek prasīts
|
||||
\n4. Nokopējiet profila URL, uz kuru tikāt novirzīts.</string>
|
||||
<string name="import_soundcloud_instructions_hint">jūsuID, soundcloud.com/jūsuID</string>
|
||||
<string name="import_soundcloud_instructions">Lai ievietotu SoundCloud profilu, ievadiet tā URL vai ID:\n\n1. Pārlūkā iestatiet \"Darbvirsmas režīms\" (vietne nav pieejama mobilajām ierīcēm) \n2. Dodieties uz šo URL adresi: %1$s\n3. Ja nepieciešams, autorizējieties\n4. Nokopējiet profila URL adreses joslā.</string>
|
||||
<string name="import_youtube_instructions">Ievietot YouTube abonementus no Google Takeout:\n\n1. Dodieties uz šo vietni: %1$s\n2. Autorizējieties, ja nepieciešams\n3. Noklikšķiniet uz \"Visi dati iekļauti\", pēc tam uz \"Atcelt visu atlasi\", pēc tam atlasiet tikai \"Abonementi\" un noklikšķiniet uz \"Labi\"\n4. Noklikšķiniet uz \"Nākamais solis\" un pēc tam uz \"Izveidot eksportu\"\n5. Pēc tam, kad tā parādās, noklikšķiniet uz pogas \"Lejupielādēt\"\n6. Noklikšķiniet IEVIETOT DATNI zemāk un izvēlaties lejupielādēto .zip failu\n7. [Ja .zip failu neizdodas ievietot] Izvelciet .csv failu (parasti zem \"YouTube un YouTube Music/subscriptions/subscriptions.csv\") no arhīva, tad noklikšķiniet uz IEVIETOT DATNI zemāk un atlasiet tikko izvilkto csv failu</string>
|
||||
<string name="preferred_open_action_settings_summary">Noklusējuma darbība, kad atver saturu — %s</string>
|
||||
<string name="preferred_open_action_settings_summary">Noklusējuma darbība, kad atver kopīgoto saiti — %s</string>
|
||||
<string name="show_original_time_ago_summary">Pakalpojumu oriģinālteksti būs redzami video vienumos</string>
|
||||
<string name="enable_disposed_exceptions_summary">Pēc izdzēšanas, piespiedu kārtā ziņot par nepiegādātiem Rx izņēmumiem, ārpus fragmenta vai darbības dzīves cikla</string>
|
||||
<string name="enable_disposed_exceptions_title">Ziņot par ārpus-dzīves-cikla kļūdu</string>
|
||||
<string name="enable_leak_canary_summary">Atmiņas noplūdes uzraudzība var izraisīt lietotnes nereaģēšanu, kad tiek nottīrītas vairs nevajadzīgas lietas no atmiņas</string>
|
||||
<string name="caption_setting_description">Mainīt atskaņotāja subtitru teksta mērogu un fona stilus. Nepieciešama lietotnes restartēšana, lai tā stātos spēkā</string>
|
||||
<string name="playlist_no_uploader">Automātiski ģenerēts (neviens augšupielādētājs nav atrasts)</string>
|
||||
<string name="playlist_add_stream_success">Ielikts atskaņošanas sarakstā</string>
|
||||
<string name="playlist_add_stream_success">Pievienots atskaņošanas sarakstam</string>
|
||||
<string name="unbookmark_playlist">Noņemt Grāmatzīmi</string>
|
||||
<string name="bookmark_playlist">Piespraust atskaņošanas sarakstu</string>
|
||||
<string name="bookmark_playlist">Saglabāt atskaņošanas sarakstu</string>
|
||||
<string name="unmute">Izslēgt audio</string>
|
||||
<string name="mute">Ieslēgt audio</string>
|
||||
<string name="video_player">Video atskaņotājs</string>
|
||||
<string name="preferred_open_action_settings_title">Vēlamā \'atvēršanas\' darbība</string>
|
||||
<string name="video_player">Atvērt video atskaņotājā</string>
|
||||
<string name="preferred_open_action_settings_title">Vēlamā kopīgotās saites atvēršanas darbība</string>
|
||||
<string name="trending">Tendences</string>
|
||||
<string name="copyright">© %1$s no %2$s zem %3$s</string>
|
||||
<string name="download_failed">Lejupielāde neizdevās</string>
|
||||
<string name="enqueue">Pievienot rindai</string>
|
||||
<string name="paused">Pausēts</string>
|
||||
<string name="enqueue">Pievienot lejupielādes rindai</string>
|
||||
<string name="paused">pauzēts</string>
|
||||
<string name="missions_header_pending">Gaida</string>
|
||||
<string name="missions_header_finished">Pabeigts</string>
|
||||
<string name="app_update_available_notification_title">Pieejama jauna NewPipe versija!</string>
|
||||
@@ -438,13 +429,13 @@
|
||||
<string name="playback_pitch">Tonis</string>
|
||||
<string name="playback_tempo">Temps</string>
|
||||
<string name="playback_speed_control">Atskaņošanas Ātruma Kontrole</string>
|
||||
<string name="subscriptions_export_unsuccessful">Nevarēja eksportēt abonementus</string>
|
||||
<string name="subscriptions_import_unsuccessful">Nevarēja importēt abonementus</string>
|
||||
<string name="previous_export">Pagājušais eksports</string>
|
||||
<string name="import_file_title">Importēt failu</string>
|
||||
<string name="export_ongoing">Eksportē…</string>
|
||||
<string name="subscriptions_export_unsuccessful">Nevarēja izgūt abonementus</string>
|
||||
<string name="subscriptions_import_unsuccessful">Nevarēja ievietot abonementus</string>
|
||||
<string name="previous_export">Iepriekšējā izgūšana</string>
|
||||
<string name="import_file_title">Ievietot datni</string>
|
||||
<string name="export_ongoing">Izgūst…</string>
|
||||
<string name="import_ongoing">Ievieto…</string>
|
||||
<string name="export_to">Eksportēt uz</string>
|
||||
<string name="export_to">Izgūt uz</string>
|
||||
<string name="import_from">Ievietot no</string>
|
||||
<string name="import_title">Ievietot</string>
|
||||
<string name="show_original_time_ago_title">Rādīt oriģinālo laiku uz lietām</string>
|
||||
@@ -455,28 +446,28 @@
|
||||
<string name="resize_fill">Piepildīt</string>
|
||||
<string name="resize_fit">Pielāgot</string>
|
||||
<string name="content_language_title">Noklusējuma satura valoda</string>
|
||||
<string name="default_content_country_title">Noklusējuma satura valsts</string>
|
||||
<string name="default_content_country_title">Vēlamā satura valsts</string>
|
||||
<string name="unsupported_url_dialog_message">Nevarēja atpazīt saites URL. Vai atvērt citā lietotnē?</string>
|
||||
<string name="unsupported_url">Neatbalstīts saites URL</string>
|
||||
<string name="show_hold_to_append_summary">Rādīt padomu, kad nospiežat fona vai popup pogu pie video \"Informācija:\"</string>
|
||||
<string name="unsupported_url">Neatbalstīta URL adrese</string>
|
||||
<string name="show_hold_to_append_summary">Rādīt padomu, kad tur nospiestu \"Klausīt fonā\" vai \"Skatīt uznirstošā logā\" pogu \"Detalizēta informācija:\" sadaļā</string>
|
||||
<string name="show_hold_to_append_title">Rādīt \"Nospiediet, lai pievienotu\" padomu</string>
|
||||
<string name="autoplay_title">Automātiski atskaņot</string>
|
||||
<string name="download_dialog_title">Lejupielādēt</string>
|
||||
<string name="resume_on_audio_focus_gain_summary">Turpina atskaņot video pēc pārtraukumiem (piemēram, telefona zvana)</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Turpināt atskaņošanu</string>
|
||||
<string name="enable_watch_history_summary">Uzglabā skatīto video vēsturi</string>
|
||||
<string name="enable_watch_history_summary">Uzglabā skatīto video atskaņošanas vēsturi</string>
|
||||
<string name="settings_category_clear_data_title">Notīrīt datus</string>
|
||||
<string name="enable_playback_state_lists_summary">Rāda atskaņošanas pozīcijas indikatoru sarakstos</string>
|
||||
<string name="enable_playback_state_lists_title">Atskaņošanas pozīcija sarakstos</string>
|
||||
<string name="enable_playback_resume_summary">Saglabāt pēdējo atskaņošanas pozīciju</string>
|
||||
<string name="enable_playback_resume_title">Atsākt atskaņošanu</string>
|
||||
<string name="enable_watch_history_title">Skatīšanās vēsture</string>
|
||||
<string name="enable_watch_history_title">Atskaņošanas vēsture</string>
|
||||
<string name="enable_search_history_summary">Glabāt meklēšanas vēsturi lokāli (ierīces krātuvē)</string>
|
||||
<string name="enable_search_history_title">Meklēšanas vēsture</string>
|
||||
<string name="show_search_suggestions_summary">Atlasīt, kādus ieteikumus rādīt, ievadot vaicājumu meklēšanas joslā</string>
|
||||
<string name="show_search_suggestions_title">Meklēšanas ieteikumi</string>
|
||||
<string name="auto_queue_toggle">Automātiski pievienot</string>
|
||||
<string name="auto_queue_summary">Pievieno līdzīgus video atskaņošanas rindai, kad atskaņo pēdējo video, ja vien nav iespējota atkārtotā, malt uz riņķi, atskaņošana</string>
|
||||
<string name="auto_queue_summary">Pievieno līdzīgus video atskaņošanas rindai, kad atskaņo pēdējo video atskaņošanas rindā, ja vien nav iespējota atkārtotā, malt uz riņķi, atskaņošana</string>
|
||||
<string name="auto_queue_title">Automātiski pievienot nākamo video</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Metadatu kešatmiņa notīrīta</string>
|
||||
<string name="metadata_cache_wipe_summary">Izdzēš visus kešatmiņā glabātos vietnes datus</string>
|
||||
@@ -485,7 +476,7 @@
|
||||
<string name="show_meta_info_summary">Izslēdziet, ja nevēlaties redzēt papildus informācijas laukus - video autoru, video saturu vai meklēšanas vaicājuma rezultātu</string>
|
||||
<string name="show_meta_info_title">Rādīt papildus informāciju</string>
|
||||
<string name="show_description_summary">Izslēdziet, ja nevēlaties redzēt video aprakstu un papildus informāciju</string>
|
||||
<string name="show_description_title">Rādīt video aprakstu</string>
|
||||
<string name="show_description_title">Rādīt aprakstu</string>
|
||||
<string name="show_next_and_similar_title">Rādīt \'Nākamos\' un \'Līdzīgos\' video</string>
|
||||
<string name="show_comments_summary">Izslēdziet, ja vēlaties paslēpt komentārus</string>
|
||||
<string name="show_comments_title">Rādīt komentārus</string>
|
||||
@@ -514,7 +505,7 @@
|
||||
<string name="main_bg_subtitle">Nospiediet uz meklēšanas ikonas, lai atrastu vēlamo saturu.</string>
|
||||
<string name="notification_colorize_title">Pielāgot paziņojumu krāsu</string>
|
||||
<string name="notification_action_nothing">Neko</string>
|
||||
<string name="notification_action_buffering">Ielādējas</string>
|
||||
<string name="notification_action_buffering">Buferē datus</string>
|
||||
<string name="notification_action_shuffle">Samaisīt</string>
|
||||
<string name="notification_action_repeat">Atkārtot</string>
|
||||
<string name="notification_actions_at_most_three">Jūs variet atlasīt ne vairāk kā 3 darbības, ko rādīt kompaktajā paziņojumā!</string>
|
||||
@@ -551,15 +542,15 @@
|
||||
<string name="unsubscribe">Pārtraukt abonementu</string>
|
||||
<string name="subscribed_button_title">Abonēts</string>
|
||||
<string name="subscribe_button_title">Abonēt</string>
|
||||
<string name="use_external_audio_player_title">Izmantot ārējo audio atskaņotāju</string>
|
||||
<string name="use_external_audio_player_title">Lietot ārējo audio atskaņotāju</string>
|
||||
<string name="use_external_video_player_summary">Dažās izšķirtspējās nav pieejami skaņas celiņi</string>
|
||||
<string name="use_external_video_player_title">Izmantot ārējo video atskaņotāju</string>
|
||||
<string name="use_external_video_player_title">Lietot ārējo video atskaņotāju</string>
|
||||
<string name="share_dialog_title">Kopīgot ar</string>
|
||||
<string name="search_showing_result_for">Tiek rādīti %s vaicājuma rezultāti</string>
|
||||
<string name="did_you_mean">Varbūt jūs gribējāt meklēt \"%1$s\"?</string>
|
||||
<string name="settings">Iestatījumi</string>
|
||||
<string name="search">Meklēt</string>
|
||||
<string name="controls_download_desc">Lejupielādēt video datni</string>
|
||||
<string name="controls_download_desc">Lejupielādēt video/audio datni</string>
|
||||
<string name="download">Lejupielādēt</string>
|
||||
<string name="featured">Populāri</string>
|
||||
<string name="download_has_started">Lejupielāde ir sākusies</string>
|
||||
@@ -570,8 +561,8 @@
|
||||
<string name="paid_content">Šis saturs ir pieejams tikai lietotājiem, kuri ir samaksājuši, tāpēc to nevar straumēt vai lejupielādēt ar Newpipe.</string>
|
||||
<string name="youtube_music_premium_content">Šis videoklips ir pieejams tikai YouTube Mūzikas Prēmijas dalībniekiem, tāpēc to nevar straumēt vai lejupielādēt ar Newpipe.</string>
|
||||
<string name="private_content">Šis saturs ir privāts, tāpēc Newpipe to nevar straumēt vai lejupielādēt.</string>
|
||||
<string name="soundcloud_go_plus_content">Šis ir SoundCloud Go+ audio, vismaz jūsu valstī, tāpēc to nevar straumēt vai lejupielādēt ar Newpipe.</string>
|
||||
<string name="georestricted_content">Šis saturs nav pieejams jūsu valstī.</string>
|
||||
<string name="soundcloud_go_plus_content">Šis ir SoundCloud Go+ audio, vismaz jūsu valstī, tāpēc to nevar straumēt vai lejupielādēt ar NewPipe.</string>
|
||||
<string name="georestricted_content">Šis saturs nepieejams jūsu valstī.</string>
|
||||
<string name="crash_the_app">Izraisīt lietotnes nobrukšanu</string>
|
||||
<string name="show_channel_details">Rādīt kanāla informāciju</string>
|
||||
<string name="recaptcha_solve">Atrisināt</string>
|
||||
@@ -592,8 +583,8 @@
|
||||
<string name="dont_show">Nerādīt</string>
|
||||
<string name="account_terminated">Konts ir pārtraukts</string>
|
||||
<string name="comments_are_disabled">Komentāri ir atspējoti</string>
|
||||
<string name="enqueue_next_stream">Ielikt rindā nākošo</string>
|
||||
<string name="enqueued_next">Ielikts rindā nākošais</string>
|
||||
<string name="enqueue_next_stream">Pievienot kā nākamo atskaņošanas rindai</string>
|
||||
<string name="enqueued_next">Pievienots kā nākamais atskaņošanas vienums</string>
|
||||
<string name="start_main_player_fullscreen_title">Sākt video atskaņotāju pilnekrāna režīmā</string>
|
||||
<string name="start_main_player_fullscreen_summary">Nesākt video atskaņošanu samazinātā režīmā, bet pilnekrāna režīmā, ja automātiskā rotācija ir izslēgta</string>
|
||||
<string name="disable_media_tunneling_title">Izslēgt multivides tuneļošanu</string>
|
||||
@@ -606,8 +597,8 @@
|
||||
<string name="check_for_updates">Pārbaudīt atjauninājumus</string>
|
||||
<string name="manual_update_description">Pašrocīgi veikt jaunas versijas pārbaudi</string>
|
||||
<string name="seekbar_preview_thumbnail_title">Video atskaņošanas joslas sīktēla priekšskatījums</string>
|
||||
<string name="checking_updates_toast">Notiek atjauninājumu pārbaude…</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">Sākot ar Android 10, tikai“Krātuves Piekļuves Sistēma” ir atbalstīta</string>
|
||||
<string name="checking_updates_toast">Pārbauda atjauninājumus…</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">Sākot no Android 10, tiek atbalstīta tikai \"Krātuves Piekļuves Izstrādes platforma\"</string>
|
||||
<string name="feed_load_error_account_info">Nevarēja ielādēt straumi priekš \'%s\'.</string>
|
||||
<string name="feed_load_error">Kļūda lādējot plūsmu</string>
|
||||
<string name="feed_load_error_terminated">Autora konts tika slēgts.\nNewPipe turpmāk vairs nevarēs ielādēt šī kanāla saturu.\nVai tiešām vēlaties atteikties no šī kanāla abonēšanas?</string>
|
||||
@@ -620,7 +611,7 @@
|
||||
<string name="low_quality_smaller">Zemas kvalitātes (mazāks)</string>
|
||||
<string name="metadata_privacy">Privātums</string>
|
||||
<string name="metadata_privacy_unlisted">Sarakstā neiekļauts</string>
|
||||
<string name="metadata_host">Uzņēmums</string>
|
||||
<string name="metadata_host">Izmitināšanas serveris</string>
|
||||
<string name="remote_search_suggestions">Servera meklēšanas ieteikumus</string>
|
||||
<string name="mark_as_watched">Atzīmēt kā noskatītu</string>
|
||||
<string name="processing_may_take_a_moment">Apstrādā... Var aizņemt kādu laiku</string>
|
||||
@@ -642,9 +633,9 @@
|
||||
<string name="streams_notification_channel_name">Jauni video</string>
|
||||
<string name="error_report_notification_toast">Radās kļūda, detalizētāku informāciju skatiet paziņojumā</string>
|
||||
<plurals name="new_streams">
|
||||
<item quantity="zero">%s jaunas tiešraides</item>
|
||||
<item quantity="one">%s jauna tiešraide</item>
|
||||
<item quantity="other">%s jaunas tiešraides</item>
|
||||
<item quantity="zero">%s jauni video/audio</item>
|
||||
<item quantity="one">%s jauns video/audio</item>
|
||||
<item quantity="other">%s jauni video/audio</item>
|
||||
</plurals>
|
||||
<string name="streams_notification_channel_description">\@string/enable_streams_notifications_summary</string>
|
||||
<string name="faq_title">Bieži uzdotie jautājumi</string>
|
||||
@@ -655,11 +646,11 @@
|
||||
<string name="left_gesture_control_title">Kreisās puses žesta darbība</string>
|
||||
<string name="msg_failed_to_copy">Neizdevās kopēt starpliktuvē</string>
|
||||
<string name="unset_playlist_thumbnail">Noņemt pastāvīgo sīktēlu</string>
|
||||
<string name="check_new_streams">Pārbaudīt, vai nav jaunas tiešraides</string>
|
||||
<string name="check_new_streams">Pārbaudīt, vai nav jaunu video/audio</string>
|
||||
<string name="show_crash_the_player_summary">Rāda nobrukšanas izsaukšanas funkciju, kad izmantojiet atskaņotāju</string>
|
||||
<string name="remove_duplicates">Dzēst dublikātus</string>
|
||||
<string name="feed_hide_streams_title">Rādīt sekojošās tiešraides</string>
|
||||
<string name="duplicate_in_playlist">Saraksti, kas atzīmēti pelēkā, jau satur šo objektu.</string>
|
||||
<string name="feed_hide_streams_title">Rādīt šādus video/audio</string>
|
||||
<string name="duplicate_in_playlist">Pelēki iekrāsotie atskaņošanas saraksti jau satur šo video/audio.</string>
|
||||
<string name="leak_canary_not_available">LeakCanary nav pieejams</string>
|
||||
<string name="create_error_notification">Izveidot kļūdas paziņojumu</string>
|
||||
<string name="any_network">Jebkurš tīkls</string>
|
||||
@@ -668,19 +659,19 @@
|
||||
<string name="prefer_descriptive_audio_summary">Atskaņos skaņas celiņu ar audio aprakstiem vājredzīgajiem, ja tāds ir pieejams</string>
|
||||
<string name="ignore_hardware_media_buttons_title">Ignorēt pieslēgtās ierīces multimēdiju pogas</string>
|
||||
<string name="delete_downloaded_files_confirm">Vai tiešām vēlaties dzēst visas lejupielādētās datnes?</string>
|
||||
<string name="feed_new_items">Jaunumi kanālā</string>
|
||||
<string name="feed_new_items">Iegūti jauni vienumi</string>
|
||||
<string name="prefer_original_audio_title">Dot priekšroku oriģinālajai skaņai</string>
|
||||
<string name="prefer_original_audio_summary">Atskaņos oriģinālo skaņas celiņu neatkarīgi no iestatītās valodas</string>
|
||||
<string name="prefer_descriptive_audio_title">Dot priekšroku skaņu celiņam ar audio aprakstu</string>
|
||||
<string name="left_gesture_control_summary">Atlasiet žestu atskaņotāja ekrāna kreisajai pusei</string>
|
||||
<string name="right_gesture_control_summary">Atlasiet žestu atskaņotāja ekrāna labajai pusei</string>
|
||||
<string name="left_gesture_control_summary">Iestata žesta darbību atskaņotāja ekrāna kreisajai pusei</string>
|
||||
<string name="right_gesture_control_summary">Iestata žesta darbību atskaņotāja ekrāna labajai pusei</string>
|
||||
<string name="right_gesture_control_title">Labās puses žesta darbība</string>
|
||||
<string name="brightness">Regulēt spilgtumu</string>
|
||||
<string name="volume">Regulēt skaļumu</string>
|
||||
<string name="none">Darīt neko</string>
|
||||
<string name="import_subscriptions_hint">Abonementus var ievietot vai izgūt, izmantojot 3-punktoto izvēlni augšējā labajā ekrāna stūrī</string>
|
||||
<string name="faq_description">Ja Jums rodas problēmas ar lietotni, noteikti apskatiet šīs atbildes bieži uzdotiem jautājumiem!</string>
|
||||
<string name="faq">Skatīt tīkla vietnē</string>
|
||||
<string name="faq_description">Ja jums rodas grūtības ar lietotnes izmantošanu, noteikti apskatiet bieži uzdoto jautājumu atbildes!</string>
|
||||
<string name="faq">Skatīt vietnē</string>
|
||||
<string name="play_queue_audio_track">Skaņa: %s</string>
|
||||
<string name="audio_track">Skaņu celiņš</string>
|
||||
<string name="loading_stream_details">Ielādē straumes informāciju…</string>
|
||||
@@ -702,13 +693,13 @@
|
||||
<string name="progressive_load_interval_summary">Mainīt progresīvā satura ielādes intervāla lielumu (pašlaik %s). Mazāka vērtība var paātrināt to sākotnējo ielādi</string>
|
||||
<string name="yes">Jā</string>
|
||||
<string name="no">Nē</string>
|
||||
<string name="settings_category_backup_restore_title">Rezerves kopēšana un atjaunošana</string>
|
||||
<string name="settings_category_backup_restore_title">Rezerves kopijas izveide un atjaunošana</string>
|
||||
<string name="loading_metadata_title">Metadatu ielādēšana…</string>
|
||||
<string name="main_tabs_position_title">Galvenās cilnes pozīcija</string>
|
||||
<string name="unknown_format">Nepazīstams formāts</string>
|
||||
<string name="feed_show_partially_watched">Daļēji skatīti</string>
|
||||
<string name="no_streams">Nav tiešraides</string>
|
||||
<string name="error_insufficient_storage">Nav pietiekami daudz brīvās vietas uz ierīces</string>
|
||||
<string name="feed_show_partially_watched">Daļēji atskaņotos</string>
|
||||
<string name="no_streams">Nav video/audio</string>
|
||||
<string name="error_insufficient_storage">Ierīcē nav pietiekami daudz brīvas vietas</string>
|
||||
<string name="channel_tab_about">Par</string>
|
||||
<string name="metadata_thumbnails">Sīkattēli</string>
|
||||
<string name="sort">Kārtot</string>
|
||||
@@ -720,16 +711,16 @@
|
||||
<string name="reset_settings_summary">Atiestata visus iestatījumus uz to sākotnējām vērtībām</string>
|
||||
<string name="reset_settings_title">Atiestatīt iestatījumus</string>
|
||||
<string name="reset_all_settings">Atiestatot iestatījumus, visi jūsu iestatītie iestatījumi tiks atmesti uz to noklusētajām vērtībām un lietotne palaista pa jaunu.\n\nVai tiešām vēlaties turpināt?</string>
|
||||
<string name="night_theme_available">Šī opcija ir pieejama tikai, ja %s ir izvēlēts kā motīvs</string>
|
||||
<string name="night_theme_available">Pieejams, kad motīvs iestatīts uz %s</string>
|
||||
<string name="detail_pinned_comment_view_description">Piespraustais komentārs</string>
|
||||
<string name="notifications_disabled">Paziņojumi ir atspējoti</string>
|
||||
<string name="you_successfully_subscribed">Jūs abonējāt šim kanālam</string>
|
||||
<string name="you_successfully_subscribed">Jūs tagad esiet šī kanāla abonents</string>
|
||||
<string name="metadata_banners">Banneri</string>
|
||||
<string name="metadata_subscribers">Abonenti</string>
|
||||
<string name="enumeration_comma">,</string>
|
||||
<string name="toggle_all">Pārslēgt visus</string>
|
||||
<string name="unknown_quality">Nepazīstama kvalitāte</string>
|
||||
<string name="feed_show_watched">Noskatīti</string>
|
||||
<string name="feed_show_watched">Pilnībā atskaņotos</string>
|
||||
<string name="feed_show_upcoming">Gaidāmie</string>
|
||||
<string name="audio_track_type_dubbed">dublēts</string>
|
||||
<string name="audio_track_type_descriptive">aprakstošs</string>
|
||||
@@ -744,14 +735,14 @@
|
||||
<string name="show_error_snackbar">Rādīt kļūdas paziņojumu</string>
|
||||
<string name="feed_fetch_channel_tabs">Piegādāt kanālu cilnes</string>
|
||||
<string name="feed_fetch_channel_tabs_summary">Cilnes, kuras piegādāt, atjaunojot jauninājumus. Šai opcijai nav nekādas iedarbības, ja kanāls tiek atjaunots ātrajā režīmā.</string>
|
||||
<string name="disable_media_tunneling_automatic_info">Multivides tunelēšana tika atspējota pēc noklusējuma tādēļ, ka ir zināms, ka jūsu ierīces modelis to neatbalsta.</string>
|
||||
<string name="disable_media_tunneling_automatic_info">Multimediju tunelēšana tika atspējota pēc noklusējuma tādēļ, ka ir zināms, ka jūsu ierīces modelis to neatbalsta.</string>
|
||||
<string name="select_quality_external_players">Izvēlēties kvalitāti ārējiem atskaņotājiem</string>
|
||||
<string name="settings_category_exoplayer_title">ExoPlayer iestatījumi</string>
|
||||
<string name="show_channel_tabs">Kanālu cilnes</string>
|
||||
<string name="question_mark">\?</string>
|
||||
<string name="share_playlist_content_details">%1$s
|
||||
\n%2$s</string>
|
||||
<string name="get_notified">Tiec paziņots</string>
|
||||
<string name="get_notified">Paziņot kanāla jaunumus</string>
|
||||
<string name="metadata_subchannel_avatars">Apakškanālu avatāri</string>
|
||||
<string name="metadata_uploader_avatars">Augšuplādētāju avatāri</string>
|
||||
<string name="duration">Ilgums</string>
|
||||
@@ -768,8 +759,8 @@
|
||||
<string name="show_more">Rādīt vairāk</string>
|
||||
<string name="show_less">Rādīt mazāk</string>
|
||||
<string name="metadata_avatars">Avatāri</string>
|
||||
<string name="streams_not_yet_supported_removed">Tiešraides, kuras vēl neatbalsta lejuplādētājs, netiek rādītas</string>
|
||||
<string name="selected_stream_external_player_not_supported">Izvēlēto tiešraidi neatbalsta ārējie atskaņotāji</string>
|
||||
<string name="streams_not_yet_supported_removed">Video/audio, ko lejupielādētājs vēl neatbalsta, netiek rādīti</string>
|
||||
<string name="selected_stream_external_player_not_supported">Atlasīto video/audio neatbalsta ārējie atskaņotāji</string>
|
||||
<string name="open_play_queue">Atvērt atskaņošanas rindu</string>
|
||||
<string name="toggle_fullscreen">Pārslēgt pilnekrāna režīmu</string>
|
||||
<string name="toggle_screen_orientation">Pārslēgt ekrāna orientāciju</string>
|
||||
@@ -786,8 +777,8 @@
|
||||
<string name="progressive_load_interval_exoplayer_default">ExoPlayer noklusējuma vērtība</string>
|
||||
<string name="no_video_streams_available_for_external_players">Ārējiem atskaņotājiem nav pieejama neviena video straume</string>
|
||||
<string name="use_exoplayer_decoder_fallback_title">Izmantot ExoPlayer dekodētāja atkāpšanās funkciju</string>
|
||||
<string name="settings_category_exoplayer_summary">Pārvaldīt dažus ExoPlayer iestatījumus. Lai šīs izmaiņas stātos spēkā, ir jārestartē atskaņotājs</string>
|
||||
<string name="use_exoplayer_decoder_fallback_summary">Iespējojiet šo opciju, ja ir problēmas ar dekodētāja inicializāciju, kas atgriežas pie zemākas prioritātes dekodētājiem, ja primārajiem dekodētājiem neizdodas inicializēties. Tas var izraisīt pazeminātu atskaņošanas kvalitāti, nekā, kad izmanto primāros dekoderus</string>
|
||||
<string name="settings_category_exoplayer_summary">Pārvalda dažus ExoPlayer iestatījumus. Lai izmaiņas stātos spēkā, ir jāaizver un jāatver pa jaunu atskaņotājs</string>
|
||||
<string name="use_exoplayer_decoder_fallback_summary">Iespējojiet, ja ir problēmas ar dekodētāja inicializāciju, kas pāriet uz zemākas prioritātes dekodētājiem, ja primārā dekodētāja inicializācija neizdodas. Tas var izraisīt sliktāku atskaņošanas veiktspēju nekā izmantojot primāros dekodētajus</string>
|
||||
<string name="no_audio_streams_available_for_external_players">Ārējiem atskaņotājiem nav pieejama neviena audio straume</string>
|
||||
<string name="unknown_audio_track">Nezināms</string>
|
||||
<string name="always_use_exoplayer_set_output_surface_workaround_title">Vienmēr izmantot ExoPlayer video izvades virsmas iestatījumu risinājumu</string>
|
||||
@@ -799,7 +790,7 @@
|
||||
<string name="channel_tab_shorts">Īsie video</string>
|
||||
<string name="share_playlist">Kopīgot atskaņošanas sarakstu</string>
|
||||
<string name="share_playlist_with_titles">Kopīgot nosaukumus</string>
|
||||
<string name="import_settings_vulnerable_format">Importētā eksporta iestatījumi izmanto ievainojamo formātu, kas tika pārtraukts kopš NewPipe 0.27.0 versijas. Pārliecinieties, ka importētie dati ir no uzticama avota, un turpmāk ir vēlams izmantot tikai datus, kas veikti NewPipe 0.27.0 vai jaunākās versijās. Iestatījumu importēšanas atbalsts šajā neaizsargātajā formātā drīzumā tiks pilnībā aizvākts, un tad vecās NewPipe versijas vairs nevarēs importēt iestatījumus, kas veikti jaunajās versijās.</string>
|
||||
<string name="import_settings_vulnerable_format">Iepriekš izgūtās datnes iestatījumi, ko ievieto, izmanto ievainojamo formātu, kas tika pārtraukts kopš NewPipe 0.27.0 versijas. Pārliecinieties, ka izgūtie dati ir no uzticama avota, un turpmāk ir vēlams izmantot datus, kas izgūti tikai no NewPipe 0.27.0 vai jaunākām versijām. Iestatījumu ievietošanas atbalsts šajā neaizsargātajā formātā drīzumā tiks pilnībā aizvākts, un tad vairs vecās NewPipe versijas nevarēs ievietot iestatījumus, kas izgūti no jaunajām versijām.</string>
|
||||
<string name="always_use_exoplayer_set_output_surface_workaround_summary">Šis risinājums problēmas novēršanai atbrīvo un atkārtoti instantiē video kodekus, kad notiek virsmas maiņa, nevis tieši iestatīt virsmu kodekam. ExoPlayer jau izmanto šo risinājumu dažās ierīcēs, kurām ir šī problēma. Šis iestatījums darbosies tikai ierīcēs, kurās uzstādīta operētājsistēma Android 6 un jaunāka.\n\nIespējojot šo iestatījumu, var novērst atskaņošanas kļūdas, pārslēdzot pašreizējo video atskaņotāju vai pārejot uz pilnekrāna režīmu</string>
|
||||
<string name="tab_bookmarks_short">Atskaņošanas saraksti</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Kopīgot kā pagaidu YouTube atskaņošanas sarakstu</string>
|
||||
@@ -852,5 +843,12 @@
|
||||
<item quantity="other">Ievieto %d abonementus…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_summary">Ievieto abonementus no iepriekšējās .json izgūšanas</string>
|
||||
<string name="export_subscriptions_summary">Izgūst jūsu abonementus .json datnē</string>
|
||||
<string name="export_subscriptions_summary">Izgūt savus abonementus .json datnē</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe pārtrauc Android 5 atbalstu</string>
|
||||
<string name="api23_requirement_dialog_message">Diemžēl NewPipe paļaujas uz dažām bibliotēkām, kuras ir pārtraukušas Android 5.0 un 5.1 atbalstu. Tāpēc nākamā NewPipe versija diemžēl darbosies tikai ierīcēs ar Android 6 vai jaunāku versiju. Sīkāka informācija ir pieejama emuāra rakstā.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Emuāra raksts</string>
|
||||
<string name="unsupported_content_in_country">Šis saturs nepieejams pašlaik iestatītajai satura valstij.\n\nNomainīt iestatīto satura valsti variet zem \"Iestatījumi > Saturs > Vēlamā satura valsts\".</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s atteicās sniegt datus un pieprasa pieteikšanos, lai apstiprinātu, ka pieprasītājs nav robots.\n\nIespējams, ka %1$s ir īslaicīgi bloķējis jūsu IP adresi. Variet kādu laiku pagaidīt vai pārslēgties uz citu IP adresi (piemēram, ieslēdzot/izslēdzot VPN vai pārslēdzoties no Wi-Fi uz mobilajiem datiem).\n\nLūdzu, skatiet <a href="%2$s">šo BUJ sadaļu</a>, lai iegūtu vairāk informācijas.</string>
|
||||
<string name="channel_tab_podcasts">Raidieraksti</string>
|
||||
<string name="channel_tab_courses">Kursi</string>
|
||||
</resources>
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
<string name="metadata_cache_wipe_summary">Hapuskan semua cache data halaman web</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Cache metadata dihapuskan</string>
|
||||
<string name="auto_queue_title">Tambah siaran seterusnya ke giliran secara automatik</string>
|
||||
<string name="auto_queue_summary"></string>
|
||||
<string name="show_search_suggestions_title">Cadangan carian</string>
|
||||
<string name="show_search_suggestions_summary">Tunjukkan cadangan semasa mencari</string>
|
||||
<string name="enable_search_history_title">Sejarah carian</string>
|
||||
|
||||
@@ -102,16 +102,16 @@
|
||||
<string name="show_search_suggestions_summary">Kies de suggesties om te tonen tijdens het zoeken</string>
|
||||
<string name="best_resolution">Beste resolutie</string>
|
||||
<string name="title_activity_about">Over NewPipe</string>
|
||||
<string name="title_licenses">Licenties van derde partijen</string>
|
||||
<string name="title_licenses">Licenties van derden</string>
|
||||
<string name="copyright" formatted="true">© %1$s door %2$s, uitgebracht onder de %3$s</string>
|
||||
<string name="tab_about">Over</string>
|
||||
<string name="tab_about">Over & veelgestelde vragen</string>
|
||||
<string name="tab_licenses">Licenties</string>
|
||||
<string name="app_description">Open source en lichtgewicht streaming voor Android.</string>
|
||||
<string name="app_description">Libre en lichtgewicht streamen op Android.</string>
|
||||
<string name="view_on_github">Bekijken op GitHub</string>
|
||||
<string name="app_license_title">Licentie van NewPipe</string>
|
||||
<string name="app_license_title">De licentie van NewPipe</string>
|
||||
<string name="contribution_encouragement">Hulp is altijd welkom. Of je nu nieuwe ideeën hebt, vertalingen kan aanleveren, wijzigingen in het ontwerp kan verrichten, code kan opschonen of van grote wijzigingen voorzien. Hoe meer hulp, hoe beter het wordt!</string>
|
||||
<string name="read_full_license">Licentie lezen</string>
|
||||
<string name="contribution_title">Bijdragen</string>
|
||||
<string name="contribution_title">Bijdragen</string>
|
||||
<string name="settings_category_downloads_title">Download</string>
|
||||
<string name="settings_file_charset_title">Toegestane tekens in bestandsnamen</string>
|
||||
<string name="settings_file_replacement_character_summary">Ongeldige tekens worden vervangen door deze waarde</string>
|
||||
@@ -182,9 +182,9 @@
|
||||
<string name="start_here_on_popup">In een pop-up afspelen</string>
|
||||
<string name="donation_title">Doneren</string>
|
||||
<string name="donation_encouragement">NewPipe wordt door vrijwilligers in hun vrije tijd ontwikkeld om jou de beste ervaring te brengen. Geef wat terug zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl ze van hun kopje koffie genieten.</string>
|
||||
<string name="give_back">Teruggeven</string>
|
||||
<string name="give_back">Teruggeven</string>
|
||||
<string name="website_title">Website</string>
|
||||
<string name="website_encouragement">Bezoek de website van NewPipe voor meer informatie en het laatste nieuws.</string>
|
||||
<string name="website_encouragement">Bezoek de NewPipe-website voor nieuws en meer informatie.</string>
|
||||
<string name="default_content_country_title">Standaardland voor inhoud</string>
|
||||
<string name="switch_to_background">Verplaatsen naar achtergrond</string>
|
||||
<string name="switch_to_popup">Verplaatsen naar pop-up</string>
|
||||
@@ -304,10 +304,10 @@
|
||||
<string name="one_item_deleted">1 item verwijderd.</string>
|
||||
<string name="app_license">NewPipe is vrije software: je kan het gebruiken, bestuderen, delen en verbeteren zoveel je maar wilt. Je kan het opnieuw uitgeven en/of aanpassen volgens de voorwaarden van de GNU General Public License, gepubliceerd door de Free Software Foundation, versie 3 van de licentie, of (indien gewenst) om het even welke latere versie.</string>
|
||||
<string name="import_settings">Wil je ook de instellingen importeren?</string>
|
||||
<string name="privacy_policy_title">NewPipe\'s privacybeleid</string>
|
||||
<string name="privacy_policy_title">Privébeleid van NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">Het NewPipe-project neemt privacy serieus. Daarom verzamelt de app geen gegevens zonder jouw toestemming.
|
||||
\nNewPipe\'s privacybeleid legt gedetailleerd uit welke gegevens verstuurd en opgeslagen worden als je een crashrapport verstuurt.</string>
|
||||
<string name="read_privacy_policy">Privacybeleid lezen</string>
|
||||
<string name="read_privacy_policy">Privébeleid lezen</string>
|
||||
<string name="start_accept_privacy_policy">Om de Europese Algemene Verordening Gegevensbescherming (ook wel: AVG of GDPR) na te leven, wijzen we je op het nieuwe privacybeleid van NewPipe. Lees dit zorgvuldig.
|
||||
\nJe moet het beleid accepteren om ons het foutrapport te kunnen sturen.</string>
|
||||
<string name="accept">Accepteren</string>
|
||||
@@ -845,7 +845,7 @@
|
||||
<string name="player_http_403">HTTP-fout 403 ontvangen van de server tijdens het afspelen, waarschijnlijk veroorzaakt door het verlopen van de streaming-url of een ip-blokkade</string>
|
||||
<string name="player_http_invalid_status">HTTP-fout %1$s ontvangen van de server tijdens het afspelen</string>
|
||||
<string name="youtube_player_http_403">HTTP-fout 403 ontvangen van de server tijdens het afspelen, waarschijnlijk veroorzaakt door een ip-blokkade of problemen met de deobfuscatie van de streaming-url</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s weigerde gegevens te verstrekken en vroeg om inloggegevens om te bevestigen dat de aanvrager geen bot is.\n\nUw IP-adres is mogelijk tijdelijk geblokkeerd door %1$s. U kunt even wachten of overschakelen naar een ander IP-adres (bijvoorbeeld door een VPN in/uit te schakelen of door over te schakelen van wifi naar mobiele data).\n\nZie <a href="%2$s">dit FAQ-item</a> voor meer informatie.</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s weigerde gegevens te verstrekken en vroeg om een login om te bevestigen dat de aanvrager geen bot is.\n\nUw ip-adres is mogelijk tijdelijk geblokkeerd door %1$s. U kunt even wachten of overschakelen naar een ander ip-adres (bijvoorbeeld door een vpn in of uit te schakelen, of door over te schakelen van wifi naar mobiele data).\n\nBekijk <a href="%2$s">deze FAQ</a> voor meer informatie.</string>
|
||||
<string name="unsupported_content_in_country">Deze inhoud is niet beschikbaar voor het momenteel geselecteerde inhoudsland.\n\nWijzig uw selectie via ‘Instellingen > Inhoud > Standaardland voor inhoud’.</string>
|
||||
<string name="kao_dialog_more_info">Details</string>
|
||||
<string name="kao_solution">Oplossing</string>
|
||||
@@ -867,4 +867,9 @@
|
||||
<string name="import_subscriptions_summary">Importeer abonnementen vanuit een eerder geëxporteerd .json-bestand</string>
|
||||
<string name="export_subscriptions_summary">Exporteer uw abonnementen naar een .json-bestand</string>
|
||||
<string name="kao_dialog_warning">In augustus 2025 kondigde Google aan dat vanaf september 2026 voor het installeren van apps op gecertificeerde Android-apparaten, inclusief apps die buiten de Play Store zijn geïnstalleerd, een ontwikkelaarsverificatie vereist is. Omdat de ontwikkelaars van NewPipe het niet eens zijn met deze vereiste, zal NewPipe na die datum niet meer werken op gecertificeerde Android-apparaten.</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe stopt met ondersteuning voor Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">NewPipe is afhankelijk van een aantal bibliotheken die geen ondersteuning meer bieden voor Android 5.0 en 5.1. De volgende versie van NewPipe zal daarom alleen werken op apparaten met Android 6 of hoger. Lees meer in het blogbericht.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Blogbericht</string>
|
||||
<string name="channel_tab_podcasts">Podcasts</string>
|
||||
<string name="channel_tab_courses">Cursussen</string>
|
||||
</resources>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<string name="no_player_found_toast">ਸਟ੍ਰੀਮਿੰਗ ਲਈ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ (ਤੁਸੀਂ ਇਸਨੂੰ ਚਲਾਉਣ ਲਈ VLC ਪਲੇਅਰ ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ)।</string>
|
||||
<string name="install">ਇੰਸਟਾਲ ਕਰੋ</string>
|
||||
<string name="cancel">ਰੱਦ ਕਰੋ</string>
|
||||
<string name="open_in_browser">ਬ੍ਰਾਊਜ਼ਰ \'ਚ ਖੋਲ੍ਹੋ</string>
|
||||
<string name="open_in_browser">ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ</string>
|
||||
<string name="open_in_popup_mode">ਪੌਪ-ਅਪ ਮੋਡ \'ਚ ਖੋਲ੍ਹੋ</string>
|
||||
<string name="share">ਸਾਂਝਾ ਕਰੋ</string>
|
||||
<string name="download">ਡਾਊਨਲੋਡ ਕਰੋ</string>
|
||||
@@ -78,7 +78,7 @@
|
||||
<string name="settings_category_player_title">ਪਲੇਅਰ</string>
|
||||
<string name="settings_category_player_behavior_title">ਵਿਵਹਾਰ</string>
|
||||
<string name="settings_category_video_audio_title">ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ</string>
|
||||
<string name="settings_category_history_title">ਇਤਿਹਾਸ ਅਤੇ ਕੈਸ਼-ਭੰਡਾਰ</string>
|
||||
<string name="settings_category_history_title">ਇਤਿਹਾਸ ਅਤੇ ਕੈਸ਼-ਭੰਡਾਰ</string>
|
||||
<string name="settings_category_appearance_title">ਦਿੱਖ</string>
|
||||
<string name="settings_category_debug_title">ਡੀ-ਬੱਗ</string>
|
||||
<string name="background_player_playing_toast">ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ</string>
|
||||
@@ -195,22 +195,22 @@
|
||||
<string name="charset_letters_and_digits">ਅੱਖਰ ਅਤੇ ਅੰਕ</string>
|
||||
<string name="charset_most_special_characters">ਬਹੁਤੇ ਖ਼ਾਸ ਅੱਖਰ</string>
|
||||
<string name="title_activity_about">ਨਿਊਪਾਈਪ ਬਾਰੇ ਵਿੱਚ ਜਾਣੋ</string>
|
||||
<string name="title_licenses">ਤੀਜੀ ਧਿਰ ਦੇ ਲਾਈਸੈਂਸ</string>
|
||||
<string name="title_licenses">ਤੀਜੀ-ਧਿਰ ਦੇ ਲਾਇਸੈਂਸ</string>
|
||||
<string name="copyright" formatted="true">%2$s ਵੱਲੋਂ © %1$s , %3$s ਅਧੀਨ</string>
|
||||
<string name="tab_about">ਐਪ ਬਾਰੇ ਤੇ ਆਮ ਸਵਾਲ</string>
|
||||
<string name="tab_licenses">ਲਾਈਸੈਂਸ</string>
|
||||
<string name="app_description">ਐਂਡਰਾਇਡ ਦੇ ਲਈ ਹਲਕੀ ਅਤੇ ਮੁਫ਼ਤ ਸਟ੍ਰੀਮਿੰਗ ਐਪਲੀਕੇਸ਼ਨ।</string>
|
||||
<string name="tab_licenses">ਲਾਇਸੈਂਸ</string>
|
||||
<string name="app_description">ਐਂਡਰਾਇਡ \'ਤੇ ਹਲਕੀ ਅਤੇ ਮੁਫ਼ਤ ਸਟ੍ਰੀਮਿੰਗ ਐਪਲੀਕੇਸ਼ਨ।</string>
|
||||
<string name="contribution_title">ਯੋਗਦਾਨ ਪਾਓ</string>
|
||||
<string name="contribution_encouragement">ਭਾਵੇਂ ਤੁਹਾਡੇ ਕੋਲ ਵਿਚਾਰ ਹਨ; ਅਨੁਵਾਦ, ਡਿਜ਼ਾਈਨ ਬਦਲਾਵ, ਕੋਡ ਦੀ ਸਫਾਈ, ਜਾਂ ਅਸਲ ਭਾਰੀ ਕੋਡ ਬਦਲਾਵ — ਹਰ ਮਦਦ ਦਾ ਸਦਾ ਸਵਾਗਤ ਹੈ। ਜਿੰਨਾ ਇਸ ਨੂੰ ਜ਼ਿਆਦਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਉੱਨਾ ਹੀ ਇਹ ਬਿਹਤਰ ਹੁੰਦਾ ਹੈ!</string>
|
||||
<string name="view_on_github">ਗਿਟਹੱਬ ਤੇ ਵੇਖੋ</string>
|
||||
<string name="contribution_encouragement">ਭਾਵੇਂ ਤੁਹਾਡੇ ਕੋਲ ਅਨੁਵਾਦ, ਡਿਜ਼ਾਈਨ ਬਦਲਾਵ, ਕੋਡ ਦੀ ਸਫਾਈ, ਜਾਂ ਅਸਲ ਭਾਰੀ ਕੋਡ ਬਦਲਾਵ ਦੇ ਵਿਚਾਰ ਹੋਣ - ਹਰ ਮਦਦ ਦਾ ਸਦਾ ਸਵਾਗਤ ਹੈ। ਜਿੰਨਾ ਇਸ ਨੂੰ ਜ਼ਿਆਦਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਉੱਨਾ ਹੀ ਇਹ ਬਿਹਤਰ ਹੁੰਦਾ ਜਾਂਦਾ ਹੈ!</string>
|
||||
<string name="view_on_github">GitHub \'ਤੇ ਵੇਖੋ</string>
|
||||
<string name="donation_title">ਦਾਨ ਕਰੋ</string>
|
||||
<string name="donation_encouragement">ਨਿਊਪਾਈਪ ਵਲੰਟੀਅਰਾਂ ਦੁਆਰਾ ਵਿਕਸਤ ਕੀਤੀ ਗਈ ਹੈ ਜੋ ਤੁਹਾਡੇ ਲਈ ਬਿਹਤਰ ਵਰਤੋਂਕਾਰ ਤਜ਼ਰਬਾ ਲਿਆਉਣ ਲਈ ਸਮਾਂ ਬਿਤਾਉਂਦੇ ਹਨ। ਡਿਵੈਲਪਰਾਂ ਵਾਸਤੇ ਇੱਕ ਕੱਪ ਕਾਫ਼ੀ ਖ਼ਰੀਦ ਦਿਓ ਤਾਂ ਕਿ ਇਸਦਾ ਆਨੰਦ ਲੈਂਦੇ ਹੋਏ ਉਹ ਨਿਊਪਾਈਪ ਨੂੰ ਹੋਰ ਵਧੀਆ ਬਣਾ ਸਕਣ।</string>
|
||||
<string name="donation_encouragement">ਨਿਊਪਾਈਪ ਨੂੰ ਵਲੰਟੀਅਰਾਂ ਦੁਆਰਾ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ ਆਪਣਾ ਖਾਲੀ ਸਮਾਂ ਤੁਹਾਨੂੰ ਸਭ ਤੋਂ ਵਧੀਆ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਸਮਰਪਿਤ ਕਰਦੇ ਹਨ। ਡਿਵੈਲਪਰਾਂ ਦਾ ਸਮਰਥਨ ਕਰੋ ਤਾਂ ਜੋ ਉਹ ਨਿਊਪਾਈਪ ਨੂੰ ਹੋਰ ਵੀ ਬਿਹਤਰ ਬਣਾ ਸਕਣ ਅਤੇ ਅਜਿਹਾ ਕਰਦੇ ਹੋਏ ਇੱਕ ਕੱਪ ਕੌਫੀ ਦਾ ਆਨੰਦ ਮਾਣ ਸਕਣ।</string>
|
||||
<string name="give_back">ਵਾਪਸ ਦਿਓ</string>
|
||||
<string name="website_title">ਵੈੱਬਸਾਈਟ</string>
|
||||
<string name="website_encouragement">ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਅਤੇ ਖ਼ਬਰਾਂ ਲਈ ਨਿਊਪਾਈਪ ਵੈੱਬਸਾਈਟ ਵੇਖੋ।</string>
|
||||
<string name="app_license_title">ਨਿਊਪਾਈਪ ਲਾਈਸੈਂਸ</string>
|
||||
<string name="app_license">ਨਿਊਪਾਈਪ ਇੱਕ ਕਾਪੀਲਿਫਟ ਮੁਫ਼ਤ ਸਾਫਟਵੇਅਰ ਹੈ। ਤੁਸੀਂ ਇਸ ਦੀ ਵਰਤੋਂ, ਇਸ ਦਾ ਅਧਿਐਨ ਅਤੇ ਇਸ ਨੂੰ ਸਾਂਝਾ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸ ਵਿੱਚ ਆਪਣੀ ਮਰਜ਼ੀ ਅਨੁਸਾਰ ਸੁਧਾਰ ਸਕਦੇ ਹੋ। ਖਾਸ ਤੌਰ \'ਤੇ ਤੁਸੀਂ ਇਸ ਨੂੰ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੈਂਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਦੇ ਅਧੀਨ ਵੰਡ ਸਕਦੇ ਹੋ / ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਮੁਫਤ ਸਾਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਾਂ ਤਾਂ ਲਾਈਸੈਂਸ ਦਾ ਵਰਜ਼ਨ 3, ਜਾਂ (ਤੁਹਾਡੇ ਵਿਕਲਪ \'ਤੇ) ਬਾਅਦ ਦਾ ਕੋਈ ਸੰਸਕਰਣ।</string>
|
||||
<string name="read_full_license">ਲਾਈਸੈਂਸ ਪੜ੍ਹੋ</string>
|
||||
<string name="app_license_title">ਨਿਊਪਾਈਪ ਦਾ ਲਾਇਸੈਂਸ</string>
|
||||
<string name="app_license">ਨਿਊਪਾਈਪ ਇੱਕ ਕਾਪੀਲਿਫਟ ਮੁਫ਼ਤ ਸਾਫਟਵੇਅਰ ਹੈ। ਤੁਸੀਂ ਇਸ ਦੀ ਵਰਤੋਂ, ਇਸ ਦਾ ਅਧਿਐਨ ਅਤੇ ਇਸ ਨੂੰ ਸਾਂਝਾ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸ ਵਿੱਚ ਆਪਣੀ ਮਰਜ਼ੀ ਅਨੁਸਾਰ ਸੁਧਾਰ ਸਕਦੇ ਹੋ। ਖਾਸ ਤੌਰ \'ਤੇ ਤੁਸੀਂ ਇਸ ਨੂੰ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਇਸੈਂਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਦੇ ਅਧੀਨ ਵੰਡ ਸਕਦੇ ਹੋ / ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਮੁਫਤ ਸਾਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਾਂ ਤਾਂ ਲਾਇਸੈਂਸ ਦਾ ਵਰਜ਼ਨ 3, ਜਾਂ (ਤੁਹਾਡੇ ਵਿਕਲਪ \'ਤੇ) ਬਾਅਦ ਦਾ ਕੋਈ ਸੰਸਕਰਣ।</string>
|
||||
<string name="read_full_license">ਲਾਇਸੈਂਸ ਪੜ੍ਹੋ</string>
|
||||
<string name="title_activity_history">ਇਤਿਹਾਸ</string>
|
||||
<string name="action_history">ਇਤਿਹਾਸ</string>
|
||||
<string name="delete_item_search_history">ਕੀ ਤੁਸੀਂ ਇਸਨੂੰ ਖੋਜ ਇਤਿਹਾਸ ਵਿੱਚੋਂ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ\?</string>
|
||||
@@ -424,7 +424,7 @@
|
||||
<string name="metadata_language">ਭਾਸ਼ਾ</string>
|
||||
<string name="metadata_age_limit">ਉਮਰ ਹੱਦ</string>
|
||||
<string name="metadata_privacy">ਪਰਦੇਦਾਰੀ</string>
|
||||
<string name="metadata_licence">ਲਾਈਸੈਂਸ</string>
|
||||
<string name="metadata_licence">ਲਾਇਸੈਂਸ</string>
|
||||
<string name="metadata_tags">ਟੈਗ</string>
|
||||
<string name="metadata_category">ਸ਼੍ਰੇਣੀ</string>
|
||||
<string name="description_select_disable">ਵੇਰਵੇ \'ਚੋਂ ਲਿਖਤ ਚੁਣਨਾ ਬੰਦ ਕਰੋ</string>
|
||||
@@ -848,4 +848,7 @@
|
||||
<string name="import_subscriptions_summary">ਪਹਿਲਾਂ ਕੀਤੇ .json ਐਕਸਪੋਰਟ ਤੋਂ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰੋ</string>
|
||||
<string name="export_subscriptions_summary">ਆਪਣੀਆਂ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਨੂੰ .json ਫਾਈਲ ਵਿੱਚ ਐਕਸਪੋਰਟ ਕਰੋ</string>
|
||||
<string name="import_from_previous_export">ਪਹਿਲਾਂ ਕੀਤੇ ਐਕਸਪੋਰਟ ਤੋਂ ਇੰਪੋਰਟ ਕਰੋ</string>
|
||||
<string name="api23_requirement_dialog_title">ਨਿਊਪਾਈਪ ਐਂਡਰਾਇਡ 5 ਲਈ ਸਮਰਥਨ ਬੰਦ ਕਰ ਰਿਹਾ ਹੈ</string>
|
||||
<string name="api23_requirement_dialog_message">ਬਦਕਿਸਮਤੀ ਨਾਲ NewPipe ਕੁਝ ਲਾਇਬ੍ਰੇਰੀਆਂ \'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੇ Android 5.0 ਅਤੇ 5.1 ਲਈ ਸਮਰਥਨ ਛੱਡ ਦਿੱਤਾ ਹੈ। ਇਸ ਲਈ, ਅਗਲੀ NewPipe ਰੀਲੀਜ਼ ਸਿਰਫ਼ Android 6 ਜਾਂ ਇਸ ਤੋਂ ਉੱਚੇ ਵਰਜਨ ਵਾਲੇ ਡਿਵਾਈਸਾਂ \'ਤੇ ਕੰਮ ਕਰੇਗੀ। ਬਲੌਗਪੋਸਟ ਵਿੱਚ ਹੋਰ ਪੜ੍ਹੋ।</string>
|
||||
<string name="api23_requirement_dialog_blogpost">ਬਲੌਗਪੋਸਟ</string>
|
||||
</resources>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
<string name="msg_running_detail">Naciśnij, aby zobaczyć szczegóły</string>
|
||||
<string name="msg_wait">Proszę czekać…</string>
|
||||
<string name="msg_copied">Skopiowano do schowka</string>
|
||||
<string name="no_available_dir">Zdefiniuj katalog zapisywania później w ustawieniach</string>
|
||||
<string name="no_available_dir">Zdefiniuj folder zapisywania później w ustawieniach</string>
|
||||
<string name="app_ui_crash">Awaria aplikacji/interfejsu</string>
|
||||
<string name="start">Rozpocznij</string>
|
||||
<string name="title_activity_recaptcha">Zadanie reCAPTCHA</string>
|
||||
@@ -896,4 +896,9 @@
|
||||
<string name="import_subscriptions_summary">Zaimportuj subskrypcje z poprzedniego eksportu do .json</string>
|
||||
<string name="export_subscriptions_summary">Wyeksportuj swoje subskrypcje do pliku .json</string>
|
||||
<string name="import_from_previous_export">Importuj z poprzedniego eksportu</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe przestaje obsługiwać Androida 5</string>
|
||||
<string name="api23_requirement_dialog_message">Niestety, NewPipe zależy od kilku bibliotek, które przestały obsługiwać Androida 5.0 i 5.1. W związku z tym kolejna wersja NewPipe będzie działać wyłącznie na urządzeniach z Androidem 6 lub nowszym. Czytaj więcej we wpisie na blogu.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Wpis na blogu</string>
|
||||
<string name="channel_tab_podcasts">Podcasty</string>
|
||||
<string name="channel_tab_courses">Kursy</string>
|
||||
</resources>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
<string name="parsing_error">O site não pôde ser analisado</string>
|
||||
<string name="play_audio">Áudio</string>
|
||||
<string name="play_with_kodi_title">Reproduzir no Kodi</string>
|
||||
<string name="search">Buscar</string>
|
||||
<string name="search">Pesquisar</string>
|
||||
<string name="show_play_with_kodi_summary">Mostrar opção para reproduzir o vídeo no Kodi</string>
|
||||
<string name="use_external_audio_player_title">Usar player de áudio externo</string>
|
||||
<string name="use_external_video_player_title">Usar um player de vídeo alternativo</string>
|
||||
@@ -101,15 +101,15 @@
|
||||
<string name="show_search_suggestions_title">Sugestões de busca</string>
|
||||
<string name="show_search_suggestions_summary">Escolha as sugestões a serem exibidas enquanto estiver buscando</string>
|
||||
<string name="best_resolution">Melhor resolução</string>
|
||||
<string name="title_licenses">Licenças de Terceiros</string>
|
||||
<string name="tab_about">Sobre & FAQ</string>
|
||||
<string name="title_licenses">Licenças de terceiros</string>
|
||||
<string name="tab_about">Sobre & Perguntas Frequentes</string>
|
||||
<string name="tab_licenses">Licenças</string>
|
||||
<string name="app_description">Transmissão leve e livre no Android.</string>
|
||||
<string name="app_description">Streaming leve e gratuito no Android.</string>
|
||||
<string name="view_on_github">Ver no GitHub</string>
|
||||
<string name="app_license_title">Licença do NewPipe</string>
|
||||
<string name="contribution_encouragement">Se você tem ideias de: tradução, mudança no design, limpeza de código ou grandes mudanças de código — ajuda é sempre bem-vinda. Quanto mais se faz, melhor fica!</string>
|
||||
<string name="read_full_license">Ver licença</string>
|
||||
<string name="contribution_title">Colaborar</string>
|
||||
<string name="contribution_encouragement">Caso você tenha ideias; tradução, alterações de design, limpeza de código ou alterações realmente pesadas de código, a ajuda é sempre bem-vinda. Quanto mais for feito, melhor será!</string>
|
||||
<string name="read_full_license">Ler licença</string>
|
||||
<string name="contribution_title">Contribuir</string>
|
||||
<string name="copyright" formatted="true">© %1$s %2$s protegido pela licença %3$s</string>
|
||||
<string name="title_activity_about">Sobre o NewPipe</string>
|
||||
<string name="settings_category_downloads_title">Download</string>
|
||||
@@ -183,10 +183,10 @@
|
||||
<string name="unknown_content">[Desconhecido]</string>
|
||||
<string name="start_here_on_background">Reproduzir em segundo plano</string>
|
||||
<string name="start_here_on_popup">Reproduzir em um Popup</string>
|
||||
<string name="donation_title">Fazer doação</string>
|
||||
<string name="donation_encouragement">O NewPipe é desenvolvido por voluntários que usam seu tempo livre para trazer a você a melhor experiência de usuário. Retribua e ajude os desenvolvedores a tornarem o NewPipe ainda melhor enquanto eles desfrutam de uma xícara de café.</string>
|
||||
<string name="donation_title">Doar</string>
|
||||
<string name="donation_encouragement">O NewPipe é desenvolvido por voluntários que passam seu tempo livre trazendo a você a melhor experiência de usuário. Retribua para ajudar os desenvolvedores a tornar o NewPipe ainda melhor enquanto tomam uma xícara de café.</string>
|
||||
<string name="give_back">Retribuir</string>
|
||||
<string name="website_title">Site oficial</string>
|
||||
<string name="website_title">Site</string>
|
||||
<string name="website_encouragement">Visite o site do NewPipe para mais informações e novidades.</string>
|
||||
<string name="no_player_found_toast">O player de vídeo não foi encontrado, mas você pode instalar o VLC para tentar reproduzi-lo.</string>
|
||||
<string name="default_content_country_title">País padrão do conteúdo</string>
|
||||
@@ -304,12 +304,12 @@
|
||||
<string name="delete_search_history_alert">Remover todo o histórico de buscas?</string>
|
||||
<string name="search_history_deleted">Histórico de busca removido</string>
|
||||
<string name="one_item_deleted">1 item excluído.</string>
|
||||
<string name="app_license">NewPipe é um copyleft de software livre: Você pode usar, estudar, compartilhar e melhorar a seu gosto. Especificamente você pode redistribuir e/ou modificá-lo sob os termos da GNU General Public License como publicado pela Fundação de Software Livre, na versão 3 da Licença, ou (a seu critério) qualquer versão posterior.</string>
|
||||
<string name="app_license">NewPipe é um software copyleft libre: você pode usá-lo, estudá-lo, compartilhá-lo e melhorá-lo à vontade. Especificamente, você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (a seu critério) qualquer versão posterior.</string>
|
||||
<string name="import_settings">Você também quer importar as configurações?</string>
|
||||
<string name="privacy_policy_title">Política de privacidade do NewPipe</string>
|
||||
<string name="privacy_policy_title">Política de Privacidade do NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">O projeto NewPipe leva sua privacidade muito a sério. Por isso, o aplicativo não coleta nenhum dado sem seu consentimento.
|
||||
\nA política de privacidade do NewPipe explica em detalhes quais dados são envidados e salvos quando você manda um relatório de erro.</string>
|
||||
<string name="read_privacy_policy">Ver política de privacidade</string>
|
||||
<string name="read_privacy_policy">Leia a política de privacidade</string>
|
||||
<string name="start_accept_privacy_policy">A fim de cumprir com o Regulamento Geral sobre a Proteção de Dados da UE (RGPD), chamamos sua atenção para a política de privacidade do NewPipe. Por favor, leia com atenção.
|
||||
\nVocê deve aceitá-la para nos enviar o relatório de erros.</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
@@ -447,7 +447,7 @@
|
||||
<string name="app_language_title">Idioma do aplicativo</string>
|
||||
<string name="systems_language">Padrão do sistema</string>
|
||||
<string name="subtitle_activity_recaptcha">Toque em \"Pronto\" ao resolver</string>
|
||||
<string name="done">Pronto</string>
|
||||
<string name="done">Concluído</string>
|
||||
<string name="videos_string">Vídeos</string>
|
||||
<plurals name="seconds">
|
||||
<item quantity="one">%d segundo</item>
|
||||
@@ -710,7 +710,7 @@
|
||||
<string name="unknown_quality">Qualidade desconhecida</string>
|
||||
<string name="progressive_load_interval_title">Tamanho do intervalo de carregamento da reprodução</string>
|
||||
<string name="faq">Ver no site</string>
|
||||
<string name="faq_description">Se você está com problemas ao usar o aplicativo, confira estas respostas para perguntas comuns!</string>
|
||||
<string name="faq_description">Se você estiver tendo problemas para usar o aplicativo, verifique estas respostas para perguntas comuns!</string>
|
||||
<string name="faq_title">Perguntas frequentes</string>
|
||||
<string name="sort">Classificar</string>
|
||||
<string name="fast_mode">Modo rápido</string>
|
||||
@@ -822,7 +822,7 @@
|
||||
<string name="error_insufficient_storage">Não há espaço livre suficiente no dispositivo</string>
|
||||
<string name="yes">Sim</string>
|
||||
<string name="no">Não</string>
|
||||
<string name="settings_category_backup_restore_title">Backup & Restauração</string>
|
||||
<string name="settings_category_backup_restore_title">Backup e restauração</string>
|
||||
<string name="auto_update_check_description">O NewPipe pode verificar automaticamente se há novas versões de tempos em tempos e notificá-lo quando elas estiverem disponíveis.
|
||||
\nDeseja ativar essa opção?</string>
|
||||
<string name="reset_settings_title">Restaurar configurações</string>
|
||||
@@ -884,4 +884,9 @@
|
||||
<string name="import_subscriptions_summary">Importar inscrições do arquivo .json exportado anterior</string>
|
||||
<string name="export_subscriptions_summary">Exportar inscrições para arquivo .json</string>
|
||||
<string name="import_from_previous_export">Importar da exportação anterior</string>
|
||||
<string name="api23_requirement_dialog_title">O NewPipe deixará de oferecer suporte ao Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Infelizmente, o NewPipe depende de algumas bibliotecas que deixaram de oferecer suporte para o Android 5.0 e 5.1. Por isso, a próxima versão do NewPipe só funcionará em dispositivos com Android 6 ou superior, infelizmente. Saiba mais na publicação do blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Postagem no blog</string>
|
||||
<string name="channel_tab_podcasts">Podcasts</string>
|
||||
<string name="channel_tab_courses">Cursos</string>
|
||||
</resources>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="restricted_video">Este vídeo está restringido a idades.
|
||||
\n
|
||||
\nPara o poder ver, tem que ativar \"%1$s\" nas definições.</string>
|
||||
<string name="read_full_license">Ver licença</string>
|
||||
<string name="read_full_license">Ler licença</string>
|
||||
<string name="peertube_instance_add_https_only">Apenas os URL HTTPS são suportados</string>
|
||||
<string name="peertube_instance_add_fail">Falha ao validar a instância</string>
|
||||
<string name="clear_download_history">Limpar histórico de descargas</string>
|
||||
@@ -120,7 +120,7 @@
|
||||
<item quantity="other">%d selecionados</item>
|
||||
</plurals>
|
||||
<string name="share">Partilhar</string>
|
||||
<string name="read_privacy_policy">Ver política de privacidade</string>
|
||||
<string name="read_privacy_policy">Leia a política de privacidade</string>
|
||||
<string name="player_unrecoverable_failure">Ocorreu um erro compulsivo do reprodutor</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Ativar \"Modo restrito\" do YouTube</string>
|
||||
<string name="invalid_directory">Pasta inexistente</string>
|
||||
@@ -166,7 +166,7 @@
|
||||
<string name="playlist_thumbnail_change_success">Miniatura da lista de reprodução alterada.</string>
|
||||
<string name="error_unable_to_load_comments">Não foi possível carregar os comentários</string>
|
||||
<string name="default_content_country_title">País padrão para conteúdo</string>
|
||||
<string name="app_description">Aplicação livre de reprodução de transmissões para Android.</string>
|
||||
<string name="app_description">Streaming livre e gratuito no Android.</string>
|
||||
<string name="content_language_title">Idioma padrão para conteúdo</string>
|
||||
<string name="import_youtube_instructions">Importar subscrições do YouTube do Google Takeout:
|
||||
\n
|
||||
@@ -181,7 +181,7 @@
|
||||
<string name="recaptcha_request_toast">Desafio reCAPTCHA solicitado</string>
|
||||
<string name="autoplay_title">Reprodução automática</string>
|
||||
<string name="peertube_instance_add_exists">Instância já existe</string>
|
||||
<string name="donation_encouragement">NewPipe é desenvolvido por voluntários que utilizam o seu tempo livre para nos proporcionar a melhor experiência. Retribua para ajudar os programadores a tornarem NewPipe ainda melhor.</string>
|
||||
<string name="donation_encouragement">O NewPipe é desenvolvido por voluntários que passam o seu tempo livre a trazer-lhe a melhor experiência de utilizador. Retribua para ajudar os programadores a fazer o NewPipe ainda melhor enquanto tomam uma chávena de café.</string>
|
||||
<string name="auto_queue_summary">Continuar (sem repetição) a fila de reprodução anexando um vídeo relacionado</string>
|
||||
<string name="always">Sempre</string>
|
||||
<string name="start_accept_privacy_policy">Para cumprir com o Regulamento Geral da Proteção de Dados (RGPD), chamamos a sua atenção para a política de privacidade do NewPipe. Por favor, leia com atenção.
|
||||
@@ -203,7 +203,7 @@
|
||||
<string name="minimize_on_exit_summary">Ação a executar ao trocar para outra aplicação a partir do menu principal - %s</string>
|
||||
<string name="use_external_video_player_title">Utilizar reprodutor de vídeo externo</string>
|
||||
<string name="info_labels">O quê:\nPedido:\nIdioma do conteúdo:\nPaís do conteúdo\nIdioma da aplicação\nServiço:\nHora GMT:\nPacote:\nVersão:\nSO Versão:</string>
|
||||
<string name="contribution_encouragement">Se tem ideias para: tradução, alterações de desenho, limpeza de código, ou alterações significativas no código fonte - todas as ajudas são bem-vindas. Quanto mais se faz, melhor ficará!</string>
|
||||
<string name="contribution_encouragement">Caso tenha ideias; tradução, alterações de design, limpeza de código ou alterações realmente pesadas de código, a ajuda é sempre bem-vinda. Quanto mais for feito, melhor será!</string>
|
||||
<string name="settings_category_clear_data_title">Limpar dados</string>
|
||||
<string name="just_once">Apenas uma vez</string>
|
||||
<string name="feed_subscription_not_loaded_count">Não carregado: %d</string>
|
||||
@@ -242,7 +242,7 @@
|
||||
<string name="download_path_audio_dialog_title">Escolha a pasta para colocar os ficheiros de áudio</string>
|
||||
<string name="app_update_available_notification_title">Atualização NewPipe disponível!</string>
|
||||
<string name="events">Eventos</string>
|
||||
<string name="privacy_policy_title">Política de privacidade do NewPipe</string>
|
||||
<string name="privacy_policy_title">Política de Privacidade do NewPipe</string>
|
||||
<string name="could_not_load_thumbnails">Não foi possível carregar todas as miniaturas</string>
|
||||
<string name="audio">Áudio</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
@@ -264,7 +264,7 @@
|
||||
<string name="seek_duration_title">Duração da pesquisa de avanço/recuo rápido</string>
|
||||
<string name="missing_file">Ficheiro movido ou eliminado</string>
|
||||
<string name="title_last_played">Última reprodução</string>
|
||||
<string name="website_encouragement">Visite o site NewPipe para obter mais informação e novidades.</string>
|
||||
<string name="website_encouragement">Visite o site do NewPipe para mais informações e novidades.</string>
|
||||
<string name="import_soundcloud_instructions">Importe o seu perfil SoundCloud digitando o URL ou a ID.:
|
||||
\n
|
||||
\n1. Ative o modo desktop do seu navegador web (o site não está disponível para dispositivos móveis)
|
||||
@@ -310,10 +310,10 @@
|
||||
<string name="charset_most_special_characters">Mais caracteres especiais</string>
|
||||
<string name="download_path_audio_title">Pasta para ficheiros de áudio</string>
|
||||
<string name="error_details_headline">Detalhes:</string>
|
||||
<string name="settings_category_downloads_title">Transferências</string>
|
||||
<string name="settings_category_downloads_title">Descarregar</string>
|
||||
<string name="settings_category_feed_title">Fonte</string>
|
||||
<string name="playlist_page_summary">Página da lista de reprodução</string>
|
||||
<string name="settings">Definições</string>
|
||||
<string name="settings">Configurações</string>
|
||||
<string name="title_most_played">Mais reproduzido</string>
|
||||
<string name="search_showing_result_for">A mostrar resultados para: %s</string>
|
||||
<string name="switch_to_background">Mudar para segundo plano</string>
|
||||
@@ -368,7 +368,7 @@
|
||||
<string name="app_ui_crash">Aplicação terminou em erro</string>
|
||||
<string name="delete_item_search_history">Deseja remover este item do histórico de pesquisas\?</string>
|
||||
<string name="resume_on_audio_focus_gain_title">Continuar reprodução</string>
|
||||
<string name="app_license">NewPipe é um software livre \"copyleft\": pode utilizar, estudar, partilhar e melhorar a aplicação. Especificamente, pode redistribuir e/ou modificar a aplicação nos termos da GNU General Public License, conforme publicada pela Free Software Foundation, tanto a versão 3 da licença ou (por opção) qualquer versão posterior.</string>
|
||||
<string name="app_license">NewPipe é um software copyleft libre: pode usá-lo, estudá-lo, partilhá-lo e melhorá-lo à vontade. Especificamente, pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (ao seu critério) qualquer versão posterior.</string>
|
||||
<string name="infinite_videos">∞ vídeos</string>
|
||||
<string name="export_ongoing">A exportar…</string>
|
||||
<string name="most_liked">Mais apreciados</string>
|
||||
@@ -386,7 +386,7 @@
|
||||
<string name="download_already_pending">Existe uma descarga pendente com este nome</string>
|
||||
<string name="accept">Aceitar</string>
|
||||
<string name="what_happened_headline">O que ocorreu:</string>
|
||||
<string name="contribution_title">Participar</string>
|
||||
<string name="contribution_title">Contribuir</string>
|
||||
<string name="controls_background_title">Segundo plano</string>
|
||||
<string name="unknown_content">[Desconhecido]</string>
|
||||
<string name="peertube_instance_url_help">Encontre as instâncias que gosta em %s</string>
|
||||
@@ -430,9 +430,9 @@
|
||||
<string name="saved_tabs_invalid_json">Não foi possível ler as guias gravadas, portanto usando as guias predefinidas</string>
|
||||
<string name="close">Fechar</string>
|
||||
<string name="caption_none">Sem legendas</string>
|
||||
<string name="website_title">Site oficial</string>
|
||||
<string name="website_title">Site</string>
|
||||
<string name="tab_subscriptions">Subscrições</string>
|
||||
<string name="give_back">Contribuir</string>
|
||||
<string name="give_back">Retribuir</string>
|
||||
<string name="default_audio_format_title">Formato padrão de áudio</string>
|
||||
<string name="invalid_file">O ficheiro não existe ou não tem permissões para ler e/ou escrever</string>
|
||||
<string name="feed_group_dialog_empty_name">O nome do grupo está vazio</string>
|
||||
@@ -491,7 +491,7 @@
|
||||
<string name="content_not_available">Conteúdo indisponível</string>
|
||||
<string name="subscribed_button_title">Subscrito</string>
|
||||
<string name="thumbnail_cache_wipe_complete_notice">Cache de imagens limpa</string>
|
||||
<string name="tab_about">Sobre e perguntas frequentes</string>
|
||||
<string name="tab_about">Sobre & Perguntas Frequentes</string>
|
||||
<string name="subscribers_count_not_available">Contagem de subscrições indisponível</string>
|
||||
<string name="preferred_open_action_settings_summary">Ação padrão ao abrir o conteúdo — %s</string>
|
||||
<string name="playback_reset">Repor</string>
|
||||
@@ -710,7 +710,7 @@
|
||||
<string name="select_quality_external_players">Selecione a qualidade para reprodutores externos</string>
|
||||
<string name="progressive_load_interval_title">Tamanho do intervalo de carregamento da reprodução</string>
|
||||
<string name="faq_title">Perguntas frequentes</string>
|
||||
<string name="faq_description">Se está a ter problemas a usar a aplicação, veja estas respostas para perguntas mais comuns!</string>
|
||||
<string name="faq_description">Se tem problemas a usar a app, verifique estas respostas para perguntas comuns!</string>
|
||||
<string name="faq">Ver no site</string>
|
||||
<string name="fast_mode">Modo rápido</string>
|
||||
<string name="import_subscriptions_hint">Importar ou exportar subscrições do menu de 3 pontos</string>
|
||||
@@ -826,7 +826,7 @@
|
||||
\nTem certeza que deseja continuar?</string>
|
||||
<string name="yes">Sim</string>
|
||||
<string name="no">Não</string>
|
||||
<string name="settings_category_backup_restore_title">Cópia de segurança e restauro</string>
|
||||
<string name="settings_category_backup_restore_title">Backup e restauração</string>
|
||||
<string name="reset_settings_title">Repor definições</string>
|
||||
<string name="error_insufficient_storage">Não há espaço suficiente no aparelho</string>
|
||||
<string name="import_settings_vulnerable_format">As configurações na exportação a serem importadas usam um formato vulnerável depreciado desde NewPipe 0.27.0. Certifique-se de que a exportação que é importada é de uma fonte confiável e prefira usar apenas as exportações obtidas do NewPipe 0.27.0 ou mais recentes no futuro. O suporte para importar configurações neste formato vulnerável será removido em breve completamente e, em seguida, versões antigas do NewPipe não serão capazes de importar configurações de exportações de novas versões.</string>
|
||||
@@ -884,4 +884,7 @@
|
||||
<string name="import_subscriptions_summary">Importar subscrições do ficheiro .json anteriormente exportado</string>
|
||||
<string name="export_subscriptions_summary">Exportar subscrições para um ficheiro .json</string>
|
||||
<string name="import_from_previous_export">Importar da exportação anterior</string>
|
||||
<string name="api23_requirement_dialog_title">O NewPipe deixará de apoiar o Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Infelizmente, o NewPipe depende de algumas bibliotecas que terminaram apoio para o Android 5.0 e 5.1. Por isso, a próxima versão do NewPipe só funcionará em dispositivos com Android 6 ou superior, infelizmente. Saiba mais na publicação do blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Postagem no blog</string>
|
||||
</resources>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<string name="share">Partilhar</string>
|
||||
<string name="download">Descarregar</string>
|
||||
<string name="search">Pesquisar</string>
|
||||
<string name="settings">Definições</string>
|
||||
<string name="settings">Configurações</string>
|
||||
<string name="did_you_mean">Será que queria dizer \"%1$s\"\?</string>
|
||||
<string name="share_dialog_title">Partilhar com</string>
|
||||
<string name="use_external_video_player_title">Utilizar reprodutor de vídeo externo</string>
|
||||
@@ -104,14 +104,14 @@
|
||||
<string name="title_activity_about">Sobre o NewPipe</string>
|
||||
<string name="title_licenses">Licenças de terceiros</string>
|
||||
<string name="copyright" formatted="true">© %1$s de %2$s nos termos da %3$s</string>
|
||||
<string name="tab_about">Sobre e perguntas frequentes</string>
|
||||
<string name="tab_about">Sobre & Perguntas Frequentes</string>
|
||||
<string name="tab_licenses">Licenças</string>
|
||||
<string name="app_description">Aplicação de reprodução para Android.</string>
|
||||
<string name="app_description">Streaming livre e gratuito no Android.</string>
|
||||
<string name="view_on_github">Ver no GitHub</string>
|
||||
<string name="app_license_title">Licença do NewPipe</string>
|
||||
<string name="contribution_encouragement">Se tem ideias para: tradução, alterações de desenho, limpeza de código, ou alterações significativas no código fonte - todas as ajudas são bem-vindas. Quanto mais se faz, melhor ficará!</string>
|
||||
<string name="read_full_license">Ver licença</string>
|
||||
<string name="contribution_title">Participar</string>
|
||||
<string name="contribution_encouragement">Caso tenha ideias; tradução, alterações de design, limpeza de código ou alterações realmente pesadas de código, a ajuda é sempre bem-vinda. Quanto mais for feito, melhor será!</string>
|
||||
<string name="read_full_license">Ler licença</string>
|
||||
<string name="contribution_title">Contribuir</string>
|
||||
<string name="subscribe_button_title">Subscrever</string>
|
||||
<string name="subscribed_button_title">Subscrito</string>
|
||||
<string name="channel_unsubscribed">Canal não subscrito</string>
|
||||
@@ -151,7 +151,7 @@
|
||||
<item quantity="many">%s vídeos</item>
|
||||
<item quantity="other">%s vídeos</item>
|
||||
</plurals>
|
||||
<string name="settings_category_downloads_title">Descargas</string>
|
||||
<string name="settings_category_downloads_title">Descarregar</string>
|
||||
<string name="settings_file_charset_title">Carateres permitidos no nome dos ficheiros</string>
|
||||
<string name="settings_file_replacement_character_summary">Os carateres inválidos são substituídos por este valor</string>
|
||||
<string name="settings_file_replacement_character_title">Carácter de substituição</string>
|
||||
@@ -212,8 +212,8 @@
|
||||
<string name="error_occurred_detail">Ocorreu um erro: %1$s</string>
|
||||
<string name="no_streams_available_download">Não existem vídeos para descarregar</string>
|
||||
<string name="dismiss">Rejeitar</string>
|
||||
<string name="website_title">Site oficial</string>
|
||||
<string name="website_encouragement">Visite o site NewPipe para obter mais informação e novidades.</string>
|
||||
<string name="website_title">Site</string>
|
||||
<string name="website_encouragement">Visite o site do NewPipe para mais informações e novidades.</string>
|
||||
<string name="kiosk_page_summary">Página \'kiosk\'</string>
|
||||
<string name="export_complete_toast">Exportado</string>
|
||||
<string name="import_complete_toast">Importado</string>
|
||||
@@ -291,14 +291,14 @@
|
||||
<string name="delete_search_history_alert">Remover todo o histórico de pesquisas\?</string>
|
||||
<string name="search_history_deleted">Histórico de pesquisa removido</string>
|
||||
<string name="one_item_deleted">1 item eliminado.</string>
|
||||
<string name="donation_encouragement">NewPipe é desenvolvido por voluntários que utilizam o seu tempo livre para nos proporcionar a melhor experiência. Retribua para ajudar os programadores a tornarem NewPipe ainda melhor.</string>
|
||||
<string name="give_back">Contribuir</string>
|
||||
<string name="privacy_policy_title">Política de privacidade do NewPipe</string>
|
||||
<string name="donation_encouragement">O NewPipe é desenvolvido por voluntários que passam o seu tempo livre a trazer-lhe a melhor experiência de utilizador. Retribua para ajudar os programadores a fazer o NewPipe ainda melhor enquanto tomam uma chávena de café.</string>
|
||||
<string name="give_back">Retribuir</string>
|
||||
<string name="privacy_policy_title">Política de Privacidade do NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">O projeto NewPipe leva a sua privacidade muito a sério. Por isso, não recolhe dados sem o seu consentimento.
|
||||
\nA polícia de privacidade do NewPipe explica, em detalhe, os tipos de dados enviados sempre que submete um relatório de erro.</string>
|
||||
<string name="read_privacy_policy">Ver política de privacidade</string>
|
||||
<string name="read_privacy_policy">Leia a política de privacidade</string>
|
||||
<string name="auto_queue_title">Adicionar o próximo vídeo à fila automaticamente</string>
|
||||
<string name="app_license">NewPipe é um software livre \"copyleft\": pode utilizar, estudar, partilhar e melhorar a aplicação. Especificamente, pode redistribuir e/ou modificar a aplicação nos termos da GNU General Public License, conforme publicada pela Free Software Foundation, tanto a versão 3 da licença ou (por opção) qualquer versão posterior.</string>
|
||||
<string name="app_license">NewPipe é um software copyleft libre: pode usá-lo, estudá-lo, partilhá-lo e melhorá-lo à vontade. Especificamente, pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (ao seu critério) qualquer versão posterior.</string>
|
||||
<string name="import_settings">Também deseja importar as definições\?</string>
|
||||
<string name="hold_to_append">Toque longo para colocar na fila</string>
|
||||
<string name="preferred_open_action_settings_title">Ação de \'Abrir\' preferida</string>
|
||||
@@ -447,7 +447,7 @@
|
||||
<string name="app_language_title">Idioma da aplicação</string>
|
||||
<string name="systems_language">Predefinição do sistema</string>
|
||||
<string name="subtitle_activity_recaptcha">Prima \"Feito\" ao resolver</string>
|
||||
<string name="done">Feito</string>
|
||||
<string name="done">Concluído</string>
|
||||
<string name="feed_use_dedicated_fetch_method_help_text">Acha que a fonte demora muito tempo a carregar? Se sim, tente ativar o carregamento rápido (pode alterar a opção nas definições ou no botão abaixo).
|
||||
\n
|
||||
\nNewPipe oferece duas estratégias de carregamento:
|
||||
@@ -671,8 +671,7 @@
|
||||
<string name="create_error_notification">Criar uma notificação de erro</string>
|
||||
<string name="no_appropriate_file_manager_message">Não foi encontrado um gestor de ficheiros apropriado para esta ação.
|
||||
\nPor favor, instale um gestor de ficheiros ou tente desativar \'%s\' nas definições das descargas</string>
|
||||
<string name="no_appropriate_file_manager_message_android_10">Nenhum gestor de ficheiros apropriado foi encontrado para esta ação.
|
||||
\nPor favor, instale um gestor de ficheiros compatível com SAF (Storage Access Framework)</string>
|
||||
<string name="no_appropriate_file_manager_message_android_10">Nenhum gestor de ficheiros apropriado foi encontrado para esta ação. \nPor favor, instale um gestor de ficheiros compatível com o Storage Access Framework</string>
|
||||
<string name="detail_pinned_comment_view_description">Comentário afixado</string>
|
||||
<string name="leak_canary_not_available">LeakCanary não disponível</string>
|
||||
<string name="progressive_load_interval_exoplayer_default">Predefinição ExoPlayer</string>
|
||||
@@ -711,7 +710,7 @@
|
||||
<string name="progressive_load_interval_title">Tamanho do intervalo de carregamento da reprodução</string>
|
||||
<string name="faq_title">Perguntas frequentes</string>
|
||||
<string name="faq">Ver no site</string>
|
||||
<string name="faq_description">Se está a ter problemas a usar a aplicação, veja estas respostas para as perguntas mais comuns!</string>
|
||||
<string name="faq_description">Se tem problemas a usar a app, verifique estas respostas para perguntas comuns!</string>
|
||||
<string name="sort">Ordem</string>
|
||||
<string name="fast_mode">Modo rápido</string>
|
||||
<string name="import_subscriptions_hint">Importe ou exporte subscrições no menu 3 pontos</string>
|
||||
@@ -822,7 +821,7 @@
|
||||
<string name="yes">Sim</string>
|
||||
<string name="no">Não</string>
|
||||
<string name="reset_settings_summary">Repor valores originais de todas as definições</string>
|
||||
<string name="settings_category_backup_restore_title">Cópia de segurança e restauro</string>
|
||||
<string name="settings_category_backup_restore_title">Backup e restauração</string>
|
||||
<string name="reset_settings_title">Repor definições</string>
|
||||
<string name="reset_all_settings">A restauração de todas as configurações descartará todas as suas configurações preferidas e reiniciará a aplicação.
|
||||
\n
|
||||
@@ -884,4 +883,7 @@
|
||||
<string name="import_subscriptions_summary">Importar subscrições do ficheiro .json anteriormente exportado</string>
|
||||
<string name="export_subscriptions_summary">Exportar subscrições para um ficheiro .json</string>
|
||||
<string name="import_from_previous_export">Importar da exportação anterior</string>
|
||||
<string name="api23_requirement_dialog_title">O NewPipe deixará de apoiar o Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Infelizmente, o NewPipe depende de algumas bibliotecas que terminaram apoio para o Android 5.0 e 5.1. Por isso, a próxima versão do NewPipe só funcionará em dispositivos com Android 6 ou superior, infelizmente. Saiba mais na publicação do blog.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Postagem no blog</string>
|
||||
</resources>
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<string name="no_player_found">Niciun player pentru streaming găsit. Instalați VLC\?</string>
|
||||
<string name="install">Instalare</string>
|
||||
<string name="cancel">Anulare</string>
|
||||
<string name="open_in_browser">Deschidere în browser</string>
|
||||
<string name="open_in_browser">Deschide în browser</string>
|
||||
<string name="share">Distribuire</string>
|
||||
<string name="download">Descărcare</string>
|
||||
<string name="search">Căutare</string>
|
||||
<string name="search">Caută</string>
|
||||
<string name="settings">Setări</string>
|
||||
<string name="did_you_mean">V-ați referit la: %1$s \?</string>
|
||||
<string name="did_you_mean">V-ați referit la: „%1$s” ?</string>
|
||||
<string name="share_dialog_title">Distribuiți cu</string>
|
||||
<string name="use_external_video_player_title">Folosiți un player video extern</string>
|
||||
<string name="use_external_audio_player_title">Folosește un player audio extern</string>
|
||||
@@ -22,7 +22,7 @@
|
||||
<string name="default_resolution_title">Rezoluție implicită</string>
|
||||
<string name="play_with_kodi_title">Redați folosind Kodi</string>
|
||||
<string name="kore_not_found">Aplicația Kore nu a fost găsită. Doriți să o instalați?</string>
|
||||
<string name="show_play_with_kodi_title">Arată opțiunea \"Redați folosind Kodi\"</string>
|
||||
<string name="show_play_with_kodi_title">Arată opțiunea „Redați folosind Kodi”</string>
|
||||
<string name="show_play_with_kodi_summary">Arată opțiunea de redare a videoclipurilor via player-ului media Kodi</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Format audio implicit</string>
|
||||
@@ -33,8 +33,8 @@
|
||||
<string name="show_next_and_similar_title">Arată videoclipurile care \'Urmează\' și cele \'Similare\'</string>
|
||||
<string name="unsupported_url">URL nesuportat</string>
|
||||
<string name="content_language_title">Limba dorită a conținutului</string>
|
||||
<string name="settings_category_video_audio_title">Video și Audio</string>
|
||||
<string name="settings_category_appearance_title">Aspect</string>
|
||||
<string name="settings_category_video_audio_title">Video și audio</string>
|
||||
<string name="settings_category_appearance_title">Aparență</string>
|
||||
<string name="background_player_playing_toast">Redare în fundal</string>
|
||||
<string name="content">Conținut</string>
|
||||
<string name="show_age_restricted_content_title">Afișați conținutul restricționat de vârstă</string>
|
||||
@@ -116,7 +116,7 @@
|
||||
<string name="resume_on_audio_focus_gain_summary">Continuă redarea după întreruperi (ex: după apeluri)</string>
|
||||
<string name="settings_category_player_title">Player</string>
|
||||
<string name="settings_category_player_behavior_title">Comportament</string>
|
||||
<string name="settings_category_history_title">Istoric și cache</string>
|
||||
<string name="settings_category_history_title">Istorie și cache</string>
|
||||
<string name="undo">Anulare</string>
|
||||
<string name="notification_channel_name">Notificare NewPipe</string>
|
||||
<string name="notification_channel_description">Notificări pentru playerul NewPipe</string>
|
||||
@@ -140,7 +140,7 @@
|
||||
<item quantity="few">%s videoclipuri</item>
|
||||
<item quantity="other">%s de videoclipuri</item>
|
||||
</plurals>
|
||||
<string name="settings_category_downloads_title">Descărcări</string>
|
||||
<string name="settings_category_downloads_title">Descarcă</string>
|
||||
<string name="settings_file_charset_title">Caractere permise în numele fișierelor</string>
|
||||
<string name="settings_file_replacement_character_summary">Caracterele nevalabile sunt înlocuite cu această valoare</string>
|
||||
<string name="settings_file_replacement_character_title">Caracter de înlocuire</string>
|
||||
@@ -149,21 +149,21 @@
|
||||
<string name="title_activity_about">Despre NewPipe</string>
|
||||
<string name="title_licenses">Licențe terță-parte</string>
|
||||
<string name="copyright" formatted="true">© %1$s de %2$s sub %3$s</string>
|
||||
<string name="tab_about">Despre & FAQ</string>
|
||||
<string name="tab_about">Despre & Întrebări Comune</string>
|
||||
<string name="tab_licenses">Licențe</string>
|
||||
<string name="app_description">Un player de streaming „ușor” liber, pentru Android.</string>
|
||||
<string name="view_on_github">Vedeți pe GitHub</string>
|
||||
<string name="app_license_title">Licența NewPipe</string>
|
||||
<string name="contribution_encouragement">Fie că aveți idei de: traducere, modificări de design, curățare a codului sau modificări de cod cu adevărat importante - ajutorul este întotdeauna binevenit. Cu cât se face mai mult, cu atât mai bine devine!</string>
|
||||
<string name="read_full_license">Citiți licența</string>
|
||||
<string name="contribution_title">Contribuiți</string>
|
||||
<string name="app_description">Streaming sursă-liberă pentru Android.</string>
|
||||
<string name="view_on_github">Vezi pe GitHub</string>
|
||||
<string name="app_license_title">Licența a NewPipe</string>
|
||||
<string name="contribution_encouragement">Când îți vine idea de; traduceri, schimbări de design, curățare cod sau schimbări reale de cod - Ajutorul este mereu binevenit. Cu cât mai mult, cu cât mai bine!</string>
|
||||
<string name="read_full_license">Citește licența</string>
|
||||
<string name="contribution_title">Contribuie</string>
|
||||
<string name="title_activity_history">Istoric</string>
|
||||
<string name="action_history">Istoric</string>
|
||||
<string name="delete_item_search_history">Doriți să ștergeți acest element din istoricul de căutare?</string>
|
||||
<string name="main_page_content">Conținutul pagini principale</string>
|
||||
<string name="blank_page_summary">Pagină goală</string>
|
||||
<string name="kiosk_page_summary">Pagina de chioșc</string>
|
||||
<string name="channel_page_summary">Pagină canale</string>
|
||||
<string name="channel_page_summary">Pagină canal</string>
|
||||
<string name="select_a_channel">Alegeți un canal</string>
|
||||
<string name="no_channel_subscribed_yet">Nu v-ați abonat la niciun canal deocamdată</string>
|
||||
<string name="select_a_kiosk">Alegeți un chioșc</string>
|
||||
@@ -183,8 +183,8 @@
|
||||
<string name="metadata_cache_wipe_complete_notice">Cache pentru metadata șters</string>
|
||||
<string name="auto_queue_title">Adaugă următorul stream în coadă automat</string>
|
||||
<string name="auto_queue_summary">Continuă coadă de redare (care nu se repetă) prin adăugarea unui flux asemănător</string>
|
||||
<string name="show_hold_to_append_title">Afișați sfatul \"Țineți apăsat pentru a adăuga\"</string>
|
||||
<string name="show_hold_to_append_summary">Afișați un sfat la apăsarea fundalului sau a butonului popup în videoclipul \"Detalii:\"</string>
|
||||
<string name="show_hold_to_append_title">Afișați sfatul „Țineți apăsat pentru a adăuga”</string>
|
||||
<string name="show_hold_to_append_summary">Afișați un sfat la apăsarea fundalului sau a butonului popup în videoclipul „Detalii:”</string>
|
||||
<string name="default_content_country_title">Țara implicită pentru conținut</string>
|
||||
<string name="settings_category_debug_title">Depanare</string>
|
||||
<string name="play_all">Redă toate</string>
|
||||
@@ -210,10 +210,10 @@
|
||||
<string name="invalid_file">Fișierul nu există sau lipsește permisiunea de a citi sau scrie în el</string>
|
||||
<string name="file_name_empty_error">Numele fișierului nu poate fi gol</string>
|
||||
<string name="error_occurred_detail">A survenit o eroare: %1$s</string>
|
||||
<string name="donation_encouragement">NewPipe este dezvoltat de voluntari care își petrec timpul liber pentru a vă oferi cea mai bună experiență de utilizare. Donează pentru a ajuta dezvoltatorii să facă NewPipe și mai bun în timp ce ei se bucură de o ceașcă de cafea.</string>
|
||||
<string name="give_back">Dăruiește înapoi</string>
|
||||
<string name="website_title">Site web</string>
|
||||
<string name="website_encouragement">Vizitați site-ul NewPipe pentru mai multe informații și noutăți.</string>
|
||||
<string name="donation_encouragement">NewPipe este creat de voluntari ce își oferă timpul lor liber pentru ați oferi cea mai bună experiență. Oferă înapoi creatorilor pentru a face aplicația și mai bună.</string>
|
||||
<string name="give_back">Oferă Înapoi</string>
|
||||
<string name="website_title">Site Web</string>
|
||||
<string name="website_encouragement">Vizitează site-ul NewPipe pentru mai multe informații si noutăți.</string>
|
||||
<string name="title_last_played">Ultimele vizionări</string>
|
||||
<string name="title_most_played">Cele mai multe vizionări</string>
|
||||
<string name="export_complete_toast">Exportat</string>
|
||||
@@ -240,7 +240,7 @@
|
||||
<string name="create">Creați</string>
|
||||
<string name="dismiss">Respingeți</string>
|
||||
<string name="rename">Redenumiți</string>
|
||||
<string name="donation_title">Donați</string>
|
||||
<string name="donation_title">Donează</string>
|
||||
<string name="import_settings">De asemenea, doriți să importați setări?</string>
|
||||
<string name="name">Nume</string>
|
||||
<string name="playlist_creation_success">Listă de redare creată</string>
|
||||
@@ -295,11 +295,11 @@
|
||||
<string name="resize_zoom">Mărire</string>
|
||||
<string name="caption_setting_title">Subtitrări</string>
|
||||
<string name="caption_setting_description">Modificați scara textului de legendă a playerului și stilurile de fundal. Necesită repornirea aplicației pentru a intra în vigoare</string>
|
||||
<string name="app_license">NewPipe este un software liber cu copyleft: îl puteți folosi, studia, distribui și îmbunătăți în voie. Mai exact, îl puteți redistribui și/sau modifica în conformitate cu termenii Licenței Publice Generale GNU, așa cum a fost publicată de Free Software Foundation, fie versiunea 3 a Licenței, fie (la alegerea dumneavoastră) orice versiune ulterioară.</string>
|
||||
<string name="privacy_policy_title">Politica de confidențialitate a NewPipe</string>
|
||||
<string name="app_license">NewPipe este o aplicație liberă: Poți folosi, studia, partaja, și a o face mai bună după propria voință. Poți redistribui și/sau modifica aplicația în termenii GNU GPL publicate de Free Software Foundation, toate dintre cele 3 versiuni, or (la opțiunea dvs.) orice versiune mai nouă.</string>
|
||||
<string name="privacy_policy_title">Politica de Confidențialitate NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">Proiectul NewPipe ia foarte în serios confidențialitatea dumneavoastră. Prin urmare, aplicația nu colectează niciun fel de date fără consimțământul dumneavoastră.
|
||||
\nPolitica de confidențialitate a NewPipe explică în detaliu ce date sunt trimise și stocate atunci când trimiteți un raport de eroare.</string>
|
||||
<string name="read_privacy_policy">Citiți politica de confidențialitate</string>
|
||||
<string name="read_privacy_policy">Citește Politica de confidențialitate</string>
|
||||
<string name="saved_tabs_invalid_json">Nu s-au putut citi filele salvate, deci se folosesc cele implicite</string>
|
||||
<string name="restore_defaults">Restaurați valorile implicite</string>
|
||||
<string name="restore_defaults_confirmation">Doriți să restaurați valorile implicite\?</string>
|
||||
@@ -335,7 +335,7 @@
|
||||
<string name="peertube_instance_url_title">Instanțe PeerTube</string>
|
||||
<string name="seek_duration_title">Durată derulare rapidă înainte/înapoi</string>
|
||||
<string name="done">Gata</string>
|
||||
<string name="subtitle_activity_recaptcha">Apăsați \"Gata\" după ce ați rezolvat problema</string>
|
||||
<string name="subtitle_activity_recaptcha">Apăsați „Gata” după ce ați rezolvat problema</string>
|
||||
<string name="error_report_open_issue_button_text">Raportați pe GitHub</string>
|
||||
<string name="clear_cookie_summary">Ștergeți cookie-urile pe care NewPipe le stochează atunci când rezolvați un reCAPTCHA</string>
|
||||
<string name="recaptcha_cookies_cleared">Cookie-urile reCAPTCHA au fost șterse</string>
|
||||
@@ -345,11 +345,9 @@
|
||||
<string name="artists">Artiști</string>
|
||||
<string name="albums">Albume</string>
|
||||
<string name="songs">Melodii</string>
|
||||
<string name="restricted_video">Acest videoclip este restricționat în funcție de vârstă.
|
||||
\n
|
||||
\nActivați \"%1$s\" în setări dacă doriți să îl vedeți.</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">YouTube oferă un \"Mod restricționat\" care ascunde conținutul potențial matur</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Activați \"Modul restricționat\" de pe YouTube</string>
|
||||
<string name="restricted_video">Acest videoclip este restricționat în funcție de vârstă. \n \nActivați „%1$s” în setări dacă doriți să îl vedeți.</string>
|
||||
<string name="youtube_restricted_mode_enabled_summary">YouTube oferă un „Mod restricționat” care ascunde conținutul potențial matur</string>
|
||||
<string name="youtube_restricted_mode_enabled_title">Activați „Modul restricționat” de pe YouTube</string>
|
||||
<string name="show_age_restricted_content_summary">Afișați conținut posibil nepotrivit pentru copii, deoarece are o limită de vârstă (cum ar fi 18+)</string>
|
||||
<string name="unsupported_url_dialog_message">Adresa URL nu a putut fi recunoscută. Deschideți cu o altă aplicație\?</string>
|
||||
<string name="show_meta_info_title">Afișează informațiile meta</string>
|
||||
@@ -433,13 +431,13 @@
|
||||
</plurals>
|
||||
<string name="new_seek_duration_toast">Datorită constrângerilor ExoPlayer, durata de căutare a fost setată la %d secunde</string>
|
||||
<string name="remove_watched_popup_partially_watched_streams">Da, și videoclipuri vizionate parțial</string>
|
||||
<string name="remove_watched_popup_warning">Videoclipurile care au fost vizionate înainte și după ce au fost adăugate la lista de redare vor fi eliminate. \nSunteți sigur? Acest lucru nu poate fi anulat!</string>
|
||||
<string name="remove_watched_popup_title">Eliminați videoclipurile vizionate?</string>
|
||||
<string name="remove_watched_popup_warning">Fluxurile care au fost vizionate înainte și după ce au fost adăugate la lista de redare vor fi eliminate. \nSunteți sigur?</string>
|
||||
<string name="remove_watched_popup_title">Eliminați fluxurile vizionate?</string>
|
||||
<string name="remove_watched">Eliminare cele urmărite</string>
|
||||
<string name="systems_language">Prestabilită de sistem</string>
|
||||
<string name="app_language_title">Limba aplicației</string>
|
||||
<string name="choose_instance_prompt">Alegeți o instanță</string>
|
||||
<string name="downloads_storage_use_saf_summary">\"Storage Access Framework\" permite descărcări pe un card SD extern</string>
|
||||
<string name="downloads_storage_use_saf_summary">„Storage Access Framework” permite descărcări pe un card SD extern</string>
|
||||
<string name="downloads_storage_use_saf_title">Utilizați selectorul de dosare de sistem (SAF)</string>
|
||||
<string name="downloads_storage_ask_summary">Veți fi întrebat unde să salvați fiecare descărcare.
|
||||
\nActivați selectorul de foldere de sistem (SAF) dacă doriți să descărcați pe un card SD extern</string>
|
||||
@@ -526,21 +524,8 @@
|
||||
\n
|
||||
\nContinuați\?</string>
|
||||
<string name="import_soundcloud_instructions_hint">ID-ul dvs., soundcloud.com/yourid</string>
|
||||
<string name="import_soundcloud_instructions">Importați un profil SoundCloud introducând fie URL-ul, fie ID-ul dvs:
|
||||
\n
|
||||
\n1. Activați \"modul desktop\" într-un browser web (site-ul nu este disponibil pentru dispozitive mobile)
|
||||
\n2. Mergeți la acest URL: %1$s
|
||||
\n3. Conectați-vă atunci când vi se cere
|
||||
\n4. Copiați URL-ul profilului la care ați fost redirecționat.</string>
|
||||
<string name="import_youtube_instructions">Importați abonamentele YouTube din Google takeout:
|
||||
\n
|
||||
\n1. Mergeți la această adresă URL: %1$s
|
||||
\n2. Autentificați-vă atunci când vi se cere
|
||||
\n3. Faceți clic pe \"Toate datele incluse\", apoi pe \"Deselectați totul\", apoi selectați doar \"Abonamente\" și faceți clic pe \"OK\"
|
||||
\n4. Faceți clic pe \"Pasul următor\" și apoi pe \"Creați exportul\"
|
||||
\n5. Faceți clic pe butonul \"Descărcare\" după ce acesta apare
|
||||
\n6. Faceți clic pe IMPORT FIȘIER de mai jos și selectați fișierul .zip descărcat
|
||||
\n7. [În cazul în care importul .zip eșuează] Extrageți fișierul .csv (de obicei sub \"YouTube and YouTube Music/subscriptions/subscriptions.csv\"), faceți clic pe IMPORT FIȘIER de mai jos și selectați fișierul csv extras</string>
|
||||
<string name="import_soundcloud_instructions">Importați un profil SoundCloud introducând fie URL-ul, fie ID-ul dvs: \n \n1. Activați „modul desktop” într-un browser web (site-ul nu este disponibil pentru dispozitive mobile) \n2. Mergeți la acest URL: %1$s \n3. Conectați-vă atunci când vi se cere \n4. Copiați URL-ul profilului la care ați fost redirecționat.</string>
|
||||
<string name="import_youtube_instructions">Importați abonamentele YouTube din Google takeout: \n \n1. Mergeți la această adresă URL: %1$s \n2. Autentificați-vă atunci când vi se cere \n3. Faceți clic pe „Toate datele incluse”, apoi pe „Deselectați totul”, apoi selectați doar „Abonamente” și faceți clic pe „OK” \n4. Faceți clic pe „Pasul următor” și apoi pe „Creați exportul” \n5. Faceți clic pe butonul „Descărcare” după ce acesta apare \n6. Faceți clic pe IMPORT FIȘIER de mai jos și selectați fișierul .zip descărcat \n7. [În cazul în care importul .zip eșuează] Extrageți fișierul .csv (de obicei sub „YouTube and YouTube Music/subscriptions/subscriptions.csv”), faceți clic pe IMPORT FIȘIER de mai jos și selectați fișierul csv extras</string>
|
||||
<string name="show_original_time_ago_summary">Textele originale din servicii vor fi vizibile în elementele de flux</string>
|
||||
<string name="enable_disposed_exceptions_title">Raportați erori în afara ciclului de viață</string>
|
||||
<string name="show_memory_leaks">Afișați scurgeri de memorie</string>
|
||||
@@ -628,9 +613,9 @@
|
||||
<string name="feed_load_error_terminated">Contul autorului a fost închis.
|
||||
\nNewPipe nu va mai putea încărca acest flux în viitor.
|
||||
\nDoriți să vă dezabonați de la acest canal\?</string>
|
||||
<string name="feed_load_error_account_info">Nu s-a putut încărca fluxul pentru \"%s\".</string>
|
||||
<string name="feed_load_error_account_info">Nu s-a putut încărca fluxul pentru „%s”.</string>
|
||||
<string name="feed_load_error">Eroare la încărcarea fluxului</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">Începând cu Android 10, este acceptat doar \"Storage Access Framework\"</string>
|
||||
<string name="downloads_storage_use_saf_summary_api_29">Începând cu Android 10, este acceptat doar „Storage Access Framework”</string>
|
||||
<string name="downloads_storage_ask_summary_no_saf_notice">Veți fi întrebat unde să salvați fiecare descărcare</string>
|
||||
<plurals name="deleted_downloads_toast">
|
||||
<item quantity="one">S-a șters %1$s descărcare</item>
|
||||
@@ -658,7 +643,7 @@
|
||||
<string name="processing_may_take_a_moment">Procesarea.. Poate dura un moment</string>
|
||||
<string name="check_for_updates">Verifică dacă există actualizări</string>
|
||||
<string name="manual_update_description">Verifică manual dacă există versiuni noi</string>
|
||||
<string name="detail_pinned_comment_view_description">Comentariu lipit</string>
|
||||
<string name="detail_pinned_comment_view_description">Comentariu fixat</string>
|
||||
<string name="error_report_channel_name">Notificare cu raport de eroare</string>
|
||||
<string name="show_crash_the_player_summary">Afișează opțiunea de a întrerupe atunci când utilizați playerul</string>
|
||||
<string name="error_report_notification_toast">A apărut o eroare, consultați notificarea</string>
|
||||
@@ -666,7 +651,7 @@
|
||||
<string name="checking_updates_toast">Se verifică actualizări…</string>
|
||||
<string name="error_report_channel_description">Notificări pentru a raporta erori</string>
|
||||
<string name="create_error_notification">Creați o notificare de eroare</string>
|
||||
<string name="show_crash_the_player_title">Afișează \"Dați crash playerului\"</string>
|
||||
<string name="show_crash_the_player_title">Afișează „Dați crash playerului”</string>
|
||||
<string name="show_error_snackbar">Afișați o eroare de tip snackbar</string>
|
||||
<string name="feed_new_items">Elemente noi în flux</string>
|
||||
<string name="settings_category_player_notification_title">Notificarea player-ului</string>
|
||||
@@ -709,8 +694,8 @@
|
||||
<string name="unknown_format">Format necunoscut</string>
|
||||
<string name="unknown_quality">Calitate necunoscută</string>
|
||||
<string name="progressive_load_interval_title">Dimensiunea intervalului de încărcare de redare</string>
|
||||
<string name="faq">Vedeți pe website</string>
|
||||
<string name="faq_description">Dacă întâmpinați probleme cu utilizarea aplicației, nu uitați să consultați aceste răspunsuri la întrebări frecvente!</string>
|
||||
<string name="faq">Vezi în website</string>
|
||||
<string name="faq_description">Dacă aveți probleme folosind aplicația, uitați-vă la răspunsurile celor mai comune întrebărilor puse!</string>
|
||||
<string name="faq_title">Întrebări frecvente</string>
|
||||
<string name="sort">Sortare</string>
|
||||
<string name="fast_mode">Modul rapid</string>
|
||||
@@ -809,40 +794,81 @@
|
||||
<string name="channel_tab_livestreams">În direct</string>
|
||||
<string name="channel_tab_shorts">Shorturi</string>
|
||||
<string name="metadata_uploader_avatars">Avatarele autorului</string>
|
||||
<string name="notification_actions_summary_android13">Editează fiecare acțiune de notificare de mai jos atingând-o. Primele trei acțiuni (redare/pauză, anterioară și următoare) sunt setate de sistem și nu pot fi personalizate.</string>
|
||||
<string name="notification_actions_summary_android13">Editați fiecare acțiune de notificare de mai jos atingând-o. Primele trei acțiuni (redare/pauză, anterioară și următoare) sunt setate de sistem și nu pot fi personalizate.</string>
|
||||
<plurals name="replies">
|
||||
<item quantity="one">%s răspuns</item>
|
||||
<item quantity="few">%s răspunsuri</item>
|
||||
<item quantity="other">%s răspunsuri</item>
|
||||
<item quantity="other">%s de răspunsuri</item>
|
||||
</plurals>
|
||||
<string name="show_more">Arată mai multe</string>
|
||||
<string name="show_less">Arată mai puține</string>
|
||||
<string name="channel_tab_tracks">Piste</string>
|
||||
<string name="error_insufficient_storage">Nu este suficient spațiu liber pe dispozitiv</string>
|
||||
<string name="settings_category_backup_restore_title">Backup și restabilire</string>
|
||||
<string name="auto_update_check_description">NewPipe poate verifica automat pentru versiuni noi din când în când și vă poate notifica când acestea sunt disponibile.
|
||||
\nDoriți să activați acest lucru?</string>
|
||||
<string name="reset_settings_summary">Resetează toate setările la valorile inițiale</string>
|
||||
<string name="settings_category_backup_restore_title">Copie de rezervă și Restabilire</string>
|
||||
<string name="auto_update_check_description">NewPipe poate verifica automat din când în când dacă există versiuni noi și vă poate anunța când acestea sunt disponibile.\nDoriți să activați această opțiune?</string>
|
||||
<string name="reset_settings_summary">Resetați toate setările la valorile implicite</string>
|
||||
<string name="yes">Da</string>
|
||||
<string name="no">Nu</string>
|
||||
<string name="reset_settings_title">Resetează setări</string>
|
||||
<string name="reset_all_settings">Resetarea tuturor setărilor va elimina toate setările tale preferate și va reporni aplicația.
|
||||
\n
|
||||
\nSigur doriți să continuați?</string>
|
||||
<string name="reset_settings_title">Resetați setările</string>
|
||||
<string name="reset_all_settings">Resetarea tuturor setărilor va elimina toate setările preferate și va reporni aplicația. \n \nSigur doriți să continuați?</string>
|
||||
<string name="import_settings_vulnerable_format">Setările din exportul importat folosesc un format vulnerabil care a fost depreciat de la NewPipe 0.27.0. Asigurați-vă că exportul care este importat este dintr-o sursă de încredere și preferați să utilizați numai exporturi obținute din NewPipe 0.27.0 sau mai nou în viitor. Suportul pentru importul setărilor în acest format vulnerabil va fi în curând eliminat complet, iar versiunile vechi ale NewPipe nu vor mai putea importa setările exporturilor din versiunile noi.</string>
|
||||
<string name="audio_track_type_secondary">secundar</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Distribuie ca listă de redare temporară YouTube</string>
|
||||
<string name="share_playlist_as_youtube_temporary_playlist">Distribuiți ca listă de redare temporară YouTube</string>
|
||||
<string name="tab_bookmarks_short">Liste de redare</string>
|
||||
<string name="feed_group_page_summary">Pagina grupului de canale</string>
|
||||
<string name="search_with_service_name">Caută: %1$s</string>
|
||||
<string name="search_with_service_name_and_filter">Caută %1$s (%2$s)</string>
|
||||
<string name="select_a_feed_group">Selectează un grup de fluxuri</string>
|
||||
<string name="search_with_service_name">Căutare: %1$s</string>
|
||||
<string name="search_with_service_name_and_filter">Căutare %1$s (%2$s)</string>
|
||||
<string name="select_a_feed_group">Selectați un grup de fluxuri</string>
|
||||
<string name="no_feed_group_created_yet">Încă nu a fost creat niciun grup de fluxuri</string>
|
||||
<string name="channel_tab_likes">Aprecieri</string>
|
||||
<string name="migration_info_6_7_title">Pagina SoundCloud Top 50 a fost eliminată</string>
|
||||
<string name="migration_info_6_7_message">SoundCloud a eliminat Top 50. Fila corespunzătoare a fost eliminată din pagina principală.</string>
|
||||
<string name="permission_display_over_apps_permission_name">„Permite afișarea deasupra altor aplicații”</string>
|
||||
<string name="short_thousand">%s mii</string>
|
||||
<string name="short_thousand">%sK</string>
|
||||
<string name="short_million">%s mil.</string>
|
||||
<string name="short_billion">%s mld.</string>
|
||||
<string name="kao_dialog_warning">În august 2025, Google a anunțat că, începând din septembrie 2026, instalarea aplicațiilor va necesita verificarea dezvoltatorului pentru toate aplicațiile Android de pe dispozitivele certificate, inclusiv pentru cele instalate din afara Play Store. Deoarece dezvoltatorii NewPipe nu sunt de acord cu această cerință, NewPipe nu va mai funcționa pe dispozitivele Android certificate după acea dată.</string>
|
||||
<string name="kao_solution">Soluție</string>
|
||||
<string name="kao_dialog_more_info">Detalii</string>
|
||||
<string name="unsupported_content_in_country">Acest conținut nu este disponibil pentru țara de conținut selectată în prezent.\n\nModificați selecția din „Setări > Conținut > Țara implicită pentru conținut”.</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s a refuzat să furnizeze datele, cerând autentificarea pentru a confirma că solicitantul nu este un bot.\n\nEste posibil ca adresa dvs. IP să fi fost blocată temporar de %1$s; puteți aștepta puțin sau puteți trece la o altă adresă IP (de exemplu, activând/dezactivând un VPN sau trecând de la Wi-Fi la date mobile).\n\nVă rugăm să consultați <a href="%2$s">această intrare din secțiunea de întrebări frecvente</a> pentru mai multe informații.</string>
|
||||
<string name="youtube_player_http_403">S-a primit eroarea HTTP 403 de la server în timpul redării, probabil din cauza unei restricții de IP sau a unor probleme legate de dezobfuscarea adresei URL de flux</string>
|
||||
<string name="player_http_invalid_status">S-a primit eroarea HTTP %1$s de la server în timpul redării</string>
|
||||
<string name="player_http_403">S-a primit eroarea HTTP 403 de la server în timpul redării, probabil din cauza expirării adresei URL de flux sau a blocării adresei IP</string>
|
||||
<string name="entry_deleted">Intrare ștearsă</string>
|
||||
<string name="trending_music">Muzică în tendințe</string>
|
||||
<string name="trending_movies">Filme și seriale în tendințe</string>
|
||||
<string name="trending_podcasts">Podcast-uri în tendințe</string>
|
||||
<string name="trending_gaming">Jocuri în tendințe</string>
|
||||
<string name="migration_info_7_8_message">YouTube a desființat pagina combinată de tendințe începând cu 21 iulie 2025. NewPipe a înlocuit pagina implicită de tendințe cu secțiunea de transmisiuni live în tendințe.\n\nDe asemenea, puteți selecta diferite pagini de tendințe din „Setări > Conținut > Conținutul paginii principale”.</string>
|
||||
<string name="migration_info_7_8_title">Youtube a desființat pagina combinată de tendințe</string>
|
||||
<string name="permission_display_over_apps_message">Pentru a utiliza playerul pop-up, vă rugăm să selectați %1$s la următorul meniu de setări Android și să activați %2$s.</string>
|
||||
<string name="delete_file">Ștergeți fișierul</string>
|
||||
<string name="delete_entry">Ștergeți intrarea</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Se exportă %d abonament…</item>
|
||||
<item quantity="few">Se exportă %d abonamente…</item>
|
||||
<item quantity="other">Se exportă %d de abonamente…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Se încarcă %d abonament…</item>
|
||||
<item quantity="few">Se încarcă %d abonamente…</item>
|
||||
<item quantity="other">Se încarcă %d de abonamente…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Se importă %d abonament…</item>
|
||||
<item quantity="few">Se importă %d abonamente…</item>
|
||||
<item quantity="other">Se importă %d de abonamente…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">Importați abonamente</string>
|
||||
<string name="export_subscriptions_title">Exportați abonamente</string>
|
||||
<string name="import_subscriptions_summary">Importați abonamente dintr-un export .json anterior</string>
|
||||
<string name="export_subscriptions_summary">Exportați abonamentele într-un fișier .json</string>
|
||||
<string name="import_from_previous_export">Importați dintr-un export anterior</string>
|
||||
<string name="account_terminated_service_provides_reason">Cont închis.\n\n%1$s oferă acest motiv: %2$s</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe nu va mai fi compatibil cu Android 5</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Postare blog</string>
|
||||
<string name="api23_requirement_dialog_message">Din păcate, NewPipe depinde de câteva biblioteci care nu mai sunt compatibile cu Android 5.0 și 5.1. Prin urmare, următoarea versiune a NewPipe va funcționa doar pe dispozitive cu Android 6 sau o versiune ulterioară. Aflați mai multe în articolul de pe blog.</string>
|
||||
<string name="channel_tab_podcasts">Podcasturi</string>
|
||||
<string name="channel_tab_courses">Cursuri</string>
|
||||
</resources>
|
||||
|
||||
@@ -104,14 +104,14 @@
|
||||
<string name="title_activity_about">О NewPipe</string>
|
||||
<string name="app_license_title">Лицензия NewPipe</string>
|
||||
<string name="tab_licenses">Лицензии</string>
|
||||
<string name="title_licenses">Сторонние лицензии</string>
|
||||
<string name="tab_about">О приложении</string>
|
||||
<string name="title_licenses">Лицензии сторонних компонентов</string>
|
||||
<string name="tab_about">О приложении и ответы на вопросы</string>
|
||||
<string name="read_full_license">Прочитать лицензию</string>
|
||||
<string name="app_description">Свободный и легковесный потоковый плеер для Android.</string>
|
||||
<string name="view_on_github">Открыть на GitHub</string>
|
||||
<string name="contribution_encouragement">Приветствуется всё — идеи, перевод, редизайн, чистка кода или огромные изменения в коде. Чем больше сделано, тем лучше!</string>
|
||||
<string name="contribution_encouragement">Будь то перевод, изменения дизайна, чистка кода или серьёзная переработка - любая помощь приветствуется. Чем больше сделано, тем лучше становится проект!</string>
|
||||
<string name="copyright" formatted="true">© %1$s • %2$s • %3$s</string>
|
||||
<string name="contribution_title">Помощь проекту</string>
|
||||
<string name="contribution_title">Помочь проекту</string>
|
||||
<string name="subscribe_button_title">Подписаться</string>
|
||||
<string name="subscription_change_failed">Не удалось изменить подписку</string>
|
||||
<string name="subscription_update_failed">Не удалось обновить подписку</string>
|
||||
@@ -130,7 +130,7 @@
|
||||
<string name="resume_on_audio_focus_gain_summary">Возобновлять воспроизведение после перерывов (например, телефонных звонков)</string>
|
||||
<string name="notification_channel_name">Уведомление NewPipe</string>
|
||||
<string name="notification_channel_description">Уведомления для плеера NewPipe</string>
|
||||
<string name="settings_category_downloads_title">Загрузки</string>
|
||||
<string name="settings_category_downloads_title">Скачать</string>
|
||||
<string name="settings_file_charset_title">Допустимые символы имён файлов</string>
|
||||
<string name="settings_file_replacement_character_summary">Заменяет недопустимые символы</string>>
|
||||
<string name="settings_file_replacement_character_title">Символ для замены</string>
|
||||
@@ -204,11 +204,11 @@
|
||||
<string name="external_player_unsupported_link_type">Внешние плееры не поддерживают эти типы ссылок</string>
|
||||
<string name="video_streams_empty">Видеопотоки не найдены</string>
|
||||
<string name="audio_streams_empty">Аудиопотоки не найдены</string>
|
||||
<string name="donation_title">Пожертвование</string>
|
||||
<string name="donation_encouragement">Разработчики NewPipe ценой своего свободного времени делают вашу жизнь чуть удобнее. Отплатите им тем же — наслаждаясь чашечкой кофе, они смогут сделать NewPipe ещё круче.</string>
|
||||
<string name="give_back">Воздать должное</string>
|
||||
<string name="donation_title">Пожертвовать</string>
|
||||
<string name="donation_encouragement">NewPipe разрабатывают волонтёры, которые тратят свободное время, чтобы сделать приложение как можно удобнее. Поддержите разработчиков и помогите им сделать NewPipe ещё лучше - хотя бы за чашкой кофе.</string>
|
||||
<string name="give_back">Поддержать проект</string>
|
||||
<string name="website_title">Веб-сайт</string>
|
||||
<string name="website_encouragement">Для получения более подробной информации и последних новостей о NewPipe посетите наш веб-сайт.</string>
|
||||
<string name="website_encouragement">Посетите сайт NewPipe, чтобы узнать больше и ознакомиться с новостями.</string>
|
||||
<string name="drawer_open">Открыть боковую панель</string>
|
||||
<string name="drawer_close">Закрыть боковую панель</string>
|
||||
<string name="video_player">Видеоплеер</string>
|
||||
@@ -315,13 +315,13 @@
|
||||
<string name="delete_search_history_alert">Удалить всю историю поиска\?</string>
|
||||
<string name="search_history_deleted">История поиска удалена</string>
|
||||
<string name="one_item_deleted">1 элемент удалён.</string>
|
||||
<string name="app_license">NewPipe — свободное программное обеспечение: вы можете использовать, изучать и улучшать его по своему усмотрению. В частности, вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, либо версии 3, либо (по вашему выбору) любой более поздней версии.</string>
|
||||
<string name="app_license">NewPipe - свободное программное обеспечение, распространяемое на условиях копилефта. Вы можете свободно использовать, изучать, распространять и улучшать его. В частности, NewPipe можно распространять и/или изменять на условиях Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, версии 3 либо, по вашему выбору, любой более поздней версии.</string>
|
||||
<string name="preferred_open_action_settings_title">При открытии ссылки</string>
|
||||
<string name="import_settings">Хотите импортировать настройки?</string>
|
||||
<string name="privacy_policy_title">Конфиденциальность</string>
|
||||
<string name="privacy_policy_title">Политика конфиденциальности NewPipe</string>
|
||||
<string name="privacy_policy_encouragement">Проект NewPipe очень серьёзно относится к вашей конфиденциальности. Приложение не собирает никакие данные без вашего согласия.
|
||||
\nПолитика конфиденциальности подробно объясняет, какие данные обрабатываются и хранятся при отправке отчёта о сбоях.</string>
|
||||
<string name="read_privacy_policy">Прочитать политику</string>
|
||||
<string name="read_privacy_policy">Ознакомиться с политикой конфиденциальности</string>
|
||||
<string name="start_accept_privacy_policy">В соответствии с Общим регламентом по защите данных ЕС (GDPR), обращаем ваше внимание на политику конфиденциальности NewPipe. Пожалуйста, внимательно ознакомьтесь с ней.
|
||||
\nВам необходимо принять её условия, чтобы отправить нам отчёт об ошибке.</string>
|
||||
<string name="accept">Принять</string>
|
||||
@@ -713,9 +713,9 @@
|
||||
<string name="select_quality_external_players">Выберите качество для внешних плееров</string>
|
||||
<string name="unknown_quality">Неизвестное качество</string>
|
||||
<string name="progressive_load_interval_title">Размер интервала загрузки при воспроизведении</string>
|
||||
<string name="faq_title">Ответы на частые вопросы</string>
|
||||
<string name="faq_description">Если у вас возникли проблемы с использованием приложения, обязательно ознакомьтесь с ответами на распространённые вопросы!</string>
|
||||
<string name="faq">Посмотреть на веб-сайте</string>
|
||||
<string name="faq_title">Часто задаваемые вопросы</string>
|
||||
<string name="faq_description">Если у вас есть проблемы с использованием приложения, проверьте ответы на часто задаваемые вопросы!</string>
|
||||
<string name="faq">Посмотреть на сайте</string>
|
||||
<string name="sort">Сортировка</string>
|
||||
<string name="app_update_unavailable_toast">У вас последняя версия</string>
|
||||
<string name="fast_mode">Быстрый режим</string>
|
||||
@@ -864,9 +864,35 @@
|
||||
<string name="player_http_403">Во время воспроизведения получена ошибка HTTP 403 от сервера, вероятно, вызванная истечением срока действия URL-адреса потоковой передачи или блокировкой IP-адреса</string>
|
||||
<string name="player_http_invalid_status">Ошибка HTTP %1$s получена от сервера во время воспроизведения</string>
|
||||
<string name="youtube_player_http_403">Во время воспроизведения получена ошибка HTTP 403 от сервера, вероятно, вызванная блокировкой IP-адреса или проблемами деобфускации URL-адреса потоковой передачи</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s отказался предоставить данные, запросив логин для подтверждения, что запросчик не бот.\n\nВозможно, ваш IP-адрес временно заблокирован %1$s. Вы можете подождать некоторое время или переключиться на другой IP-адрес (например, включив/выключив VPN или переключившись с Wi-Fi на мобильный интернет).</string>
|
||||
<string name="sign_in_confirm_not_bot_error">%1$s отказался предоставить данные, запросив вход в аккаунт для подтверждения, что запрашивающий не является ботом.\n\nВозможно, ваш IP-адрес временно заблокирован %1$s, вы можете подождать некоторое время или переключиться на другой IP-адрес (например, включив/выключив VPN или переключившись с Wi-Fi на мобильный интернет).\n\nПожалуйста посмотрите <a href="%2$s">этот пункт FAQ</a> для получения дополнительной информации.</string>
|
||||
<string name="unsupported_content_in_country">Этот контент недоступен для выбранной страны контента.\n\nИзмените свой выбор в разделе «Настройки > Контент > Страна контента по умолчанию».</string>
|
||||
<string name="kao_dialog_warning">В августе 2025 года, Google анонсировала, что с сентября 2026 года, установка приложений потребует верификации разработчика для всех Android приложений на сертифицированных устройствах, включая те, которые были установлены не через Play Store. Поскольку разработчики NewPipe не согласны с этим требованием, NewPipe перестанет работать на сертифицированных Android устройствах после этой даты.</string>
|
||||
<string name="kao_dialog_more_info">Подробнее</string>
|
||||
<string name="kao_solution">Решение</string>
|
||||
<plurals name="export_subscriptions">
|
||||
<item quantity="one">Экспортирование %d подписки…</item>
|
||||
<item quantity="few">Экспортирование %d подписок…</item>
|
||||
<item quantity="many">Экспортирование %d подписок…</item>
|
||||
<item quantity="other">Экспортирование %d подписок…</item>
|
||||
</plurals>
|
||||
<plurals name="load_subscriptions">
|
||||
<item quantity="one">Загрузка %d подписки…</item>
|
||||
<item quantity="few">Загрузка %d подписок…</item>
|
||||
<item quantity="many">Загрузка %d подписок…</item>
|
||||
<item quantity="other">Загрузка %d подписок…</item>
|
||||
</plurals>
|
||||
<plurals name="import_subscriptions">
|
||||
<item quantity="one">Импортирование %d подписки…</item>
|
||||
<item quantity="few">Импортирование %d подписок…</item>
|
||||
<item quantity="many">Импортирование %d подписок…</item>
|
||||
<item quantity="other">Импортирование %d подписок…</item>
|
||||
</plurals>
|
||||
<string name="import_subscriptions_title">Импорт подписок</string>
|
||||
<string name="export_subscriptions_title">Экспорт подписок</string>
|
||||
<string name="import_subscriptions_summary">Импорт подписок из предыдущего экспорта .json</string>
|
||||
<string name="export_subscriptions_summary">Экспорт ваших подписок в .json файл</string>
|
||||
<string name="import_from_previous_export">Импорт из предыдущего экспорта</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe прекращает поддержку Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">К сожалению, NewPipe зависит от нескольких библиотек, которые прекратили поддерживать Android 5.0 и 5.1. Таким образом, к сожалению следующий выпуск NewPipe будет работать только на устройствах с Android 6 или выше. Подробности в посте в блоге.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Пост в блоге</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