Fixes:
When removing audio it doesn't remove the best audio
Make app only get the link part from Pinterest in share menu.   Look at this video... 👀 https://pin.it/...
add beta functionality to the app updating
If you are in beta and want to go to release allow downgrading
Language change doesnt restart activity
This commit is contained in:
deniscerri 2023-09-07 19:41:42 +02:00
parent 28fafaaf5f
commit a9f1e106a3
No known key found for this signature in database
GPG key ID: 95C43D517D830350
63 changed files with 112 additions and 350 deletions

View file

@ -10,7 +10,7 @@ def properties = new Properties()
def versionMajor = 1
def versionMinor = 6
def versionPatch = 6
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
def versionBuild = 1 // bump for dogfood builds, public betas, etc.
def versionExt = ""
if (versionBuild > 0){
@ -76,8 +76,7 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debuggable false
signingConfig signingConfigs.debug
applicationIdSuffix '.beta'
versionNameSuffix '-Beta'
versionNameSuffix '-beta'
}
debug {

View file

@ -42,14 +42,14 @@
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:windowSoftInputMode="adjustPan">
</activity>
<activity
android:name=".receiver.ShareActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"
@ -75,7 +75,7 @@
</activity>
<activity
android:name=".receiver.ShareFileActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"
@ -96,7 +96,7 @@
</activity>
<activity
android:name=".ui.more.TerminalActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:label="@string/terminal"
android:parentActivityName=".MainActivity">
@ -126,7 +126,7 @@
android:enabled="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:targetActivity=".MainActivity"
android:windowSoftInputMode="adjustPan"
android:exported="true">
@ -148,7 +148,7 @@
android:exported="true"
android:icon="@mipmap/ic_launcher_dark"
android:roundIcon="@mipmap/ic_launcher_round_dark"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:targetActivity=".MainActivity"
android:windowSoftInputMode="adjustPan">
<intent-filter>
@ -168,7 +168,7 @@
android:exported="true"
android:icon="@mipmap/ic_launcher_light"
android:roundIcon="@mipmap/ic_launcher_round_light"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:targetActivity=".MainActivity"
android:windowSoftInputMode="adjustPan">
<intent-filter>
@ -184,7 +184,7 @@
<activity
android:name=".ui.more.WebViewActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:exported="true"
android:parentActivityName=".MainActivity"
android:windowSoftInputMode="adjustResize">
@ -202,7 +202,7 @@
<activity
android:name=".receiver.ResumeActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|locale"
android:configChanges="smallestScreenSize|layoutDirection|locale|orientation|screenSize"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"

View file

@ -48,6 +48,7 @@ import com.google.android.material.elevation.SurfaceColors
import com.google.android.material.navigation.NavigationBarView
import com.google.android.material.navigation.NavigationView
import com.google.android.material.navigationrail.NavigationRailView
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
@ -361,7 +362,7 @@ class MainActivity : BaseActivity() {
private fun checkUpdate() {
if (preferences.getBoolean("update_app", false)) {
val updateUtil = UpdateUtil(this)
lifecycleScope.launch(Dispatchers.IO){
CoroutineScope(Dispatchers.IO).launch{
updateUtil.updateApp{}
}
}

View file

@ -0,0 +1,13 @@
package com.deniscerri.ytdlnis.database.models
data class GithubRelease(
var tag_name: String,
var body: String,
var assets: List<GithubReleaseAsset>
)
data class GithubReleaseAsset(
var name: String,
var browser_download_url: String
)

View file

@ -13,6 +13,7 @@ import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import android.util.Patterns
import android.view.Window
import android.view.WindowManager
import android.widget.TextView
@ -118,10 +119,16 @@ class ShareActivity : BaseActivity() {
this.finish()
}
val inputQuery = when(action){
val intentData = when(action){
Intent.ACTION_SEND -> intent.getStringExtra(Intent.EXTRA_TEXT)!!
else -> intent.dataString!!
}
val matcher = Patterns.WEB_URL.matcher(intentData)
val inputQuery = if (matcher.find()){
matcher.group()
}else{
intentData
}
lifecycleScope.launch {
try {
@ -130,7 +137,7 @@ class ShareActivity : BaseActivity() {
showDownloadSheet(result)
}catch (e: Exception){
resultViewModel.deleteAll()
if (quickDownload && inputQuery.matches("(https?://(?:www\\.|(?!www))[a-zA-Z\\d][a-zA-Z\\d-]+[a-zA-Z\\d]\\.\\S{2,}|www\\.[a-zA-Z\\d][a-zA-Z\\d-]+[a-zA-Z\\d]\\.\\S{2,}|https?://(?:www\\.|(?!www))[a-zA-Z\\d]+\\.\\S{2,}|www\\.[a-zA-Z\\d]+\\.\\S{2,})".toRegex())){
if (quickDownload && matcher.matches()){
val result = downloadViewModel.createEmptyResultItem(inputQuery)
loadingBottomSheet.dismiss()
showDownloadSheet(result)

View file

@ -1258,18 +1258,19 @@ class InfoUtil(private val context: Context) {
}
}
//build format with best audio
preferredVideoFormats.forEach { v ->
if(!f.contains("$v+bestaudio/")){
f.append("$v+bestaudio/")
if (!downloadItem.videoPreferences.removeAudio){
//build format with best audio
preferredVideoFormats.forEach { v ->
if(!f.contains("$v+bestaudio/")){
f.append("$v+bestaudio/")
}
}
}
//build formats with standalone video
preferredVideoFormats.forEach { v ->
if(!f.contains("/$v/")){
f.append("$v/")
//build formats with standalone video
preferredVideoFormats.forEach { v ->
if(!f.contains("/$v/")){
f.append("$v/")
}
}
}

View file

@ -13,13 +13,15 @@ import android.widget.Toast
import androidx.preference.PreferenceManager
import com.deniscerri.ytdlnis.BuildConfig
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.database.models.GithubRelease
import com.deniscerri.ytdlnis.database.models.GithubReleaseAsset
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.yausername.youtubedl_android.YoutubeDL
import com.yausername.youtubedl_android.YoutubeDL.UpdateStatus
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.json.JSONException
import org.json.JSONObject
import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.HttpURLConnection
@ -27,6 +29,7 @@ import java.net.URL
class UpdateUtil(var context: Context) {
private val tag = "UpdateUtil"
private val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
private val downloadManager: DownloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
fun updateApp(result: (result: String) -> Unit) {
@ -38,32 +41,61 @@ class UpdateUtil(var context: Context) {
Toast.LENGTH_LONG
).show()
}
val res = checkForAppUpdate()
val version: String
val body: String?
try {
version = res.getString("tag_name")
body = res.getString("body")
} catch (e: JSONException) {
val res = getGithubReleases()
if (res.isEmpty()){
result(context.getString(R.string.network_error))
return
}
val versionNameInt = version.split("v")[1].replace(".","").toInt()
val currentVersionNameInt = BuildConfig.VERSION_CODE.toString().replace("0", "").substring(0, versionNameInt.toString().length).toInt()
if (currentVersionNameInt >= versionNameInt) {
val useBeta = sharedPreferences.getBoolean("update_beta", false)
val v: GithubRelease? = runCatching {
res.firstOrNull {
if (useBeta) it.tag_name.contains("beta", true)
else !it.tag_name.contains("beta", true)
}
}.getOrNull()
if (
(useBeta && v == null) ||
BuildConfig.VERSION_NAME == v!!.tag_name.removePrefix("v")
){
result(context.getString(R.string.you_are_in_latest_version))
return
}
Handler(Looper.getMainLooper()).post {
val updateDialog = MaterialAlertDialogBuilder(context)
.setTitle(version)
.setMessage(body)
.setTitle(v.tag_name)
.setMessage(v.body)
.setIcon(R.drawable.ic_update_app)
.setNegativeButton("Cancel") { _: DialogInterface?, _: Int -> }
.setPositiveButton("Update") { _: DialogInterface?, _: Int ->
startAppUpdate(
res
)
runCatching {
val releaseVersion = v.assets.firstOrNull { it.name.contains(Build.SUPPORTED_ABIS[0]) }
if (releaseVersion == null){
Toast.makeText(context, R.string.couldnt_find_apk, Toast.LENGTH_SHORT).show()
return@runCatching
}
val uri = Uri.parse(releaseVersion.browser_download_url)
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.mkdirs()
downloadManager.enqueue(
DownloadManager.Request(uri)
.setAllowedNetworkTypes(
DownloadManager.Request.NETWORK_WIFI or
DownloadManager.Request.NETWORK_MOBILE
)
.setAllowedOverRoaming(true)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setTitle(context.getString(R.string.downloading_update))
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, releaseVersion.name)
)
}
}
updateDialog.show()
}
@ -75,13 +107,10 @@ class UpdateUtil(var context: Context) {
}
}
private fun checkForAppUpdate(): JSONObject {
val url = "https://api.github.com/repos/deniscerri/ytdlnis/releases/latest"
val reader: BufferedReader
var line: String?
val responseContent = StringBuilder()
private fun getGithubReleases(): List<GithubRelease> {
val url = "https://api.github.com/repos/deniscerri/ytdlnis/releases"
val conn: HttpURLConnection
var json = JSONObject()
var json = listOf<GithubRelease>()
try {
val req = URL(url)
conn = req.openConnection() as HttpURLConnection
@ -89,15 +118,8 @@ class UpdateUtil(var context: Context) {
conn.connectTimeout = 10000
conn.readTimeout = 5000
if (conn.responseCode < 300) {
reader = BufferedReader(InputStreamReader(conn.inputStream))
while (reader.readLine().also { line = it } != null) {
responseContent.append(line)
}
reader.close()
json = JSONObject(responseContent.toString())
if (json.has("error")) {
throw Exception()
}
val myType = object : TypeToken<List<GithubRelease>>() {}.type
json = Gson().fromJson(InputStreamReader(conn.inputStream), myType)
}
conn.disconnect()
} catch (e: Exception) {
@ -106,42 +128,6 @@ class UpdateUtil(var context: Context) {
return json
}
private fun startAppUpdate(updateInfo: JSONObject) {
try {
val versions = updateInfo.getJSONArray("assets")
var url = ""
var appName = ""
for (i in 0 until versions.length()) {
val tmp = versions.getJSONObject(i)
if (tmp.getString("name").contains(Build.SUPPORTED_ABIS[0])) {
url = tmp.getString("browser_download_url")
appName = tmp.getString("name")
break
}
}
if (url.isEmpty()) {
Toast.makeText(context, R.string.couldnt_find_apk, Toast.LENGTH_SHORT).show()
return
}
val uri = Uri.parse(url)
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.mkdirs()
downloadManager.enqueue(
DownloadManager.Request(uri)
.setAllowedNetworkTypes(
DownloadManager.Request.NETWORK_WIFI or
DownloadManager.Request.NETWORK_MOBILE
)
.setAllowedOverRoaming(true)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setTitle(context.getString(R.string.downloading_update))
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, appName)
)
} catch (ignored: Exception) {
}
}
suspend fun updateYoutubeDL() : UpdateStatus? =
withContext(Dispatchers.IO){
val sharedPreferences =

View file

@ -1,14 +0,0 @@
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<scale
android:duration="200"
android:fromXScale="0.8"
android:fromYScale="0.8"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1"
android:toYScale="1" >
</scale>
</set>

View file

@ -1,5 +0,0 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:colorAccent" android:pathData="M23,16c0,1.1 -0.9,2 -2,2h-1l-2,-2h3L21,4L6,4L4,2h17c1.1,0 2,0.9 2,2v12zM17.5,18l-2,-2zM14.9,18l6,6 1.3,-1.3 -4.7,-4.7 -2,-2L1.2,1.8 0,3.1l1,1L1,16c0,1.1 0.9,2 2,2h7v2L8,20v2h8v-2h-2v-2h0.9zM3,16L3,6.1l9.9,9.9L3,16z"/>
</vector>

View file

@ -1,5 +0,0 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:colorAccent" android:pathData="M20,3H4C2.9,3 2,3.9 2,5v10c0,1.1 0.9,2 2,2h6v2H8v2h8v-2h-2v-2h6c1.1,0 2,-0.9 2,-2V5C22,3.9 21.1,3 20,3"/>
</vector>

View file

@ -1,5 +0,0 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:textColorPrimary" android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM11,15L9.5,15v-2h-2v2L6,15L6,9h1.5v2.5h2L9.5,9L11,9v6zM18,14c0,0.55 -0.45,1 -1,1h-0.75v1.5h-1.5L14.75,15L14,15c-0.55,0 -1,-0.45 -1,-1v-4c0,-0.55 0.45,-1 1,-1h3c0.55,0 1,0.45 1,1v4zM14.5,13.5h2v-3h-2v3z"/>
</vector>

View file

@ -1,5 +0,0 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:colorAccent" android:pathData="M21,12.4V7l-4,-4H5C3.89,3 3,3.9 3,5v14c0,1.1 0.89,2 2,2h7.4L21,12.4zM15,15c0,1.66 -1.34,3 -3,3s-3,-1.34 -3,-3s1.34,-3 3,-3S15,13.34 15,15zM6,6h9v4H6V6zM19.99,16.25l1.77,1.77L16.77,23H15v-1.77L19.99,16.25zM23.25,16.51l-0.85,0.85l-1.77,-1.77l0.85,-0.85c0.2,-0.2 0.51,-0.2 0.71,0l1.06,1.06C23.45,16 23.45,16.32 23.25,16.51z"/>
</vector>

View file

@ -1,6 +0,0 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:textColorPrimary" android:pathData="M3,6H1v13c0,1.1 0.9,2 2,2h17v-2H3V6z"/>
<path android:fillColor="?android:textColorPrimary" android:pathData="M21,4h-7l-2,-2H7C5.9,2 5.01,2.9 5.01,4L5,15c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6C23,4.9 22.1,4 21,4z"/>
</vector>

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/transparent" />
<padding
android:top="10dp"
android:left="10dp"
android:right="10dp"
android:bottom="10dp"/>
</shape>

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/line"/>
<item
android:drawable="@drawable/line"/>
</selector>

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="10dp" android:height="100dp" />
<corners
android:radius="50dp" />
<padding
android:paddingLeft="22dp"
android:paddingRight="22dp" />
<solid android:color="?android:colorAccent" />
</shape>

View file

@ -1,10 +0,0 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:height="60dp"
android:state_pressed="true"
android:drawable="@drawable/thumb"/>
<item
android:height="60dp"
android:drawable="@drawable/thumb"/>
</selector>

View file

@ -46,7 +46,6 @@
</HorizontalScrollView>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Vertical"/>

View file

@ -46,7 +46,6 @@
</HorizontalScrollView>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Vertical"/>

View file

@ -46,7 +46,6 @@
</HorizontalScrollView>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Vertical"/>

View file

@ -46,7 +46,6 @@
</HorizontalScrollView>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Vertical"/>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:background="@android:color/transparent"
android:layout_height="0dp">
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -24,7 +24,6 @@
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -63,7 +62,6 @@
android:padding="10dp">
<TextView
android:id="@+id/currentTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/current"
@ -91,7 +89,6 @@
</ScrollView>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View file

@ -81,7 +81,6 @@
android:orientation="vertical">
<LinearLayout
android:id="@+id/video_linear_layout_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -101,7 +100,6 @@
</LinearLayout>
<LinearLayout
android:id="@+id/audio_linear_layout_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

View file

@ -46,7 +46,6 @@
</HorizontalScrollView>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Vertical"/>

View file

@ -78,7 +78,6 @@
android:shadowColor="@color/black" />
<LinearLayout
android:id="@+id/download_button_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom|right"

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:theme="@style/BaseTheme">
<item android:title="@string/command_templates"
android:icon="@drawable/ic_terminal"
app:showAsAction="ifRoom"
android:id="@+id/command_templates"/>
<item android:title="@string/shortcuts"
android:icon="@drawable/ic_shortcut"
app:showAsAction="ifRoom"
android:id="@+id/shortcuts"/>
</menu>

View file

@ -4,6 +4,5 @@
android:theme="@style/BaseTheme">
<item android:title="@string/download"
app:showAsAction="always"
android:id="@+id/downloadPlaylist"/>
app:showAsAction="always" />
</menu>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:label="@string/more"
app:startDestination="@id/activeDownloadsFragment">
<fragment
android:id="@+id/activeDownloadsFragment"
android:name="com.deniscerri.ytdlnis.ui.downloads.ActiveDownloadsFragment"
android:label="ActiveDownloadsFragment" />
<fragment
android:id="@+id/queuedDownloadsFragment"
android:name="com.deniscerri.ytdlnis.ui.downloads.QueuedDownloadsFragment"
android:label="QueuedDownloadsFragment" />
<fragment
android:id="@+id/cancelledDownloadsFragment"
android:name="com.deniscerri.ytdlnis.ui.downloads.CancelledDownloadsFragment"
android:label="CancelledDownloadsFragment" />
<fragment
android:id="@+id/erroredDownloadsFragment"
android:name="com.deniscerri.ytdlnis.ui.downloads.ErroredDownloadsFragment"
android:label="ErroredDownloadsFragment" />
</navigation>

View file

@ -2,7 +2,6 @@
<navigation 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:id="@+id/main_nav"
app:startDestination="@id/homeFragment">
<action

View file

@ -157,7 +157,6 @@
<string name="preferred_download_type_summary">التبويب الذي ستُفتح عليه بطاقة التحميل</string>
<string name="help_translate">المساعدة في الترجمة</string>
<string name="help_translate_summary">المساعدة في توطين/تحسين الترجمة على Weblate</string>
<string name="workmanager_updated">يتطلب تنفيذ هذا الإعداد، إعادة تشغيل التطبيق بدون تحميلات نشطة!</string>
<string name="restart">إعادة التشغيل</string>
<string name="confirm_delete_logs_desc">إزالة السجلات بالكامل.</string>
<string name="select">اختيار</string>
@ -253,7 +252,6 @@
<string name="restore_complete">اكتملت عملية الاستعادة، تمت استعادة العناصر التالية:</string>
<string name="backup_created_successfully">تم حفظ ملف النسخ الاحتياطي في مجلد \"Download\"</string>
<string name="select_backup_categories">اختيار فئات النسخ الاحتياطي</string>
<string name="locale">الموقع</string>
<string name="audio_only_item">يحتوي هذا العنصر على تنسيقات الصوت فقط</string>
<string name="socks5_proxy_summary">استخدام وكيل HTTP/HTTPS/SOCKS المحدد</string>
<string name="socks5_proxy">رابط الوكيل Socks5</string>
@ -268,7 +266,6 @@
<string name="swipe_gestures_summary">سحب العناصر يمينًا/يسارًا لـ التحميل/الإزالة</string>
<string name="crop_thumb">قص الصورة المصغرة</string>
<string name="crop_thumb_summary">قص الصورة المصغرة على شكل مربع للتحميلات الصوتية</string>
<string name="format_filtering_hint_2">يجب أن تكون جميع العناصر إما صوتية أو فيديو لاستخدام هذا الخيار</string>
<string name="custom_audio_quality">استخدام جودة صوت مخصصة</string>
<string name="piped_instance">مثيل Piped</string>
<string name="piped_instance_summary">إدخال خادم PIPED API، يمكن للتطبيق استخدامه لاستعلامات وتنسيقات يوتيوب</string>
@ -294,7 +291,6 @@
<string name="use_cookies">استخدام ملفات تعريف الارتباط</string>
<string name="embed_metadata">تضمين البيانات الوصفية</string>
<string name="embed_metadata_summary">دمج البيانات الوصفية داخل ملف الفيديو. يمكن أن يشمل ذلك، فهرس الفصول/التفاصيل الإضافية</string>
<string name="formats_updated">تم تحديث التنسيقات</string>
<string name="update_formats_background">تحديث التنسيقات في الخلفية</string>
<string name="use_sponsorblock">استخدام حاجب شرائح الإعلانات</string>
<string name="auto_update_ytdlp">تحديث تلقائي لـ yt-dlp</string>

View file

@ -104,7 +104,6 @@
<string name="enable_mtime_summary">HTTP Son Dəyişdirilən başlığın son dəyişdirilən vaxt kimi tənzimlə</string>
<string name="edit">Redaktə et</string>
<string name="import_from_clipboard">Buferdən idxal et</string>
<string name="workmanager_updated">Bu seçimə təsir etmək üçün aktiv yükləmələriniz yoxdur və tətbiqi yenidən başlatmalısınız!</string>
<string name="select">Seç</string>
<string name="all_items_selected">Bütün elementlər seçildi</string>
<string name="save_dir">Kataloqda saxla</string>
@ -264,11 +263,9 @@
<string name="swipe_gestures_summary">Bəzi fəaliyyətlər üçün elementləri sürüşdür</string>
<string name="crop_thumb">Miniatürü Kəs</string>
<string name="crop_thumb_summary">Səs yükləmələr üçün miniatürü kvadrat şəklində kəs</string>
<string name="locale">Yer</string>
<string name="audio_only_item">Bu element yalnız səs formatları ehtiva edir</string>
<string name="move_temporary_files">Müvəqqəti Faylları Köçür</string>
<string name="move_temporary_files_summary">Toplanan faylları yükləmələr qovluğuna köçür</string>
<string name="format_filtering_hint_2">Bu seçimi işlətmək üçün bütün elementlər səs və ya video olmalıdır</string>
<string name="piped_instance">Piped İnstansiya</string>
<string name="piped_instance_summary">PIPED API Server yazın, tətbiq YouTube sorğuları və formatları üçün işlədə bilər</string>
<string name="custom_audio_quality">Fərdi Səs Keyfiyyəti İşlət</string>
@ -294,7 +291,6 @@
<string name="use_cookies">Məlumat Bazası İstifadə Et</string>
<string name="embed_metadata">Üst məlumat yerləşdir</string>
<string name="embed_metadata_summary">Video fayla üst məlumat yerləşdir. Həmçinin, əgər varsa, bölmələr/infojsonlar yerləşdirir</string>
<string name="formats_updated">Formatlar yeniləndi</string>
<string name="update_formats_background">Arxa Planda Formatları Yenilə</string>
<string name="auto_update_ytdlp">Yt-dlp-ni Avtomatik Yenilə</string>
<string name="use_sponsorblock">SponsorBlock istifadə et</string>

View file

@ -116,7 +116,6 @@
<string name="access_all_directories_summary">ডিফল্টরূপে সীমাবদ্ধ ডিরেক্টরিগুলিতে অ্যাপটিকে ডাউনলোড করতে দিন</string>
<string name="split_by_chapters">অধ্যায় দ্বারা বিভক্ত করুন</string>
<string name="help_translate_summary">Weblate ব্যবহার করে আপনার ভাষায় এই অ্যাপটি অনুবাদ করুন</string>
<string name="workmanager_updated">এই পছন্দটি কার্যকর করার জন্য আপনাকে অ্যাপটি পুনরায় চালু করতে হবে এবং কোনও সক্রিয় ডাউনলোড নেই!</string>
<string name="restart">আবার শুরু করুন</string>
<string name="clear_temporary_files_summary">ক্র্যাশ/ত্রুটি/বাতিল করা ডাউনলোড থেকে ক্যাশে ফাইল মুছুন</string>
<string name="link_you_copied">আপনার কপি করা লিঙ্ক</string>
@ -243,7 +242,6 @@
<string name="appearance">চেহারা</string>
<string name="restore_complete">অ্যাপ পুনরুদ্ধার সম্পূর্ণ হয়েছে। নিম্নলিখিত আইটেমগুলি পুনরুদ্ধার করা হয়েছে:</string>
<string name="general">সাধারণ</string>
<string name="format_filtering_hint_2">এই অপশনটি ব্যবহার করার জন্য সমস্ত আইটেম অবশ্যই অডিও বা ভিডিও হতে হবে</string>
<string name="updating_download_data">ডাউনলোড আইটেম ডাটা আপডেট হচ্ছে</string>
<string name="keep_cache">ক্যাশে রাখুন</string>
<string name="search_history">অনুসন্ধান ইতিহাস</string>
@ -272,7 +270,6 @@
<string name="select_backup_categories">ব্যাকআপ ক্যাটাগরি নির্বাচন করুন</string>
<string name="subtitle_format">সাবটাইটেল ফরম্যাট
\n</string>
<string name="locale">স্থান</string>
<string name="audio_only_item">এই আইটেমটি শুধুমাত্র অডিও ফরম্যাট ধারণ করে</string>
<string name="pause">বিরতি দিন</string>
<string name="show_terminal">শেয়ার মেনুতে টার্মিনাল দেখান</string>

View file

@ -156,7 +156,6 @@
<string name="selected">Ausgewählt</string>
<string name="help_translate">Beim Übersetzen helfen</string>
<string name="help_translate_summary">Übersetze die App mit Weblate in Ihre Sprache</string>
<string name="workmanager_updated">Damit diese Einstellung wirksam wird, müssen Sie die App neu starten und dürfen keine aktiven Downloads haben!</string>
<string name="downloads_running_try_later">Der Download-Worker läuft. Später erneut versuchen</string>
<string name="link_you_copied">Kopierter Link</string>
<string name="restrict_filenames">Dateinamen einschränken</string>
@ -247,9 +246,7 @@
<string name="updating_download_data">Aktualisieren der Daten von heruntergeladenen Elemente</string>
<string name="appearance">Aussehen</string>
<string name="incognito">Inkognito</string>
<string name="locale">Gebietsschema</string>
<string name="audio_only_item">Dieses Element enthält nur Audioformate</string>
<string name="format_filtering_hint_2">Alle Elemente müssen entweder Audio oder Video sein, um diese Option zu nutzen</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="preferred_format_id">Bevorzugte Format-ID</string>
<string name="custom_audio_quality">Benutzerdefinierte Audioqualität verwenden</string>

View file

@ -159,9 +159,7 @@
<string name="selected">Επιλεγμένο</string>
<string name="clear_cancelled">Αφαίρεση Ακυρωμένων</string>
<string name="search_suggestions">Προτάσεις Αναζήτησης</string>
<string name="locale">Τοπικές Ρυθμίσεις</string>
<string name="restrict_filenames_summary">Περιόρισε τα ονόματα αρχείων μόνο σε χαρακτήρες ASCII και απόφυγε το \"&amp;\" και τα κενά διαστήματα στα ονόματα αρχείων</string>
<string name="workmanager_updated">Πρέπει να επανεκκινήσετε την εφαρμογή και να μην έχετε ενεργές λήψεις για να τεθεί σε ισχύ αυτή η προτίμηση!</string>
<string name="restart">Επανεκκίνηση</string>
<string name="download_rescheduled_to">Η λήψη επαναπρογραμματίστηκε σε:</string>
<string name="file_size">Μέγεθος αρχείου</string>
@ -267,7 +265,6 @@
<string name="socks5_proxy_summary">Χρησιμοποίησε τον καθορισμένο διακομιστή μεσολάβησης HTTP/HTTPS/SOCKS</string>
<string name="preferred_format_id_summary">Επίλεξε τη μορφή με αυτό το αναγνωριστικό στην κάρτα λήψης</string>
<string name="crop_thumb">Περικοπή Μικρογραφίας</string>
<string name="format_filtering_hint_2">Όλα τα στοιχεία πρέπει να είναι ήχος ή βίντεο για να χρησιμοποιήσετε αυτή την επιλογή</string>
<string name="piped_instance">Παρουσία Piped</string>
<string name="custom_audio_quality">Χρήση Προσαρμοσμένης Ποιότητας Ήχου</string>
<string name="piped_instance_summary">Γράψε έναν διακομιστή API PIPED που η εφαρμογή μπορεί να χρησιμοποιήσει για ερωτήματα και μορφές YouTube</string>

View file

@ -151,7 +151,6 @@
<string name="file_size">Tamaño del archivo</string>
<string name="clear_temporary_files">Borrar los archivos temporales</string>
<string name="clear_temporary_files_summary">Elimina los archivos en caché de descargas bloqueadas, canceladas o anuladas</string>
<string name="workmanager_updated">¡Debe reiniciar la aplicación y no tener descargas activas para que esta preferencia surta efecto!</string>
<string name="restart">Reiniciar</string>
<string name="download_rescheduled_to">Descarga aplazada a:</string>
<string name="ytdl_version">Versión de yt-dlp</string>
@ -258,7 +257,6 @@
<string name="search_suggestions">Sugerencias de búsqueda</string>
<string name="search_suggestions_summary">Obtener sugerencias de búsqueda de Google</string>
<string name="preferred_format_id_summary">Seleccione el formato con este ID en la tarjeta de descarga</string>
<string name="locale">Lugar</string>
<string name="audio_only_item">Este elemento solo contiene formatos de audio</string>
<string name="general">General</string>
<string name="misc">Varios</string>
@ -268,7 +266,6 @@
<string name="crop_thumb_summary">Recorte la miniatura en un cuadrado para descargas de audio</string>
<string name="move_temporary_files">Mover archivos temporales</string>
<string name="move_temporary_files_summary">Transferir archivos almacenados en caché a la carpeta de descargas</string>
<string name="format_filtering_hint_2">Todos los elementos deben ser de audio o video para usar esta opción</string>
<string name="custom_audio_quality">Calidad de audio personalizada</string>
<string name="piped_instance">Instancia para Piped</string>
<string name="piped_instance_summary">Escribe un servidor para la API PIPED, la aplicación puede usarse para consultas y formatos de YouTube</string>
@ -295,7 +292,6 @@
<string name="write_description_summary">Escribe una descripción para el archivo</string>
<string name="write_description">Guardar la descripción</string>
<string name="use_sponsorblock">Utilizar SponsorBlock</string>
<string name="formats_updated">Formatos actualizados</string>
<string name="update_formats_background">Actualizar los formatos en segundo plano</string>
<string name="auto_update_ytdlp">Actualización automática para yt-dlp</string>
</resources>

View file

@ -121,7 +121,6 @@
<string name="split_by_chapters">Diviser par chapitres</string>
<string name="items_imported">Eléments importés</string>
<string name="help_translate">Aider à traduire</string>
<string name="workmanager_updated">Vous devez redémarrer l\'application et n\'avoir aucun téléchargement en cours pour que cette préférence prenne effet !</string>
<string name="restart">Redémarrer</string>
<string name="download_rescheduled_to">Téléchargement reporté à :</string>
<string name="file_size">Taille du fichier</string>

View file

@ -112,7 +112,6 @@
<string name="clear_errored">त्रुटिपूर्ण को साफ़ करें</string>
<string name="split_by_chapters">अध्यायों द्वारा विभाजित</string>
<string name="items_imported">आयातित वस्तुएँ</string>
<string name="workmanager_updated">इस वरीयता के प्रभावी होने के लिए आपको ऐप को पुनरारंभ करना होगा और कोई सक्रिय डाउनलोड नहीं करना होगा!</string>
<string name="clear_temporary_files_summary">क्रैश/त्रुटि/रद्द किए गए डाउनलोड से कैश की गई फ़ाइलें हटाएं</string>
<string name="cache_cleared">अस्थायी फ़ाइलें साफ़ की गईं</string>
<string name="ytdl_version">वाईटी-डीएलपी संस्करण</string>
@ -170,9 +169,7 @@
<string name="red">लाल</string>
<string name="end">अंत</string>
<string name="format_source">प्रारूप स्रोत</string>
<string name="locale">स्थानीय</string>
<string name="audio_only_item">इस आइटम में केवल ऑडियो प्रारूप हैं</string>
<string name="format_filtering_hint_2">इस विकल्प का उपयोग करने के लिए सभी आइटम या तो ऑडियो या वीडियो होने चाहिए</string>
<string name="sponsorblock">प्रायोजक ब्लॉक</string>
<string name="configure_download">डाउनलोड समायोजित करें</string>
<string name="embed_thumb_summary">थंबनेल को कवर आर्ट के रूप में उपयोग करें</string>
@ -295,7 +292,6 @@
<string name="extra_command">अतिरिक्त आदेश</string>
<string name="use_cookies">कुकीज़ का प्रयोग करें</string>
<string name="update_formats_background">पृष्ठभूमि में फ़ॉर्मेट अपडेट करें</string>
<string name="formats_updated">फ़ॉर्मेट अपडेट कर दिए गए हैं</string>
<string name="auto_update_ytdlp">yt-dlp को ऑटो-अपडेट करें</string>
<string name="use_sponsorblock">स्पॉन्सरब्लॉक का उपयोग करें</string>
<string name="scheduling">निर्धारण</string>

View file

@ -53,7 +53,6 @@
<string name="create_shortcut">Buat Pintasan</string>
<string name="preferred_download_type_summary">Tab yang kartu unduhan akan buka secara asali</string>
<string name="access_all_directories_summary">Mengizinkan aplikasi untuk mengunduh di direktori yang secara asali dibatasi</string>
<string name="workmanager_updated">Kamu perlu memulai ulang aplikasi dan sedang tidak memiliki unduhan aktif supaya preferensi ini terasa pengaruhnya!</string>
<string name="clear_temporary_files">Kosongkan berkas sementara</string>
<string name="downloads_running_try_later">Pekerja unduhan sedang berjalan. Cobalah lagi nanti</string>
<string name="video_format">Format Video</string>
@ -258,7 +257,6 @@
<string name="search_suggestions">Saran Penelusuran</string>
<string name="search_suggestions_summary">Dapatkan saran penelusuran dari Google</string>
<string name="preferred_format_id_summary">Pilih format yang ada di kartu unduhan yang ber-ID ini</string>
<string name="locale">Wilayah</string>
<string name="audio_only_item">Butir ini hanya berisi format audio</string>
<string name="swipe_gestures_summary">Usap butir untuk melakukan tindakan-tindakan tertentu</string>
<string name="crop_thumb">Potong Gambar Keluku (Thumbnail)</string>
@ -266,7 +264,6 @@
<string name="swipe_gestures">Gestur Usap</string>
<string name="general">Umum</string>
<string name="misc">Aneka Ragam</string>
<string name="format_filtering_hint_2">Semua butir harus berupa audio atau video untuk bisa menggunakan opsi ini</string>
<string name="move_temporary_files_summary">Transfer berkas singgahan ke folder unduhan</string>
<string name="move_temporary_files">Pindahkan Berkas Sementara</string>
<string name="piped_instance">Instansi Piped</string>
@ -295,7 +292,6 @@
<string name="embed_metadata_summary">Menanamkan metadata ke berkas video. Juga menanamkan babak-babak/infojson jika ada</string>
<string name="embed_metadata">Tanamkan Metadata</string>
<string name="update_formats_background">Mutakhirkan Format di Latar Belakang</string>
<string name="formats_updated">Format telah dimutakhirkan</string>
<string name="use_sponsorblock">Gunakan SponsorBlock</string>
<string name="auto_update_ytdlp">Mutakhirkan yt-dlp Secara Otomatis</string>
<string name="cache_first">Singgahkan (Cache) Unduhan Dahulu</string>

View file

@ -135,7 +135,6 @@
<string name="swipe_gestures_summary">Scorri gli elementi per determinate azioni</string>
<string name="crop_thumb">Ritaglia miniatura</string>
<string name="crop_thumb_summary">Ritaglia la miniatura in un quadrato per i download audio</string>
<string name="format_filtering_hint_2">Tutti gli elementi devono essere audio o video per utilizzare questa opzione</string>
<string name="piped_instance">Instanza Piped</string>
<string name="custom_audio_quality">Usa qualità audio personalizzata</string>
<string name="use_extra_commands">Aggiungi comandi extra</string>
@ -175,7 +174,6 @@
<string name="adjust_templates">Modifica template</string>
<string name="adjust_video">Regola il video</string>
<string name="freespace">Spazio libero</string>
<string name="workmanager_updated">Devi riavviare l\'app e non avere download attivi affinché questa impostazione abbia effetto!</string>
<string name="downloads_running_try_later">Il download worker è in esecuzione. Riprovare più tardi</string>
<string name="ytdl_version">Versione di yt-dlp</string>
<string name="restrict_filenames">Limita i nomi dei file</string>
@ -235,7 +233,6 @@
<string name="saved">Salvato</string>
<string name="clear_saved">Pulisci salvati</string>
<string name="save_for_later">Salvare il download per dopo\?</string>
<string name="locale">Lingua</string>
<string name="audio_only_item">Questo elemento contiene solo formati audio</string>
<string name="error_updating_formats">Errore durante l\'aggiornamento dei formati!</string>
<string name="defaultValue">Predefinito</string>

View file

@ -128,7 +128,6 @@
<string name="preferred_download_type">優先されるダウンロードタイプ</string>
<string name="selected">選択済み</string>
<string name="redownload">再ダウンロード</string>
<string name="workmanager_updated">この設定を有効化するには、「アクティブなダウンロードがない事」と「アプリの再起動」が必要です!</string>
<string name="select">選択</string>
<string name="confirm_delete_logs_desc">ログリスト全体を永久に削除します。</string>
<string name="running">実行中</string>
@ -251,9 +250,7 @@
<string name="search_suggestions_summary">Google から検索候補を取得します</string>
<string name="preferred_format_id_summary">ダウンロードカードでこの ID を持つフォーマットを選択します</string>
<string name="backup_created_successfully">バックアップファイルをダウンロードフォルダに保存しました</string>
<string name="locale">ロケール</string>
<string name="audio_only_item">このアイテムはオーディオフォーマットのみが含まれています</string>
<string name="format_filtering_hint_2">このオプションを使用するには、すべてのアイテムが音声または動画のいずれかである必要があります</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="custom_audio_quality">カスタムオーディオ品質を使用</string>
<string name="piped_instance">パイプされたインスタンス</string>

View file

@ -105,7 +105,6 @@
<string name="items_imported">가져온 항목</string>
<string name="help_translate">번역 지원</string>
<string name="access_all_directories_summary">기본적으로 제한된 디렉토리에서 앱 다운로드 허용</string>
<string name="workmanager_updated">이 기본 설정을 적용하려면 앱을 다시 시작하고 활성 다운로드가 없어야 합니다!</string>
<string name="download_rescheduled_to">다운로드 일정 변경:</string>
<string name="clear_temporary_files_summary">다운로드시 충돌/오류/취소로 인해 생성된 캐시 파일을 삭제</string>
<string name="cache_cleared">임시 파일 삭제됨</string>
@ -153,7 +152,6 @@
<string name="swipe_gestures_summary">특정 작업에 대한 항목 스 와이프</string>
<string name="crop_thumb_summary">오디오 다운로드를 위해 축소판을 사각형으로 자릅니다</string>
<string name="update_app_summary">앱이 시작할때 앱의 새 버전을 알립니다</string>
<string name="locale">국가</string>
<string name="run_command">실행 명령</string>
<string name="command_download_notification_channel_description">yt-dlp 명령을 사용한 다운로드 진행률을 보여주는 알림</string>
<string name="sponsorblock_fillers">필터</string>
@ -268,7 +266,6 @@
<string name="downloads_running_try_later">다운로드 작업자가 실행 중입니다. 나중에 다시 시도하세요</string>
<string name="move_temporary_files">임시 파일 이동</string>
<string name="move_temporary_files_summary">캐시된 파일을 다운로드 폴더로 전송</string>
<string name="format_filtering_hint_2">이 옵션을 사용하려면 모든 항목이 오디오 또는 비디오여야 합니다</string>
<string name="custom_audio_quality">사용자 지정 오디오 품질 사용</string>
<string name="piped_instance">파이프 인스턴스</string>
<string name="piped_instance_summary">앱이 유튜브 쿼리 및 형식에 사용할 수 있는 PIPED API 서버 설정</string>
@ -298,7 +295,6 @@
<string name="use_scheduler">스케쥴에 따라 다운로드</string>
<string name="cache_first_summary">캐시 파일을 내부 저장소에 다운로드한 다음 선택한 폴더로 이동합니다. 저장소에 직접 쓸 수 없을 때 사용하세요</string>
<string name="scheduling">스케쥴링</string>
<string name="formats_updated">형식이 업데이트 되었습니다</string>
<string name="update_formats_background">백그라운드에서 형식을 업데이트</string>
<string name="auto_update_ytdlp">yt-dlp 자동 업데이트</string>
<string name="use_sponsorblock">스폰서블럭 사용</string>

View file

@ -173,7 +173,6 @@
<string name="selected">Atlasīts</string>
<string name="all_items_selected">Visi vienumi atlasīti</string>
<string name="clear_errored">Notīrīt Kļūdainos</string>
<string name="workmanager_updated">Jums nepieciešams restartēt lietotni, un nav jābūt aktīvām lejupielādēm, lai šī preference stātos spēkā!</string>
<string name="kill_app">Pārtraukt Lietotnes Darbību</string>
<string name="confirm_terminate">Aptur visas lejupielādes un piespiedu kārtā aizver lietotni</string>
<string name="dont_ask_again">Nejautāt vēlreiz</string>
@ -242,7 +241,6 @@
<string name="blue">Zils</string>
<string name="incognito">Inkognito</string>
<string name="yellow">Dzeltens</string>
<string name="locale">Lokalizācija</string>
<string name="quick_download">Ātrā Lejupielāde</string>
<string name="Theme">Tēma</string>
<string name="preferred_search_engine_summary">Meklētājprogramma, ko izmantot meklēšanai lietotnē</string>
@ -268,7 +266,6 @@
<string name="finished_download_notification_channel_description">Paziņojums par pabeigtām vai kļūdainām lejupielādēm</string>
<string name="move_temporary_files">Pārvietot Pagaidu Failus</string>
<string name="move_temporary_files_summary">Kešatmiņā esošo failu pārvietošana uz lejupielādes mapi</string>
<string name="format_filtering_hint_2">Lai izmantotu šo opciju, visiem vienumiem ir jābūt audio vai video</string>
<string name="piped_instance">Piped Instance</string>
<string name="piped_instance_summary">Izmanto PIPED API Serveri, ko lietotne var izmantot YouTube vaicājumiem un formātiem</string>
<string name="custom_audio_quality">Izmantot Pielāgotu Audio Kvalitāti</string>

View file

@ -168,7 +168,6 @@
<string name="items_imported">Elementer importert</string>
<string name="restart">Omstart</string>
<string name="split_by_chapters">Del inn i kapitler</string>
<string name="workmanager_updated">Du må starte programmet på ny og ikke ha noen aktive nedlastinger for å ta i bruk denne endringen.</string>
<string name="worst_quality">Verste kvalitet</string>
<string name="best_quality">Beste kvalitet</string>
<string name="dont_ask_again">Ikke spør igjen</string>

View file

@ -100,7 +100,6 @@
<string name="items_imported">Ting førte inn</string>
<string name="help_translate">Omset</string>
<string name="help_translate_summary">Omset denne appen til tunga di med Weblate</string>
<string name="workmanager_updated">Du må starte appen på nytt og ikke ha noen aktive nedlastinger for at denne preferansen skal tre i kraft!</string>
<string name="restart">Byrj om</string>
<string name="file_size">Filstorleik</string>
<string name="clear_temporary_files">Tøm mellombelse filer</string>
@ -266,7 +265,5 @@
<string name="downloaded">"Henta: "</string>
<string name="access_all_directories_summary">La appen hente til avgrensa mapper som ellers er utilgjengelege</string>
<string name="preferred_locale">Foretrukket lokalitet</string>
<string name="format_filtering_hint_2">Alle elementer må enten være lyd eller video for å bruke dette alternativet</string>
<string name="updating_download_data">Oppdaterer nedlastningselementdata</string>
<string name="locale">Lokalt</string>
</resources>

View file

@ -46,7 +46,6 @@
<string name="custom_audio_quality">ਕਸਟਮ ਆਡੀਓ ਗੁਣਵੱਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ</string>
<string name="piped_instance">Piped ਇੰਸਟੈਂਸ</string>
<string name="move_temporary_files">ਅਸਥਾਈ ਫਾਈਲਾਂ ਨੂੰ ਮੂਵ ਕਰੋ</string>
<string name="format_filtering_hint_2">ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਸਾਰੀਆਂ ਆਈਟਮਾਂ ਆਡੀਓ ਜਾਂ ਵੀਡੀਓ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ</string>
<string name="move_temporary_files_summary">ਕੈਸ਼ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਫੋਲਡਰ ਵਿੱਚ ਟ੍ਰਾਂਸਫਰ ਕਰੋ</string>
<string name="music_directory">ਸੰਗੀਤ ਫੋਲਡਰ</string>
<string name="video_directory">ਵੀਡੀਓ ਫੋਲਡਰ</string>
@ -214,7 +213,6 @@
<string name="general">ਜਨਰਲ</string>
<string name="swipe_gestures">ਸਵਾਈਪ ਸੰਕੇਤ</string>
<string name="swipe_gestures_summary">ਕੁਝ ਖਾਸ ਕਾਰਵਾਈਆਂ ਲਈ ਆਈਟਮਾਂ ਨੂੰ ਸਵਾਈਪ ਕਰੋ</string>
<string name="locale">ਸਥਾਨ</string>
<string name="audio_only_item">ਇਸ ਆਈਟਮ ਵਿੱਚ ਸਿਰਫ਼ ਆਡੀਓ ਫਾਰਮੈਟ ਸ਼ਾਮਿਲ ਹਨ</string>
<string name="show_download_card">ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਵਿਕਲਪ ਵਿਖਾਓ</string>
<string name="warning">ਚੇਤਾਵਨੀ</string>
@ -256,7 +254,6 @@
<string name="update_template">ਟੈਮਪਲੇਟ ਅੱਪਡੇਟ ਕਰੋ</string>
<string name="access_all_directories_summary">ਐਪ ਨੂੰ ਡਾਇਰੈਕਟਰੀਆਂ \'ਤੇ ਡਾਊਨਲੋਡ ਕਰਨ ਦਿਓ ਜੋ ਡਿਫ਼ਾਲਟ ਤੌਰ \'ਤੇ ਪ੍ਰਤਿਬੰਧਿਤ ਹਨ</string>
<string name="help_translate_summary">Weblate ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਸ ਐਪ ਦਾ ਆਪਣੀ ਭਾਸ਼ਾ ਵਿੱਚ ਅਨੁਵਾਦ ਕਰੋ</string>
<string name="workmanager_updated">ਇਸ ਤਰਜੀਹ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਐਪ ਨੂੰ ਰੀਸਟਾਰਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਅਤੇ ਕੋਈ ਡਾਊਨਲੋਡ ਕਿਰਿਆਸ਼ੀਲ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ!</string>
<string name="green">ਹਰਾ</string>
<string name="clear_temporary_files_summary">ਕ੍ਰੈਸ਼/ਗਲਤੀ/ਰੱਦ ਕੀਤੇ ਡਾਉਨਲੋਡਸ ਤੋਂ ਕੈਸ਼ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਮਿਟਾਓ</string>
<string name="confirm_terminate">ਸਾਰੇ ਡਾਊਨਲੋਡਾਂ ਨੂੰ ਰੋਕਦਾ ਹੈ ਅਤੇ ਐਪ ਨੂੰ ਜ਼ਬਰੀ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ</string>
@ -294,7 +291,6 @@
<string name="embed_metadata_summary">ਵੀਡੀਓ ਫਾਈਲ ਵਿੱਚ ਮੈਟਾਡੇਟਾ ਏਮਬੇਡ ਕਰੋ। ਜੇਕਰ ਮੌਜੂਦ ਹੋਵੇ ਤਾਂ ਚੈਪਟਰਾਂ/ਜਾਣਕਾਰੀ ਨੂੰ ਵੀ ਸ਼ਾਮਿਲ ਕਰਦਾ ਹੈ</string>
<string name="write_description_summary">ਵੇਰਵਾ ਫਾਇਲ ਲਿਖੋ</string>
<string name="write_description">ਵੇਰਵਾ ਸੰਭਾਲੋ</string>
<string name="formats_updated">ਫਾਰਮੈਟ ਅੱਪਡੇਟ ਕੀਤੇ ਗਏ ਹਨ</string>
<string name="update_formats_background">ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਫਾਰਮੈਟ ਅੱਪਡੇਟ ਕਰੋ</string>
<string name="auto_update_ytdlp">yt-dlp ਆਟੋ-ਅੱਪਡੇਟ ਕਰੋ</string>
<string name="use_sponsorblock">ਸਪਾਂਸਰਬਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰੋ</string>

View file

@ -133,7 +133,6 @@
<string name="items_imported">Importowane elementy</string>
<string name="clear_cancelled">Wyczyść anulowane</string>
<string name="help_translate">Pomóż w tłumaczeniu</string>
<string name="workmanager_updated">Aby to ustawienie zaczęło obowiązywać, musisz ponownie uruchomić aplikację i nie mieć żadnych aktywnych pobrań!</string>
<string name="cache_cleared">Wyczyszczono pliki tymczasowe</string>
<string name="kill_app">Zakończ działanie aplikacji</string>
<string name="suggested">Sugerowane</string>
@ -232,9 +231,7 @@
<string name="appearance">Wygląd</string>
<string name="purple">Fioletowy</string>
<string name="keep_cache">Zachowaj pamięć podręczną</string>
<string name="locale">Region</string>
<string name="audio_only_item">Ten element zawiera tylko formaty audio</string>
<string name="format_filtering_hint_2">Aby można było użyć tej opcji, wszystkie elementy muszą być audio lub wideo</string>
<string name="subtitle_languages">Języki napisów</string>
<string name="save_subs_desc">Zapisz plik z napisami</string>
<string name="custom_audio_quality">Użyj niestandardowej jakości dźwięku</string>

View file

@ -151,7 +151,6 @@
<string name="items_imported">Itens importados</string>
<string name="help_translate">Ajude a traduzir</string>
<string name="help_translate_summary">Traduza este aplicativo para o seu idioma usando o Weblate</string>
<string name="workmanager_updated">Você precisa reiniciar o aplicativo e não ter downloads ativos para que essa preferência entre em vigor!</string>
<string name="restart">Reiniciar</string>
<string name="file_size">Tamanho do arquivo</string>
<string name="clear_temporary_files">Remover arquivos temporários</string>
@ -253,9 +252,7 @@
<string name="template">Modelo</string>
<string name="sponsorblock_nonmusic">Partes sem música e sem relação com o tema</string>
<string name="container">Contêiner</string>
<string name="locale">Local</string>
<string name="audio_only_item">Este item contém apenas formatos de áudio</string>
<string name="format_filtering_hint_2">Todos os itens devem ser áudio ou vídeo para usar esta opção</string>
<string name="custom_audio_quality">Usar qualidade de áudio personalizada</string>
<string name="move_temporary_files">Mover arquivos temporários</string>
<string name="move_temporary_files_summary">Mover arquivos em cache para a pasta de downloads</string>
@ -296,7 +293,6 @@
<string name="embed_metadata_summary">Incorpore metadados ao arquivo de vídeo. Também incorpore capítulos/infojson se presente</string>
<string name="auto_update_ytdlp">Atualização automática do yt-dlp</string>
<string name="use_sponsorblock">Usar SponsorBlock</string>
<string name="formats_updated">Os formatos foram atualizados</string>
<string name="update_formats_background">Atualizar formatos em segundo plano</string>
<string name="cache_first">Downloads em cache primeiro</string>
<string name="cache_first_summary">Os arquivos de cache são baixados para o armazenamento interno e depois movidos para o diretório escolhido. Use isto quando você não puder gravar diretamente no armazenamento</string>

View file

@ -145,7 +145,6 @@
<string name="clear_errored">Limpar erros</string>
<string name="split_by_chapters">Dividido por capítulos</string>
<string name="help_translate">Ajudar a traduzir</string>
<string name="workmanager_updated">É necessário reiniciar a aplicação e não ter transferências activas para que esta preferência tenha efeito!</string>
<string name="download_rescheduled_to">Transferência reagendada para:</string>
<string name="clear_temporary_files">Limpar ficheiros temporários</string>
<string name="Theme">Tema</string>
@ -265,10 +264,8 @@
<string name="swipe_gestures_summary">Deslizar itens para determinadas acções</string>
<string name="crop_thumb">Cortar miniatura</string>
<string name="crop_thumb_summary">Cortar a miniatura num quadrado para transferências de áudio</string>
<string name="locale">Localidade</string>
<string name="audio_only_item">Este item contém apenas formatos de áudio</string>
<string name="move_temporary_files">Mover ficheiros temporários</string>
<string name="format_filtering_hint_2">Para utilizar esta opção, todos os itens têm de ser áudio ou vídeo</string>
<string name="piped_instance">Instância do servidor Piped</string>
<string name="piped_instance_summary">Escreva um servidor API PIPED, o aplicativo pode usar para consultas e formatos do YouTube</string>
<string name="custom_audio_quality">Utilizar qualidade de áudio personalizada</string>
@ -296,7 +293,6 @@
<string name="embed_metadata_summary">Incorpore metadados ao ficheiro de vídeo. Também incorpore capítulos/infojson se estiverem presentes</string>
<string name="update_formats_background">Atualizar formatos em segundo plano</string>
<string name="auto_update_ytdlp">Atualização automática do yt-dlp</string>
<string name="formats_updated">Os formatos foram atualizados</string>
<string name="use_sponsorblock">Utilizar SponsorBlock</string>
<string name="cache_first">Transferências em cache primeiro</string>
<string name="scheduling">Programação</string>

View file

@ -93,7 +93,6 @@
<string name="you_are_going_to_delete_multiple_items">Șterge elemente multiple</string>
<string name="adjust_templates">Setări Șablon</string>
<string name="access_all_directories_summary">Permite aplicației să descarce in foldere implicit restricționate</string>
<string name="workmanager_updated">Necesită repornirea aplicației fără a avea descărcări active pentru ca preferințele să aibă efect!</string>
<string name="download_rescheduled_to">Descărcare replanificată la:</string>
<string name="downloads_running_try_later">Descărcarea are loc. Încearcă mai târziu</string>
<string name="link_you_copied">Link-ul pe care l-ai copiat</string>
@ -277,11 +276,9 @@
<string name="hide_thumbnails">Ascunde decupaje</string>
<string name="force_keyframes_summary">Proces încetinit, dar mult mai acurateț</string>
<string name="save_for_later">Salvezi Descărcarea pe mai târziu\?</string>
<string name="locale">Local</string>
<string name="audio_only_item">Acest articol conține doar formate audio</string>
<string name="pause">Pauză</string>
<string name="show_terminal">Afișează Terminal în meniul Împărtășește</string>
<string name="format_filtering_hint_2">Toate articolele trebuiesc sa fie audio sau video pentru a utiliza această opțiune</string>
<string name="sponsorblock">Blochează sponsor</string>
<string name="configure_download">Ajustează Descărcările</string>
<string name="write_description">Adaugă o descriere in momentul Salvării</string>

View file

@ -146,7 +146,6 @@
<string name="command">Команда</string>
<string name="date_added">Дата добавления</string>
<string name="help_translate">Помочь с переводом</string>
<string name="workmanager_updated">Вам нужно перезапустить приложение и не иметь активных загрузок, чтобы эта настройка вступила в силу!</string>
<string name="template">Шаблон</string>
<string name="logs">Логи</string>
<string name="command_templates">Шаблоны команд</string>
@ -258,7 +257,6 @@
<string name="search_suggestions">Предложения по поиску</string>
<string name="search_suggestions_summary">Получайте поисковые подсказки от Google</string>
<string name="preferred_format_id_summary">Выберите формат с этим ID в карточке загрузки</string>
<string name="locale">Регион</string>
<string name="crop_thumb_summary">Обрежьте миниатюру в квадрат для загрузки аудио</string>
<string name="audio_only_item">Этот элемент содержит только аудио форматы</string>
<string name="misc">Разное</string>
@ -268,7 +266,6 @@
<string name="general">Общие</string>
<string name="move_temporary_files">Переместить временные файлы</string>
<string name="move_temporary_files_summary">Перенесите кешированные файлы в папку загрузок</string>
<string name="format_filtering_hint_2">Все элементы должны быть либо аудио, либо видео, чтобы использовать эту опцию</string>
<string name="custom_audio_quality">Выбор качества аудио</string>
<string name="piped_instance">Piped сервер</string>
<string name="piped_instance_summary">Напишите сервер PIPED API, который приложение может использовать для запросов и форматов YouTube</string>
@ -296,7 +293,6 @@
<string name="embed_metadata">Встроить метаданные</string>
<string name="auto_update_ytdlp">Автообновление yt-dlp</string>
<string name="update_formats_background">Обновлять форматы в фоновом режиме</string>
<string name="formats_updated">Форматы обновлены</string>
<string name="use_sponsorblock">Использование SponsorBlock</string>
<string name="scheduling">Планирование</string>
<string name="use_scheduler">Загрузить по расписанию</string>

View file

@ -161,7 +161,6 @@
<string name="items_imported">Elementë të importuar</string>
<string name="help_translate">Ndihmo në përkthim</string>
<string name="help_translate_summary">Përkthe këtë aplikacion në gjuhën tuaj duke përdorur Weblate</string>
<string name="workmanager_updated">Duhet të rinisni aplikacionin dhe të mos keni shkarkime aktive që kjo preferencë të hyjë në fuqi!</string>
<string name="restart">Rinis</string>
<string name="file_size">Madhësia e skedarit</string>
<string name="clear_temporary_files">Pastro skedarët e perkohshëm</string>
@ -261,7 +260,6 @@
<string name="preferred_format_id_summary">Zgjidhni formatin me këtë ID në kartën e shkarkimit</string>
<string name="misc">Të Tjera</string>
<string name="audio_only_item">Ky artikull përmban vetëm formate audio</string>
<string name="locale">Lokal</string>
<string name="general">Të Përgjithshme</string>
<string name="swipe_gestures">Gjestet e rrëshqitjes</string>
<string name="swipe_gestures_summary">Rrëshqitni artikujt për veprime të caktuara</string>
@ -269,7 +267,6 @@
<string name="crop_thumb_summary">Preje thumbnailin në formë katrore për shkarkimet audio</string>
<string name="move_temporary_files">Zhvendos skedarët e përkohshëm</string>
<string name="move_temporary_files_summary">Transfero skedarët e përkohshëm në dosjen e shkarkimeve</string>
<string name="format_filtering_hint_2">Të gjithë artikujt duhet të jenë audio ose video për të përdorur këtë opsion</string>
<string name="custom_audio_quality">Përdor cilësinë e personalizuar të audios</string>
<string name="piped_instance">Instanca e PIPED</string>
<string name="piped_instance_summary">Shkruani një Server API PIPED, aplikacioni mund të përdorë për kërkimet dhe formatet në youtube</string>
@ -294,7 +291,6 @@
<string name="use_cookies">Përdor Biskotat</string>
<string name="embed_metadata">Vendos Metadatat</string>
<string name="embed_metadata_summary">Vendosni të dhënat meta në skedarin e videos. Përfshin gjithashtu kapitujt/infojson nëse janë të pranishëm</string>
<string name="formats_updated">Formatet u përditësuan</string>
<string name="update_formats_background">Përditëso formatet në Prapaskenë</string>
<string name="auto_update_ytdlp">Përditëso yt-dlp Automatikisht</string>
<string name="use_sponsorblock">Përdor SponsorBlock</string>

View file

@ -76,7 +76,6 @@
<string name="download_card_summary">การตั้งค่าสำหรับวิธีการดาวน์โหลดรายการ</string>
<string name="crop_thumb_summary">ครอบตัดภาพขนาดย่อเป็นสี่เหลี่ยมสำหรับการดาวน์โหลดไฟล์เสียง</string>
<string name="use_extra_commands_summary">"สำหรับการดาวน์โหลดเสียง / วิดีโอ เพิ่มคำสั่งพิเศษพร้อมกับการกำหนดค่า GUI"</string>
<string name="format_filtering_hint_2">รายการทั้งหมดต้องเป็นเสียงหรือวิดีโอ เพื่อใช้ตัวเลือกนี้</string>
<string name="move_temporary_files_summary">ถ่ายโอนไฟล์แคชไปยังโฟลเดอร์ดาวน์โหลด</string>
<string name="move_temporary_files">ย้ายไฟล์ชั่วคราว</string>
<string name="crop_thumb">ครอบตัดภาพขนาดย่อ</string>

View file

@ -109,7 +109,6 @@
<string name="terminal">Terminal</string>
<string name="enable_mtime">Aktivasyon d.saat</string>
<string name="enable_mtime_summary">HTTP son değiştirilme başlığını son değiştirilme zamanı olarak ayarla</string>
<string name="workmanager_updated">Bu seçeneğin uygulanabilmesi için devam eden indirmeniz olmaması ve uygulamayı yeniden başlatmanız gerekiyor!</string>
<string name="restart">Yeniden başlat</string>
<string name="clear_temporary_files_summary">Çöken/hatalı/iptal edilen indirmelerden önbelleğe alınmış dosyaları sil</string>
<string name="downloads_running_try_later">İndirme çalışanı çalışıyor. Daha sonra tekrar deneyin</string>
@ -248,9 +247,7 @@
<string name="restore">Geri yükle</string>
<string name="sponsorblock">SponsorBlock By İrfan</string>
<string name="network_error">Ağ Hatası</string>
<string name="locale">yerel ayar</string>
<string name="audio_only_item">Bu öğe yalnızca ses biçimlerini içerir</string>
<string name="format_filtering_hint_2">Bu seçeneği kullanmak için tüm öğeler ses veya video olmalıdır</string>
<string name="piped_instance">Borulu Örnek</string>
<string name="socks5_proxy_summary">Belirtilen HTTP/HTTPS/SOCKS proxy\'sini kullanın</string>
<string name="restore_complete">Uygulama Geri Yükleme Tamamlandı. Aşağıdaki öğeler geri yüklendi:</string>
@ -296,7 +293,6 @@
<string name="use_cookies">Çerezleri Kullan</string>
<string name="embed_metadata">Meta Verileri Göm</string>
<string name="embed_metadata_summary">Meta verileri video dosyasına gömün. Varsa bölümleri/infojson\'u da yerleştirir</string>
<string name="formats_updated">Biçimler güncellendi</string>
<string name="update_formats_background">Biçimleri Arka Planda Güncelle</string>
<string name="auto_update_ytdlp">Yt-dlp\'i Otomatik Güncelle</string>
<string name="use_sponsorblock">SponsorBlock Kullan</string>

View file

@ -162,7 +162,6 @@
<string name="clear_temporary_files_summary">Видалення кешованих файлів зі збійних/помилкових/скасованих завантажень</string>
<string name="clear_cancelled">Очистити скасоване</string>
<string name="split_by_chapters">Розподіл за розділами</string>
<string name="workmanager_updated">Щоб це налаштування набуло чинності, вам потрібно перезапустити застосунок і не мати активних завантажень!</string>
<string name="restart">Перезавантажити</string>
<string name="cache_cleared">Очищено тимчасові файли</string>
<string name="downloads_running_try_later">Завантажувач працює. Спробуйте ще раз пізніше</string>
@ -264,11 +263,9 @@
<string name="swipe_gestures_summary">Увімкнути жести для певних дій</string>
<string name="crop_thumb">Обрізати мініатюру</string>
<string name="crop_thumb_summary">Обріжте ескіз у квадрат для завантаження аудіо</string>
<string name="locale">Локаль</string>
<string name="audio_only_item">Цей елемент містить лише аудіоформати</string>
<string name="move_temporary_files_summary">Перенесіть кешовані файли в папку завантажень</string>
<string name="move_temporary_files">Перемістити тимчасові файли</string>
<string name="format_filtering_hint_2">Щоб скористатися цією опцією, усі елементи мають бути аудіо чи відео</string>
<string name="custom_audio_quality">Вибір якості аудіо</string>
<string name="piped_instance">Piped сервер</string>
<string name="piped_instance_summary">Напишіть сервер Piped API, який програма може використовувати для запитів і форматів YouTube</string>
@ -297,7 +294,6 @@
<string name="auto_update_ytdlp">Автооновлення yt-dlp</string>
<string name="use_sponsorblock">Використання SponsorBlock</string>
<string name="update_formats_background">Оновити формати у фоновому режимі</string>
<string name="formats_updated">Оновлені формати</string>
<string name="scheduling">Планування</string>
<string name="cache_first_summary">Файли кешу завантажуються у внутрішню пам\'ять, а потім переносяться в обрану вами папку. Використовується, коли немає можливості записувати файл безпосередньо в пам\'ять</string>
<string name="cache_first">Спочатку завантажується кеш</string>

View file

@ -192,7 +192,6 @@
<string name="add_template_first">Bạn cần tạo ít nhất một mẫu lệnh!</string>
<string name="freespace">Không gian trống</string>
<string name="help_translate_summary">Dịch ứng dụng này sang ngôn ngữ của bạn bằng Weblate</string>
<string name="workmanager_updated">Bạn cần khởi động lại ứng dụng và không có lượt tải xuống nào đang hoạt động để tùy chọn này có hiệu lực!</string>
<string name="restart">Khởi động lại</string>
<string name="metered_network_download_start_info">Tải xuống sẽ bắt đầu sau khi bạn được kết nối với mạng không đo lưu lượng</string>
<string name="invert_selected">Đảo ngược đã chọn</string>

View file

@ -139,7 +139,6 @@
<string name="error_restarting_download">重新下载时出错</string>
<string name="update_template">更新模板</string>
<string name="update">更新</string>
<string name="workmanager_updated">您需要重新启动应用,并且没有正在进行的下载才能使此首选项生效!</string>
<string name="clear_temporary_files">清除临时文件</string>
<string name="download_rescheduled_to">下载已重新添加到:</string>
<string name="restrict_filenames">限制文件名</string>
@ -153,7 +152,6 @@
<string name="backup_created_successfully">备份文件保存在下载文件夹中</string>
<string name="appearance">外观</string>
<string name="pause">暂停</string>
<string name="format_filtering_hint_2">所有项目都必须是音频或视频才能使用此选项</string>
<string name="configure_download">调整下载</string>
<string name="show_terminal">在分享菜单中显示终端</string>
<string name="socks5_proxy">Socks5 代理网址</string>
@ -285,7 +283,6 @@
<string name="sponsorblock_promos">自我推广</string>
<string name="sponsorblock_fillers">补充</string>
<string name="enable_mtime_summary">将 HTTP Last-Modified 标头设置为最近修改时间</string>
<string name="locale">区域</string>
<string name="piped_instance">PIPED 实例</string>
<string name="piped_instance_summary">添加 PIPED API 服务器,用于 YouTube 查询和格式化</string>
<string name="format_order">格式排序</string>
@ -294,7 +291,6 @@
<string name="codec">编解码器</string>
<string name="material_you">Material You</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="formats_updated">格式已更新</string>
<string name="update_formats_background">在后台更新格式</string>
<string name="auto_update_ytdlp">自动更新 yt-dlp</string>
<string name="use_sponsorblock">使用 SponsorBlock</string>

View file

@ -141,7 +141,6 @@
<string name="crop_thumb">裁剪縮圖</string>
<string name="move_temporary_files">移動暫存檔案</string>
<string name="move_temporary_files_summary">將快取檔案轉移至下載資料夾</string>
<string name="format_filtering_hint_2">所有項目必須為音訊或影片才能使用此選項</string>
<string name="piped_instance_summary">撰寫 PIPED API 伺服器,應用程式可用於 YouTube 查詢和格式</string>
<string name="fragment_retries">片段重試次數</string>
<string name="format_order">格式順序</string>
@ -232,7 +231,6 @@
<string name="video_recommendations_summary">在主畫面從 PIPED API 取得推薦的 YouTube 影片</string>
<string name="help_translate_summary">使用 Weblate 將此應用程式翻譯為您的語言</string>
<string name="file_size">檔案大小</string>
<string name="workmanager_updated">您需要重新啟動此應用程式並且沒有進行中的下載,以便此偏好設定生效!</string>
<string name="restart">重新啟動</string>
<string name="clear_temporary_files_summary">從崩潰/錯誤/取消的下載中刪除快取檔案</string>
<string name="download_rescheduled_to">下載已重新安排至:</string>
@ -272,7 +270,6 @@
<string name="search_suggestions">搜尋建議</string>
<string name="swipe_gestures">滑動手勢</string>
<string name="preferred_format_id_summary">使用此 ID 在下載卡片中選擇格式</string>
<string name="locale">地區</string>
<string name="crop_thumb_summary">將縮圖裁剪成正方形,適用於音訊下載</string>
<string name="retries">重試次數</string>
<string name="use_extra_commands">新增額外指令</string>
@ -294,7 +291,6 @@
<string name="embed_metadata">嵌入元資料</string>
<string name="embed_metadata_summary">將元資料嵌入影片檔案,若有的話,也會嵌入章節 /infojson</string>
<string name="use_sponsorblock">使用 SponsorBlock</string>
<string name="formats_updated">格式已更新</string>
<string name="update_formats_background">背景更新格式</string>
<string name="auto_update_ytdlp">自動更新 yt-dlp</string>
</resources>

View file

@ -300,10 +300,6 @@
<color name="orange_md_theme_light_inverseOnSurface">#F9EFE7</color>
<color name="orange_md_theme_light_inverseSurface">#352F2A</color>
<color name="orange_md_theme_light_inversePrimary">#FFB95C</color>
<color name="orange_md_theme_light_shadow">#000000</color>
<color name="orange_md_theme_light_surfaceTint">#855400</color>
<color name="orange_md_theme_light_outlineVariant">#D4C4B5</color>
<color name="orange_md_theme_light_scrim">#000000</color>
<color name="orange_md_theme_dark_primary">#FFB95C</color>
<color name="orange_md_theme_dark_onPrimary">#462A00</color>
<color name="orange_md_theme_dark_primaryContainer">#653E00</color>
@ -330,10 +326,6 @@
<color name="orange_md_theme_dark_inverseOnSurface">#1F1B16</color>
<color name="orange_md_theme_dark_inverseSurface">#EBE1D9</color>
<color name="orange_md_theme_dark_inversePrimary">#855400</color>
<color name="orange_md_theme_dark_shadow">#000000</color>
<color name="orange_md_theme_dark_surfaceTint">#FFB95C</color>
<color name="orange_md_theme_dark_outlineVariant">#504539</color>
<color name="orange_md_theme_dark_scrim">#000000</color>
// Colors without comments seem to be not used
<color name="monochrome_theme_light_primary">#616161</color>

View file

@ -39,9 +39,6 @@
<string name="downloading_update">Downloading new version</string>
<string name="audio">Audio</string>
<string name="video">Video</string>
<string name="music_path" translatable="false">content://com.android.externalstorage.documents/tree/primary%3ADownload%2FYTDLnis%2FAudio</string>
<string name="video_path" translatable="false">content://com.android.externalstorage.documents/tree/primary%3ADownload%2FYTDLnis%2FVideo</string>
<string name="command_path" translatable="false">content://com.android.externalstorage.documents/tree/primary%3ADownload%2FYTDLnis%2FCommand</string>
<string name="concurrent_fragments_summary">Number of fragments of a DASH/HLS native video to download concurrently</string>
<string name="concurrent_fragments">Concurrent Fragments</string>
<string name="downloading">Downloading</string>
@ -167,7 +164,6 @@
<string name="items_imported">Items Imported</string>
<string name="help_translate">Help Translate</string>
<string name="help_translate_summary">Translate this app on your language using Weblate</string>
<string name="workmanager_updated">You need to restart the app and have no active downloads for this preference to take effect!</string>
<string name="restart">Restart</string>
<string name="download_rescheduled_to">Download rescheduled to:</string>
<string name="file_size">File size</string>
@ -271,11 +267,9 @@
<string name="swipe_gestures_summary">Swipe items for certain actions</string>
<string name="crop_thumb">Crop Thumbnail</string>
<string name="crop_thumb_summary">Crop the thumbnail into a square for audio downloads</string>
<string name="locale">Locale</string>
<string name="audio_only_item">This item only contains audio formats</string>
<string name="move_temporary_files">Move Temporary Files</string>
<string name="move_temporary_files_summary">Transfer cached files to the downloads folder</string>
<string name="format_filtering_hint_2">All items must either be audio or video to use this option</string>
<string name="piped_instance">Piped Instance</string>
<string name="piped_instance_summary">Write a PIPED API Server, the app can use for YouTube queries and formats</string>
<string name="custom_audio_quality">Use Custom Audio Quality</string>
@ -299,7 +293,6 @@
<string name="use_cookies">Use Cookies</string>
<string name="embed_metadata">Embed Metadata</string>
<string name="embed_metadata_summary">Embed metadata to the video file. Also embeds chapters/infojson if present</string>
<string name="formats_updated">Formats have been updated</string>
<string name="update_formats_background">Update Formats in Background</string>
<string name="auto_update_ytdlp">Auto-Update yt-dlp</string>
<string name="use_sponsorblock">Use SponsorBlock</string>
@ -307,4 +300,6 @@
<string name="cache_first_summary">Cache files download to internal storage, then move to your chosen directory. Use this when you can\'t write directly to storage</string>
<string name="scheduling">Scheduling</string>
<string name="use_scheduler">Download On Schedule</string>
<string name="update_app_beta">Beta Releases</string>
<string name="update_app_beta_summary">Enroll in the beta program. It may contain bugs.</string>
</resources>

View file

@ -40,11 +40,6 @@
<item name="cornerSizeBottomRight">12dp</item>
</style>
<style name="ShapeAppearanceOverlay.Chip.Middle" parent="ShapeAppearance.MaterialComponents.SmallComponent">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">0dp</item>
</style>
<style name="Preference.SwitchPreferenceCompat.Material3" parent="@style/Preference.SwitchPreferenceCompat.Material">
<item name="widgetLayout">@layout/preferece_material_switch</item>
</style>

View file

@ -69,4 +69,12 @@
app:summary="@string/update_app_summary"
app:title="@string/update_app" />
<SwitchPreferenceCompat
android:widgetLayout="@layout/preferece_material_switch"
app:defaultValue="false"
android:icon="@drawable/ic_update_app"
android:key="update_beta"
app:summary="@string/update_app_beta_summary"
app:title="@string/update_app_beta" />
</PreferenceScreen>

View file

@ -46,6 +46,6 @@ plugins {
}
task clean(type: Delete) {
tasks.register('clean', Delete) {
delete rootProject.buildDir
}