Compare commits

..

12 Commits

Author SHA1 Message Date
semantic-release-bot
fee2218303 chore(release): 4.16.0-dev.5 [skip ci]
# [4.16.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.4...v4.16.0-dev.5) (2024-09-29)

### Features

* **YouTube - Disable precise seeking gesture:** Hide "pull up" label that shows up when swiping ([#3668](https://github.com/ReVanced/revanced-patches/issues/3668)) ([1f0b4cd](1f0b4cdcb4))
2024-09-29 00:34:19 +00:00
Zain
1f0b4cdcb4 feat(YouTube - Disable precise seeking gesture): Hide "pull up" label that shows up when swiping (#3668)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-09-29 02:32:17 +02:00
semantic-release-bot
1fd30c1b44 chore(release): 4.16.0-dev.4 [skip ci]
# [4.16.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.3...v4.16.0-dev.4) (2024-09-29)

### Bug Fixes

* **Soundcloud:** Support latest versions ([#3702](https://github.com/ReVanced/revanced-patches/issues/3702)) ([fa94ddd](fa94ddd510))
2024-09-29 00:27:59 +00:00
FullerBread2032
fa94ddd510 fix(Soundcloud): Support latest versions (#3702) 2024-09-29 02:25:56 +02:00
semantic-release-bot
94cf815e4a chore(release): 4.16.0-dev.3 [skip ci]
# [4.16.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.2...v4.16.0-dev.3) (2024-09-29)

### Features

* **Google Photos:** Restore hidden 'Back up while charging' toggle ([#3678](https://github.com/ReVanced/revanced-patches/issues/3678)) ([8a3b061](8a3b0610b4))
2024-09-29 00:24:39 +00:00
xob0t
8a3b0610b4 feat(Google Photos): Restore hidden 'Back up while charging' toggle (#3678)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-09-29 02:22:32 +02:00
ReVanced Bot
b920355d9c chore: Sync translations (#3709) 2024-09-28 19:22:19 -04:00
semantic-release-bot
8b49012130 chore(release): 4.16.0-dev.2 [skip ci]
# [4.16.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.1...v4.16.0-dev.2) (2024-09-28)

### Features

* **YouTube - Hide Shorts components:** Add patch option to hide Shorts from app launcher widget Beta ([#3707](https://github.com/ReVanced/revanced-patches/issues/3707)) ([4c7b018](4c7b018878))
2024-09-28 21:04:47 +00:00
LisoUseInAIKyrios
4c7b018878 feat(YouTube - Hide Shorts components): Add patch option to hide Shorts from app launcher widget Beta (#3707) 2024-09-28 17:02:42 -04:00
semantic-release-bot
5ddd957313 chore(release): 4.16.0-dev.1 [skip ci]
# [4.16.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.2...v4.16.0-dev.1) (2024-09-27)

### Features

* **YouTube - Hide Shorts components:** Add patch option to hide Shorts app shortcut (long press app icon) ([#3699](https://github.com/ReVanced/revanced-patches/issues/3699)) ([bb0dcbe](bb0dcbe83d))
2024-09-27 01:57:13 +00:00
LisoUseInAIKyrios
bb0dcbe83d feat(YouTube - Hide Shorts components): Add patch option to hide Shorts app shortcut (long press app icon) (#3699)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-09-26 21:55:14 -04:00
ReVanced Bot
163736fb26 chore: Sync translations (#3692) 2024-09-25 15:28:51 -04:00
29 changed files with 294 additions and 92 deletions

View File

@@ -1,3 +1,38 @@
# [4.16.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.4...v4.16.0-dev.5) (2024-09-29)
### Features
* **YouTube - Disable precise seeking gesture:** Hide "pull up" label that shows up when swiping ([#3668](https://github.com/ReVanced/revanced-patches/issues/3668)) ([3fa8af9](https://github.com/ReVanced/revanced-patches/commit/3fa8af9fe534b59ad093c36f1927f56f549a330d))
# [4.16.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.3...v4.16.0-dev.4) (2024-09-29)
### Bug Fixes
* **Soundcloud:** Support latest versions ([#3702](https://github.com/ReVanced/revanced-patches/issues/3702)) ([099ac5e](https://github.com/ReVanced/revanced-patches/commit/099ac5ea2cf55633a7c6a7e6f8e963599bcd5784))
# [4.16.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.2...v4.16.0-dev.3) (2024-09-29)
### Features
* **Google Photos:** Restore hidden 'Back up while charging' toggle ([#3678](https://github.com/ReVanced/revanced-patches/issues/3678)) ([f9e19ce](https://github.com/ReVanced/revanced-patches/commit/f9e19ce6e9185fdf31b2b0d5f2934f6e8a544b8e))
# [4.16.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.1...v4.16.0-dev.2) (2024-09-28)
### Features
* **YouTube - Hide Shorts components:** Add patch option to hide Shorts from app launcher widget Beta ([#3707](https://github.com/ReVanced/revanced-patches/issues/3707)) ([838f183](https://github.com/ReVanced/revanced-patches/commit/838f1834a5df547ce2c3217b874c0594b6878a67))
# [4.16.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.2...v4.16.0-dev.1) (2024-09-27)
### Features
* **YouTube - Hide Shorts components:** Add patch option to hide Shorts app shortcut (long press app icon) ([#3699](https://github.com/ReVanced/revanced-patches/issues/3699)) ([0d4e1f5](https://github.com/ReVanced/revanced-patches/commit/0d4e1f5d03cf3dcc06fd41165e26a1ce901b976b))
## [4.15.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.1...v4.15.1-dev.2) (2024-09-23)

View File

@@ -321,6 +321,12 @@ public final class app/revanced/patches/googlephotos/misc/integrations/Integrati
public static final field INSTANCE Lapp/revanced/patches/googlephotos/misc/integrations/IntegrationsPatch;
}
public final class app/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch : app/revanced/patcher/patch/BytecodePatch {
public static final field INSTANCE Lapp/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch;
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
}
public final class app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions : app/revanced/patcher/patch/BytecodePatch {
public static final field INSTANCE Lapp/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions;
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V

View File

@@ -1,4 +1,4 @@
org.gradle.parallel = true
org.gradle.caching = true
kotlin.code.style = official
version = 4.15.1-dev.2
version = 4.16.0-dev.5

View File

@@ -0,0 +1,33 @@
package app.revanced.patches.googlephotos.preferences
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.googlephotos.preferences.fingerprints.BackupPreferencesFingerprint
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
@Patch(
name = "Restore hidden 'Back up while charging' toggle",
description = "Restores a hidden toggle to only run backups when the device is charging.",
compatiblePackages = [CompatiblePackage("com.google.android.apps.photos")],
)
@Suppress("unused")
object RestoreHiddenBackUpWhileChargingTogglePatch : BytecodePatch(
setOf(BackupPreferencesFingerprint),
) {
override fun execute(context: BytecodeContext) {
// Patches 'backup_prefs_had_backup_only_when_charging_enabled' to always be true.
BackupPreferencesFingerprint.result?.let {
val chargingPrefStringIndex = it.scanResult.stringsScanResult!!.matches.first().index
it.mutableMethod.apply {
// Get the register of move-result.
val resultRegister = getInstruction<OneRegisterInstruction>(chargingPrefStringIndex + 2).registerA
// Insert const after move-result to override register as true.
addInstruction(chargingPrefStringIndex + 3, "const/4 v$resultRegister, 0x1")
}
} ?: throw Exception("BackupPreferencesFingerprint result not found")
}
}

View File

@@ -0,0 +1,10 @@
package app.revanced.patches.googlephotos.preferences.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
internal object BackupPreferencesFingerprint : MethodFingerprint(
returnType = "Lcom/google/android/apps/photos/backup/data/BackupPreferences;",
strings = listOf(
"backup_prefs_had_backup_only_when_charging_enabled",
),
)

View File

@@ -14,8 +14,4 @@ internal object InterceptFingerprint : MethodFingerprint(
Opcode.MOVE_RESULT_OBJECT
),
strings = listOf("SC-Mob-UserPlan", "Configuration"),
customFingerprint = { _, classDef ->
classDef.sourceFile == "ApiUserPlanInterceptor.java" ||
classDef.sourceFile == "ApiUserPlanInterceptor.kt"
},
)

View File

@@ -8,7 +8,4 @@ internal object UserConsumerPlanConstructorFingerprint : MethodFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
parameters = listOf("Ljava/lang/String;", "Z", "Ljava/lang/String;", "Ljava/util/List;", "Ljava/lang/String;", "Ljava/lang/String;"),
customFingerprint = { _, classDef ->
classDef.sourceFile == "UserConsumerPlan.kt"
},
)

View File

@@ -7,6 +7,7 @@ internal object CreateTrackingApiFingerprint : MethodFingerprint(
returnType = "L",
accessFlags = AccessFlags.PUBLIC.value,
customFingerprint = { methodDef, classDef ->
classDef.sourceFile == "DefaultTrackingApiFactory.kt" && methodDef.name == "create"
methodDef.name == "create"
},
strings = listOf("backend", "boogaloo")
)

View File

@@ -15,7 +15,5 @@ internal object DownloadOperationsHeaderVerificationFingerprint : MethodFingerpr
Opcode.MOVE_RESULT_OBJECT,
Opcode.CONST_STRING
),
customFingerprint = { _, classDef ->
classDef.sourceFile == "DownloadOperations.kt"
}
strings = listOf("X-SC-Mime-Type", "X-SC-Preset", "X-SC-Quality")
)

View File

@@ -14,7 +14,4 @@ internal object DownloadOperationsURLBuilderFingerprint : MethodFingerprint(
Opcode.SGET_OBJECT,
Opcode.FILLED_NEW_ARRAY
),
customFingerprint = { _, classDef ->
classDef.sourceFile == "DownloadOperations.kt"
}
)

View File

@@ -3,12 +3,16 @@ package app.revanced.patches.soundcloud.shared.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal object FeatureConstructorFingerprint : MethodFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
parameters = listOf("Ljava/lang/String;", "Z", "Ljava/util/List;"),
customFingerprint = { _, classDef ->
classDef.sourceFile == "Feature.kt"
},
opcodes = listOf(
Opcode.SGET_OBJECT,
Opcode.CHECK_CAST,
Opcode.INVOKE_VIRTUAL
)
)

View File

@@ -1,18 +1,20 @@
package app.revanced.patches.youtube.interaction.seekbar
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.all.misc.resources.AddResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.interaction.seekbar.fingerprints.IsSwipingUpFingerprint
import app.revanced.patches.youtube.interaction.seekbar.fingerprints.AllowSwipingUpGestureFingerprint
import app.revanced.patches.youtube.interaction.seekbar.fingerprints.ShowSwipingUpGuideFingerprint
import app.revanced.patches.youtube.interaction.seekbar.fingerprints.SwipingUpGestureParentFingerprint
import app.revanced.patches.youtube.misc.integrations.IntegrationsPatch
import app.revanced.patches.youtube.misc.settings.SettingsPatch
import app.revanced.util.exception
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import app.revanced.util.alsoResolve
@Patch(
name = "Disable precise seeking gesture",
@@ -52,11 +54,10 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
)
@Suppress("unused")
object DisablePreciseSeekingGesturePatch : BytecodePatch(
setOf(IsSwipingUpFingerprint)
setOf(SwipingUpGestureParentFingerprint)
) {
private const val INTEGRATIONS_METHOD_DESCRIPTOR =
"Lapp/revanced/integrations/youtube/patches/DisablePreciseSeekingGesturePatch;->" +
"disableGesture(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V"
private const val INTEGRATIONS_CLASS_DESCRIPTOR =
"Lapp/revanced/integrations/youtube/patches/DisablePreciseSeekingGesturePatch;"
override fun execute(context: BytecodeContext) {
AddResourcesPatch(this::class)
@@ -65,19 +66,37 @@ object DisablePreciseSeekingGesturePatch : BytecodePatch(
SwitchPreference("revanced_disable_precise_seeking_gesture")
)
IsSwipingUpFingerprint.result?.let {
val addMovementIndex = it.scanResult.patternScanResult!!.startIndex - 1
AllowSwipingUpGestureFingerprint.alsoResolve(
context,
SwipingUpGestureParentFingerprint
).mutableMethod.apply {
addInstructionsWithLabels(
0,
"""
invoke-static { }, $INTEGRATIONS_CLASS_DESCRIPTOR->isGestureDisabled()Z
move-result v0
if-eqz v0, :disabled
return-void
""",
ExternalLabel("disabled", getInstruction(0))
)
}
it.mutableMethod.apply {
val addMovementInstruction = getInstruction<FiveRegisterInstruction>(addMovementIndex)
val trackerRegister = addMovementInstruction.registerC
val eventRegister = addMovementInstruction.registerD
replaceInstruction(
addMovementIndex,
"invoke-static {v$trackerRegister, v$eventRegister}, $INTEGRATIONS_METHOD_DESCRIPTOR"
)
}
} ?: throw IsSwipingUpFingerprint.exception
ShowSwipingUpGuideFingerprint.alsoResolve(
context,
SwipingUpGestureParentFingerprint
).mutableMethod.apply {
addInstructionsWithLabels(
0,
"""
invoke-static { }, $INTEGRATIONS_CLASS_DESCRIPTOR->isGestureDisabled()Z
move-result v0
if-eqz v0, :disabled
const/4 v0, 0x0
return v0
""",
ExternalLabel("disabled", getInstruction(0))
)
}
}
}

View File

@@ -0,0 +1,14 @@
package app.revanced.patches.youtube.interaction.seekbar.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
/**
* Resolves using the class found in [SwipingUpGestureParentFingerprint].
*/
internal object AllowSwipingUpGestureFingerprint : MethodFingerprint(
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
returnType = "V",
parameters = listOf("L"),
)

View File

@@ -1,13 +0,0 @@
package app.revanced.patches.youtube.interaction.seekbar.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.Opcode
internal object IsSwipingUpFingerprint : MethodFingerprint(
returnType = "Z",
parameters = listOf("Landroid/view/MotionEvent;", "J"),
opcodes = listOf(
Opcode.SGET_OBJECT,
Opcode.IGET_OBJECT
)
)

View File

@@ -0,0 +1,14 @@
package app.revanced.patches.youtube.interaction.seekbar.fingerprints
import app.revanced.util.patch.LiteralValueFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
/**
* Resolves using the class found in [SwipingUpGestureParentFingerprint].
*/
internal object ShowSwipingUpGuideFingerprint : LiteralValueFingerprint(
accessFlags = AccessFlags.FINAL.value,
returnType = "Z",
parameters = emptyList(),
literalSupplier = { 1L }
)

View File

@@ -0,0 +1,12 @@
package app.revanced.patches.youtube.interaction.seekbar.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.util.patch.LiteralValueFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal object SwipingUpGestureParentFingerprint : LiteralValueFingerprint(
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
returnType = "Z",
parameters = listOf(),
literalSupplier = { 45379021 }
)

View File

@@ -6,6 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.booleanPatchOption
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch
import app.revanced.patches.youtube.layout.hide.shorts.fingerprints.*
@@ -76,6 +77,20 @@ object HideShortsComponentsPatch : BytecodePatch(
) {
private const val FILTER_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/youtube/patches/components/ShortsFilter;"
internal val hideShortsAppShortcut by booleanPatchOption(
key = "hideShortsAppShortcut",
default = false,
title = "Hide Shorts app shortcut",
description = "Permanently hides the shortcut to open Shorts when long pressing the app icon in your launcher."
)
internal val hideShortsWidget by booleanPatchOption(
key = "hideShortsWidget",
default = false,
title = "Hide Shorts widget",
description = "Permanently hides the launcher widget Shorts button."
)
override fun execute(context: BytecodeContext) {
// region Hide the Shorts shelf.

View File

@@ -6,7 +6,11 @@ import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.all.misc.resources.AddResourcesPatch
import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch.hideShortsAppShortcut
import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch.hideShortsWidget
import app.revanced.patches.youtube.misc.settings.SettingsPatch
import app.revanced.util.findElementByAttributeValueOrThrow
import org.w3c.dom.Element
@Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class, AddResourcesPatch::class])
object HideShortsComponentsResourcePatch : ResourcePatch() {
@@ -52,6 +56,28 @@ object HideShortsComponentsResourcePatch : ResourcePatch() {
SwitchPreference("revanced_hide_shorts_navigation_bar"),
)
if (hideShortsAppShortcut == true) {
context.xmlEditor["res/xml/main_shortcuts.xml"].use { editor ->
val shortsItem = editor.file.childNodes.findElementByAttributeValueOrThrow(
"android:shortcutId",
"shorts-shortcut"
)
shortsItem.parentNode.removeChild(shortsItem)
}
}
if (hideShortsWidget == true) {
context.xmlEditor["res/layout/appwidget_two_rows.xml"].use { editor ->
val shortsItem = editor.file.childNodes.findElementByAttributeValueOrThrow(
"android:id",
"@id/button_shorts_container"
)
shortsItem.parentNode.removeChild(shortsItem)
}
}
reelPlayerRightCellButtonHeight = ResourceMappingPatch[
"dimen",
"reel_player_right_cell_button_height",

View File

@@ -630,6 +630,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_save_sound_button_title">Бутон за запазване на аудиото в плейлиста</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Бутонът за Запазване в плейлиста е скрит</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Бутонът за Запазване в плейлиста се показва</string>
<string name="revanced_hide_shorts_use_this_sound_button_title">Бутон „Използване на този звук“</string>
<string name="revanced_hide_shorts_use_this_sound_button_summary_on">Бутон „Използване на този звук“ е скрит</string>
<string name="revanced_hide_shorts_use_this_sound_button_summary_off">Бутон „Използване на този звук“ се показва</string>
<string name="revanced_hide_shorts_search_suggestions_title">Скриване на предложенията за търсене</string>
<string name="revanced_hide_shorts_search_suggestions_summary_on">Предложенията за търсене са скрити</string>
<string name="revanced_hide_shorts_search_suggestions_summary_off">Предложенията за търсене се показват</string>
@@ -1131,10 +1134,22 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_slide_to_seek_summary_off">Слайд за превъртане е деактивиран</string>
</patch>
<patch id="misc.fix.playback.SpoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_title">Подправяне на видео потоци</string>
<string name="revanced_spoof_video_streams_screen_summary">Подправете клиентските видео потоци, за да предотвратите проблеми с възпроизвеждането</string>
<string name="revanced_spoof_video_streams_title">Подправяне на видео потоци</string>
<string name="revanced_spoof_video_streams_summary_on">Видео потоците са подправени</string>
<string name="revanced_spoof_video_streams_summary_off">Видео потоците не са подправени\n\nВъзпроизвеждането на видео може да не работи</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Деактивирането на тази настройка ще доведе до проблеми с възпроизвеждането на видео.</string>
<string name="revanced_spoof_video_streams_client_title">Клиент по подразбиране</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Принудително AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видеокодека е AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видеокодека е VP9 или AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Вашето устройство няма хардуерно VP9 декодиране и тази настройка винаги е активирана, когато е активно подправяне на клиента</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Активирането на това може да подобри живота на батерията и да коригира прекъсванията при възпроизвеждане.\n\nAVC има максимална разделителна способност от 1080p и възпроизвеждането на видео ще използва повече интернет данни от VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">ранични ефекти от подмяната на iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Филми или платени видеоклипове може да не се възпроизвеждат\n• Потоците на живо започват отначало\n• Видеоклиповете може да завършват 1 секунда по-рано\n• Няма аудиокодек Opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Странични ефекти от подправяне на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Липсва менюто за избор аудио\n• Не е налична стабилна сила на звука</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->
<patch id="video.hdrbrightness.HDRBrightnessPatch">

View File

@@ -39,6 +39,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_check_environment_not_same_patching_device">Auf einem anderen Gerät gepatcht</string>
<string name="revanced_check_environment_manager_not_expected_installer">Nicht von ReVanced Manager installiert</string>
<string name="revanced_check_environment_not_near_patch_time">Vor mehr als 10 Minuten gepatcht</string>
<string name="revanced_check_environment_not_near_patch_time_days">Vor %s Tagen gepatcht</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">APK-Erstellungsdatum ist beschädigt</string>
</patch>
<patch id="misc.settings.BaseSettingsResourcePatch">
@@ -1146,6 +1147,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Ihr Gerät hat keine VP9-Hardware-Dekodierung, und diese Einstellung ist immer aktiviert, wenn Client-Spoofing aktiviert ist</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Das Aktivieren kann die Akkulaufzeit verbessern und die Wiedergabe-Stutting beheben.\n\nAVC hat eine maximale Auflösung von 1080p, und die Videowiedergabe wird mehr Internet-Daten als VP9 oder AV1 verwenden.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS Spoofing Nebeneffekte</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Filme oder bezahlte Videos werden möglicherweise nicht abgespielt\n• Livestreams starten von Anfang an\n• Videos enden möglicherweise 1 Sekunde früher\n• kein Opus-Audiocodec</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR Spoofing Nebeneffekte</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Audio Track Menü fehlt\n• Stabile Lautstärke ist nicht verfügbar</string>
</patch>

View File

@@ -100,7 +100,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_debug_toast_on_error_title">Mostrar brindis en error ReVanced</string>
<string name="revanced_debug_toast_on_error_summary_on">Toast mostrado si ocurre un error</string>
<string name="revanced_debug_toast_on_error_summary_off">Toast no se muestra si ocurre un error</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">Desactivar los brindis de errores oculta todas las notificaciones de error ReVanced\n\nNo se le notificará de ningún evento inesperado.</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">Desactivar los avisos (toasts) de errores oculta todas las notificaciones de error ReVanced\n\nNo se le notificará de ningún evento inesperado.</string>
</patch>
<patch id="layout.hide.general.HideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Desactivar el brillo del botón de like / suscripción</string>
@@ -199,8 +199,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_image_shelf_summary_on">El estante de imágenes está oculto</string>
<string name="revanced_hide_image_shelf_summary_off">El estante de imágenes se muestra</string>
<string name="revanced_hide_latest_posts_ads_title">Ocultar últimos mensajes</string>
<string name="revanced_hide_latest_posts_ads_summary_on">Los últimos mensajes están ocultos</string>
<string name="revanced_hide_latest_posts_ads_summary_off">Se muestran los últimos mensajes</string>
<string name="revanced_hide_latest_posts_ads_summary_on">Las últimas publicaciones están ocultas</string>
<string name="revanced_hide_latest_posts_ads_summary_off">Se muestran las últimas publicaciones</string>
<string name="revanced_hide_mix_playlists_title">Ocultar listas de mezcla</string>
<string name="revanced_hide_mix_playlists_summary_on">Las listas de reproducción mixtas están ocultas</string>
<string name="revanced_hide_mix_playlists_summary_off">Mezclar listas de reproducción son mostradas</string>
@@ -258,11 +258,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_keyword_content_about_summary">Los resultados de inicio/suscripción/búsqueda se filtran para ocultar el contenido que coincide con las frases de palabras clave\n\nLimitaciones\n• Los cortos no se pueden ocultar con el nombre del canal\n• Algunos componentes de la interfaz pueden no estar ocultos\n• Buscar una palabra clave no puede mostrar resultados</string>
<string name="revanced_hide_keyword_content_about_whole_words_title">Coincidir palabras completas</string>
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<string name="revanced_hide_keyword_content_about_whole_words_summary">Rodear una palabra clave/frase con comillas dobles evitará las coincidencias parciales de títulos de vídeo y nombres de canales&lt;br&gt;&lt;br&gt;Por ejemplo,&lt;br&gt;&lt;b&gt;\"ia\"&lt;/b&gt; ocultará el vídeo: &lt;b&gt;¿Cómo funciona la IA?&lt;/b&gt;&lt;br&gt;pero no ocultará: &lt;b&gt;¿Qué significa uso justo?&lt;/b&gt;</string>
<string name="revanced_hide_keyword_content_about_whole_words_summary">Rodear una palabra clave/frase con comillas dobles evitará las coincidencias parciales de títulos de vídeo y nombres de canales&lt;br&gt;&lt;br&gt;Por ejemplo,&lt;br&gt;&lt;b&gt;\"ia\"&lt;/b&gt; ocultará el vídeo: &lt;b&gt;¿Cómo funciona la AI?&lt;/b&gt;&lt;br&gt;pero no ocultará: &lt;b&gt;¿Quieres aprender a bailar?&lt;/b&gt;</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_hide_keyword_toast_invalid_common">No se puede usar la palabra clave: %s</string>
<string name="revanced_hide_keyword_toast_invalid_common_whole_word_required">Añadir comillas para usar palabra clave: %s</string>
<string name="revanced_hide_keyword_toast_invalid_conflicting">La palabra clave tiene declaraciones en conflicto: %s</string>
<string name="revanced_hide_keyword_toast_invalid_conflicting">La palabra clave tiene declaraciones conflictivas: %s</string>
<string name="revanced_hide_keyword_toast_invalid_length">La palabra clave es demasiado corta y requiere comillas: %s</string>
<string name="revanced_hide_keyword_toast_invalid_broad">Palabra clave ocultará todos los vídeos: %s</string>
</patch>
@@ -274,7 +274,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_fullscreen_ads_summary_on">Los anuncios a pantalla completa están ocultos\n\nEsta función solo está disponible para dispositivos más antiguos</string>
<string name="revanced_hide_fullscreen_ads_summary_off">Se muestran anuncios a pantalla completa</string>
<string name="revanced_hide_buttoned_ads_title">Ocultar anuncios botonados</string>
<string name="revanced_hide_buttoned_ads_summary_on">Los anuncios bloqueados están ocultos</string>
<string name="revanced_hide_buttoned_ads_summary_on">Los anuncios botonados están ocultos</string>
<string name="revanced_hide_buttoned_ads_summary_off">Se muestran anuncios botonados</string>
<string name="revanced_hide_paid_promotion_label_title">Ocultar etiqueta de promoción de pago</string>
<string name="revanced_hide_paid_promotion_label_summary_on">Etiqueta de promoción pagada está oculta</string>
@@ -307,7 +307,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_get_premium_summary_off">Se muestran las promociones de YouTube Premium en el reproductor de vídeo</string>
</patch>
<patch id="ad.video.VideoAdsPatch">
<string name="revanced_hide_video_ads_title">Ocultar video anuncios</string>
<string name="revanced_hide_video_ads_title">Ocultar anuncios de video</string>
<string name="revanced_hide_video_ads_summary_on">Los anuncios de vídeo están ocultos</string>
<string name="revanced_hide_video_ads_summary_off">Los anuncios de vídeo se muestran</string>
</patch>
@@ -328,7 +328,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">Esto no pasa por alto la restricción de edad, sino que simplemente la acepta automáticamente.</string>
</patch>
<patch id="interaction.downloads.DownloadsResourcePatch">
<string name="revanced_external_downloader_screen_title">Descarga externa</string>
<string name="revanced_external_downloader_screen_title">Descargas externa</string>
<string name="revanced_external_downloader_screen_summary">Configuración para el uso de un descargador externo</string>
<string name="revanced_external_downloader_title">Mostrar botón externo de descarga</string>
<string name="revanced_external_downloader_summary_on">Botón de descarga mostrado en el reproductor</string>
@@ -442,8 +442,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_navigation_buttons_screen_summary">Ocultar o cambiar botones en la barra de navegación</string>
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<string name="revanced_hide_home_button_title">Ocultar Principal</string>
<string name="revanced_hide_home_button_summary_on">El botón de principal está oculto</string>
<string name="revanced_hide_home_button_summary_off">Se muestra el botón de principal</string>
<string name="revanced_hide_home_button_summary_on">El botón de inicio está oculto</string>
<string name="revanced_hide_home_button_summary_off">El botón de inicio es visible</string>
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_hide_shorts_button_title">Ocultar Shorts</string>
<string name="revanced_hide_shorts_button_summary_on">El botón de Shorts está oculto</string>
@@ -928,7 +928,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_sb_reset_color">Reiniciar color</string>
<string name="revanced_sb_reset">Restablecer</string>
<string name="revanced_sb_about">Acerca de</string>
<string name="revanced_sb_about_api_sum">Los datos son proporcionados por la API de SponsorBlock. Pulsa aquí para aprender más y ver las descargas de otras plataformas</string>
<string name="revanced_sb_about_api_sum">Los datos son proporcionados por la API de SponsorBlock. Pulsa aquí para aprender más y ver las descargas para otras plataformas</string>
</patch>
<patch id="layout.spoofappversion.SpoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Versión de la aplicación Spoof</string>
@@ -1164,8 +1164,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_block_audio_ads_summary_off">Anuncios de audio desbloqueados</string>
</patch>
<patch id="ad.embedded.EmbeddedAdsPatch">
<string name="revanced_embedded_ads_service_unavailable">%s no está disponible. Los anuncios pueden mostrarse. Intenta cambiar a otro servicio de bloque de anuncios en la configuración.</string>
<string name="revanced_embedded_ads_service_failed">El servidor %s devolvió un error. Los anuncios pueden mostrar. Intente cambiar a otro servicio de bloque de anuncios en la configuración.</string>
<string name="revanced_embedded_ads_service_unavailable">%s no está disponible. Los anuncios pueden mostrarse. Intenta cambiar a otro servicio de bloqueo de anuncios en la configuración.</string>
<string name="revanced_embedded_ads_service_failed">El servidor %s devolvió un error. Los anuncios pueden mostrar. Intente cambiar a otro servicio de bloqueo de anuncios en la configuración.</string>
<string name="revanced_block_embedded_ads_title">Bloquear anuncios de vídeo incrustados</string>
<string name="revanced_block_embedded_ads_entry_1">Desactivado</string>
<string name="revanced_block_embedded_ads_entry_2">Proxy luminoso</string>

View File

@@ -1146,7 +1146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Níl díchódú crua-earraí VP9 ar do ghléas, agus bíonn an socrú seo ar siúl i gcónaí nuair atá spoofing Cliant cumasaithe</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Má dhéantar é seo a chumasú, d\'fhéadfadh sé go bhfeabhsófaí saol na gceallraí agus go n-athshocraigh sé stopáil athsheinm.\n\nTá uas-taifeach 1080p ag AVC, agus úsáidfidh athsheinm físe níos mó sonraí idirlín ná mar a úsáideann VP9 nó AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Fo-iarsmaí spoofing iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Ní féidir le scannáin nó físeáin íoctha a sheinm\n• Tosaíonn sruthanna beo ón tús\n• Seans go gcríochnóidh físeáin 1 soicind go luath\n• Gan codec fuaime opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Fo-iarsmaí spoofing Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Tá roghchlár rian fuaime in easnamh\n• Níl an toirt cobhsaí ar fáil</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->
<patch id="video.hdrbrightness.HDRBrightnessPatch">

View File

@@ -630,6 +630,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_save_sound_button_title">Hang mentése a lejátszási listára gomb elrejtése</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">A hang mentése a lejátszási listára gomb el van rejtve</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">A hang mentése a lejátszási listára gomb megjelenik</string>
<string name="revanced_hide_shorts_use_this_sound_button_title">\'Használja ezt a hang gombot\' elrejtése</string>
<string name="revanced_hide_shorts_use_this_sound_button_summary_on">\'Használja ezt a hang gombot\' elrejtve</string>
<string name="revanced_hide_shorts_use_this_sound_button_summary_off">\'Használja ezt a hang gombot\' látszik</string>
<string name="revanced_hide_shorts_search_suggestions_title">Keresési javaslatok elrejtése</string>
<string name="revanced_hide_shorts_search_suggestions_summary_on">A keresési javaslatok el vannak rejtve</string>
<string name="revanced_hide_shorts_search_suggestions_summary_off">A keresési javaslatok megjelennek</string>
@@ -1131,10 +1134,22 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_slide_to_seek_summary_off">A csúsztatás a kereséshez nincs engedélyezve</string>
</patch>
<patch id="misc.fix.playback.SpoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_title">Hamis videó stream</string>
<string name="revanced_spoof_video_streams_screen_summary">Hamisítsa meg az ügyfél videó streamet a lejátszási problémák elkerülése érdekében</string>
<string name="revanced_spoof_video_streams_title">Hamis videó stream</string>
<string name="revanced_spoof_video_streams_summary_on">A videó stream hamisítva</string>
<string name="revanced_spoof_video_streams_summary_off">A videó stream nincs hamisítva\n\nLehet, hogy a videólejátszás nem működik</string>
<string name="revanced_spoof_video_streams_user_dialog_message">A beállítás kikapcsolása videolejátszási problémákat okozhat.</string>
<string name="revanced_spoof_video_streams_client_title">Alapértelmezett kliens</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC (H.264) kényszerítése</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">A videokodek AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">A videokodek VP9 vagy AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Eszközén nincs VP9 hardveres dekódolás, és ez a beállítás mindig be van kapcsolva, ha az ügyfélhamisítás engedélyezve van</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ennek engedélyezése javíthatja az akkumulátor élettartamát, és kijavíthatja a lejátszás akadozását.\n\nAz AVC maximális felbontása 1080p, és a videolejátszás több internetadatot használ, mint a VP9 vagy az AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS hamisítási mellékhatások</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Előfordulhat, hogy a filmeket és a fizetős videókat nem lehet lejátszani\n• Az élő közvetítések elölről kezdődnek.\n• A videók 1 másodperccel korábban véget érhetnek\n• Nincs opus audiokodek</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR-hamisítási mellékhatások</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Hiányzik a hangsáv menü\n• A stabil hangerő nem érhető el</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->
<patch id="video.hdrbrightness.HDRBrightnessPatch">

View File

@@ -87,7 +87,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="misc.debugging.DebuggingPatch">
<string name="revanced_debug_screen_title">Debugging</string>
<string name="revanced_debug_screen_summary">Mengaktifkan atau menonaktifkan opsi debugging</string>
<string name="revanced_debug_screen_summary">Menyalakan atau mematikan opsi debugging</string>
<string name="revanced_debug_title">Catatan debug</string>
<string name="revanced_debug_summary_on">Log debug diaktifkan</string>
<string name="revanced_debug_summary_off">Log debug dinonaktifkan</string>
@@ -109,7 +109,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_gray_separator_title">Sembunyikan pemisah abu-abu</string>
<string name="revanced_hide_gray_separator_summary_on">Pemisah abu-abu disembunyikan</string>
<string name="revanced_hide_gray_separator_summary_off">Pemisah abu-abu ditampilkan</string>
<string name="revanced_hide_channel_watermark_title">Sembunyikan watermark saluran</string>
<string name="revanced_hide_channel_watermark_title">Sembunyikan tanda air saluran</string>
<string name="revanced_hide_channel_watermark_summary_on">Tanda air disembunyikan</string>
<string name="revanced_hide_channel_watermark_summary_off">Tanda air ditampilkan</string>
<string name="revanced_hide_horizontal_shelves_title">Sembunyikan rak mendatar</string>
@@ -289,15 +289,15 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shopping_links_summary_on">Tautan belanja disembunyikan</string>
<string name="revanced_hide_shopping_links_summary_off">Tautan belanja ditampilkan</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Sembunyikan \'Lihat toko\' di laman saluran</string>
<string name="revanced_hide_visit_store_button_title">Sembunyikan tombol \'Lihat toko\' di laman saluran</string>
<string name="revanced_hide_visit_store_button_summary_on">Tombol disembunyikan</string>
<string name="revanced_hide_visit_store_button_summary_off">Tombol ditampilkan</string>
<string name="revanced_hide_web_search_results_title">Sembunyikan hasil pencarian web</string>
<string name="revanced_hide_web_search_results_summary_on">Hasil pencarian web disembunyikan</string>
<string name="revanced_hide_web_search_results_summary_off">Hasil pencarian web ditampilkan</string>
<string name="revanced_hide_merchandise_banners_title">Sembunyikan banner merchandise</string>
<string name="revanced_hide_merchandise_banners_title">Sembunyikan spanduk barang dagangan</string>
<string name="revanced_hide_merchandise_banners_summary_on">Banner merchandise disembunyikan</string>
<string name="revanced_hide_merchandise_banners_summary_off">Banner merchandise ditampilkan</string>
<string name="revanced_hide_merchandise_banners_summary_off">Spanduk barang dagangan ditampilkan</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_hide_fullscreen_ads_feature_not_available_toast">Sembunyikan iklan layar penuh hanya berfungsi pada perangkat lama</string>
</patch>
@@ -409,9 +409,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_download_button_summary_on">Tombol download disembunyikan</string>
<string name="revanced_hide_download_button_summary_off">Tombol download ditampilkan</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Sembunyikan Thanks</string>
<string name="revanced_hide_thanks_button_summary_on">Tombol thanks disembunyikan</string>
<string name="revanced_hide_thanks_button_summary_off">Tombol thanks ditampilkan</string>
<string name="revanced_hide_thanks_button_title">Sembunyikan Terima kasih</string>
<string name="revanced_hide_thanks_button_summary_on">Tombol terima kasih disembunyikan</string>
<string name="revanced_hide_thanks_button_summary_off">Tombol terima kasih ditampilkan</string>
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_clip_button_title">Sembunyikan Klip</string>
<string name="revanced_hide_clip_button_summary_on">Tombol klip disembunyikan</string>
@@ -535,8 +535,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_comments_preview_comment_summary_on">Komentar pratinjau disembunyikan</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Komentar pratinjau ditampilkan</string>
<string name="revanced_hide_comments_thanks_button_title">Sembunyikan \'terima kasih\'</string>
<string name="revanced_hide_comments_thanks_button_summary_on">Tmbl terima kasih disembunyikan</string>
<string name="revanced_hide_comments_thanks_button_summary_off">Tmbl terima kasih ditampilkan</string>
<string name="revanced_hide_comments_thanks_button_summary_on">Tombol terima kasih disembunyikan</string>
<string name="revanced_hide_comments_thanks_button_summary_off">Tombol terima kasih ditampilkan</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Sembunyikan timestamp dan tombol emoji</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Tombol timestamp dan emoji disembunyikan</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Tombol timestamp dan emoji ditampilkan</string>
@@ -872,7 +872,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_sb_submit_failed_duplicate">Tidak dapat mengirim segmen.\nSudah ada</string>
<string name="revanced_sb_submit_succeeded">Segmen berhasil terkirim</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<string name="revanced_sb_sponsorblock_connection_failure_timeout">SponsorBlock sementara tidak tersedia (API timed out).</string>
<string name="revanced_sb_sponsorblock_connection_failure_timeout">SponsorBlock tidak tersedia (API kehabisan waktu)</string>
<string name="revanced_sb_sponsorblock_connection_failure_status">SponsorBlock sementara tidak tersedia (status %d)</string>
<string name="revanced_sb_sponsorblock_connection_failure_generic">SponsorBlock sementara tidak tersedia</string>
<string name="revanced_sb_vote_failed_timeout">Tidak dapat memilih segmen (API timed out)</string>
@@ -894,7 +894,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_sb_new_segment_confirm_title">Apakah waktunya benar?</string>
<string name="revanced_sb_new_segment_confirm_content">Segmen dari\n\n%1$s\nke\n%2$s\n\n(%3$s)\n\nSiap dikirim?</string>
<string name="revanced_sb_new_segment_start_is_before_end">Awal harus sebelum akhir</string>
<string name="revanced_sb_new_segment_mark_locations_first">Tandai terlebih dahulu dua lokasi di kotak waktu</string>
<string name="revanced_sb_new_segment_mark_locations_first">Tandai dua lokasi pada bilah waktu terlebih dahulu</string>
<string name="revanced_sb_new_segment_preview_segment_first">Pratinjau segmen, dan memastikan segmen dilewati dengan lancar</string>
<string name="revanced_sb_new_segment_edit_by_hand_title">Atur pengaturan tempo segmen secara manual</string>
<string name="revanced_sb_new_segment_edit_by_hand_content">Apakah Anda ingin mengubah tempo untuk awal atau akhir dari segmen?</string>

View File

@@ -35,8 +35,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="misc.checks.BaseCheckEnvironmentPatch">
<string name="revanced_check_environment_failed_title">확인에 실패함</string>
<string name="revanced_check_environment_dialog_open_official_source_button">공식 홈페이지 열기</string>
<string name="revanced_check_environment_dialog_ignore_button">무시</string>
<string name="revanced_check_environment_failed_message">&lt;h5&gt;이 앱은 사용자가 패치하지 않은 것 같습니다.&lt;/h5&gt;&lt;br&gt;이 앱은 제대로 작동하지 않을 수 있으며, &lt;b&gt;사용 시 해롭거나 심지어 위험할 수도 있습니다&lt;/b&gt;.&lt;br&gt;&lt;br&gt;이러한 확인은 이 앱이 사전 패치되었거나 다른 사람에게서 얻은 것임을 의미합니다:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;검증되고 안전한 앱을 사용하고 있는지 확인하려면 &lt;b&gt;이 앱을 제거하고 직접 패치하는 것&lt;/b&gt;을 강력히 권장합니다.&lt;p&gt;&lt;br&gt;이 경고를 무시하면 두 번만 표시됩니다.</string>
<string name="revanced_check_environment_dialog_ignore_button">닫기</string>
<string name="revanced_check_environment_failed_message">&lt;h5&gt;이 앱은 사용자가 패치하지 않은 것 같습니다.&lt;/h5&gt;&lt;br&gt;이 앱은 제대로 작동하지 않을 수 있으며, &lt;b&gt;사용 시 해롭거나 심지어 위험할 수도 있습니다&lt;/b&gt;.&lt;br&gt;&lt;br&gt;이러한 확인은 이 앱이 사전 패치되었거나 다른 사람으로부터 받은 것임을 의미합니다:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;검증되고 안전한 앱을 사용하고 있는지 확인하려면 &lt;b&gt;이 앱을 제거하고 직접 패치하는 것&lt;/b&gt;을 강력히 권장합니다.&lt;p&gt;&lt;br&gt;이 경고 두 번만 표시됩니다.</string>
<string name="revanced_check_environment_not_same_patching_device">다른 기기에서 패치됨</string>
<string name="revanced_check_environment_manager_not_expected_installer">ReVanced Manager에 의해 설치되지 않음</string>
<string name="revanced_check_environment_not_near_patch_time">10분 이상 전에 패치됨</string>
@@ -459,8 +459,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_subscriptions_button_summary_off">구독 버튼이 표시됩니다</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">만들기 버튼과 알림 버튼 위치 교환하기</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">만들기 버튼과 알림 버튼의 위치를 교환합니다\n\n알려진 문제점:\n• 이 설정을 비활성화하면 서버에서 광고 필터에 등록되지 않은 광고(Shorts 광고)가 로드됩니다\n• 이 설정을 활성화하면 일부 광고가 강제로 숨겨집니다 (동영상 광고, 일반 레이아웃 광고)\n• 광고 설정에 있는 일부 설정들을 비활성화하려면 이 설정도 비활성화해야 합니다</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">만들기 버튼과 알림 버튼 위치를 교환하지 않습니다\n\n알려진 문제점:\n• 이 설정을 비활성화하면 서버에서 광고 필터에 등록되지 않은 광고(Shorts 광고)가 로드됩니다\n• 이 설정을 활성화하면 일부 광고가 강제로 숨겨집니다 (동영상 광고, 일반 레이아웃 광고)\n• 광고 설정에 있는 일부 설정들을 비활성화하려면 이 설정도 비활성화해야 합니다</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">만들기 버튼과 알림 버튼의 위치를 교환합니다\n\n알려진 문제점:\n• 동영상 광고가 강제로 숨겨집니다</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">만들기 버튼과 알림 버튼 위치를 교환하지 않습니다\n\n알려진 문제점:\n• 서버에서 더 많은 광고가 로드될 수 있습니다\n• Shorts 광고가 더 이상 숨겨지지 않습니다</string>
<string name="revanced_hide_navigation_button_labels_title">하단바 버튼 라벨 숨기기</string>
<string name="revanced_hide_navigation_button_labels_summary_on">라벨이 숨겨집니다</string>
<string name="revanced_hide_navigation_button_labels_summary_off">라벨이 표시됩니다</string>

View File

@@ -1147,9 +1147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">На вашем устройстве нет аппаратного декодирования VP9, и эта настройка всегда включена при активной подмене клиента</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Включение данной настройки может улучшить время работы батареи и исправить задержки воспроизведения.\n\nAVC имеет максимальное разрешение 1080p, воспроизведение видео будет использовать больше интернет данных в сравнении с VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Побочные эффекты подмены на iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Фильмы или платные видео не могут проигрывать\n• Livestreams начало с начала\n• Видео могут закончиться 1 секунду рано\n• Нет аудио кодека</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Фильмы или платные видео могут не воспроизводиться\n• Прямые трансляции начинаются с самого начала\n• Видео может закончиться на 1 секунду раньше\n• Отсутствует аудиокодек opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Побочные эффекты подмены на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">Отсутствует меню аудио дорожки\n• Стабильная громкость недоступна</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">Пункт меню \"Звуковая дорожка\" отсутствует\n• Пункт меню \"Постоянный уровень громкости\" недоступен</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->
<patch id="video.hdrbrightness.HDRBrightnessPatch">

View File

@@ -669,9 +669,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_full_video_link_label_title">Sakrij oznaku linka Shorts videa</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_on">Oznaka linka Shorts videa je skrivena</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_off">Oznaka linka Shorts videa je prikazana</string>
<string name="revanced_hide_shorts_sound_button_title">Sakrij dugme za zvuk</string>
<string name="revanced_hide_shorts_sound_button_summary_on">Dugme za zvuk je skriveno</string>
<string name="revanced_hide_shorts_sound_button_summary_off">Dugme za zvuk je prikazano</string>
<string name="revanced_hide_shorts_sound_button_title">Sakrij dugme „Zvuk</string>
<string name="revanced_hide_shorts_sound_button_summary_on">Dugme „Zvuk je skriveno</string>
<string name="revanced_hide_shorts_sound_button_summary_off">Dugme „Zvuk je prikazano</string>
<string name="revanced_hide_shorts_navigation_bar_title">Sakrij traku za navigaciju</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Traka za navigaciju je skrivena</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Traka za navigaciju je prikazana</string>
@@ -1140,7 +1140,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_title">Lažirani video strimovi</string>
<string name="revanced_spoof_video_streams_summary_on">Video strimovi su lažirani</string>
<string name="revanced_spoof_video_streams_summary_off">Video strimovi nisu lažirani\n\nReprodukcija videa možda neće raditi</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Isključivanje ovog podešavanja možda će izazvati probleme sa reprodukcijom videa.</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Isključivanje ove opcije će možda izazvati probleme sa reprodukcijom videa.</string>
<string name="revanced_spoof_video_streams_client_title">Podrazumevani klijent</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Prisili AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodek je AVC (H.264)</string>
@@ -1148,7 +1148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Vaš uređaj nema VP9 hardversko dekodiranje, i ova opcija je uvek uključena kada je omogućeno lažiranje klijenta</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ako ovo omogućite, možda će se produžiti trajanje baterije i popraviti zastoj pri reprodukciji.\n\nAVC ima maksimalnu rezoluciju od 1080p, a reprodukcija videa će koristiti više internet podataka nego VP9 ili AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Neželjeni efekti lažiranja na iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Filmovi ili plaćeni videi se možda neće puštati\n• Strimovi uživo počinju od početka\n• Videi će se možda završiti 1 sekundu ranije\n• Nema audio kodeka opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Neželjeni efekti lažiranja na Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Meni „Audio snimak” nedostaje\n• Opcija „Ujednačena jačina zvuka” nije dostupna</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->
<patch id="video.hdrbrightness.HDRBrightnessPatch">

View File

@@ -669,9 +669,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_full_video_link_label_title">Сакриј ознаку линка Shorts видеа</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_on">Ознака линка Shorts видеа је скривена</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_off">Ознака линка Shorts видеа је приказана</string>
<string name="revanced_hide_shorts_sound_button_title">Сакриј дугме за звук</string>
<string name="revanced_hide_shorts_sound_button_summary_on">Дугме за звук је скривено</string>
<string name="revanced_hide_shorts_sound_button_summary_off">Дугме за звук је приказано</string>
<string name="revanced_hide_shorts_sound_button_title">Сакриј дугме „Звук</string>
<string name="revanced_hide_shorts_sound_button_summary_on">Дугме „Звук је скривено</string>
<string name="revanced_hide_shorts_sound_button_summary_off">Дугме „Звук је приказано</string>
<string name="revanced_hide_shorts_navigation_bar_title">Сакриј траку за навигацију</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Трака за навигацију је скривена</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Трака за навигацију је приказана</string>
@@ -1148,7 +1148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Ваш уређај нема VP9 хардверско декодирање, и ова опција је увек укључена када је омогућено лажирање клијента</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ако ово омогућите, можда ће се продужити трајање батерије и поправити застој при репродукцији.\n\nAVC има максималну резолуцију од 1080p, а репродукција видеа ће користити више интернет података него VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Нежељени ефекти лажирања на iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Филмови или плаћени видеи се можда неће пуштати\n• Стримови уживо почињу од почетка\n• Видеи ће се можда завршити 1 секунду раније\n• Нема аудио кодека opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Нежељени ефекти лажирања на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Мени „Аудио снимак” недостаје\n• Опција „Уједначена јачина звука” није доступна</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->
<patch id="video.hdrbrightness.HDRBrightnessPatch">

View File

@@ -1145,9 +1145,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Примусово увімкнено відеокодек VP9 або AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Ваш пристрій не має апаратного декодування VP9, ​​тому це налаштування завжди ввімкнено, коли ввімкнено підробку відеопотоків</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Увімкнення цієї опції може збільшити час роботи від акумулятора та виправити затримки відтворення.\n\nAVC має максимальну роздільну здатність 1080p, а відтворення відео використовуватиме більше інтернет-даних, ніж на кодеках VP9 або AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Побічні ефекти підміни iOS:</string>
<string name="revanced_spoof_video_streams_about_ios_title">Побічні ефекти підробки iOS:</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Фільми чи платні відео можуть не відтворюватися\n• Прямі трансляції починаються з початку\n• Відео можуть закінчуватися на 1 секунду раніше\n• Відсутній аудіокодек Opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Побічні ефекти підміни Android VR:</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Побічні ефекти підробки Android VR:</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Меню звукової доріжки відсутнє\n• Меню стабілізації гучності недоступне</string>
</patch>
<!-- This patch is no longer used and these strings will soon be deleted. -->