From 320aa485f917ef612e12b5bca27a307c2961a57c Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Tue, 29 Oct 2024 08:48:07 +0300
Subject: [PATCH 01/18] feat(YouTube - Hide ads): Add `Hide player shopping
shelf` setting
---
src/main/resources/youtube/settings/xml/revanced_prefs.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
index 14bf69b6a..77319ea79 100644
--- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml
+++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
@@ -170,6 +170,7 @@
+
From da4dd43bb1b3a493fb1f4480fca2f9471e431437 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Tue, 29 Oct 2024 08:50:55 +0300
Subject: [PATCH 02/18] feat(YouTube - Hide feed components): Add `Hide
floating button` setting
---
.../BaseMainActivityResolvePatch.kt | 2 +-
.../feed/components/FeedComponentsPatch.kt | 24 +++++++++++++++++++
.../youtube/settings/xml/revanced_prefs.xml | 3 ++-
3 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/src/main/kotlin/app/revanced/patches/shared/mainactivity/BaseMainActivityResolvePatch.kt b/src/main/kotlin/app/revanced/patches/shared/mainactivity/BaseMainActivityResolvePatch.kt
index e34e5d56f..9a1a08c8e 100644
--- a/src/main/kotlin/app/revanced/patches/shared/mainactivity/BaseMainActivityResolvePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/shared/mainactivity/BaseMainActivityResolvePatch.kt
@@ -19,10 +19,10 @@ abstract class BaseMainActivityResolvePatch(
) {
lateinit var mainActivityMutableClass: MutableClass
lateinit var onConfigurationChangedMethod: MutableMethod
+ lateinit var onCreateMethod: MutableMethod
private lateinit var constructorMethod: MutableMethod
private lateinit var onBackPressedMethod: MutableMethod
- private lateinit var onCreateMethod: MutableMethod
private var constructorMethodIndex by Delegates.notNull()
private var onBackPressedMethodIndex by Delegates.notNull()
diff --git a/src/main/kotlin/app/revanced/patches/youtube/feed/components/FeedComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/feed/components/FeedComponentsPatch.kt
index 742a38879..a4603d22d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/feed/components/FeedComponentsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/feed/components/FeedComponentsPatch.kt
@@ -35,6 +35,7 @@ import app.revanced.patches.youtube.utils.fingerprints.ScrollTopParentFingerprin
import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH
import app.revanced.patches.youtube.utils.integrations.Constants.FEED_CLASS_DESCRIPTOR
import app.revanced.patches.youtube.utils.integrations.Constants.FEED_PATH
+import app.revanced.patches.youtube.utils.mainactivity.MainActivityResolvePatch
import app.revanced.patches.youtube.utils.navigation.NavigationBarHookPatch
import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
@@ -62,6 +63,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
+import com.android.tools.smali.dexlib2.iface.reference.StringReference
import com.android.tools.smali.dexlib2.util.MethodUtil
@Suppress("unused")
@@ -70,6 +72,7 @@ object FeedComponentsPatch : BaseBytecodePatch(
description = "Adds options to hide components related to feeds.",
dependencies = setOf(
LithoFilterPatch::class,
+ MainActivityResolvePatch::class,
NavigationBarHookPatch::class,
PlayerTypeHookPatch::class,
SettingsPatch::class,
@@ -175,6 +178,27 @@ object FeedComponentsPatch : BaseBytecodePatch(
// endregion
+ // region patch for hide floating button
+
+ MainActivityResolvePatch.onCreateMethod.apply {
+ val fabIndex = indexOfFirstInstructionOrThrow {
+ opcode == Opcode.CONST_STRING &&
+ getReference()?.string == "fab"
+ }
+ val fabRegister = getInstruction(fabIndex).registerA
+ val jumpIndex = indexOfFirstInstructionOrThrow(fabIndex + 1, Opcode.CONST_STRING)
+
+ addInstructionsWithLabels(
+ fabIndex, """
+ invoke-static {}, $FEED_CLASS_DESCRIPTOR->hideFloatingButton()Z
+ move-result v$fabRegister
+ if-nez v$fabRegister, :hide
+ """, ExternalLabel("hide", getInstruction(jumpIndex))
+ )
+ }
+
+ // endregion
+
// region patch for hide relative video
fun Method.indexOfEngagementPanelBuilderInstruction(targetMethod: MutableMethod) =
diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
index 77319ea79..7e8fcd9ba 100644
--- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml
+++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
@@ -270,8 +270,9 @@
-
+
+
From a0476b59b5c724cc1da232df0757ee9797edf505 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Tue, 29 Oct 2024 08:54:09 +0300
Subject: [PATCH 03/18] feat(YouTube - Seekbar components): Add `Enable high
quality thumbnails` setting
---
.../player/seekbar/SeekbarComponentsPatch.kt | 14 ++++++++++++++
.../SeekbarThumbnailsQualityFingerprint.kt | 9 +++++++++
.../youtube/settings/xml/revanced_prefs.xml | 4 ++++
3 files changed, 27 insertions(+)
create mode 100644 src/main/kotlin/app/revanced/patches/youtube/player/seekbar/fingerprints/SeekbarThumbnailsQualityFingerprint.kt
diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt
index bcd3e1821..053d56ff7 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/SeekbarComponentsPatch.kt
@@ -12,6 +12,7 @@ import app.revanced.patches.shared.drawable.DrawableColorPatch
import app.revanced.patches.youtube.player.seekbar.fingerprints.CairoSeekbarConfigFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.ControlsOverlayStyleFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.SeekbarTappingFingerprint
+import app.revanced.patches.youtube.player.seekbar.fingerprints.SeekbarThumbnailsQualityFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.ShortsSeekbarColorFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.ThumbnailPreviewConfigFingerprint
import app.revanced.patches.youtube.player.seekbar.fingerprints.TimeCounterFingerprint
@@ -24,6 +25,7 @@ import app.revanced.patches.youtube.utils.fingerprints.SeekbarFingerprint
import app.revanced.patches.youtube.utils.fingerprints.SeekbarOnDrawFingerprint
import app.revanced.patches.youtube.utils.fingerprints.TotalTimeFingerprint
import app.revanced.patches.youtube.utils.flyoutmenu.FlyoutMenuHookPatch
+import app.revanced.patches.youtube.utils.integrations.Constants.PATCH_STATUS_CLASS_DESCRIPTOR
import app.revanced.patches.youtube.utils.integrations.Constants.PLAYER_CLASS_DESCRIPTOR
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.InlineTimeBarColorizedBarPlayedColorDark
@@ -62,6 +64,7 @@ object SeekbarComponentsPatch : BaseBytecodePatch(
PlayerSeekbarColorFingerprint,
SeekbarFingerprint,
SeekbarTappingFingerprint,
+ SeekbarThumbnailsQualityFingerprint,
ShortsSeekbarColorFingerprint,
TimelineMarkerArrayFingerprint,
ThumbnailPreviewConfigFingerprint,
@@ -233,6 +236,15 @@ object SeekbarComponentsPatch : BaseBytecodePatch(
// endregion
+ // region patch for high quality thumbnails
+
+ SeekbarThumbnailsQualityFingerprint.injectLiteralInstructionBooleanCall(
+ 45399684,
+ "$PLAYER_CLASS_DESCRIPTOR->enableHighQualityFullscreenThumbnails()Z"
+ )
+
+ // endregion
+
// region patch for hide chapter
TimelineMarkerArrayFingerprint.resultOrThrow().let {
@@ -320,6 +332,8 @@ object SeekbarComponentsPatch : BaseBytecodePatch(
)
settingArray += "SETTINGS: RESTORE_OLD_SEEKBAR_THUMBNAILS"
+
+ context.updatePatchStatus(PATCH_STATUS_CLASS_DESCRIPTOR, "OldSeekbarThumbnailsDefaultBoolean")
}
?: println("WARNING: Restore old seekbar thumbnails setting is not supported in this version. Use YouTube 19.16.39 or earlier.")
diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/fingerprints/SeekbarThumbnailsQualityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/fingerprints/SeekbarThumbnailsQualityFingerprint.kt
new file mode 100644
index 000000000..60e6a7041
--- /dev/null
+++ b/src/main/kotlin/app/revanced/patches/youtube/player/seekbar/fingerprints/SeekbarThumbnailsQualityFingerprint.kt
@@ -0,0 +1,9 @@
+package app.revanced.patches.youtube.player.seekbar.fingerprints
+
+import app.revanced.util.fingerprint.LiteralValueFingerprint
+
+internal object SeekbarThumbnailsQualityFingerprint : LiteralValueFingerprint(
+ returnType = "Z",
+ parameters = emptyList(),
+ literalSupplier = { 45399684 },
+)
\ No newline at end of file
diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
index 7e8fcd9ba..e1188301a 100644
--- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml
+++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
@@ -451,9 +451,13 @@
SETTINGS: SEEKBAR_COMPONENTS -->
+
+
+
From c50b4edcc1180f52c111121562da46e1d39d9519 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Fri, 25 Oct 2024 19:36:01 +0300
Subject: [PATCH 04/18] chore(Translations): Update translations
---
.../music/settings/host/values/strings.xml | 2 +-
.../music/translations/bg-rBG/strings.xml | 2 +-
.../music/translations/bn/strings.xml | 2 +-
.../music/translations/cs-rCZ/strings.xml | 6 +-
.../music/translations/el-rGR/strings.xml | 2 +-
.../music/translations/es-rES/strings.xml | 2 +-
.../music/translations/fr-rFR/strings.xml | 2 +-
.../music/translations/hu-rHU/strings.xml | 2 +-
.../music/translations/id-rID/strings.xml | 2 +-
.../music/translations/in/strings.xml | 2 +-
.../music/translations/it-rIT/strings.xml | 2 +-
.../music/translations/ja-rJP/strings.xml | 2 +-
.../music/translations/ko-rKR/strings.xml | 2 +-
.../music/translations/nl-rNL/strings.xml | 2 +-
.../music/translations/pl-rPL/strings.xml | 2 +-
.../music/translations/pt-rBR/strings.xml | 2 +-
.../music/translations/ro-rRO/strings.xml | 2 +-
.../music/translations/ru-rRU/strings.xml | 2 +-
.../music/translations/tr-rTR/strings.xml | 2 +-
.../music/translations/uk-rUA/strings.xml | 2 +-
.../music/translations/vi-rVN/strings.xml | 120 ++--
.../music/translations/zh-rCN/strings.xml | 2 +-
.../music/translations/zh-rTW/strings.xml | 2 +-
.../youtube/settings/host/values/strings.xml | 22 +-
.../youtube/translations/ar/strings.xml | 22 +-
.../translations/bg-rBG/missing_strings.xml | 18 +-
.../youtube/translations/bg-rBG/strings.xml | 8 +-
.../translations/de-rDE/missing_strings.xml | 18 +-
.../youtube/translations/de-rDE/strings.xml | 2 +-
.../translations/el-rGR/missing_strings.xml | 16 +-
.../youtube/translations/el-rGR/strings.xml | 52 +-
.../youtube/translations/es-rES/strings.xml | 22 +-
.../translations/fr-rFR/missing_strings.xml | 16 +-
.../youtube/translations/fr-rFR/strings.xml | 16 +-
.../translations/hu-rHU/missing_strings.xml | 18 +-
.../youtube/translations/hu-rHU/strings.xml | 8 +-
.../translations/it-rIT/missing_strings.xml | 16 +-
.../youtube/translations/it-rIT/strings.xml | 595 +++++++++---------
.../translations/ja-rJP/missing_strings.xml | 16 +-
.../youtube/translations/ja-rJP/strings.xml | 14 +-
.../youtube/translations/ko-rKR/strings.xml | 30 +-
.../translations/pl-rPL/missing_strings.xml | 17 +
.../youtube/translations/pl-rPL/strings.xml | 8 +-
.../translations/pt-rBR/missing_strings.xml | 16 +-
.../youtube/translations/pt-rBR/strings.xml | 12 +-
.../translations/ru-rRU/missing_strings.xml | 17 +-
.../youtube/translations/ru-rRU/strings.xml | 23 +-
.../translations/tr-rTR/missing_strings.xml | 18 +-
.../youtube/translations/tr-rTR/strings.xml | 2 +-
.../translations/uk-rUA/missing_strings.xml | 17 +
.../youtube/translations/uk-rUA/strings.xml | 8 +-
.../translations/vi-rVN/missing_strings.xml | 16 +-
.../youtube/translations/vi-rVN/strings.xml | 44 +-
.../translations/zh-rCN/missing_strings.xml | 16 +-
.../youtube/translations/zh-rCN/strings.xml | 36 +-
.../translations/zh-rTW/missing_strings.xml | 16 +-
.../youtube/translations/zh-rTW/strings.xml | 8 +-
57 files changed, 764 insertions(+), 587 deletions(-)
create mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
create mode 100644 src/main/resources/youtube/translations/uk-rUA/missing_strings.xml
diff --git a/src/main/resources/music/settings/host/values/strings.xml b/src/main/resources/music/settings/host/values/strings.xml
index 963b593e9..ddc39ad93 100644
--- a/src/main/resources/music/settings/host/values/strings.xml
+++ b/src/main/resources/music/settings/host/values/strings.xml
@@ -1,4 +1,4 @@
-
+
Continue
Don\'t show again
diff --git a/src/main/resources/music/translations/bg-rBG/strings.xml b/src/main/resources/music/translations/bg-rBG/strings.xml
index 41b0fc0a5..778b1edde 100644
--- a/src/main/resources/music/translations/bg-rBG/strings.xml
+++ b/src/main/resources/music/translations/bg-rBG/strings.xml
@@ -1,4 +1,4 @@
-
+
Хит-парад
Преглед
diff --git a/src/main/resources/music/translations/bn/strings.xml b/src/main/resources/music/translations/bn/strings.xml
index ec6adbbc9..a3dc0538b 100644
--- a/src/main/resources/music/translations/bn/strings.xml
+++ b/src/main/resources/music/translations/bn/strings.xml
@@ -1,4 +1,4 @@
-
+
ভিন্ন লাইনে ফিল্টারযোগ্য উপাদানের নাম লিখুন।
কাস্টম ফিল্টার সম্পাদনা করুন
diff --git a/src/main/resources/music/translations/cs-rCZ/strings.xml b/src/main/resources/music/translations/cs-rCZ/strings.xml
index 251e9497c..3e937ae2b 100644
--- a/src/main/resources/music/translations/cs-rCZ/strings.xml
+++ b/src/main/resources/music/translations/cs-rCZ/strings.xml
@@ -1,4 +1,4 @@
-
+
Upravit vlastní filtr
Povolit vlastní filtry
@@ -20,7 +20,7 @@
Povolit opus kodek
Přidá šedý odstín do přehrávače videa ke snížení namáhání očí.
Povolit zen mod
-
+
Obnovit a restartovat
ReVanced Extended
%s není instalován. Prosím, nainstalujte jej.
@@ -38,6 +38,6 @@
Skrýt hudební reklamy
Skrýt popisky v navigačním panelu.
Skrýt popisky navigačního panelu
-
+
Zfalšovat verzi aplikace
diff --git a/src/main/resources/music/translations/el-rGR/strings.xml b/src/main/resources/music/translations/el-rGR/strings.xml
index 6185cda66..08b910b93 100644
--- a/src/main/resources/music/translations/el-rGR/strings.xml
+++ b/src/main/resources/music/translations/el-rGR/strings.xml
@@ -1,4 +1,4 @@
-
+
Συνέχεια
"Το MicroG GmsCore δεν έχει άδεια να τρέχει στο παρασκήνιο.
diff --git a/src/main/resources/music/translations/es-rES/strings.xml b/src/main/resources/music/translations/es-rES/strings.xml
index 7392ac587..c4ef8537e 100644
--- a/src/main/resources/music/translations/es-rES/strings.xml
+++ b/src/main/resources/music/translations/es-rES/strings.xml
@@ -1,4 +1,4 @@
-
+
Continuar
"GmsCore no tiene permiso para ejecutarse en segundo plano.
diff --git a/src/main/resources/music/translations/fr-rFR/strings.xml b/src/main/resources/music/translations/fr-rFR/strings.xml
index db9356631..a9792e7a2 100644
--- a/src/main/resources/music/translations/fr-rFR/strings.xml
+++ b/src/main/resources/music/translations/fr-rFR/strings.xml
@@ -1,4 +1,4 @@
-
+
Continuer
"GmsCore n'a pas les permissions pour fonctionner en arrière-plan.
diff --git a/src/main/resources/music/translations/hu-rHU/strings.xml b/src/main/resources/music/translations/hu-rHU/strings.xml
index 2c5d13d46..647ee35fd 100644
--- a/src/main/resources/music/translations/hu-rHU/strings.xml
+++ b/src/main/resources/music/translations/hu-rHU/strings.xml
@@ -1,4 +1,4 @@
-
+
Folytatás
"A GmsCore-nak nincs engedélye a háttérben történő futtatásra.
diff --git a/src/main/resources/music/translations/id-rID/strings.xml b/src/main/resources/music/translations/id-rID/strings.xml
index a61be4c8d..86653dd2a 100644
--- a/src/main/resources/music/translations/id-rID/strings.xml
+++ b/src/main/resources/music/translations/id-rID/strings.xml
@@ -1,4 +1,4 @@
-
+
Continue
"GmsCore does not have permission to run in the background.
diff --git a/src/main/resources/music/translations/in/strings.xml b/src/main/resources/music/translations/in/strings.xml
index a61be4c8d..86653dd2a 100644
--- a/src/main/resources/music/translations/in/strings.xml
+++ b/src/main/resources/music/translations/in/strings.xml
@@ -1,4 +1,4 @@
-
+
Continue
"GmsCore does not have permission to run in the background.
diff --git a/src/main/resources/music/translations/it-rIT/strings.xml b/src/main/resources/music/translations/it-rIT/strings.xml
index 3a676051e..4d587a4d4 100644
--- a/src/main/resources/music/translations/it-rIT/strings.xml
+++ b/src/main/resources/music/translations/it-rIT/strings.xml
@@ -1,4 +1,4 @@
-
+
Filtra i nomi dei componenti separati da righe.
Modifica i filtri personalizzati
diff --git a/src/main/resources/music/translations/ja-rJP/strings.xml b/src/main/resources/music/translations/ja-rJP/strings.xml
index c206b2024..047ab69eb 100644
--- a/src/main/resources/music/translations/ja-rJP/strings.xml
+++ b/src/main/resources/music/translations/ja-rJP/strings.xml
@@ -1,4 +1,4 @@
-
+
続行
今後表示しない
diff --git a/src/main/resources/music/translations/ko-rKR/strings.xml b/src/main/resources/music/translations/ko-rKR/strings.xml
index deb00f17a..293ca358a 100644
--- a/src/main/resources/music/translations/ko-rKR/strings.xml
+++ b/src/main/resources/music/translations/ko-rKR/strings.xml
@@ -1,4 +1,4 @@
-
+
계속하기
다시 보지 않기
diff --git a/src/main/resources/music/translations/nl-rNL/strings.xml b/src/main/resources/music/translations/nl-rNL/strings.xml
index 718f5fb21..efc733fe5 100644
--- a/src/main/resources/music/translations/nl-rNL/strings.xml
+++ b/src/main/resources/music/translations/nl-rNL/strings.xml
@@ -1,4 +1,4 @@
-
+
Componentnamen filteren op lijn spatie
Wijzig aangepaste filter
diff --git a/src/main/resources/music/translations/pl-rPL/strings.xml b/src/main/resources/music/translations/pl-rPL/strings.xml
index 2b0676ffd..9c426a6fe 100644
--- a/src/main/resources/music/translations/pl-rPL/strings.xml
+++ b/src/main/resources/music/translations/pl-rPL/strings.xml
@@ -1,4 +1,4 @@
-
+
Kontynuuj
"GmsCore nie ma uprawnień do działania w tle.
diff --git a/src/main/resources/music/translations/pt-rBR/strings.xml b/src/main/resources/music/translations/pt-rBR/strings.xml
index 2c58a4357..1f85523a9 100644
--- a/src/main/resources/music/translations/pt-rBR/strings.xml
+++ b/src/main/resources/music/translations/pt-rBR/strings.xml
@@ -1,4 +1,4 @@
-
+
Continuar
"O GmsCore não tem permissão para executar em segundo plano.
diff --git a/src/main/resources/music/translations/ro-rRO/strings.xml b/src/main/resources/music/translations/ro-rRO/strings.xml
index 2d2225e76..28cef9ec1 100644
--- a/src/main/resources/music/translations/ro-rRO/strings.xml
+++ b/src/main/resources/music/translations/ro-rRO/strings.xml
@@ -1,4 +1,4 @@
-
+
Filtrează numele componentelor după linie separat.
Editați filtrul personalizat
diff --git a/src/main/resources/music/translations/ru-rRU/strings.xml b/src/main/resources/music/translations/ru-rRU/strings.xml
index 5071616f3..4bb31de17 100644
--- a/src/main/resources/music/translations/ru-rRU/strings.xml
+++ b/src/main/resources/music/translations/ru-rRU/strings.xml
@@ -1,4 +1,4 @@
-
+
Продолжить
"MicroG GmsCore не имеет разрешения на запуск в фоновом режиме.
diff --git a/src/main/resources/music/translations/tr-rTR/strings.xml b/src/main/resources/music/translations/tr-rTR/strings.xml
index 307acaa79..b0b3f2c20 100644
--- a/src/main/resources/music/translations/tr-rTR/strings.xml
+++ b/src/main/resources/music/translations/tr-rTR/strings.xml
@@ -1,4 +1,4 @@
-
+
Devam Et
"GmsCore'un arka planda çalışma izni yoktur.
diff --git a/src/main/resources/music/translations/uk-rUA/strings.xml b/src/main/resources/music/translations/uk-rUA/strings.xml
index c10af626f..d0101bc4b 100644
--- a/src/main/resources/music/translations/uk-rUA/strings.xml
+++ b/src/main/resources/music/translations/uk-rUA/strings.xml
@@ -1,4 +1,4 @@
-
+
Продовжити
"GmsCore не дозволено працювати у фоні.
diff --git a/src/main/resources/music/translations/vi-rVN/strings.xml b/src/main/resources/music/translations/vi-rVN/strings.xml
index cf7b37e0f..80ef8382a 100644
--- a/src/main/resources/music/translations/vi-rVN/strings.xml
+++ b/src/main/resources/music/translations/vi-rVN/strings.xml
@@ -1,18 +1,20 @@
-
+
Tiếp tục
- "GmsCore chưa được cấp quyền để chạy trong nền.
+ "Hiện GmsCore không có quyền chạy nền.
-Làm theo hướng dẫn 'Don't kill my app!' cho thiết bị của bạn và áp dụng các hướng dẫn cho việc thiết lập GmsCore của bạn."
- "Tắt tối ưu hoá pin cho GmsCore để tránh phát sinh vẫn đề.
+Hãy làm theo hướng dẫn của 'Don't kill my app!' và tiến hành cài đặt GmsCore đúng cách.
- Nhấn vào nút Tiếp tục và tắt tối ưu hóa pin."
+Để ứng dụng hoạt động hiệu quả nhất."
+ "Tắt tối ưu hoá pin cho GmsCore để tránh các vấn đề phát sinh.
+
+Nhấn vào nút Tiếp tục và tắt tối ưu hóa pin."
Mở trang web
Hành động cần thiết
- Mở MicroG để thiết lập tính năng nhận thông báo và các tuỳ chọn khác.
+ Mở GmsCore để kích hoạt Cloud Messaging để nhận thông báo đẩy và các cài đặt khác.
Mở GmsCore
- GmsCore chưa được cài đặt. Hãy cài đặt nó.
- Thay thế miền bị chặn ở một số khu vực để có thể thu được được ảnh bìa video của danh sách phát, ảnh đại diện kênh, v. v.
+ GmsCore chưa được cài đặt. Hãy cài đặt nó đi nào.
+ Thay thế miền bị chặn ở một số khu vực để có thể thu được được hình thu nhỏ video của danh sách phát, ảnh đại diện kênh, v. v.
Bỏ qua hạn chế khu vực cho hình ảnh
Chuyển giao diện chia sẻ trong ứng dụng sang của hệ thống.
Thay đổi giao diện chia sẻ
@@ -32,12 +34,12 @@ Làm theo hướng dẫn 'Don't kill my app!' cho thiết bị của bạn và
Tốc độ phát tùy chỉnh không hợp lệ.
Thêm giá trị tốc độ phát mà bạn muốn thay đổi hoặc chỉnh sửa các giá trị tốc độ phát hiện có.
Chỉnh sửa tốc độ phát
- Để mở liên kết YouTube Music trong RVX Music, hãy bật \'Mở liên kết được hỗ trợ\' và kích hoạt các địa chỉ web được hỗ trợ.
+ Để mở liên kết YouTube Music trong RVX Music, hãy kích hoạt \"Mở các đường liên kết được hỗ trợ\" và thêm các đường liên kết được hỗ trợ.
Mở theo mặc định
Tắt tự động hiển thị phụ đề khi phát video nhạc có phụ đề.
Tắt tự động hiển thị phụ đề
- Vô hiệu hóa hoạt ảnh Cairo khi ứng dụng khởi chạy.
- Vô hiệu hóa hoạt ảnh Cairo
+ Vô hiệu hóa hoạt ảnh kiểu Cairo khi ứng dụng khởi chạy.
+ Vô hiệu hóa hoạt ảnh kiểu Cairo
Vô hiệu hóa chuyển hướng đến bài hát tiếp theo khi nhấp vào nút Không thích.
Vô hiệu hoá chuyển hướng khi ấn nút không thích
Tắt vuốt để chuyển bài hát trong trình phát thu nhỏ.
@@ -57,7 +59,7 @@ Hạn chế:
• Bố cục Hẹn giờ ngủ có thể xuất hiện bất thường."
Trình đơn tuỳ chọn thu gọn
Bao gồm bộ đệm trong nhật ký gỡ lỗi.
- Bật nhật ký gỡ lỗi bộ đệm
+ Bật nhật ký bộ đệm gỡ lỗi
Bật ghi nhật ký gỡ lỗi.
Nhật ký gỡ lỗi
Luôn phát nhạc trong trình phát thu nhỏ bất cứ khi nào bạn nghe một bài hát nằm ngoài trình phát hoặc bắt đầu đài phát.
@@ -71,11 +73,11 @@ Hạn chế:
"Áp dụng bộ giải mã OPUS nếu phản hồi của trình phát bao gồm nó.
Cụ thể:
-• Ứng dụng YouTube Music mới nhất đặt mặc định là bộ giải mãi OPUS.
+• Các phiên bản YouTube Music mới nhất sử dụng bộ giải mãi OPUS như mặc định.
• Điều này chỉ áp dụng cho người dùng giả mạo với các phiên bản ứng dụng rất cũ."
Bộ giải mã OPUS
- Bật thao tác vuốt xuống để loại bỏ trình phát thu nhỏ.
- Bật thao tác vuốt để loại bỏ trình phát thu nhỏ
+ Bật thao tác vuốt xuống để đóng trình phát thu nhỏ.
+ Thao tác vuốt để đóng trình phát thu nhỏ
"Thêm tính năng Cắt bỏ khoảng lặng vào mục tuỳ chọn tốc độ phát.
Cụ thể:
@@ -83,7 +85,7 @@ Cụ thể:
• Tính năng này vẫn đang được phát triển nên có thể chưa ổn định."
Cắt bỏ khoảng lặng
Đồng thời bật chế độ tập trung cho podcast.
- Bật Chế độ tập trung trong podcasts
+ Chế độ tập trung cho podcast
Thay đổi nền của trình phát thành màu xám nhạt để giúp bạn giảm mỏi mắt và tập trung hơn.
Chế độ tập trung
Đặt lại về giá trị mặc định.
@@ -102,14 +104,14 @@ Cụ thể:
Đã đặt lại cài đặt về mặc định.
Đã nhập %d cài đặt.
Đặt lại
- Cài đặt ReVanced Extended
- "Nút tải xuống mở trình tải xuống bên thứ ba của bạn.
+ ReVanced Extended
+ "Nút tải xuống sẽ mở trình tải xuống bên ngoài của bạn.
• Chỉ ghi đè lên nút Tải xuống trong trình phát.
-• Không ghi đè lên nút Tải xuống trong Trình đơn tuỳ chọn hoặc Thư viện."
+• Không ghi đè lên nút Tải xuống trong Trình đơn tuỳ chọn hoặc thẻ Thư viện."
Ghi đè nút tải xuống
Trình tải xuống bên ngoài
- "%1$s chưa được cài đặt.
+ "Có vẻ như %1$s chưa được cài đặt.
Vui lòng tải xuống %2$s từ trang web."
Chú ý
%s chưa được cài đặt. Hãy cài đặt và thử lại.
@@ -117,7 +119,7 @@ Cụ thể:
Tên gói ứng dụng trình tải xuống
Ẩn các mục trống khỏi trình đơn Tài khoản.
Ẩn mục trống
- Nhập tên các mục Tài khoản mà bạn muốn lọc được phân cách bằng dòng.
+ Nhập tên các mục thành phần của trình đơn Tài khoản mà bạn muốn lọc được phân cách bằng dòng.
Bộ lọc mục Tài khoản
Ẩn các thành phần của trình đơn Tài khoản bằng bộ lọc tuỳ chỉnh.
Ẩn trình đơn Tài khoản
@@ -135,8 +137,8 @@ Cụ thể:
Ẩn nút Đài phát
Ẩn nút Chia sẻ trong bảng nút thao tác.
Ẩn nút Chia sẻ
- Ẩn nút chuyển đổi Âm thanh / Video trong trình phát.
- Ẩn nút chuyển đổi Âm thanh / Video
+ Ẩn nút chuyển đổi Bài hát/Video trong trình phát.
+ Ẩn nút chuyển đổi Bài hát/Video
Ẩn khối danh mục ở cuối thẻ Trang chủ và đầu thẻ Khám phá.
Ẩn khối danh mục
Ẩn các kệ được cá nhân hoá dựa trên sở thích của bạn khỏi thẻ Trang chủ và thẻ Khám phá.
@@ -153,34 +155,34 @@ Cụ thể:
Ẩn bộ lọc lớp phủ nhấn đúp
Ẩn nút nổi trong thẻ Thư viện.
Ẩn nút nổi
- Ẩn thành phần 3 cột
+ Ẩn 3 ô thao tác nhanh
Ẩn mục Thêm vào danh sách chờ
Ẩn mục Phụ đề
Ẩn mục Xoá danh sách phát
Ẩn mục Loại bỏ danh sách chờ
Ẩn mục Tải xuống
Ẩn mục Chỉnh sửa danh sách phát
- Ẩn mục Chuyển đến menu album
+ Ẩn mục Chuyển đến đĩa nhạc
Ẩn mục Chuyển đến trang của nghệ sĩ
- Ẩn mục Chuyển đến tập
+ Ẩn mục Chuyển đến tập podcast
Ẩn mục Chuyển đến podcast
Ẩn mục Trợ giúp & phản hồi
Ẩn các nút Thích và Không thích
- Ẩn mục Phát tiếp theo
+ Ẩn mục Phát video tiếp theo
Ẩn mục Chất lượng
Ẩn mục Xoá khỏi thư viện
Ẩn mục Xóa khỏi danh sách phát
- Ẩn mục Báo cáo
+ Ẩn mục Báo vi phạm
Ẩn mục Lưu tập này để thưởng thức sau
Ẩn mục Lưu vào thư viện
Ẩn mục Lưu vào danh sách phát
Ẩn mục Chia sẻ
Ẩn mục Phát ngẫu nhiên
- Ẩn mục Hẹn giờ đi ngủ
+ Ẩn mục Hẹn giờ ngủ
Ẩn mục Bắt đầu đài phát
Ẩn mục Thống kê chi tiết
- Ẩn mục Đăng ký / Huỷ đăng ký
- Ẩn mục Xem thông tin của bài hát
+ Ẩn mục Đăng ký/Huỷ đăng ký
+ Ẩn mục Xem thông tin ghi công của bài hát
Ẩn quảng cáo toàn màn hình.
Ẩn quảng cáo toàn màn hình
"Nếu tính năng này bật, quảng cáo toàn màn hình sẽ được đóng thông qua nút Đóng.
@@ -228,7 +230,7 @@ Nếu tính năng này tắt, quảng cáo toàn màn hình sẽ bị chặn (c
Ẩn biểu ngữ thông báo khuyến mãi
Ẩn thẻ Đoạn nhạc trong bảng feed.
Ẩn thẻ Đoạn nhạc
- Ẩn mục Giới thiệu về Youtube music
+ Ẩn mục Giới thiệu về Youtube Music
Ẩn mục Chế độ tiết kiệm dữ liệu
Ẩn mục Nhạc tải xuống & bộ nhớ
Ẩn mục Chung
@@ -244,7 +246,7 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
Ẩn nút tìm kiếm âm thanh trên thanh tìm kiếm.
Ẩn nút tìm kiếm âm thanh
Ẩn nút \'Chạm để nâng cấp\'.
- Ẩn nút Nhấn để cập nhật
+ Ẩn nút \'Chạm để nâng cấp\'
Ẩn các mục Chính sách quyền riêng tư và Điều khoản dịch vụ khỏi trình đơn Tài khoản.
Ẩn mục Bảo mật và Điều khoản
Ẩn nút tìm kiếm bằng giọng nói trên thanh tìm kiếm.
@@ -260,10 +262,10 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
Return YouTube Username
Return YouTube Dislike
SponsorBlock
- Trình đơn Cài đặt
+ Trình đơn cài đặt
Video
- Ghi nhớ giá trị tốc độ phát được chọn gần đây nhất.
- Ghi nhớ thay đổi tốc độ phát
+ Lưu giá trị tốc độ phát được chọn gần đây nhất.
+ Lưu thay đổi tốc độ phát
Hiện một thông báo ngắn khi thay đổi tốc độ phát mặc định.
Hiện một thông báo ngắn
Đã lưu tốc độ phát mặc định thành %s.
@@ -271,8 +273,8 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
Lưu trạng thái phát lặp lại
Ghi nhớ trạng thái phát ngẫu nhiên các bài hát.
Lưu trạng thái phát ngẫu nhiên
- Ghi nhớ chất lượng video nhạc được chọn gần đây nhất.
- Ghi nhớ chất lượng video
+ Lưu chất lượng video nhạc đã chọn gần đây nhất.
+ Lưu thay đổi chất lượng video
Hiện một thông báo ngắn khi thay đổi chất lượng mặc định của video.
Hiện một thông báo ngắn
Đã lưu chất lượng video mặc định trên mạng di động thành %s.
@@ -286,15 +288,15 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
Thay thế mục Loại bỏ danh sách chờ bằng mục Xem trên YouTube.
Thay thế mục Loại bỏ danh sách chờ
Xem trên YouTube
- Url video không hợp lệ.
- Giữ nguyên mục Phản hồi trong phần bình luận.
- Giữ nút Phản hồi trong phần bình luận
- Thay thế mục Phản hồi bằng mục Tốc độ phát.
- Thay thế mục Phản hồi
- Khôi phục lại bảng bình luận nổi về kiểu cũ.
- Khôi phục bảng bình luận nổi kiểu cũ
+ URL video không hợp lệ.
+ Giữ nguyên mục Báo vi phạm trong phần bình luận.
+ Báo vi phạm trong phần bình luận
+ Thay thế mục Báo vi phạm bằng mục Tốc độ phát.
+ Thay thế mục Báo vi phạm
+ Khôi phục bảng bình luận bật lên về kiểu cũ.
+ Bảng bình luận bật lên kiểu cũ
Khôi phục nền trình phát về kiểu cũ.
- Khôi phục nền trình phát kiểu cũ
+ Nền trình phát kiểu cũ
"Khôi phục bố cục trình phát về kiểu cũ.
\nLưu ý: Một số tính năng có thể không hoạt động bình thường trong bố cục trình phát kiểu cũ."
Khôi phục bố cục trình phát kiểu cũ
@@ -313,7 +315,7 @@ Giới hạn truy cập hàng ngày cho các khoá API trên gói miễn phí l
Nhấp vào đây để xem các bước phát hành khóa API."
Giới thiệu về khoá YouTube Data API
- Khoá nhà phát triển để sử dụng YouTube Data API v3.
+ Khoá phát triển để sử dụng YouTube Data API v3.
Khoá Youtube Data API
1. Tạo dự án mới <a href=%1$s>Nhấn vào đây</a>.<br>2. Nhấn vào nút <b>CREATE</b>.<br>3. Đi tới YouTube Data API v3 <a href=%2$s>Nhấn vào đây</a>.<br>4. Nhấn vào nút <b>ENABLE</b>.<br>5. Nhấn vào nút <b>CREATE CREDENTIALS</b>.<br>6. Chọn <b>Public data</b>.<br>7. Nhấn vào nút <b>NEXT</b>.<br>8. Sao chép mã khoá API.<br><br>※ Khoá API không nên được chia sẻ với người khác, vì vậy nó cũng không xuất hiện trong cài đặt Nhập/Xuất.
Phát hành mã khoá
@@ -323,9 +325,9 @@ Nhấp vào đây để xem các bước phát hành khóa API."
Ẩn dấu phân cách giữa nút Thích và số lượt thích.
Nút Thích thu gọn
Hiển thị số lượt không thích dưới dạng tỉ lệ phần trăm.
- Hiện số lượt không thích theo phần trăm
+ Số lượt không thích theo phần trăm
Hiển thị số lượt không thích của bài hát và video nhạc.
- Kích hoạt Hiển thị số lượt không thích
+ Kích hoạt Return YouTube Dislike
Hiển thị số lượt thích được ước tính của video.
Số lượt thích ước tính
Số lượt không thích không khả dụng (đã đạt đến giới hạn API máy khách).
@@ -344,12 +346,12 @@ Nhấp vào đây để xem các bước phát hành khóa API."
Đã thay đổi địa chỉ URL của API SponsorBlock.
Địa chỉ URL của API SponsorBlock không hợp lệ.
Đã đặt lại địa chỉ URL của API SponsorBlock.
- Địa chỉ Url của Api SponsorBlock được dùng để thực hiện các kết nối đến máy chủ. Không thay đổi địa chỉ này trừ khi bạn biết mình đang làm gì.
+ Địa chỉ URL của API SponsorBlock được dùng để thực hiện các kết nối đến máy chủ. Không thay đổi địa chỉ này trừ khi bạn biết mình đang làm gì.
Đã thay đổi màu phân đoạn.
Màu:
Mã màu không hợp lệ.
Đã đặt lại màu phân đoạn về mặc định.
- Thay đổi hành vi của phân đoạn
+ Cài đặt phân đoạn
Kích hoạt SponsorBlock
SponsorBlock là một tiện tích được đóng góp bởi cộng đồng nhằm bỏ qua các phân đoạn gây khó chịu trong video YouTube.
Đặt lại màu
@@ -357,13 +359,13 @@ Nhấp vào đây để xem các bước phát hành khóa API."
Những cảnh chỉ được thêm vào để bổ sung hoặc mang tính chất hài hước, không bắt buộc phải hiểu nội dung chính của video. Không bao gồm các phân đoạn cung cấp chi tiết bối cảnh.
Nhắc nhở tương tác (Đăng ký)
Một lời nhắc ngắn rằng bạn hãy ấn thích, đăng ký hoặc theo dõi họ ở giữa nội dung. Nếu nó dài hoặc về một cái gì đó cụ thể, thay vào đó nó nên được tự quảng cáo.
- Hoạt ảnh Tạm dừng / Giới thiệu
+ Đoạn tạm dừng/Giới thiệu
Khoảng thời gian không có nội dung thực tế, có thể là treo video, khung hình tĩnh hoặc hoạt ảnh lặp lại. Phân đoạn này không bao gồm các phần chuyển tiếp chứa thông tin.
Âm nhạc: Phần không phải nhạc
Chỉ dành cho video âm nhạc. Phần trong video âm nhạc không có nhạc, gồm cả những phần không có trong bản nhạc chính thức.
- Video đề xuất / Giới thiệu
+ Đoạn kết thúc/Danh đề
Giới thiệu hoặc khi phần video đề xuất ở màn hình kết thúc của YouTube xuất hiện. Phân đoạn này không bao gồm kết thúc bằng lời nói.
- Xem trước / tóm tắt / gây chú ý
+ Đoạn xem trước/Tóm tắt/Gây chú ý
Phân đoạn này cho thấy những gì sẽ xảy ra/đã xảy ra trong video hiện tại hoặc các video tiếp theo/trước đó trong cùng một loạt video, bao gồm tất cả thông tin được lặp lại ở một thời điểm khác.
Quảng cáo không được trả tiền/Tự quảng cáo
Tương tự như \"Nhà tài trợ\" ngoại trừ việc nhà sáng tạo không được trả tiền quảng cáo hoặc tự họ quảng cáo. Phân đoạn này cũng bao gồm các sản phẩm hàng hoá được rao bán, khoản quyên góp hoặc thông tin về những người họ đã cộng tác.
@@ -373,22 +375,22 @@ Nhấp vào đây để xem các bước phát hành khóa API."
Vô hiệu hoá
Đã bỏ qua cảnh phụ/nội dung lạc đề - hài hước.
Đã bỏ qua nhắc nhở tương tác.
- Đã bỏ qua giới thiệu.
- Đã bỏ qua hoạt ảnh tạm dừng.
- Đã bỏ qua hoạt ảnh tạm dừng.
+ Đã bỏ qua phần giới thiệu.
+ Đã bỏ qua đoạn tạm dừng.
+ Đã bỏ qua đoạn tạm dừng.
Đã bỏ qua nhiều phân đoạn.
Đã bỏ qua phần không phải nhạc.
Đã bỏ qua phần kết thúc.
Đã bỏ qua đoạn xem trước.
Đã bỏ qua đoạn tóm tắt.
Đã bỏ qua đoạn xem trước.
- Đã bỏ qua tự quảng cáo.
+ Đã bỏ qua đoạn tự quảng cáo.
Đã bỏ qua nhà tài trợ.
SponsorBlock tạm thời không khả dụng.
SponsorBlock tạm thời không khả dụng (trạng thái %d).
SponsorBlock tạm thời không khả dụng (API đã hết thời gian chờ).
Hiện thông báo ngắn nếu API không khả dụng
- Hiện thông báo ngắn nếu API SponsorBlock không khả dụng.
+ Hiển thị thông báo ngắn nếu API SponsorBlock không khả dụng.
Hiện thông báo ngắn khi tự động bỏ qua
Hiện thông báo ngắn mỗi khi tự động bỏ qua phân đoạn.
Đã sao chép cài đặt sang bảng nhớ tạm.
diff --git a/src/main/resources/music/translations/zh-rCN/strings.xml b/src/main/resources/music/translations/zh-rCN/strings.xml
index 6397d8f53..38a4f2424 100644
--- a/src/main/resources/music/translations/zh-rCN/strings.xml
+++ b/src/main/resources/music/translations/zh-rCN/strings.xml
@@ -1,4 +1,4 @@
-
+
图表
探索
diff --git a/src/main/resources/music/translations/zh-rTW/strings.xml b/src/main/resources/music/translations/zh-rTW/strings.xml
index 28e235190..df9387545 100644
--- a/src/main/resources/music/translations/zh-rTW/strings.xml
+++ b/src/main/resources/music/translations/zh-rTW/strings.xml
@@ -1,4 +1,4 @@
-
+
圖表
探索
diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml
index b1f68dcf5..928dd57f2 100644
--- a/src/main/resources/youtube/settings/host/values/strings.xml
+++ b/src/main/resources/youtube/settings/host/values/strings.xml
@@ -1,4 +1,4 @@
-
+
Enable accessibility controls for the video player?
Your controls are modified because an accessibility service is on.
@@ -270,6 +270,14 @@ Side effect: Cairo theme is also applied to notification dots."
Seekbar tapping is disabled.
Seekbar tapping is enabled.
Enable seekbar tapping
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Timestamp is disabled.
"Timestamp is enabled.
@@ -494,6 +502,9 @@ Store"
Film strip overlay is shown.
Film strip overlay is hidden.
Hide film strip overlay
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
Floating microphone button is shown.
Floating microphone button is hidden.
Hide floating microphone button
@@ -713,6 +724,9 @@ Words with uppercase letters in the middle must be entered with the casing (ie:
Buttons are shown.
Buttons are hidden.
Hide Previous & Next buttons
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
YouTube Music button is shown.
YouTube Music button is hidden.
Hide YouTube Music button
@@ -1644,14 +1658,9 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more
Streaming data is spoofed.
Spoof streaming data
Android
- Android Creator
- Android Embedded Player
- Android Testsuite
Android TV
Android VR
iOS
- TV HTML5
- Web
Default client
Turning off this setting may cause video playback issues.
Brightness swipe sensitivity must be between 1-1000 (%).
@@ -1692,7 +1701,6 @@ Also, ads will no longer be blocked in Shorts.
If this setting do not take effect, try switching to Incognito mode."
Stock
RVX Music
- Warning
%s is not installed. Please install it.
Package name of installed RVX Music.
RVX Music package name
diff --git a/src/main/resources/youtube/translations/ar/strings.xml b/src/main/resources/youtube/translations/ar/strings.xml
index 5104b7668..aecc9c77e 100644
--- a/src/main/resources/youtube/translations/ar/strings.xml
+++ b/src/main/resources/youtube/translations/ar/strings.xml
@@ -1,4 +1,4 @@
-
+
تمكين عناصر التحكم في إمكانية الوصول لمشغل الفيديو؟
تم تعديل عناصر التحكم الخاصة بك لأن خدمة إمكانية الوصول قيد التشغيل.
@@ -268,6 +268,14 @@
تم تعطيل النقر على شريط الوقت (شريط تقدم الفيديو).
تم تمكين النقر على شريط الوقت (شريط تقدم الفيديو).
تمكين النقر على شريط التقدم
+ "سيؤدي هذا إلى استعادة المصغرات للبث المباشر الذي لا يحتوي على مصغرات لشريط التقدم.
+
+قد يكون استخدام بيانات الإنترنت أعلى، وقد يحدث تأخير طفيف في عرض المصغرات لشريط التقدم.
+
+تعمل هذه الميزة بشكل أفضل مع اتصال إنترنت سريع للغاية."
+ مصغرات شريط التقدم متوسطة الجودة.
+ مصغرات شريط التقدم عالية الجودة.
+ تمكين المصغرات عالية الجودة
تم تعطيل الطابع الزمني.
"تم تمكين الطابع الزمني.
@@ -488,6 +496,9 @@
يتم عرض تراكب شريط الفيلم.
تم إخفاء تراكب شريط الفيلم.
إخفاء واجهة شريط الفيلم
+ يتم عرض الزر العائم.
+ تم إخفاء الزر العائم.
+ إخفاء الزر العائم
يتم عرض زر الميكروفون العائم.
تم إخفاء زر الميكروفون العائم.
إخفاء زر الميكروفون العائم
@@ -707,6 +718,9 @@
يتم عرض الأزرار.
تم إخفاء الأزرار.
إخفاء أزرار السابق & التالي
+ يتم عرض رف التسوق.
+ تم إخفاء رف التسوق.
+ إخفاء رف مشغل التسوق
يتم عرض زر موسيقى YouTube.
تم إخفاء زر موسيقى YouTube.
إخفاء زر موسيقى YouTube
@@ -1621,14 +1635,9 @@
يتم تزييف بيانات البث.
Spoof Streaming Data
Android
- Android Creator
- مشغل Android المضمّن
- Android Testsuite
Android TV
Android VR
iOS
- TV HTML5
- Web
العميل الافتراضي
إيقاف تشغيل هذا الإعداد قد يسبب مشاكل في تشغيل الفيديو.
يجب أن تكون حساسية تمرير مستوى السطوع بين 1-1000 (%).
@@ -1677,7 +1686,6 @@
إذا لم يتم تفعيل هذا الإعداد، فحاول التبديل إلى وضع التصفح المتخفي."
الإفتراضي
موسيقى RVX
- تحذير
%s لم يتم تثبيته. الرجاء تثبيته.
اسم الحزمة لموسيقى RVX المثبتة.
اسم حزمة موسيقى RVX
diff --git a/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml b/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml
index ef634199e..b78fea5b5 100644
--- a/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml
+++ b/src/main/resources/youtube/translations/bg-rBG/missing_strings.xml
@@ -1,4 +1,4 @@
-
+
Don\'t show again
The domain to fetch images from.\nNote: Only enter the domain name, i.e., without the \"https\:\/\/\" prefix.
@@ -7,6 +7,14 @@
Chapters are enabled in the seekbar.
Chapters are disabled in the seekbar.
Disable seekbar chapters
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
"There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
A temporary workaround for this issue is to spoof the app version to 19.13.37.
@@ -19,9 +27,15 @@ Do you want to spoof the app version before restarting the app?"
Highlighted search links are shown.
Highlighted search links are hidden.
Hide highlighted search links
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
1080p Premium menu is shown.
1080p Premium menu is hidden.
Hide 1080p Premium menu
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
Chapter labels next to the timestamp are shown.
Chapter labels next to the timestamp are hidden.
Hide seekbar chapter labels
@@ -135,6 +149,6 @@ Click to see how to issue a API key."
Configure the minimum distance for brightness swiping between 1 and 1000 (%).\nThe shorter the minimum distance, the faster the brightness level changes.
Brightness swipe sensitivity
Volume swipe sensitivity must be between 1-1000 (%).
- Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
+ Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
Volume swipe sensitivity
diff --git a/src/main/resources/youtube/translations/bg-rBG/strings.xml b/src/main/resources/youtube/translations/bg-rBG/strings.xml
index 6aa4eea13..2980b3faa 100644
--- a/src/main/resources/youtube/translations/bg-rBG/strings.xml
+++ b/src/main/resources/youtube/translations/bg-rBG/strings.xml
@@ -1,4 +1,4 @@
-
+
Включване на контролите за достъпност на видеоплеaра?
Вашите контроли са променени, защото е активирана услуга за достъпност.
@@ -1486,14 +1486,9 @@ AVC (H.264) има максимална разделителна способн
Данните за поточно предаване са подправени.
Подправяне на поточни данни
Андроид
- Създател на Android
- Вграден Android плейър
- Тестов пакет за Android
Android TV
Android VR
iOS
- TV HTML5
- Web
Клиент по подразбиране
Изключването на тази настройка може да причини проблеми с възпроизвеждането на видео.
Жестовете за плъзгане са деактивирани в режим „Заключен екран“.
@@ -1528,7 +1523,6 @@ AVC (H.264) има максимална разделителна способн
Ако деактивирането не влезе в сила, опитайте да превключите към режим „инкогнито“."
По подразбиране
RVX Music
- Внимание
%s не е инсталирано. Моля инсталирайте го.
Името на пакета с инсталиран RVX Music.
Име на пакета RVX Music
diff --git a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml
index de4e6d088..c6d969566 100644
--- a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml
+++ b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml
@@ -1,4 +1,4 @@
-
+
Don\'t show again
Invalid DeArrow API URL.
@@ -45,6 +45,14 @@ Limitation: This setting may not apply to videos that do not include the 'Listen
Do not save and restore brightness when exiting or entering fullscreen.
Save and restore brightness when exiting or entering fullscreen.
Enable save and restore brightness
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Reset to default values.
"There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
@@ -68,6 +76,9 @@ Do you want to spoof the app version before restarting the app?"
Expandable shelves are shown.
Expandable shelves are hidden.
Hide expandable shelves
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b>
Match whole words
Add quotes to use keyword: %s.
@@ -85,6 +96,9 @@ Do you want to spoof the app version before restarting the app?"
Sleep timer menu is shown.
Sleep timer menu is hidden.
Hide Sleep timer menu
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
Promotion alert banner is shown.
Promotion alert banner is hidden.
Hide promotion alert banner
@@ -331,7 +345,7 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more
Configure the minimum distance for brightness swiping between 1 and 1000 (%).\nThe shorter the minimum distance, the faster the brightness level changes.
Brightness swipe sensitivity
Volume swipe sensitivity must be between 1-1000 (%).
- Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
+ Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
Volume swipe sensitivity
Create button is not switched with Notifications button.
"Create button is switched with Notifications button.
diff --git a/src/main/resources/youtube/translations/de-rDE/strings.xml b/src/main/resources/youtube/translations/de-rDE/strings.xml
index aad7402e5..6a35141e5 100644
--- a/src/main/resources/youtube/translations/de-rDE/strings.xml
+++ b/src/main/resources/youtube/translations/de-rDE/strings.xml
@@ -1,4 +1,4 @@
-
+
Bedienungshilfen für den Video-Player aktivieren?
Ihre Steuerungen wurden angepasst, da ein Barrierefreiheitsdienst aktiviert ist.
diff --git a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml
index a0dadfc3c..5fea28b1e 100644
--- a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml
@@ -1,11 +1,25 @@
-
+
Don\'t show again
Courses / Learning
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/el-rGR/strings.xml b/src/main/resources/youtube/translations/el-rGR/strings.xml
index 7548265ce..01632a2b0 100644
--- a/src/main/resources/youtube/translations/el-rGR/strings.xml
+++ b/src/main/resources/youtube/translations/el-rGR/strings.xml
@@ -1,4 +1,4 @@
-
+
Ενεργοποίηση των στοιχείων ελέγχου προσβασιμότητας για το πρόγραμμα αναπαραγωγής βίντεο;
Τα στοιχεία ελέγχου σας τροποποιούνται επειδή είναι ενεργή κάποια υπηρεσία προσβασιμότητας.
@@ -118,7 +118,7 @@
Επεξεργασία ταχυτήτων αναπαραγωγής
Η αδιαφάνεια πρέπει να είναι μεταξύ 0-100.
Τιμή αδιαφάνειας μεταξύ 0-100, όπου το 0 είναι διαφανές.
- Αλλαγή αδιαφάνειας φόντου αναπαραγωγέα
+ Αδιαφάνεια φόντου οθόνης αναπαραγωγής
Εισάγετε τον κωδικό hex του χρώματος της γραμμής προόδου.
Τιμή χρώματος γραμμής προόδου
Για να ανοίγουν οι συνδέσμοι YouTube στο RVX, ενεργοποιήστε το «Άνοιγμα υποστηριζόμενων συνδέσμων» και τις υποστηριζόμενες διευθύνσεις ιστού.
@@ -142,7 +142,7 @@
Απενεργοποίηση αυτόματων υπότιτλων
Εμφανίζονται.
Κρυμμένα.
- Αναδυόμενα παράθυρα του αναπαραγωγέα
+ Αναδυόμενα παράθυρα οθόνης αναπαραγωγής
"Η αυτόματη εναλλαγή λιστών αναπαραγωγής μίξης είναι ενεργοποιημένη όταν η αυτόματη αναπαραγωγή είναι επίσης ενεργοποιημένη.
Η αυτόματη αναπαραγωγή μπορεί να αλλαχτεί στις ρυθμίσεις YouTube:
@@ -298,8 +298,8 @@
Η γραμμή πλοήγησης είναι αδιαφανής.
Η γραμμή πλοήγησης είναι ημιδιαφανής.
Ημιδιαφανή γραμμή πλοήγησης
- Η εναλλαγή σε λειτουργία πλήρους οθόνης σύροντας την κάτω περιοχή του αναπαραγωγέα είναι απενεργοποιημένη.
- Η εναλλαγή σε λειτουργία πλήρους οθόνης σύροντας την κάτω περιοχή του αναπαραγωγέα είναι ενεργοποιημένη.
+ Η εναλλαγή σε λειτουργία πλήρους οθόνης σύροντας την περιοχή κάτω από την οθόνη αναπαραγωγής είναι απενεργοποιημένη.
+ Η εναλλαγή σε λειτουργία πλήρους οθόνης σύροντας την περιοχή κάτω από την οθόνη αναπαραγωγής είναι ενεργοποιημένη.
Χειρονομία εναλλαγής σε πλήρη οθόνη
"Η ενεργοποίηση αυτής της ρύθμισης θα απενεργοποιήσει το κουμπί ρυθμίσεων στην καρτέλα «Εσείς»
@@ -806,8 +806,8 @@ Playlists
Κρυμμένη.
Εμφανίζεται.
Κρυμμένη.
- Γραμμή προόδου σε μικρογραφίες βίντεο
- Γραμμή προόδου στον αναπαραγωγέα
+ Γραμμή προόδου στις μικρογραφίες βίντεο
+ Γραμμή προόδου οθόνης αναπαραγωγής
Εμφανίζονται.
Κρυμμένες.
Κάρτες αυτοχρηματοδότησης
@@ -1143,12 +1143,12 @@ Playlists
Η αδιαφάνεια πρέπει να ναι μεταξύ 0-100.
Τιμή αδιαφάνειας μεταξύ 0-100, όπου το 0 είναι διαφανές.
Αδιαφάνεια φόντου παρασκηνίου
- Αρχική
+ Αρχικός
Τηλεφώνου
Τάμπλετ
- Μοντέρνα 1
- Μοντέρνα 2
- Μοντέρνα 3
+ Μοντέρνος 1
+ Μοντέρνος 2
+ Μοντέρνος 3
Τύπος ελαχιστοποιημένης οθόνης αναπαραγωγής
Προσθήκη κουμπιών στην οθόνη αναπαραγωγής
"Κουμπί συνεχούς επανάληψης του βίντεο.
@@ -1323,8 +1323,8 @@ Playlists
"Πατήστε για να ανοίξετε τις ρυθμίσεις RVX.
Πατήστε παρατεταμένα για να ανοίξετε τις ρυθμίσεις του YouTube."
Συμπεριφορά κουμπιού ρυθμίσεων
- Οι μικρογραφίες προεπισκόπησης θα εμφανίζονται σε πλήρη οθόνη.
- Οι μικρογραφίες προεπισκόπησης θα εμφανίζονται πάνω από τη γραμμή προόδου.
+ Οι μικρογραφίες προεπισκόπησης εμφανίζονται σε πλήρη οθόνη.
+ Οι μικρογραφίες προεπισκόπησης εμφανίζονται πάνω από τη γραμμή προόδου.
Παλιές μικρογραφίες γραμμής προόδου
Εμφανίζεται το μενού αλλαγής ποιότητας βίντεο νέου στυλ.
Εμφανίζεται το μενού αλλαγής ποιότητας βίντεο παλιού στυλ.
@@ -1582,14 +1582,14 @@ Playlists
"Εμφάνιση τίτλου του βίντεο σε πλήρη οθόνη.
Περιορισμός: Ο τίτλος εξαφανίζεται όταν πατηθεί."
- Εμφάνιση ενότητας τίτλου βίντεο
+ Εμφάνιση τίτλου βίντεο
Αν είναι ενεργοποιημένη η αυτόματη αναπαραγωγή, το επόμενο βίντεο παίζει αφού τελειώσει η αντίστροφη μέτρηση.
Αν είναι ενεργοποιημένη η αυτόματη αναπαραγωγή, το επόμενο βίντεο παίζει χωρίς αντίστροφη μέτρηση.
Άμεση αυτόματη αναπαραγωγή
- "Παράλειψη της προφόρτωσης στην αρχή του βίντεο, για να γίνει παράκαμψη της καθυστέρησης στην εφαρμογή της προεπιλεγμένης ποιότητας.
+ "Παράλειψη προφόρτωσης στην αρχή του βίντεο, ώστε να γίνει άμεση εφαρμογή της προεπιλεγμένης ποιότητας.
-• Υπάρχει μια καθυστέρηση περίπου 0,7 δευτερολέπτων κατά την έναρξη του βίντεο, αλλά η προεπιλεγμένη ποιότητα εφαρμόζεται αμέσως.
-• Δεν εφαρμόζεται σε βίντεο HDR ή βίντεο μικρότερα των 10 δευτερολέπτων."
+• Κατά την έναρξη του βίντεο, υπάρχει μια καθυστέρηση περίπου 0.3 δευτερολέπτων.
+• Δεν εφαρμόζεται σε βίντεο HDR, ζωντανές μεταδόσεις ή βίντεο μικρότερα από 15 δευτερόλεπτα."
Παράλειψη προφόρτωσης βίντεο
Δεν εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης.
Εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης.
@@ -1603,21 +1603,21 @@ Playlists
Αυτό θα αλλάξει την εμφάνιση της εφαρμογής, αλλά ενδέχεται να προκύψουν άγνωστες παρενέργειες.
Εάν αργότερα απενεργοποιηθεί, η παλιά εμφάνιση μπορεί να παραμείνει μέχρι να διαγραφούν τα δεδομένα της εφαρμογής."
- Η έκδοση δεν τροποποιείται.
- Η έκδοση τροποποιείται.
+ Η έκδοση δεν παραποιείται.
+ Η έκδοση παραποιείται.
17.33.42 - Επαναφορά της παλιάς εμφάνισης
17.41.37 - Επαναφορά ενότητας λίστας αναπαραγωγής στο παλιό στυλ
18.05.40 - Επαναφορά πλαισίου εισαγωγής σχολίων στο παλιό στυλ
- 18.17.43 - Επαναφορά αναδυόμενου πίνακα του αναπαραγωγέα στο παλιό στυλ
+ 18.17.43 - Επαναφορά αναδυόμενου πίνακα της οθόνης αναπαραγωγής στο παλιό στυλ
18.33.40 - Επαναφορά γραμμής ενεργειών Shorts στο παλιό στυλ
18.38.45 - Επαναφορά της παλιάς συμπεριφοράς προεπιλεγμένης ποιότητας βίντεο
18.48.39 - Απενεργοποίηση ενημέρωσης των προβολών & αριθμού των «Μου αρέσει» σε πραγματικό χρόνο
19.13.37 - Επαναφορά των παλιών εφέ κίνησης αριθμών
- Έκδοση τροποποίησης της εφαρμογής
+ Έκδοση παραποίησης της εφαρμογής
Πληκτρολογήστε την έκδοση εφαρμογής που θα εφαρμοστεί.
Επεξεργασία έκδοσης εφαρμογής που θα εφαρμοστεί
- Τροποποίηση έκδοσης εφαρμογής
- "Η έκδοση της εφαρμογής YouTube θα τροποποιηθεί σε παλιότερη.
+ Παραποίηση έκδοσης εφαρμογής
+ "Η έκδοση της εφαρμογής YouTube θα παραποιηθεί σε παλιότερη.
Αυτό θα αλλάξει την εμφάνιση και τα χαρακτηριστικά της εφαρμογής, αλλά ενδέχεται να εμφανιστούν άγνωστες παρενέργειες.
@@ -1648,14 +1648,9 @@ Playlists
Τα δεδομένα ροής παραποιούνται.
Παραποίηση δεδομένων ροής
Android
- Android Creator
- Ενσωματωμένος αναπαραγωγέας Android
- Android Testsuite
Android TV
Android VR
iOS
- TV HTML5
- Ιστός (Web)
Προεπιλογή
Η απενεργοποίηση αυτής της ρύθμισης ενδέχεται να προκαλέσει προβλήματα αναπαραγωγής βίντεο.
Η ευαισθησία σάρωσης πρέπει να ναι μεταξύ 1-1000 (%).
@@ -1695,7 +1690,6 @@ Playlists
Αν η απενεργοποίηση δεν τεθεί σε ισχύ, δοκιμάστε να μεταβείτε σε λειτουργία ανώνυμης περιήγησης."
Προεπιλογή
RVX Music
- Προειδοποίηση
%s δεν έχει εγκατασταθεί. Παρακαλούμε εγκαταστήστε το.
Όνομα πακέτου του εγκατεστημένου RVX Music.
Όνομα πακέτου RVX Music
diff --git a/src/main/resources/youtube/translations/es-rES/strings.xml b/src/main/resources/youtube/translations/es-rES/strings.xml
index 13365a4ae..40276baef 100644
--- a/src/main/resources/youtube/translations/es-rES/strings.xml
+++ b/src/main/resources/youtube/translations/es-rES/strings.xml
@@ -1,4 +1,4 @@
-
+
¿Activar controles de accesibilidad para el reproductor de vídeo?
Tus controles se modifican porque un servicio de accesibilidad está activado.
@@ -268,6 +268,14 @@ Efecto secundario: El tema Cairo también se aplica a los puntos de notificació
La pulsación en la barra de progreso está desactivada.
La pulsación en la barra de progreso está activada.
Activar pulsación en barra de progreso
+ "Esto restaurará las miniaturas de las transmisiones en directo que no tengan miniaturas en la barra de progreso.
+
+El uso de datos de Internet puede ser mayor, y las miniaturas en la barra de progreso tendrán una ligera demora antes de mostrarse.
+
+Esta función funciona mejor con una conexión a Internet muy rápida."
+ Las miniaturas en la barra de progreso son de calidad media.
+ Las miniaturas en la barra de progreso son de alta calidad.
+ Activar miniaturas de alta calidad
La marca de tiempo está desactivada.
"La marca de tiempo está activada.
@@ -489,6 +497,9 @@ Tienda"
La superposición de la tira de película está visible.
La superposición de la tira de película está oculta.
Ocultar superposición de tira de película
+ El botón flotante está visible.
+ El botón flotante está oculto.
+ Ocultar botón flotante
El botón flotante del micrófono está visible.
El botón flotante del micrófono está oculto.
Ocultar botón flotante del micrófono
@@ -705,6 +716,9 @@ Las palabras con letras mayúsculas en el medio deben introducirse con las mayú
Los botones están visibles.
Los botones están ocultos.
Ocultar botones de anterior y siguiente
+ El estante de compras está visible.
+ El estante de compras está oculto.
+ Ocultar estante de compras del reproductor
El botón de YouTube Music está visible.
El botón de YouTube Music está oculto.
Ocultar botón de YouTube Music
@@ -1611,14 +1625,9 @@ AVC (H.264) tiene una resolución máxima de 1080p, y la reproducción de vídeo
Los datos de transmisión están falsificados.
Falsificar datos de transmisión
Android
- Creador de Android
- Reproductor integrado de Android
- Android Testsuite
Android TV
Android VR
iOS
- TV HTML5
- Web
Cliente predeterminado
Desactivar este ajuste puede causar problemas de reproducción de vídeo.
La sensibilidad de deslizamiento del brillo debe estar entre 1-1000 (%).
@@ -1659,7 +1668,6 @@ Además, los anuncios ya no se bloquearán en Shorts.
Si este ajuste no surte efecto, prueba a cambiar al modo incógnito."
Predeterminado
RVX Music
- Advertencia
%s no está instalado. Por favor, instálalo.
Nombre del paquete de RVX Music instalado.
Nombre del paquete de RVX Music
diff --git a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml
index d514aa21f..22ae254ec 100644
--- a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml
@@ -1,11 +1,25 @@
-
+
Don\'t show again
Courses / Learning
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
Disabled comments button or with label \"0\" is shown.
Disabled comments button or with label \"0\" is hidden.
Hide disabled comments button
diff --git a/src/main/resources/youtube/translations/fr-rFR/strings.xml b/src/main/resources/youtube/translations/fr-rFR/strings.xml
index 55fd8e2d0..e4e6dfab9 100644
--- a/src/main/resources/youtube/translations/fr-rFR/strings.xml
+++ b/src/main/resources/youtube/translations/fr-rFR/strings.xml
@@ -1,4 +1,4 @@
-
+
Activer les contrôles d\'accessibilité pour le lecteur vidéo ?
Vos contrôles sont modifiés car un service d\'accessibilité est activé.
@@ -1305,13 +1305,13 @@ Appuyez longuement pour ouvrir les paramètres YouTube."
Activer Return YouTube Username
"La clé YouTube Data API v3 est nécessaire pour remplacer les identifiants par des noms d'utilisateurs.
-Le quota journalier pour les clés API sur le plan gratuit est de 10 000, et 1 quota est utilisé pour remplacer l'identifiant par un noms d'utilisateur pour 1 commentaire.
+Le quota journalier pour les clés API sur le plan gratuit est de 10 000, 1 quota est utilisé pour remplacer l'identifiant par un nom d'utilisateur pour 1 commentaire.
-Cliquez pour découvrir comment créer une clé API."
+Cliquez ici pour découvrir comment créer une clé API."
À propos de la clé YouTube Data API
- La clé de développeur pour utiliser l\'API des données YouTube v3.
+ La clé de développeur pour utiliser YouTube Data API v3.
Clé API des données YouTube
- 1. Allez sur <a href=%1$s>Nouveau projet</a>.<br>2. Cliquez sur <b> le bouton</b> Créer.<br>3. Allez sur <a href=%2$s>YouTube Data API v3</a>.<br>4. Cliquez sur <b>le bouton</b> ACTIVER.<br>5. Cliquez sur <b>le bouton</b> CRÉER DES IDENTIFIANTS.<br>6. Sélectionnez <b>l\'option</b> Données Publiques.<br>7. Cliquez sur <b>le bouton</b> SUIVANT.<br>8. copier la Clé API.<br><br>※ La clé API ne doit jamais être partagé avec personne d\'autre, par conséquent, il n\'est pas inclus dans les paramètres Importer / Exporter.
+ 1. Allez sur <a href=%1$s>Nouveau projet</a>.<br>2. Cliquez sur le bouton <b> Créer</b>.<br>3. Allez sur <a href=%2$s>YouTube Data API v3</a>.<br>4. Cliquez sur le bouton <b>ACTIVER</b>.<br>5. Cliquez sur le bouton <b>CRÉER DES IDENTIFIANTS</b>.<br>6. Sélectionnez l\'option <b>Données Publiques</b>.<br>7. Cliquez sur le bouton <b>SUIVANT</b>.<br>8. Copiez la clé API.<br><br>※ La clé API ne doit jamais être partagée avec d\'autres personnes, par conséquent, elle n\'est pas incluse dans les paramètres Importer / Exporter.
Obtenir une clé développeur pour YouTube Data API v3
À propos
Les données des \"Je n\'aime pas\" sont fournies par l\'API de Return YouTube Dislike. Appuyez ici pour en savoir plus.
@@ -1616,14 +1616,9 @@ AVC (H.264) a une résolution maximale de 1080p, et la lecture vidéo utilisera
Les données de lecture en direct sont falsifiées.
Falsifier les données de lecture en direct
Android
- Android Creator
- Lecteur intégré Android
- Android Testsuite
Android TV
Android VR
iOS
- TV HTML5
- Web
Client par défaut
Désactiver ce paramètre peut entraîner des problèmes de lecture vidéo.
La sensibilité des gestes de luminosité doit être comprise entre 1-1000 (%).
@@ -1664,7 +1659,6 @@ Note : Activer ceci masquera également les publicités vidéos."
Si ce paramètre ne fait pas effet, essayer de passer en mode Incognito."
Officiel
RVX Music
- Attention
%s n\'est pas installé. Veuillez l’installer.
Nom du paquet de RVX Music installé.
Nom du paquet de RVX Music
diff --git a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml
index 0b95d81d8..5a311b7e7 100644
--- a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml
+++ b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml
@@ -1,7 +1,15 @@
-
+
Don\'t show again
Courses / Learning
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
"There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
A temporary workaround for this issue is to spoof the app version to 19.13.37.
@@ -14,6 +22,12 @@ Do you want to spoof the app version before restarting the app?"
Highlighted search links are shown.
Highlighted search links are hidden.
Hide highlighted search links
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
Shown in channel.
"Hidden in channel.
@@ -47,6 +61,6 @@ Info:
Configure the minimum distance for brightness swiping between 1 and 1000 (%).\nThe shorter the minimum distance, the faster the brightness level changes.
Brightness swipe sensitivity
Volume swipe sensitivity must be between 1-1000 (%).
- Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
+ Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
Volume swipe sensitivity
diff --git a/src/main/resources/youtube/translations/hu-rHU/strings.xml b/src/main/resources/youtube/translations/hu-rHU/strings.xml
index 4b80291e0..de14bab67 100644
--- a/src/main/resources/youtube/translations/hu-rHU/strings.xml
+++ b/src/main/resources/youtube/translations/hu-rHU/strings.xml
@@ -1,4 +1,4 @@
-
+
Engedélyezi a videolejátszó akadálymentesítési vezérlőit?
Az eszközök azért módosulnak, mert egy akadálymentesítési szolgáltatás be van kapcsolva.
@@ -1582,14 +1582,9 @@ Ha kikapcsolja, akkor ajánlott törölni az app adatait, hogy elkerülje a UI h
Az adatfolyam hamisított.
Adatfolyam meghamisítása
Android
- Android Creator
- Android beágyazott lejátszó
- Android tesztcsomag
Android TV
Android VR
iOS
- TV HTML5
- Web
Alapértelmezett kliens
A beállítás kikapcsolása videólejátszási problémákat okozhat.
A csúsztatási mozdulatok le vannak tiltva a \'Képernyő lezárása\' módban.
@@ -1623,7 +1618,6 @@ Tovább, a reklámok nem lesznek tiltva a Shortokban.
Ha ez a beállítás nem működik, váltson inkognító módra."
Készlet
RVX Music
- Figyelmeztetés
%s nincs telepítve. Kérlek telepítsd.
A telepített RVX Music csomag neve.
RVX Music csomag név
diff --git a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml
index e61c58590..dcd7145e9 100644
--- a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml
+++ b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml
@@ -1,7 +1,21 @@
-
+
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/it-rIT/strings.xml b/src/main/resources/youtube/translations/it-rIT/strings.xml
index 153af3bde..055d0c072 100644
--- a/src/main/resources/youtube/translations/it-rIT/strings.xml
+++ b/src/main/resources/youtube/translations/it-rIT/strings.xml
@@ -1,4 +1,4 @@
-
+
Vuoi attivare i controlli di accessibilità del riproduttore?
I tuoi controlli sono diversi poiché un servizio di accessibilità è attivato.
@@ -17,9 +17,9 @@ Tocca il pulsante continua e disabilita le ottimizzazioni della batteria."Abilitare la messaggistica cloud per ricevere notifiche.
Apri GmsCore
GmsCore non è installato. Installarlo.
- "DeArrow fornisce anteprime provenienti da crowdsourcing per i video di YouTube. Queste anteprime sono spesso più rilevanti di quelle fornite da YouTube.
+ "DeArrow fornisce thumbnails provenienti da crowdsourcing per i video di YouTube. Questi thumbnails sono spesso più rilevanti di quelle fornite da YouTube.
-Se attivato, gli URL dei video verranno inviati al server API e non vengono inviati altri dati. Se un video non ha un'anteprima DeArrow, vengono mostrate l'anteprime originale o una cattura statica.
+Se attivato, gli URL dei video verranno inviati al server API e non vengono inviati altri dati. Se un video non ha thumbnails DeArrow, vengono mostrate i thumbnails originali o le catture statiche.
Tocca qui per saperne di più su DeArrow."
DeArrow
@@ -60,12 +60,12 @@ Tocca qui per saperne di più su DeArrow."
(Tocca e tieni premuto il timestamp per cambiare il tipo durante la riproduzione del video)
Il tipo di informazione
- La modalità Ambient in modalità risparmio energetico è disattivata
- La modalità Ambient in modalità risparmio energetico è attivata
- Ignora le restrizioni della modalità Ambient
+ La modalità Ambient in modalità risparmio energetico è disattivata.
+ La modalità Ambient in modalità risparmio energetico è attivata.
+ Bypassa le restrizioni della modalità Ambient
Il dominio da cui prelevare le immagini.\nNota: Inserisce solo il nome di dominio, cioè senza il prefisso \"https\:\/\/\".
Dominio alternativo
- Usando l\'host originale per le immagini.\n\nAbilitando questo si possono correggere le immagini mancanti che sono bloccate in alcune regioni.
+ Usando l\'host dell\'immagine originalei.\n\nAttivando questo si possono correggere le immagini mancanti che sono bloccate in alcune regioni.
Utilizzando l\'host yt4.ggpht.com per le immagini.
Aggira restrizioni regionali delle immagini
Originale
@@ -108,13 +108,13 @@ Tocca qui per saperne di più su DeArrow."
Limitazione: Il pulsante indietro sulla barra degli strumenti potrebbe non funzionare."
Cambia il tipo di pagina iniziale
- L\'intestazione generica è abilitata.
- L\'intestazione Premium è abilitata.
+ L\'intestazione generica è attivata.
+ L\'intestazione Premium è attivata.
Cambia intestazione di YouTube
Configura i componenti da nascondere separati da nuove righe
Modifica il filtro personalizzato
- Il filtro personalizzato è disattivato
- Il filtro personalizzato è attivato
+ Il filtro personalizzato è disattivato.
+ Il filtro personalizzato è attivato.
Attiva il filtro personalizzato
Filtro personalizzato non valido (%s)
Viene utilizzato il menu a comparsa a vecchio stile.
@@ -125,39 +125,39 @@ Limitazione: Il pulsante indietro sulla barra degli strumenti potrebbe non funzi
È disponibile aggiungere, rimuovere o modificare le velocità di riproduzione
Modifica le velocità personalizzate del video
L\'opacità della copertura del riproduttore deve essere compresa tra 0 e 100. Ripristinati i valori predefiniti.
- Il valore dell\'opacità è compreso tra 0 a 100, dove 0 è trasparente
+ Il valore dell\'opacità è tra 0 a 100, dove 0 è trasparente.
L\'opacità personalizzata della sovrapposizione del riproduttore
Digita il codice esadecimale del colore della barra di avanzamento
Valore del colore personalizzato della barra di avanzamento
- Per aprire ReVanced Extended da un\'applicazione esterna, attiva \"Apri collegamenti supportati\" e abilita gli indirizzi web supportati
+ Per aprire ReVanced Extended da un\'applicazione esterna, attiva \"Apri collegamenti supportati\" e abilita gli indirizzi web supportati.
Apri le impostazioni predefinite dell\'app
Velocità di riproduzione predefinita
Qualità predefinita dei video con connessione dati
Qualità predefinita dei video con Wi-Fi
Disattiva la modalità Ambient a schermo intero
- La modalità Ambient è abilitata nella visione a schermo intero.
- La modalità Ambient è disabilitata nella visione a schermo intero.
- Disattiva la modalità Ambient nella visione a schermo intero
+ La modalità Ambient è attivata a schermo intero.
+ La modalità Ambient è disattivata a schermo intero.
+ Disattiva la modalità Ambient a schermo intero.
Disattiva sempre la modalità Ambient
- La modalità Ambient è abilitata.
- La modalità Ambient è disabilitata.
+ La modalità Ambient è attivata.
+ La modalità Ambient è disattivata.
Disattiva la modalità Ambient
- Le tracce audio automatiche forzate sono abilitate.
+ Le tracce audio automatiche forzate sono attivate.
Le tracce audio automatiche forzate sono disattivate.
- Disabilita le tracce audio automatiche forzate
+ Disattiva le tracce audio automatiche forzate
I sottotitoli automatici forzati sono attivati.
I sottotitoli automatici forzati sono disattivati.
Disattiva i sottotitoli automatici forzati
- I pannelli popup del riproduttore automatico sono abilitati.
- I pannelli popup del riproduttore automatico sono disabilitati.
- Disabilita i pannelli popup del riproduttore
- "L'interruttore automatico delle playlist miste è abilitato quando la riproduzione automatica è attivata.
+ Il pannello pop-up automatico del riproduttore è attivato.
+ Il pannello pop-up automatico del riproduttore è disattivato.
+ Disattiva il pannello pop-up automatico del riproduttore
+ "Il cambio automatico alle playlist miste è attivato quando la riproduzione automatica è attivata.
La riproduzione automatica può essere modificata nelle impostazioni di YouTube:
-Impostazioni → Riproduzione automatica→ Riproduci automatic. video successivo"
- L\'interruttore automatico delle playlist miste è disabilitato.
- Disabilita interruttori delle playlist miste
- L\'attivazione di questa funzione disabilita il passaggio automatico a YouTube Mix durante la riproduzione di musica con la riproduzione automatica attiva.
+Impostazioni → Riproduzione automatica → Riproduci automaticamente video successivo"
+ Il cambio automatico alle playlist miste è disattivato.
+ Disattiva il cambio automatico alle playlist miste
+ L\'attivazione di questa funzione disattiva il cambio automatico alle playlist miste durante la riproduzione di musica con la riproduzione automatica attiva.
La velocità di riproduzione predefinita nei video dal vivo è attivata
La velocità di riproduzione predefinita nei video dal vivo è disattivata
Disattiva la velocità di riproduzione predefinita nei video dal vivo
@@ -169,40 +169,40 @@ Limitazione: Questa impostazione potrebbe non applicarsi ai video che non includ
Il pannello di coinvolgimento è abilitato.
Il pannello di coinvolgimento è disabilitato.
Disabilita pannello di coinvolgimento
- Il feedback tattile è abilitato.
- Il feedback tattile è disabilitato.
+ La vibrazione tattile dei capitoli è attivata.
+ La vibrazione tattile dei capitoli è disattivata.
Disattiva la vibrazione dei capitoli
- Il feedback tattile è abilitato.
- Il feedback tattile è disabilitato.
- Disattiva la vibrazione di trascinamento
- Il feedback tattile è abilitato.
- Il feedback tattile è disabilitato.
+ La vibrazione tattile del trascinamento è attivata.
+ La vibrazione tattile del trascinamento è disattivata.
+ Disattiva la vibrazione del trascinamento
+ La vibrazione tattile dello scorrimento è attivata.
+ La vibrazione tattile dello scorrimento è disattivata.
Disattiva la vibrazione di scorrimento
- Il feedback tattile è abilitato.
- Il feedback tattile è disabilitato.
- Disattiva la vibrazione di annullamento
- Il feedback tattile è abilitato.
- Il feedback tattile è disabilitato.
+ La vibrazione tattile dell\'annullamento è attivata.
+ La vibrazione tattile dell\'annullamento è disattivata.
+ Disattiva la vibrazione dell\'annullamento
+ La vibrazione tattile dello zoom è attivata.
+ La vibrazione tattile dello zoom è disattivata.
Disattiva la vibrazione dello zoom
- La luminosità HDR automatica è attivata
- La luminosità HDR automatica è disattivata
+ La luminosità HDR automatica è attivata.
+ La luminosità HDR automatica è disattivata.
Disattiva la luminosità HDR automatica
- L\'HDR dei video è attivato
- L\'HDR dei video è disattivato
+ L\'HDR dei video è attivato.
+ L\'HDR dei video è disattivato.
Disattiva l\'HDR dei video
- La modalità orizzontale a schermo intero è attivata
- La modalità orizzontale a schermo intero è disattivata
+ La modalità orizzontale a schermo intero è attivata.
+ La modalità orizzontale a schermo intero è disattivata.
Disattiva la modalità orizzontale a schermo intero
I pulsanti Mi piace e Non mi piace brilleranno quando menzionati.
I pulsanti Mi piace e Non mi piace non brilleranno quando menzionati.
- Disabilita l\'effetto bagliore dei pulsanti Mi piace e Non mi piace
+ Disattiva il bagliore dei pulsanti Mi Piace e Non Mi Piace
"Disattiva il protocollo QUIC di CronetEngine"
Disattiva il protocollo QUIC
Il riproduttore Shorts riprenderà all\'avvio dell\'app.
Il riproduttore Shorts non riprenderà all\'avvio dell\'app.
Disabilita la ripresa del riproduttore Shorts
- Le animazioni degli aggiornamenti in tempo reale dei contatori sono attivate
- Le animazioni degli aggiornamenti in tempo reale dei contatori sono disattivate
+ Le animazioni degli aggiornamenti in tempo reale dei contatori sono attivate.
+ Le animazioni degli aggiornamenti in tempo reale dei contatori sono disattivate.
Disattiva le animazioni degli aggiornamenti in tempo reale dei contatori
I capitoli sono abilitati nella barra di avanzamento.
I capitoli sono disabilitati nella barra di avanzamento.
@@ -210,15 +210,15 @@ Limitazione: Questa impostazione potrebbe non applicarsi ai video che non includ
L\'animazione della fontana è abilitata sopra il pulsante mi piace.
L\'animazione della fontana è disabilitata sopra il pulsante mi piace.
Disabilita animazione pulsante Mi piace
- "Disabilita la funzione '2x>>' tenendo premuto.
+ "Disattiva la funzione \"2x>>\" quando tieni premuto.
Nota:
-• Disattivando la funzione di sovrimpressione della velocità, si ripristina il comportamento del 'Trascina per scorrere il video' del vecchio layout.
-• Disattivando questa impostazione non si abilita forzatamente la sovrimpressione della velocità."
+• Disattivando la sovrapposizione della velocità verrà ripristinato la funzione \"Scorri la barra di avanzamento\" della vecchia interfaccia.
+• Disattivando questa impostazione non si attiva forzatamente la sovrapposizione della velocità."
Disattiva la sovrapposizione della velocità quando tieni premuto
- L\'animazione di avvio è attivata.
- L\'animazione di avvio è disabilitata.
- Disabilita l\'animazione all\'avvio
+ L\'animazione dell\'avvio è attivata.
+ L\'animazione dell\'avvio è disattivata.
+ Disattiva l\'animazione dell\'avvio
"Disabilita le seguenti interazioni quando la descrizione del video viene espansa:
• Tocca per scorrere.
@@ -236,33 +236,33 @@ Nota:
Effetto collaterale: il tema Cairo viene applicato anche ai punti di notifica."
Abilita la barra di avanzamento Cairo
- La sovrapposizione dei controlli compatti è disattivata
- La sovrapposizione dei controlli compatti è attivata
+ La sovrapposizione dei controlli compatti è disattivata.
+ La sovrapposizione dei controlli compatti è attivata.
Attiva la sovrapposizione dei controlli compatti
- La velocità di riproduzione personalizzata è disattivata
- La velocità di riproduzione personalizzata è attivata
+ La velocità di riproduzione personalizzata è disattivata.
+ La velocità di riproduzione personalizzata è attivata.
Attiva la velocità di riproduzione personalizzata
- Il colore personalizzato della barra di avanzamento è disattivato
- Il colore personalizzato della barra di avanzamento è attivato
+ Il colore personalizzato della barra di avanzamento è disattivato.
+ Il colore personalizzato della barra di avanzamento è attivato.
Attiva il colore personalizzato della barra di avanzamento
Il registro del debug non include il buffer
Il registro del debug include il buffer
Attiva il registro del debug col buffer
- Il registro del debug è disattivato
- Il registro del debug è attivato
+ Il registro del debug è disattivato.
+ Il registro del debug è attivato.
Attiva il registro del debug
- La velocità di riproduzione predefinita negli Shorts è disattivata
- La velocità di riproduzione predefinita negli Shorts è attivata
+ La velocità di riproduzione predefinita negli Shorts è disattivata.
+ La velocità di riproduzione predefinita negli Shorts è attivata.
Attiva la velocità di riproduzione predefinita negli Shorts
- Il browser esterno è disattivato
- Il browser esterno è attivato
+ Il browser esterno è disattivato.
+ Il browser esterno è attivato.
Attiva il browser esterno
La schermata di caricamento gradiente è disattivata.
La schermata di caricamento gradiente è attivata.
Attiva la schermata di caricamento gradiente
- La spaziatura tra i pulsanti di navigazione è normale.
- La spaziatura tra i pulsanti di navigazione è ristretta.
- Abilita pulsanti di navigazione ristretti
+ Lo spazio tra i pulsanti di navigazione è normale.
+ Lo spazio tra i pulsanti di navigazione è ristretto.
+ Attiva i pulsanti di navigazione compatti
Segui la regola predefinita di reindirizzamento
Bypassa i reindirizzamenti degli URL
Attiva l\'apertura diretta dei link
@@ -271,20 +271,20 @@ Effetto collaterale: il tema Cairo viene applicato anche ai punti di notifica."<
Non salvare e ripristinare la luminosità quando si esce o si entra a schermo intero.
Salva e ripristina la luminosità quando esci o entri a schermo intero.
Abilita salvataggio e ripristino luminosità
- Il tocco della barra di avanzamento è disattivato
- Il tocco della barra di avanzamento è attivato
+ Il tocco della barra di avanzamento è disattivato.
+ Il tocco della barra di avanzamento è attivato.
Attiva il tocco della barra di avanzamento
Timestamp è disabilitato.
"Timestamp è abilitato.
Problema noto: Poiché questa è una caratteristica nella fase di sviluppo di Google, il layout potrebbe essere rotto."
Abilita timestamp
- Il trascinamento per modificare la luminosità è disattivato
- Il trascinamento per modificare la luminosità è attivato
+ Il trascinamento per modificare la luminosità è disattivato.
+ Il trascinamento per modificare la luminosità è attivato.
Attiva il trascinamento per modificare la luminosità
- La vibrazione è disattivata
- La vibrazione è attivata
- Attiva la vibrazione
+ La vibrazione tattile è disattivata.
+ La vibrazione tattile è attivata.
+ Attiva la vibrazione tattile
Il valore più basso del gesto luminosità non attiva la luminosità automatica.
Il valore più basso del gesto luminosità attiva la luminosità automatica.
Abilita gesto di luminosità automatica
@@ -294,26 +294,26 @@ Problema noto: Poiché questa è una caratteristica nella fase di sviluppo di Go
Scorrendo verso l\'alto / verso il basso non verrà riprodotto il video successivo / precedente.
Scorrendo verso l\'alto / verso il basso si riproduce il video successivo / precedente.
Abilita lo scorrimento per cambiare video a schermo intero
- Il trascinamento per modificare il volume è disattivato
- Il trascinamento per modificare il volume è attivato
+ Il trascinamento per modificare il volume è disattivato.
+ Il trascinamento per modificare il volume è attivato.
Attiva il trascinamento per modificare il volume
- La barra di navigazione è opaca.
- La barra di navigazione è traslucida.
- Abilita barra di navigazione traslucida
+ La barra di navigazione traslucida è disattivata.
+ La barra di navigazione traslucida è attivata.
+ Attiva la barra di navigazione traslucida
L\'inserimento a schermo intero quando scorri giù sotto il lettore video è disabilitato.
L\'inserimento a schermo intero quando scorri giù sotto il lettore video è abilitato.
Abilita i gesti del pannello di controllo
- "L'attivazione di questa impostazione disabilita il pulsante Impostazioni nella scheda Tu.
+ "L'attivazione di questa funzione disattiva il pulsante Impostazioni nella scheda Tu.
-In questo caso, per accedere alle impostazioni, utilizzare il seguente percorso:
-Scheda Tu → Visualizza canale → Menu → Impostazioni"
+In questo caso, utilizzare il seguente percorso per accedere alle impostazioni:
+Scheda Tu → Visualizza canale → Menù → Impostazioni"
Attiva la barra di ricerca estesa nella scheda Tu
- La barra di ricerca estesa è disattivata
- La barra di ricerca estesa è attivata
+ La barra di ricerca estesa è disattivata.
+ La barra di ricerca estesa è attivata.
Attiva la barra di ricerca estesa
- La barra di ricerca ampia nasconde l\'intestazione di YouTube.
- La barra di ricerca ampia include l\'intestazione di YouTube.
- Abilita la barra di ricerca larga con intestazione
+ La barra di ricerca larga con intestazione è disattivata.
+ La barra di ricerca larga con intestazione è attivata.
+ Attiva la barra di ricerca estesa con l\'intestazione
Descrizione
"Inserisci il titolo del pannello descrizione video nella tua lingua.
'Espandi descrizione video' potrebbe non funzionare se la stringa inserita non corrisponde al titolo del pannello di descrizione video. "
@@ -362,10 +362,10 @@ Si prega di scaricare %2$s dal sito web."
Forza lo schermo intero
Visualizza la finestra di ottimizzazione per GMSCore a ogni avvio dell\'applicazione.
Mostra la finestra di ottimizzazione per GMSCore
- Elenco di nomi dei menu degli account da filtrare, separati da nuove righe.
+ Elenco di nomi dei menù degli account da filtrare, separati da nuove righe.
Modifica il filtro dei menù dell\'account
"Nascondi gli elementi del menù dell'account e della scheda Tu.
-Alcuni componenti potrebbero non essere nascosti"
+Alcuni componenti potrebbero non essere nascosti."
Nascondi i menù dell\'account
Le schede degli album sono visibili.
Le schede degli album sono nascoste.
@@ -373,8 +373,8 @@ Alcuni componenti potrebbero non essere nascosti"
Luoghi in evidenza, Giochi e sezioni Musica sono mostrati.
Luoghi in evidenza, Giochi e sezioni Musica sono nascosti.
Nascondi sezione Attributi
- Il contenitore dell\'anteprima della riproduzione automatica è visibile
- Il contenitore dell\'anteprima della riproduzione automatica è nascosto
+ Il contenitore dell\'anteprima della riproduzione automatica è visibile.
+ Il contenitore dell\'anteprima della riproduzione automatica è nascosto.
Nascondi il contenitore dell\'anteprima della riproduzione automatica
Il pulsante Esplora Negozio è visibile.
Il pulsante Esplora Negozio è nascosto.
@@ -387,17 +387,17 @@ Alcuni componenti potrebbero non essere nascosti"
• Shopping
• Guarda di nuovo"
Nascondi sezione a carosello
- Mostrato nel feed.
- Nascosto nel feed.
- Nascondi nel feed
- Visibile nei video correlati.
- Nascosto nei video correlati.
+ È visibile nelle schede.
+ È nascosta nelle schede.
+ Nascondi nelle schede
+ È visibile nei video correlati.
+ È nascosta nei video correlati.
Nascondi nei video correlati
- Visibile nei risultati della ricerca.
- Nascosto nei risultati della ricerca.
- Nascondi nei risultati della ricerca
- Le linee guida del canale sono visibili
- Le linee guida del canale sono nascoste
+ È visibile nei risultati di ricerca.
+ È nascosta nei risultati di ricerca.
+ Nascondi nei risultati di ricerca
+ Le linee guida del canale sono visibili.
+ Le linee guida del canale sono nascoste.
Nascondi le linee guida del canale
La sezione degli abbonati è visibile.
La sezione degli abbonati è nascosta.
@@ -410,11 +410,11 @@ Playlist
Negozio"
Elenco dei nomi delle schede dei canali da filtrare, separati da nuove righe.
Filtro sulle schede del canale
- Il filtro sulle schede del canale è disabilitato.
- Il filtro sulle schede del canale è abilitato.
- Abilita filtro sulle schede del canale
- Il watermark nei video è visibile
- Il watermark nei video è nascosto
+ Il filtro delle schede del canale è disattivato.
+ Il filtro delle schede del canale è attivato.
+ Attiva il filtro delle schede del canale
+ Il watermark nei video è visibile.
+ Il watermark nei video è nascosto.
Nascondi il watermark nei video
Le sezioni dei capitoli sono mostrate.
Le sezioni dei capitoli sono nascoste.
@@ -440,35 +440,35 @@ Negozio"
Il banner dei Commenti dei membri è visibile.
Il banner dei Commenti dei membri è nascosto.
Nascondi il banner dei Commenti dei membri
- La sezione dei Commenti è mostrata nella home.
- La sezione Commenti è nascosta nella home.
- Nascondi la sezione Commenti nella home
- La sezione Commenti è visibile
- La sezione Commenti è nascosta
+ La sezione Commenti è visibile nella scheda Home.
+ La sezione Commenti è nascosta nella scheda Home.
+ Nascondi la sezione Commenti nella scheda Home
+ La sezione Commenti è visibile.
+ La sezione Commenti è nascosta.
Nascondi la sezione Commenti
- Visibile nel canale.
- Nascosto nel canale.
- Nascondi nel canale
- Visibile nella home e nei video correlati.
- Nascosto nella home e nei video correlati.
- Nascondi nella home e nei video correlati
- Visibili nel feed delle iscrizioni.
- Nascosti nel feed delle iscrizioni.
- Nascondi nel feed delle iscrizioni
+ Sono visibili nei canali.
+ Sono nascosti nei canali.
+ Nascondi nei canali
+ Sono visibili nella scheda Home e nei video correlati.
+ Sono nascosti nella scheda Home e nei video correlati.
+ Nascondi nella scheda Home e nei video correlati
+ Sono visibili nella scheda Iscrizioni.
+ Sono nascosti nella scheda Iscrizioni.
+ Nascondi nella scheda Iscrizioni
Come è stato fatto questo contenuto la sezione è mostrata.
Come questo contenuto è stato fatto sezione è nascosto.
Nascondi sezione Contenuti
- Il riquadro della raccolta fondi è visibile
- Il riquadro della raccolta fondi è nascosto
+ Il riquadro della raccolta fondi è visibile.
+ Il riquadro della raccolta fondi è nascosto.
Nascondi il riquadro della raccolta fondi
- Il filtro di sovrimpressione al doppio tocco è visibile.
- Il filtro di sovrimpressione al doppio tocco è nascosto.
- Nascondi il filtro di sovrimpressione al doppio tocco
+ La sovrapposizione del doppio tocco è visibile.
+ La sovrapposizione del doppio tocco è nascosto.
+ Nascondi la sovrapposizione del doppio tocco
Il pulsante Scarica è visibile.
Il pulsante Scarica è nascosto.
Nascondi il pulsante Scarica
- Le schede finali sono visibili
- Le schede finali sono nascoste
+ Le schede finali sono visibili.
+ Le schede finali sono nascoste.
Nascondi le schede finali
Il chip espandibile è visibile.
Il chip espandibile è nascosto.
@@ -476,22 +476,22 @@ Negozio"
Gli scaffali espandibili sono mostrati.
Gli scaffali espandibili sono nascosti.
Nascondi scaffali espandibili
- Il pulsante Sottotitoli è mostrato.
+ Il pulsante Sottotitoli è visibile.
Il pulsante Sottotitoli è nascosto.
- Nascondi il pulsante dei sottotitoli nel feed
- Elenco dei nomi dei menu a comparsa da filtrare, separati da nuove righe.
- Filtro sul menu a comparsa del feed
- Il filtro sul menu a comparsa del feed è disabilitato.
- Il filtro sul menu a comparsa del feed è abilitato.
- Abilita il filtro sul menu a comparsa del feed
+ Nascondi il pulsante Sottotitoli
+ Elenco dei nomi dei menù a comparsa da filtrare, separati da nuove righe.
+ Filtro dei menù a comparsa
+ Il filtro dei menù a comparsa è disattivato.
+ Il filtro dei menù a comparsa è attivato.
+ Attiva il filtro dei menù a comparsa
La barra di ricerca del feed è visibile.
La barra di ricerca nel feed è nascosta.
Nascondi la barra di ricerca nel feed
I sondaggi nel feed sono visibili.
I sondaggi nel feed sono nascosti.
Nascondi i sondaggi nel feed
- La sovrapposizione della pellicola è visibile
- La sovrapposizione della pellicola è nascosta
+ La sovrapposizione della pellicola è visibile.
+ La sovrapposizione della pellicola è nascosta.
Nascondi la sovrapposizione della pellicola
Il pulsante fluttuante del microfono è visibile.
Il pulsante fluttuante del microfono è nascosto.
@@ -516,8 +516,8 @@ Limitazione: Le immagini dei post della community a schermo intero potrebbero es
I separatori grigi sono visibili.
I separatori grigi sono nascosti.
Nascondi i separatori grigi
- L\'handle è visibile
- L\'handle è nascosto
+ L\'handle è visibile.
+ L\'handle è nascosto.
Nascondi l\'handle
Il pulsante di ricerca immagine è visibile.
Il pulsante di ricerca immagine è nascosto.
@@ -528,14 +528,14 @@ Limitazione: Le immagini dei post della community a schermo intero potrebbero es
La sezione Schede Informative è visibile
La sezione Schede Informative è nascosta
Nascondi la sezione Schede Informative
- Le schede informative sono visibili
- Le schede informative sono nascoste
+ Le schede informative sono visibili.
+ Le schede informative sono nascoste.
Nascondi le schede informative
- I pannelli informativi sono visibili
- I pannelli informativi sono nascosti
+ I pannelli informativi sono visibili.
+ I pannelli informativi sono nascosti.
Nascondi i pannelli informativi
- Il pulsante Abbonati è visibile
- Il pulsante Abbonati è nascosto
+ Il pulsante Abbonati è visibile.
+ Il pulsante Abbonati è nascosto.
Nascondi il pulsante Abbonati
La sezione dei concetti chiave è mostrata.
La sezione dei concetti chiave è nascosta.
@@ -552,8 +552,8 @@ Limitazioni:
I commenti non sono filtrati.
I commenti sono filtrati.
Nascondi commenti per parole chiave
- I video della scheda Home non sono filtrati per parole chiave.
- I video della scheda Home sono filtrati tramite parole chiave.
+ I video della scheda Home non sono filtrati.
+ I video della scheda Home sono filtrati.
Nascondi i video della scheda Home per parole chiave
"Parole chiave e frasi da nascondere, separate da nuove righe.
Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo (es: iPhone, TikTok, LeBlanc)."
@@ -578,16 +578,16 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
I pulsanti Mi Piace e Non Mi Piace sono visibili.
I pulsanti Mi Piace e Non Mi Piace sono nascosti.
Nascondi i pulsanti Mi Piace e Non Mi Piace
- I messaggi della chat dal vivo sono visibili.\n\nQuesta impostazione si applica anche agli Short dal vivo.
- I messaggi della chat dal vivo sono nascosti.\n\nQuesta impostazione si applica anche agli Short dal vivo.
+ I messaggi della chat dal vivo sono visibili.\n\nQuesta funzione si applica anche agli Short dal vivo.
+ I messaggi della chat dal vivo sono nascosti.\n\nQuesta funzione si applica anche agli Short dal vivo.
Nascondi i messaggi della chat dal vivo
Il pulsante Replay della Chat dal vivo è mostrato.\n\nApparirà a schermo intero quando si chiude la chat dal vivo.
Il pulsante Replay della Chat dal vivo è nascosto.\n\nApparirà a schermo intero quando si chiude la chat dal vivo.
Nascondi il pulsante replay della chat dal vivo
- Nascondi video con meno di 1.000 visualizzazioni dalla home che sono stati caricati dai canali a cui non si è iscritti.
+ Nascondi video con meno di 1.000 visualizzazioni dalla scheda Home che sono stati caricati dai canali a cui non sei iscritto.
Nascondi video con poche visualizzazioni
- I pannelli medici sono visibili
- I pannelli medici sono nascosti
+ I pannelli medici sono visibili.
+ I pannelli medici sono nascosti.
Nascondi i pannelli medici
Le sezioni del merchandising sono visibili.
Le sezioni del merchandising sono nascoste.
@@ -628,8 +628,8 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
L\'etichetta della promozione a pagamento è visibile.
L\'etichetta della promozione a pagamento è nascosta.
Nascondi l\'etichetta della promozione a pagamento
- I Giochi Interattivi sono visibili.
- I Giochi Interattivi sono nascosti.
+ I giochi interattivi sono visibili.
+ I giochi interattivi sono nascosti.
Nascondi Giochi Interattivi
Il pulsante Riproduzione Automatica è visibile.
Il pulsante Riproduzione Automatica è nascosto.
@@ -643,66 +643,66 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
Il pulsante Comprimi è mostrato.
Il pulsante Comprimi è nascosto.
Nascondi il pulsante Comprimi
- Il menu Modalità Ambient è visibile.
- Il menu Modalità Ambient è nascosto.
- Nascondi il menu Modalità Ambient
- Il menu Traccia audio è visibile.
- Il menu Traccia audio è nascosto.
- Nascondi il menu Traccia audio
- La parte inferiore del menu Sottotitoli è visibile.
- La parte inferiore del menu Sottotitoli è nascosta.
- Nascondi la parte inferiore del menu Sottotitoli
- Il menu Sottotitoli è visibile.
- Il menu Sottotitoli è nascosto.
- Nascondi il menu Sottotitoli
+ Il menù Modalità Ambient è visibile.
+ Il menù Modalità Ambient è nascosto.
+ Nascondi il menù Modalità Ambient
+ Il menù Traccia Audio è visibile.
+ Il menù Traccia Audio è nascosto.
+ Nascondi il menù Traccia Audio
+ La parte inferiore del menù Sottotitoli è visibile.
+ La parte inferiore del menù Sottotitoli è nascosta.
+ Nascondi la parte inferiore del menù Sottotitoli
+ Il menù Sottotitoli è visibile.
+ Il menù Sottotitoli è nascosto.
+ Nascondi il menù Sottotitoli
Il menu Premium 1080p è mostrato.
Il menu Premium 1080p è nascosto.
Nascondi il menu Premium 1080p
- Il menu Guida & feedback è visibile.
- Il menu Guida & feedback è nascosto.
- Nascondi menu Guida & feedback
- Il menu Ascolta con YouTube Music è visibile.
- Il menu Ascolta con YouTube Music è nascosto.
- Nascondi il menu Ascolta con YouTube Music
+ Il menù Guida e Feedback è visibile.
+ Il menù Guida e Feedback è nascosto.
+ Nascondi il menù Guida e Feedback
+ Il menù Ascolta con YouTube Music è visibile.
+ Il menù Ascolta con YouTube Music è nascosto.
+ Nascondi il menù Ascolta con YouTube Music
Il menù Blocca Schermo è visibile.
- Il menu Blocca Schermo è nascosto.
- Nascondi il menu Blocca Schermo
- Il menu Loop del video è visibile.
- Il menu Loop del video è nascosto.
- Nascondi il menu Loop del video
- Il menu Più informazioni è visibile.
- Il menu Più informazioni è nascosto.
- Nascondi menu Più informazioni
- Il menu Picture-in-picture è visibile.
- Il menu Picture-in-picture è nascosto.
- Nascondi il menu Picture-in-picture
- Il menu della velocità di riproduzione è visibile.
- Il menu della Velocità di Riproduzione è nascosto.
- Nascondi il menu della Velocità di Riproduzione
- Il menu Controlli premium è visibile.
- Il menu Controlli premium è nascosto.
- Nascondi menu Controlli premium
- La parte inferiore del menu qualità è visibile.
- La parte inferiore del menu qualità è nascosta.
- Nascondi la parte inferiore del menu qualità
- L\'intestazione del menu qualità è visibile.
- L\'intestazione del menu qualità è nascosta.
- Nascondi l\'intestazione del menu qualità
- Il menu Segnala è visibile.
- Il menu Segnala è nascosto.
- Nascondi il menu Segnala
- Il menu del timer del sonno è visibile.
- Il menu del timer del sonno è nascosto.
- Nascondi il menu Timer del sonno
- Il menu Volume stabile è visibile.
- Il menu Volume stabile è nascosto.
- Nascondi il menu Volume stabile
- Il menu Statistiche per Nerd è visibile.
- Il menu Statistiche per Nerd è nascosto.
- Nascondi il menu Statistiche per Nerd
- Il menu Guarda in VR è mostrato.
- Il menu Guarda in VR è nascosto.
- Nascondi il menu Guarda in VR
+ Il menù Blocca Schermo è nascosto.
+ Nascondi il menù Blocca Schermo
+ Il menù Loop del Video è visibile.
+ Il menù Loop del Video è nascosto.
+ Nascondi il menù Loop del Video
+ Il menù Altro da ... è visibile.
+ Il menù Altro da ... è nascosto.
+ Nascondi il menù Altro da ...
+ Il menù Picture-in-Picture è visibile.
+ Il menù Picture-in-Picture è nascosto.
+ Nascondi il menù Picture-in-Picture
+ Il menù Velocità di Riproduzione è visibile.
+ Il menù Velocità di Riproduzione è nascosto.
+ Nascondi il menù Velocità di Riproduzione
+ Il menù Controlli per l\'Ascolto è visibile.
+ Il menù Controlli per l\'Ascolto è nascosto.
+ Nascondi il menù Controlli per l\'Ascolto
+ La parte inferiore del menù Qualità è visibile.
+ La parte inferiore del menù Qualità è nascosta.
+ Nascondi la parte inferiore del menù Qualità
+ La parte superiore del menù Qualità è visibile.
+ La parte superiore del menù Qualità è nascosta.
+ Nascondi la parte superiore del menù Qualità
+ Il menù Segnala è visibile.
+ Il menù Segnala è nascosto.
+ Nascondi il menù Segnala
+ Il menù Timer di Sospensione è visibile.
+ Il menù Timer di Sospensione è nascosto.
+ Nascondi il menù Timer di Sospensione
+ Il menù Volume Stabile è visibile.
+ Il menù Volume Stabile è nascosto.
+ Nascondi il menù Volume Stabile
+ Il menù Statistiche per Nerd è visibile.
+ Il menù Statistiche per Nerd è nascosto.
+ Nascondi il menù Statistiche per Nerd
+ Il menù Guarda in VR è visibile.
+ Il menù Guarda in VR è nascosto.
+ Nascondi il menù Guarda in VR
Il pulsante schermo intero è mostrato.
Il pulsante schermo intero è nascosto.
Nascondi il pulsante schermo intero
@@ -718,8 +718,8 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
La sezione Podcast è visibile
La sezione Podcast è nascosta
Nascondi la sezione Podcast
- Il commento di anteprima è visibile
- Il commento di anteprima è nascosto
+ Il commento di anteprima è visibile.
+ Il commento di anteprima è nascosto.
Nascondi il commento di anteprima
Questo cambia la dimensione della sezione Commenti, quindi è impossibile aprire \"Riproduci Chat dal Vivo\".
Questo non cambia la dimensione della sezione Commenti, quindi è possibile aprire \"Riproduci Chat dal Vivo\".
@@ -754,8 +754,8 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
Il pulsante Condividi è mostrato.
Il pulsante Condividi è nascosto.
Nascondi il pulsante Condividi
- Il contenitore delle azioni rapide è visibile
- Il contenitore delle azioni rapide è nascosto
+ Il contenitore delle azioni rapide è visibile.
+ Il contenitore delle azioni rapide è nascosto.
Nascondi il contenitore delle azioni rapide
"Nasconde i seguenti video consigliati:
@@ -780,22 +780,22 @@ Se il layout della schermata del player cambia a causa di modifiche lato server,
Il pulsante Ricompense è visibile.
Il pulsante Ricompense è nascosto.
Nascondi pulsante Ricompense
- I thumbnails nella cronologia delle ricerche sono visibili
- I thumbnails nella cronologia delle ricerche sono nascosti
+ I thumbnails nella cronologia delle ricerche sono visibili.
+ I thumbnails nella cronologia delle ricerche sono nascosti.
Nascondi il anteprime nella cronologia delle ricerche
- Il messaggio di scorrimento è visibile
- Il messaggio di scorrimento è nascosto
+ Il messaggio di scorrimento è visibile.
+ Il messaggio di scorrimento è nascosto.
Nascondi il messaggio di scorrimento
- Il messaggio di annullamento è visibile
- Il messaggio di annullamento è nascosto
+ Il messaggio di annullamento è visibile.
+ Il messaggio di annullamento è nascosto.
Nascondi il messaggio di annullamento
Le etichette del capitolo accanto al timestamp sono nascoste.
Le etichette del capitolo accanto al timestamp sono nascoste.
Nascondi le etichette dei capitoli della barra di avanzamento
- La barra di avanzamento è visibile
- La barra di avanzamento è nascosta
- La barra di avanzamento nel thumbnail dei video è visibile
- La barra di avanzamento nel thumbnail dei video è nascosta
+ La barra di avanzamento è visibile.
+ La barra di avanzamento è nascosta.
+ La barra di avanzamento nel thumbnail dei video è visibile.
+ La barra di avanzamento nel thumbnail dei video è nascosta.
Nascondi la barra di avanzamento nel thumbnail dei video
Nascondi la barra di avanzamento
Le schede auto promozionali sono visibili.
@@ -869,8 +869,8 @@ Se il layout della schermata del player cambia a causa di modifiche lato server,
Il pulsante Negozio è visibile.
Il pulsante Negozio è nascosto.
Nascondi il pulsante Negozio
- La sezione Prodotti è visibile
- La sezione Prodotti è nascosta
+ La sezione Prodotti è visibile.
+ La sezione Prodotti è nascosta.
Nascondi la sezione Prodotti
La barra del canale è mostrata.
La barra del canale è nascosta.
@@ -947,11 +947,11 @@ Informazione:
Mostrato Nella home feed e video correlati.
Nascosto nella home feed e video correlati.
Nascondi nella home feed e video correlati
- Gli Shorts dei risultati di ricerca sono visibili
- Gli Shorts dei risultati di ricerca sono nascosti
+ Gli Shorts dei risultati di ricerca sono visibili.
+ Gli Shorts dei risultati di ricerca sono nascosti.
Nascondi gli Shorts dei risultati di ricerca
- Gli Shorts della scheda Iscrizioni sono visibili
- Gli Shorts della scheda Iscrizioni sono nascosti
+ Gli Shorts della scheda Iscrizioni sono visibili.
+ Gli Shorts della scheda Iscrizioni sono nascosti.
Nascondi gli Shorts della scheda Iscrizioni
"Problema noto: l'intestazione ufficiale nei risultati di ricerca sarà nascosta"
Nascondi lo scaffale degli Shorts
@@ -1000,8 +1000,8 @@ Informazione:
La snack bar è visibile.
La snack bar è nascosta.
Nascondi la snack bar
- Il pulsante Avvia Prova è visibile
- Il pulsante Avvia Prova è nascosto
+ Il pulsante Avvia Prova è visibile.
+ Il pulsante Avvia Prova è nascosto.
Nascondi il pulsante Avvia Prova
Il carosello delle iscrizioni è visibile.
Il carosello delle iscrizioni è nascosto.
@@ -1019,7 +1019,7 @@ Note:
"Il video suggerito della schermata finale è nascosto quando la riproduzione automatica è disattivata.
La riproduzione automatica può essere modificata nelle impostazioni di YouTube:
-Impostazioni → Riproduzione automatica → Riproduzione automatica del video successivo"
+Impostazioni → Riproduzione automatica → Riproduci automaticamente video successivo"
Nascondi il video suggerito nella schermata finale
Il pulsante Grazie è visibile.
Il pulsante Grazie è nascosto.
@@ -1030,8 +1030,8 @@ Impostazioni → Riproduzione automatica → Riproduzione automatica del video s
Il timestamp è visibile
Il timestamp è nascosto
Nascondi il timestamp
- Le reazioni temporizzate sono visibili
- Le reazioni temporizzate sono nascoste
+ Le reazioni temporizzate sono visibili.
+ Le reazioni temporizzate sono nascoste.
Nascondi le reazioni temporizzate
Il pulsante Trasmetti è visibile.
Il pulsante Trasmetti è nascosto.
@@ -1039,9 +1039,9 @@ Impostazioni → Riproduzione automatica → Riproduzione automatica del video s
Il pulsante Crea è visibile.
Il pulsante Crea è nascosto.
Nascondi il pulsante Crea
- Il pulsante di Notifiche è visibile.
- Il pulsante di Notifiche è nascosto.
- Nascondi il pulsante di Notifiche
+ Il pulsante Notifiche è visibile.
+ Il pulsante Notifiche è nascosto.
+ Nascondi il pulsante Notifiche
La sezione Trascrizione è visibile
La sezione Trascrizione è nascosta
Nascondi la sezione Trascrizione
@@ -1070,7 +1070,7 @@ Limitazioni:
I video con meno visualizzazioni di questo numero saranno nascosti.
Meno delle visualizzazioni
K -> 1 000\nM -> 1 000 000\nB -> 1 000 000 000\nvisualizzazioni -> visualizzazioni
- Specifica il tuo modello linguistico per il numero di visualizzazioni mostrate sotto ogni video nell\'interfaccia utente. Ogni chiave (una lettera/parola nella tua lingua) -> valore (significato della chiave) deve essere su una nuova riga. Le chiavi vanno prima del segno \"->\". Se cambi la lingua dell\'app o di sistema, devi reimpostare questa impostazione.\n\nEsempi:\nInglese: 10K views = K -> 1000, views -> visualizzazioni\nSpagnolo: 10 K vistas = K -> 1000, vistas -> visualizzazioni
+ Specifica il tuo modello linguistico per il numero di visualizzazioni mostrate sotto ogni video nell\'interfaccia utente. Ogni chiave (una lettera o una parola nella tua lingua) -> valore (significato della chiave) deve essere su una nuova riga. Le chiavi vanno prima del \"->\" segno. Se cambi la lingua dell\'app o di sistema, devi reimpostare questa impostazione.\n\nEsempi:\nInglese: 10K views = K -> 1000, views -> visualizzazioni\nSpagnolo: 10 K vistas = K -> 1000, vistas -> visualizzazioni
Visualizza chiavi
Il banner dei prodotti è visibile.
Il banner dei prodotti è nascosto.
@@ -1087,9 +1087,9 @@ Limitazioni:
"Il Doodle di YouTube si presenta un paio di giorni ogni anno.
Se un Doodle di YouTube è attualmente mostrato nella tua regione e questa impostazione nascondi è attiva, poi la barra dei filtri sotto la barra di ricerca sarà anche nascosta."
- La sovrimpressione dello zoom è visibile.
- La sovrimpressione dello zoom è nascosta.
- Nascondi sovrimpressione dello zoom
+ La sovrapposizione dello zoom è visibile.
+ La sovrapposizione dello zoom è nascosta.
+ Nascondi la sovrapposizione dello zoom
Afn Blu
Afn Rosso
Personalizzato
@@ -1112,27 +1112,27 @@ Problema noto: potrebbe rompere la funzione Picture-in-Picture
Il time-out della modalità orizzontale forzata
Mantieni la modalità orizzontale
Inventario
- Azione a doppio tocco è disabilitata.
- "L'azione a doppio tocco è abilitata.
+ L\'azione a doppio tocco è disattivata.
+ "L'azione a doppio tocco è attivata.
• Toccare due volte per aumentare la dimensione del video minimizzato.
-• Toccare nuovamente due volte per ripristinare la dimensione originale."
- Abilita azione al doppio tocco
- Il trascinamento e rilascio è disabilitato.
- Il trascinamento e rilascio è abilitato.
- Abilita il trascinamento e rilascio
- I pulsanti Espandi e chiudi sono mostrati.
- I pulsanti sono nascosti.\n(fai scorrere il riproduttore minimizzato per espandere o chiudere)
+• Toccare nuovamente due volte per tornare alle dimensioni originali."
+ Attiva l\'azione a doppio tocco
+ Il trascinamento e rilascio è disattivato.
+ Il trascinamento e rilascio è attivato.
+ Attiva il trascinamento e rilascio
+ I pulsanti Espandi e Chiudi sono visibili.
+ I pulsanti Espandi e Chiudi sono nascosti.\n(Scorri il riproduttore minimizzato per espandere o chiudere)
Nascondi i pulsanti espandi e chiudi
- Salta avanti e salta indietro sono mostrati.
+ Salta avanti e salta indietro sono visibili.
Salta avanti e salta indietro sono nascosti.
Nascondi i pulsanti salta avanti e salta indietro
- I sottotesti sono mostrati.
+ I sottotesti sono visibili.
I sottotesti sono nascosti.
Nascondi i sottotesti
L\'opacità della copertura del riproduttore minimizzato deve essere compresa tra 0 e 100. Reimpostati i valori predefiniti.
Il valore dell\'opacità è compreso tra 0 e 100, dove 0 è trasparente.
- Opacità della copertura
+ Opacità della sovrapposizione
Originale
Telefono
Tablet
@@ -1186,8 +1186,8 @@ Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
Pulsante download
Opzioni sperimentali
Restrizioni regionali delle immagini
- Importa / Esporta come file
- Importa / Esporta come testo
+ Esporta / Importa come file
+ Esporta / Importa come testo
Filtro per parola chiave
Altri
Pulsanti in sovrapposizione
@@ -1198,15 +1198,15 @@ Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
Azioni suggerite
Strumenti utilizzati
Filtro sul numero di visualizzazioni
- Nascondi o mostra gli elementi nel menu account e nella scheda Tu.
- Menù account
+ Nascondi o mostra gli elementi nei menù dell\'account e nella scheda Tu.
+ Menù dell\'account
Nascondi o mostra i pulsanti di azione sotto i video.
Pulsanti azione
Annunci
Anteprime alternative
- Disabilita la modalità Ambient o bypassa le restrizioni della modalità Ambient.
+ Disattiva la modalità Ambient o bypassa le sue restrizioni.
Modalità Ambient
- Nascondi o mostra la barra delle categorie nel feed, nella ricerca e nei video correlati.
+ Nascondi o mostra la barra delle categorie nelle schede, nei risultati di ricerca e nei video correlati.
Barra delle categorie
Nascondi o mostra i componenti della barra dei canali sotto i video.
Barra del canale
@@ -1214,22 +1214,22 @@ Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
Profilo del canale
Nascondi o mostra i componenti della sezione commenti.
Commenti
- Mostra o nascondi i post della community nel feed e nel canale.
+ Mostra o nascondi i post della community nelle schede e nei canali.
Post della community
Nascondi componenti utilizzando filtri personalizzati.
Filtro personalizzato
- Nasconde o mostra i componenti del menu a comparsa nel feed.
- Menu a comparsa
+ Nascondi o mostra i componenti dei menù a comparsa.
+ Menù a comparsa
Feed
Nascondi o cambia componenti relativi allo schermo intero.
Schermo intero
Generale
- Disabilita o abilita il feedback tattile.
- Feedback tattile
+ Disattiva o attiva la vibrazione tattile.
+ Vibrazione tattile
Sostituisce l\'azione del clic dei pulsanti in-app.
Pulsanti gancio
- Importa o esporta le impostazioni.
- Importa / Esporta impostazioni
+ Esporta o importa le impostazioni.
+ Esporta / Importa impostazioni
Cambia lo stile del riproduttore minimizzato nell\'app.
Riproduttore minimizzato
Varie
@@ -1237,18 +1237,18 @@ Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
Barra di navigazione
Informazioni sulle patch applicate.
Informazioni patch
- Nascondi o mostra i pulsanti nel riproduttore video.
+ Nascondi o mostra i pulsanti nel riproduttore.
Pulsanti del riproduttore
- Nascondi o cambia i componenti del menu a comparsa nel riproduttore video.
- Menu a comparsa
+ Nascondi o cambia i componenti dei menù a comparsa nel riproduttore.
+ Menù a comparsa
Riproduttore
Return YouTube Username
Return YouTube Dislike
SponsorBlock
Personalizza i componenti della barra di avanzamento.
Barra di avanzamento
- Nascondi gli elementi del menu delle impostazioni di YouTube.
- Menu Impostazioni
+ Nascondi gli elementi del menù delle impostazioni di YouTube.
+ Menù impostazioni
Nascondi o mostra i componenti nel produttore Shorts.
Riproduttore Shorts
Shorts
@@ -1327,7 +1327,7 @@ Clicca per vedere come emettere una chiave API."
Informazioni sulla chiave API dati di YouTube
La chiave sviluppatore per l\'utilizzo dell\'API dati di YouTube v3.
Chiave API dati di YouTube
- 1. Vai su <a href=%1$s>Crea un nuovo progetto</a>.<br>. Clicca il pulsante <b>CREA</b>.<br>3. Vai su <a href=%2$s>dati YouTube API v3</a>.<br>4. Fare clic sul pulsante <b>ABILITA</b>.<br>5. Fare clic sul pulsante <b>CREA CREDENZIALI</b>.<br>6. Selezionare l\'opzione <b>Dati pubblici</b>.<br>7. Fare clic sul pulsante <b>PROSSIMO</b><br>8. Copia la chiave API.<br><br>※ La chiave API non dovrebbe mai essere condivisa con gli altri, quindi non è inclusa nelle impostazioni di Importazione / Esportazione.
+ 1. Vai su <a href=%1$s>Crea un nuovo progetto</a>.<br>. Clicca il pulsante <b>CREA</b>.<br>3. Vai su <a href=%2$s>dati YouTube API v3</a>.<br>4. Fare clic sul pulsante <b>ABILITA</b>.<br>5. Fare clic sul pulsante <b>CREA CREDENZIALI</b>.<br>6. Selezionare l\'opzione <b>Dati pubblici</b>.<br>7. Fare clic sul pulsante <b>AVANTI</b><br>8. Copia la chiave API.<br><br>※ La chiave API non dovrebbe mai essere condivisa con gli altri, quindi non è inclusa nelle impostazioni di Esportazione / Importazione.
Inserimento chiave dati sviluppatore API di YouTube v3
Informazioni
I dati relativi ai Non Mi Piace sono forniti dall\'API di Return YouTube Dislike. Tocca qui per saperne di più
@@ -1338,8 +1338,8 @@ Clicca per vedere come emettere una chiave API."
Numero
Percentuale
Il tipo di Non Mi Piace
- I Non Mi Piace sono nascosti
- I Non Mi Piace sono visibili
+ I Non Mi Piace sono nascosti.
+ I Non Mi Piace sono visibili.
Attiva Return YouTube Dislike
I Mi piace stimati sono nascosti.
I Mi piace stimati sono mostrati.
@@ -1349,8 +1349,8 @@ Clicca per vedere come emettere una chiave API."
Non Mi Piace temporaneamente non disponibili (API scaduto)
Non Mi Piace non disponibili (%s)
Ricarica il video per votare utilizzando Return YouTube Dislike
- I Non Mi Piace degli Shorts sono nascosti
- I Non Mi Piace degli Shorts sono visibili %s
+ I Non Mi Piace degli Shorts sono nascosti.
+ I Non Mi Piace degli Shorts sono visibili.
"Non mi piace mostrati negli Shorts.
Limitazione: Non mi piace possono non apparire se l'utente non è registrato o in modalità incognito."
@@ -1464,7 +1464,7 @@ Limitazione: Non mi piace possono non apparire se l'utente non è registrato o i
Promozione a pagamento, rinvii a pagamento e pubblicità diretta. Non per auto-promozione o gridare gratis per causare / creatori / siti web / prodotti che piacciono.
Copia
Fallita l\'esportazione: %s.
- Importa / Esporta impostazioni
+ Esporta / Importa impostazioni
La tua configurazione JSON di SponsorBlock può essere importata / esportata su ReVanced Extended e su altre piattaforme SponsorBlock.
La tua configurazione JSON di SponsorBlock che può essere importata / esportata su ReVanced Extended e su altre piattaforme SponsorBlock. Questo include il tuo ID utente privato. Quindi assicurati di condividerlo con saggezza.
Importazione non riuscita: %s.
@@ -1572,8 +1572,8 @@ Limitazione: Non mi piace possono non apparire se l'utente non è registrato o i
Limitazione: il titolo del video scompare quando si fa clic."
Mostra sezione titolo video
- Se la riproduzione automatica è abilitata, il video successivo verrà riprodotto al termine del conto alla rovescia.
- Se la riproduzione automatica è abilitata, il video successivo verrà riprodotto immediatamente.
+ Se la riproduzione automatica è attivata, il video successivo verrà riprodotto al termine del conto alla rovescia.
+ Se la riproduzione automatica è attivata, il video successivo verrà riprodotto immediatamente.
Salta il conto alla rovescia della riproduzione automatica
"Salta il buffer precaricato all'avvio dei video per bypassare il ritardo della qualità video predefinita forzata.
@@ -1581,14 +1581,14 @@ Note:
• Quando il video inizia, c'è un ritardo di circa 0.7 secondi, ma la qualità video predefinita viene applicata immediatamente
• Non si applica ai video HDR, dal vivo e più brevi di 10 secondi"
Salta il buffer precaricato
- La notifica toast è nascosta
- La notifica toast è visibile
+ La notifica toast è nascosta.
+ La notifica toast è visibile.
Mostra una notifica toast quando un segmento è saltato
Attivare questa impostazione può causare problemi di riproduzione video.
Buffer precaricato saltato
- Il valore di sovrimpressione di velocità deve essere compreso tra 0 e 8.0. Ripristinati i valori predefiniti.
- Valore di sovrimpressione di velocità tra 0 e 8.0.
- Valore di sovrimpressione di velocità
+ Il valore di sovrapposizione della velocità deve essere tra 0 e 8.0.
+ Valore di sovrapposizione della velocità tra 0 e 8.0.
+ Valore di sovrapposizione della velocità
"Simula la versione del client a una versione precedente.
Note:
@@ -1621,9 +1621,14 @@ Se disattivata in seguito, si consiglia di cancellare i dati dell'app per evitar
"Abilitando questo si potrebbe migliorare la durata della batteria e correggere i problemi di riproduzione.
AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizzerà più dati internet rispetto a VP9 o AV1."
- "• il menu traccia audio è mancante."
- "• il menu traccia audio è mancante."
- "• I film o i video a pagamento potrebbero non essere riprodotti."
+ "• Il menù Traccia Audio è mancante.
+• Il menù Volume Stabile è mancante."
+ "• Il menù Traccia Audio è mancante.
+• Il menù Volume Stabile è mancante."
+ "• I film o i video a pagamento potrebbero non essere riprodotti.
+• I video dal vivo iniziano dall'inizio.
+• I video potrebbero terminare 1 secondo prima.
+• Nessun codec audio Opus."
Effetti collaterali del camuffamento
• Il video potrebbe non essere riprodotto.
Il client utilizzato per recuperare i dati di streaming è nascosto nelle statistiche per nerd.
@@ -1633,14 +1638,9 @@ AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizz
I dati in streaming sono camuffati.
Camuffa data streaming
Android
- Creatore Android
- Riproduttore Incorporato Android
- Suite di test Android
Android TV
Android VR
iOS
- TV HTML5
- Web
Client predefinito
Disattivare questa impostazione potrebbe causare problemi di riproduzione video.
La sensibilità dello scorrimento della luminosità deve essere compresa tra 1 e 1000 (%).
@@ -1652,14 +1652,14 @@ AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizz
Automatico
La quantità di interazioni prima che il trascinamento si verifichi
L\'ampiezza del limite di trascinamento
- La visibilità dello sfondo in sovrapposizione durante il trascinamento
+ La visibilità dello sfondo in sovrapposizione durante il trascinamento.
La visibilità dello sfondo durante il trascinamento
La dimensione dell\'area trascinabile non può essere superiore a 50. Ripristina il valore predefinito.
Percentuale dell\'area dello schermo scorrevole.\n\nNota: ciò modificherà anche la dimensione dell\'area dello schermo per il gesto doppio tocco.
Dimensioni dello scorrimento dello schermo in sovrapposizione
La dimensione del testo in sovrapposizione durante il trascinamento
La dimensione del testo del trascinamento
- La visibilità in millisecondi della sovrapposizione
+ La visibilità in millisecondi della sovrapposizione.
La durata della sovrapposizione del trascinamento
La sensibilità dello scorrimento del volume deve essere compresa tra 1-1000 (%).
Configurare la distanza minima per scorrere il volume tra 1 e 1000 (%).\n\nPiù breve è la distanza minima, più il livello del volume cambia.\n\nLa sensibilità consigliata dello scorrimento del volume è 100% a livelli di 15 e 10% a livelli di 150 volumi.
@@ -1681,7 +1681,6 @@ Inoltre, gli annunci non saranno più bloccati negli Shorts.
Se questa impostazione non ha effetto, prova a passare alla modalità Incognito."
Inventario
RVX Music
- Attenzione
%s Non è installato. Per favore installalo.
Nome del pacchetto di RVX Music installato.
Nome pacchetto RVX Music
diff --git a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml
index f82015e55..d6ab0d33f 100644
--- a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml
+++ b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml
@@ -1,5 +1,19 @@
-
+
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/ja-rJP/strings.xml b/src/main/resources/youtube/translations/ja-rJP/strings.xml
index 5705b78fb..ddd6c7cc5 100644
--- a/src/main/resources/youtube/translations/ja-rJP/strings.xml
+++ b/src/main/resources/youtube/translations/ja-rJP/strings.xml
@@ -1,4 +1,4 @@
-
+
動画プレーヤーのアクセシビリティコントロールをオンにしますか?
ユーザー補助サービスがオンになっているため、操作方法が変わります。
@@ -324,7 +324,7 @@ DeArrow の詳細については、ここをタップしてください。"続行しますか?
デフォルト値にリセットしました。
再起動してレイアウトを正常に読み込みます
- "YouTube サーバー側のバグにより、高評価数、再生回数、アップロード日などの数字のテキストが一部のユーザーに対して非表示になります。
+ "YouTube サーバー側のバグにより、高評価数、再生回数、アップロード日などの数字の回転アニメーションが一部のユーザーに対して非表示になります。
この問題は、アプリのバージョンを 19.13.37 に偽装することで回避できます。(一時的な回避策)
@@ -1635,17 +1635,12 @@ API キーの発行方法については、ここをタップしてください
ストリーミングデータを偽装していない場合、動画の再生ができない可能性があります。
ストリーミングデータを偽装
Android
- Android Creator
- Android 埋め込みプレーヤー
- Android Testsuite
Android TV
Android VR
iOS
- TV HTML5
- Web
偽装するクライアントの種類
この設定をオフにした場合、バッファリングの問題が発生する可能性があります。
- 感度は1 ~ 1000 (%)の間でなければなりません。
+ 感度は 1 ~ 1000 (%) の間でなければなりません。
スワイプして明るさを調整する際の感度を 1 ~ 1000 (%) の間で設定できます。
明るさのスワイプ感度
スワイプジェスチャーを「画面のロック」モードで有効化します。
@@ -1663,7 +1658,7 @@ API キーの発行方法については、ここをタップしてください
スワイプオーバーレイのテキストサイズ
スワイプオーバーレイが表示される時間 (単位: ミリ秒)
スワイプオーバーレイのタイムアウト
- 感度は1 ~ 1000 (%)の間でなければなりません。
+ 感度は 1 ~ 1000 (%) の間でなければなりません。
スワイプして音量を調整する際の感度を 1 ~ 1000 (%) の間で設定できます。\n\n推奨される音量スワイプ感度は、15 音量ステップで 100%、150 音量ステップで 10% です。
音量のスワイプ感度
"デバイスの情報を偽装して、作成ボタンと通知ボタンの位置を入れ替えます。
@@ -1682,7 +1677,6 @@ API キーの発行方法については、ここをタップしてください
この設定が有効にならない場合は、シークレットモードに切り替えてみてください。"
オリジナル
RVX Music
- 注意
%s はインストールされていません。インストールしてください。
インストールされている RVX Music のパッケージ名です。
RVX Music のパッケージ名
diff --git a/src/main/resources/youtube/translations/ko-rKR/strings.xml b/src/main/resources/youtube/translations/ko-rKR/strings.xml
index 7a97956e1..53b1cfd08 100644
--- a/src/main/resources/youtube/translations/ko-rKR/strings.xml
+++ b/src/main/resources/youtube/translations/ko-rKR/strings.xml
@@ -1,4 +1,4 @@
-
+
플레이어에 접근성 컨트롤을 표시하시겠습니까?
접근성 서비스가 켜져있기 때문에 플레이어 컨트롤을 변경합니다.
@@ -271,6 +271,14 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
재생바 터치 조작을 비활성화합니다.
재생바 터치 조작을 활성화합니다.
재생바 터치 조작 활성화하기
+ "이 설정을 활성화하면 재생바 썸네일이 없는 실시간 스트림에서 썸네일이 복원됩니다.
+
+인터넷 데이터가 더 많이 사용될 수 있으며, 재생바 썸네일이 표시되기 전에 약간의 지연이 발생합니다.
+
+이 설정은 인터넷 연결이 매우 좋을 때 가장 잘 작동합니다."
+ 재생바 썸네일이 일반화질입니다,
+ 재생바 썸네일이 고화질입니다.
+ 고화질 썸네일 활성화하기
타임스탬프를 비활성화합니다.
"타임스탬프를 활성화합니다.
@@ -499,6 +507,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
세밀하게 보면서 탐색 제스처
필름 스트립 오버레이가 숨겨집니다.\n• 세밀하게 보면서 탐색 제스처
필름 스트립 오버레이 숨기기
+ 플로팅 버튼이 표시됩니다.
+ 플로팅 버튼이 숨겨집니다.
+ 플로팅 버튼 숨기기
검색할 때, 오른쪽 하단에서 플로팅 마이크 버튼이 표시됩니다.
검색할 때, 오른쪽 하단에서 플로팅 마이크 버튼이 숨겨집니다.
플로팅 마이크 버튼 숨기기
@@ -597,9 +608,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
보건 정보 패널이 표시됩니다.
보건 정보 패널이 숨겨집니다.
보건 정보 패널 숨기기
- 태그된 제품 선반이 표시됩니다.
- 태그된 제품 선반이 숨겨집니다.
- 태그된 제품 선반 숨기기
+ 매장 쇼핑 선반이 표시됩니다.
+ 매장 쇼핑 선반이 숨겨집니다.
+ 매장 쇼핑 선반 숨기기
믹스 재생목록이 표시됩니다.
믹스 재생목록이 숨겨집니다.
믹스 재생목록 숨기기
@@ -717,6 +728,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
버튼이 표시됩니다.
버튼이 숨겨집니다.
이전 & 다음 동영상 버튼 숨기기
+ 판매자 쇼핑 선반이 표시됩니다.
+ 판매자 쇼핑 선반이 숨겨집니다.
+ 판매자 쇼핑 선반 숨기기
YouTube Music 버튼이 표시됩니다.
YouTube Music 버튼이 숨겨집니다.
YouTube Music 버튼 숨기기
@@ -1626,7 +1640,7 @@ API Key를 발급받는 방법을 보려면 여기를 누르세요."
AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 데이터가 사용됩니다."
"• 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다."
"• 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다."
- "• 영화 또는 유료 동영상이 재생되지 않을 수 있습니다.\n• 되감기가 가능한 실시간 스트림이 라이브 중인 시점이 아닌 처음부터 재생될 수 있습니다.\n• 동영상이 1초 일찍 종료될 수 있습니다.\n• OPUS 오디오 코덱이 지원되지 않습니다."
+ "• 영화 또는 회원 전용 동영상과 같은 유료 동영상이 재생되지 않을 수 있습니다.\n• 되감기가 가능한 실시간 스트림이 라이브 중인 시점이 아닌 처음부터 재생될 수 있습니다.\n• 동영상이 1초 일찍 종료될 수 있습니다.\n• OPUS 오디오 코덱이 지원되지 않습니다."
알려진 문제점
• 동영상이 재생되지 않을 수 있습니다.
\'스트리밍 데이터를 가져오는 데 사용되는 클라이언트\'가 전문 통계에서 숨겨집니다.
@@ -1636,14 +1650,9 @@ AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9
스트리밍 데이터를 변경합니다.
스트리밍 데이터 변경하기
Android
- Android Creator
- Android Embedded Player
- Android TestSuite
Android TV
Android VR
iOS
- TV HTML5
- Web
기본 클라이언트
이 설정을 비활성화하면 동영상 재생 문제가 발생할 수 있습니다.
밝기 스와이프 감도는 1-1000 사이어야 합니다. (퍼센트)
@@ -1684,7 +1693,6 @@ AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9
이 설정이 적용되지 않는 경우에는 시크릿 모드로 전환해 보세요."
YouTube
RVX Music
- 경고
%s 이 설치되어 있지 않습니다. 설치하세요.
이 기기에 설치된 RVX Music 앱 패키지명을 설정하세요.
RVX Music 앱 패키지명
diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
new file mode 100644
index 000000000..4bce935b0
--- /dev/null
+++ b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
@@ -0,0 +1,17 @@
+
+
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
+
diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml
index 46607ed06..e10a52a4d 100644
--- a/src/main/resources/youtube/translations/pl-rPL/strings.xml
+++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml
@@ -1,4 +1,4 @@
-
+
Włączyć gesty ułatwień dostępu dla odtwarzacza filmów?
Twoje ustawienia są zmienione, ponieważ serwis ułatwień dostępu jest włączony.
@@ -1640,14 +1640,9 @@ Kodek AVC (H.264) obsługuje maksymalnie rozdzielczość 1080p, a odtwarzanie fi
Włączone
Oszukuj strumień danych
Android
- Android Creator
- Wbudowany odtwarzacz Androida
- Klient Testowy Androida
Android TV
Android VR
iOS
- TV HTML5
- Przeglądarka
Domyślny klient
Wyłączenie tej opcji może spowodować problemy z odtwarzaniem filmów.
Czułość przesuwania gestu jasności musi być pomiędzy 1 a 1000 (%).
@@ -1688,7 +1683,6 @@ Dodatkowo, reklamy nie będą już blokowane w Shortsach.
Jeśli opcja nie przynosi skutku, spróbuj przełączyć się na tryb incognito."
Domyślny
RVX Music
- Ostrzeżenie
%s nie jest zainstalowany. Proszę go zainstalować.
Nazwa pakietu zainstalowanego RVX Music
Nazwa pakietu RVX Music
diff --git a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml
index a0dadfc3c..5fea28b1e 100644
--- a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml
@@ -1,11 +1,25 @@
-
+
Don\'t show again
Courses / Learning
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/pt-rBR/strings.xml b/src/main/resources/youtube/translations/pt-rBR/strings.xml
index 0035054a4..b76402247 100644
--- a/src/main/resources/youtube/translations/pt-rBR/strings.xml
+++ b/src/main/resources/youtube/translations/pt-rBR/strings.xml
@@ -1,4 +1,4 @@
-
+
Ativar os controles de acessibilidade para o reprodutor de vídeo?
Seus controles foram modificados porque um serviço de acessibilidade está ativado.
@@ -1346,8 +1346,8 @@ Limitação: Dislikes pode não aparecer no modo incógnito."
Oculto
Remove os parâmetros de consulta de rastreamento das URLs ao compartilhar os links.
Limpar links compartilhados
- "Frases como '#', 'Arrecadação de fundos', 'Loja' e 'produtos' serão exibidos nas legendas do vídeo."
- "Frases como '#', 'Arrecadação de fundos', 'Loja' e 'produtos' foram ocultadas das legendas do vídeo."
+ "Frases como '#', 'Arrecadação de fundos', 'Loja' e 'produtos' serão exibidos na legenda do vídeo."
+ "Frases como '#', 'Arrecadação de fundos', 'Loja' e 'produtos' serão ocultadas da legenda do vídeo."
Limpar legendas de vídeo
Sobre
sponsor.ajay.app
@@ -1611,14 +1611,9 @@ AVC (H. 64) tem uma resolução máxima de 1080p, e a reprodução de vídeo usa
Os dados de streaming são falsificados.
Dados de streaming falsos
Android
- Criador Android
- Reprodutor Incorporado Android
- Suite de teste Android
Android TV
Android VR
iOS
- TV HTML5
- Web
Cliente padrão
Desativar esta configuração pode causar problemas de reprodução de vídeo.
A sensibilidade de deslizamento de brilho deve estar entre 1-1000 (%).
@@ -1659,7 +1654,6 @@ Além disso, os anúncios não serão mais bloqueados no Shorts.
Se essa configuração não surtir efeito, tente alternar para o modo anônimo."
Padrão
RVX Music
- Aviso
%s não está instalado. Por favor, instale-o.
Nome do pacote do RVX Music instalado.
Nome do pacote do RVX Music
diff --git a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml
index fb2850fcf..08acb435e 100644
--- a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml
+++ b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml
@@ -1,12 +1,21 @@
-
+
- "There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-A temporary workaround for this issue is to spoof the app version to 19.13.37.
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-Do you want to spoof the app version before restarting the app?"
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/ru-rRU/strings.xml b/src/main/resources/youtube/translations/ru-rRU/strings.xml
index e8801dd70..01509582f 100644
--- a/src/main/resources/youtube/translations/ru-rRU/strings.xml
+++ b/src/main/resources/youtube/translations/ru-rRU/strings.xml
@@ -1,4 +1,4 @@
-
+
Включить специальные возможности в плеере?
Служба специальных возможностей включена. Управление изменено.
@@ -322,6 +322,11 @@
Подтверждаете действие?
К значениям по умолчанию.
Перезапустить для правильной загрузки интерфейса?
+ "Существует ошибка на стороне YouTube, которую вызывает анимация прокручивания чисел - лайки, просмотры и даты загрузок будут скрыты для некоторых пользователей.
+
+Временный обход для этой проблемы - использовать версию приложения до 19.13.37.
+
+Вы хотите подменить версию приложения перед перезагрузкой?"
Перезапустить для применения?
Не удалось экспортировать настройки.
Настройки успешно экспортированы.
@@ -373,7 +378,7 @@
Кнопка \"Магазин\" отображена.
Кнопка \"Магазин\" скрыта.
Кнопка \"Магазин\"
- "Скрывает следующие секции:
+ "Скрывает следующие полки:
• Срочные новости
• Продолжить просмотр
• Больше каналов
@@ -587,9 +592,9 @@ Shorts
Медицинские панели отображены.
Медицинские панели скрыты.
Медицинские панели
- Секции товаров отображены.
- Секции товаров скрыты.
- Секции товаров
+ Полки товаров отображены.
+ Полки товаров скрыты.
+ Полки товаров
Плейлист \"Джем\" отображен.
Плейлист \"Джем\" скрыт.
Плейлист \"Джем\"
@@ -1609,7 +1614,7 @@ Shorts
18.33.40 - Восстановление старой панели действий Shorts
18.38.45 - Восстановление старого поведения качества видео по умолчанию
18.48.39 - Отключение обновления \"просмотров\" и \"лайков\" в реальном времени
- 19.13.37 - Старый стиль анимаций - вращающиеся цифры
+ 19.13.37 - Старый стиль анимаций - прокручивание чисел
Целевая версия приложения при подмене
Введите целевую версию приложения для подмены.
Целевая версия подмены
@@ -1640,14 +1645,9 @@ AVC (H.264) имеет максимальное разрешение 1080p, и
Подмена потоковых данных включена.
Подмена потоковых данных
Android
- Android Создатель
- Встроенный Android плеер
- Android Тестовый набор
Android TV
Android VR
iOS
- TV HTML5
- Веб
Клиент по умолчанию
Отключение этой настройки вызовет проблемы с воспроизведением видео.
Значение должно быть от 1 до 1000 (%).
@@ -1690,7 +1690,6 @@ AVC (H.264) имеет максимальное разрешение 1080p, и
Если эта настройка не вступила в силу, попробуйте перейти в режим инкогнито."
По умолчанию
RVX Music
- Предупреждение
%s не установлен. Установите его.
Название пакета установленной RVX Music.
Имя пакета RVX Music
diff --git a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml
index 9293ac240..ac9f93534 100644
--- a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml
@@ -1,4 +1,4 @@
-
+
Don\'t show again
Original
@@ -41,6 +41,14 @@ Limitation: This setting may not apply to videos that do not include the 'Listen
• Video playback will use more internet data than VP9.
• VP9 codec is still used for HDR video."
Disable VP9 codec
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
"There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
A temporary workaround for this issue is to spoof the app version to 19.13.37.
@@ -57,6 +65,9 @@ Do you want to spoof the app version before restarting the app?"
Expandable shelves are shown.
Expandable shelves are hidden.
Hide expandable shelves
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
Surrounding a keyword/phrase with double-quotes will prevent partial matches of video titles and channel names.<br><br>For example,<br><b>\"ai\"</b> will hide the video: <b>How does AI work?</b><br>but will not hide: <b>What does fair use mean?</b>
Add quotes to use keyword: %s.
Keyword has conflicting declarations: %s.
@@ -67,6 +78,9 @@ Do you want to spoof the app version before restarting the app?"
1080p Premium menu is shown.
1080p Premium menu is hidden.
Hide 1080p Premium menu
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
Related videos are shown.
Related videos are hidden.
Hide related videos
@@ -292,7 +306,7 @@ AVC (H.264) has a maximum resolution of 1080p, and video playback will use more
Configure the minimum distance for brightness swiping between 1 and 1000 (%).\nThe shorter the minimum distance, the faster the brightness level changes.
Brightness swipe sensitivity
Volume swipe sensitivity must be between 1-1000 (%).
- Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
+ Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
Volume swipe sensitivity
Create button is not switched with Notifications button.
"Create button is switched with Notifications button.
diff --git a/src/main/resources/youtube/translations/tr-rTR/strings.xml b/src/main/resources/youtube/translations/tr-rTR/strings.xml
index c963c18c5..f14493999 100644
--- a/src/main/resources/youtube/translations/tr-rTR/strings.xml
+++ b/src/main/resources/youtube/translations/tr-rTR/strings.xml
@@ -1,4 +1,4 @@
-
+
Video oynatıcı için erişilebilirlik kontrolleri açılsın mı?
Bir erişilebilirlik hizmeti açık olduğundan kontrolleriniz değiştirildi.
diff --git a/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml
new file mode 100644
index 000000000..4bce935b0
--- /dev/null
+++ b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml
@@ -0,0 +1,17 @@
+
+
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
+
diff --git a/src/main/resources/youtube/translations/uk-rUA/strings.xml b/src/main/resources/youtube/translations/uk-rUA/strings.xml
index d826bed45..e5ae1f451 100644
--- a/src/main/resources/youtube/translations/uk-rUA/strings.xml
+++ b/src/main/resources/youtube/translations/uk-rUA/strings.xml
@@ -1,4 +1,4 @@
-
+
Увімкнути спеціальні можливості для відеоплеєра?
Керування змінено, оскільки служба спеціальних можливостей увімкнена.
@@ -1636,14 +1636,9 @@ AVC (H.264) має максимальну роздільну здатність
Дані трансляції підроблено.
Підробити дані трансляції
Android
- Розробник Android
- Вбудований плеєр Android
- Тестовий Android
Android TV
Android VR
iOS
- TV HTML5
- Web
Основний клієнт
Вимикання цього налаштування може призвести до проблем відтворення відео.
Чутливість жесту яскравості повинна бути в межах 1-1000 (%).
@@ -1684,7 +1679,6 @@ AVC (H.264) має максимальну роздільну здатність
Якщо це налаштування не діє, спробуйте перемкнути Анонімний режим."
Стандартна
RVX Music
- Зауваження
%s не встановлено. Будь ласка, встановіть.
Назва пакету встановленого RVX Music.
Назва пакету RVX Music
diff --git a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml
index a0dadfc3c..5fea28b1e 100644
--- a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml
+++ b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml
@@ -1,11 +1,25 @@
-
+
Don\'t show again
Courses / Learning
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/vi-rVN/strings.xml b/src/main/resources/youtube/translations/vi-rVN/strings.xml
index e282a79cf..781a6ab92 100644
--- a/src/main/resources/youtube/translations/vi-rVN/strings.xml
+++ b/src/main/resources/youtube/translations/vi-rVN/strings.xml
@@ -1,4 +1,4 @@
-
+
Bật các điều khiển trợ năng cho trình phát video?
Các điều khiển của bạn đã được sửa đổi vì dịch vụ trợ năng đang bật.
@@ -13,7 +13,7 @@ Hãy làm theo hướng dẫn của 'Don't kill my app!' và tiến hành cài
Nhấn vào Tiếp tục và tắt tối ưu hóa pin."
Mở trang web
Hành động cần thiết
- Kích hoạt thông báo đám mây để nhận thông báo.
+ Kích hoạt Cloud Messaging để nhận thông báo đẩy và các cài đặt khác.
Mở GmsCore
GmsCore chưa được cài đặt. Hãy cài đặt nó đi nào.
"DeArrow là một tiện ích được đóng góp bởi cồng đồng nhằm thay thế hình thu nhỏ mặc định của video YouTube bằng những hình thu nhỏ phù hợp hơn, giúp hạn chế clickbait.
@@ -218,13 +218,13 @@ Lưu ý:
• Nhấn để cuộn.
• Nhấn và giữ để chọn văn bản."
Tắt tương tác mô tả video
- Bộ giải mã VP9 đã được kích hoạt.
- "Bộ giải mã VP9 đã bị vô hiệu hoá.
+ Codec VP9 đã được kích hoạt.
+ "Codec VP9 đã bị vô hiệu hoá.
• Độ phân giải tối đa là 1080p.
• Việc phát video sẽ sử dụng nhiều dữ liệu di động hơn so với VP9.
-• Bộ giải mã VP9 vẫn được sử dụng cho video HDR."
- Vô hiệu hoá bộ giải mã VP9
+• Codec VP9 vẫn được sử dụng cho video HDR."
+ Vô hiệu hoá codec VP9
Thanh tiến trình kiểu Cairo đã bị vô hiệu hoá.
"Thanh tiến trình kiểu Cairo đã được kích hoạt.
@@ -260,8 +260,8 @@ Hạn chế: Chủ đề Cairo cũng sẽ áp dụng cho dấu chấm thông bá
Đang chuyển hướng URL khi mở các liên kết xuất hiện trên YouTube.
Đang bỏ qua chuyển hướng URL khi mở các liên kết xuất hiện trên YouTube.
Mở liên kết trực tiếp
- Kích hoạt bộ giải mã OPUS nếu phản hồi của trình phát bao gồm bộ giải mã OPUS.
- Kích hoạt bộ giải mã OPUS
+ Kích hoạt codec OPUS nếu phản hồi của trình phát bao gồm codec OPUS.
+ Kích hoạt codec OPUS
Không lưu độ sáng khi thoát ra hoặc vào chế độ toàn màn hình.
Lưu độ sáng khi thoát ra hoặc vào chế độ toàn màn hình.
Lưu độ sáng
@@ -340,7 +340,7 @@ Bạn có muốn giả mạo phiên bản ứng dụng trước khi khởi độ
Nhập toàn bộ cài đặt của bạn từ tệp đã lưu trước đó.
Nhập cài đặt
Đặt lại
- Tìm kiếm %s
+ Tìm kiếm trong %s
ReVanced Extended
Trình tải xuống bên thứ ba
Chưa được cài đặt
@@ -1256,10 +1256,10 @@ Nhấn giữ để mở hộp thoại cài đặt Danh sách trắng.
Lề trên bảng nút thao tác nhanh phải nằm trong khoảng 0 - 32.
Giá trị khoảng cách từ thanh tiến trình đến bảng nút thao tác nhanh trong khoảng từ 0 đến 32.
Lề trên bảng nút thao tác nhanh
- "Buộc từ chối phản hồi của bộ giải mã phần mềm AV1.
-Một bộ giải mã khác sẽ được áp dụng sau khoảng 20 giây tải bộ đệm."
- Từ chối phản hồi của bộ giải mã phần mềm AV1
- Quá trình dự phòng sẽ tạo ra khoảng 20 giây tải bộ đệm.
+ "Buộc từ chối phản hồi của codec phần mềm AV1.
+Một codec khác sẽ được áp dụng sau khoảng 20 giây tải bộ đệm."
+ Từ chối phản hồi của codec phần mềm AV1
+ Quá trình dự phòng khiến cho việc tải bộ đệm mất khoảng 20 giây trước khi bắt đầu.
Độ lệch
Thay đổi tốc độ phát chỉ áp dụng cho video hiện tại.
Thay đổi tốc độ phát áp dụng cho tất cả video.
@@ -1280,8 +1280,8 @@ Một bộ giải mã khác sẽ được áp dụng sau khoảng 20 giây tải
"Loại bỏ hộp thoại cảnh báo nội dung cần cân nhắc trước khi xem.
Tuỳ chọn này chỉ tự động chấp nhận hộp thoại cảnh báo, chứ không thể bỏ qua giới hạn về độ tuổi."
Loại bỏ hộp thoại cảnh báo trước khi xem
- Thay thế bộ giải mã phần mềm AV1 bằng bộ giải mã VP9.
- Thay thế bộ giải mã phần mềm AV1
+ Thay thế codec phần mềm AV1 bằng codec VP9.
+ Thay thế codec phần mềm AV1
Đang áp dụng tên hiển thị của kênh (@handle).
Đang áp dụng tên kênh.
Thay thế tên hiển thị của kênh
@@ -1314,7 +1314,7 @@ Giới hạn truy cập hàng ngày cho các khoá API trên gói miễn phí l
Nhấp vào đây để xem các bước phát hành khóa API."
Giới thiệu về khoá YouTube Data API
- Khoá nhà phát triển để sử dụng YouTube Data API v3.
+ Khoá phát triển để sử dụng YouTube Data API v3.
Khoá Youtube Data API
1. Tạo dự án mới <a href=%1$s>Nhấn vào đây</a>.<br>2. Nhấn vào nút <b>CREATE</b>.<br>3. Đi tới YouTube Data API v3 <a href=%2$s>Nhấn vào đây</a>.<br>4. Nhấn vào nút <b>ENABLE</b>.<br>5. Nhấn vào nút <b>CREATE CREDENTIALS</b>.<br>6. Chọn <b>Public data</b>.<br>7. Nhấn vào nút <b>NEXT</b>.<br>8. Sao chép mã khoá API.<br><br>※ Khoá API không nên được chia sẻ với người khác, vì vậy nó cũng không xuất hiện trong cài đặt Nhập/Xuất.
Phát hành mã khoá
@@ -1598,8 +1598,8 @@ Nếu muốn tắt tính năng này sau đó, bạn nên xóa dữ liệu ứng
"Giả lập kích thước thiết bị đến giá trị tối đa.
Chất lượng cao có thể được mở khóa trên một số video yêu cầu kích thước thiết bị lớn, nhưng không phải tất cả các video."
Giả mạo kích thước thiết bị
- Bộ giải mã video trên iOS là AVC (H.264), VP9, hoặc là AV1.
- Bộ giải mã video trên iOS là AVC (H.264).
+ Codec video trên iOS là AVC (H.264), VP9, hoặc là AV1.
+ Codec video trên iOS là AVC (H.264).
Buộc iOS sử dụng AVC (H.264)
"Bật chức năng này có thể tăng cường thời lượng pin và khắc phục tình trạng giật lag khi phát video.
@@ -1611,7 +1611,7 @@ AVC (H.264) có độ phân giải tối đa 1080p, và phát video sẽ dùng n
"• Phim hoặc video trả phí có thể không phát được.
• Video phát trực tiếp sẽ khởi chạy từ đầu.
• Video có thể kết thúc sớm 1 giây.
-• Không có bộ giải mã âm thanh opus."
+• Không có codec âm thanh opus."
Hạn chế của việc giả mạo
• Video có thể không phát được.
Máy khách được sử dụng để lấy dữ liệu phát trực tiếp sẽ bị ẩn trong Thống kê chi tiết.
@@ -1621,14 +1621,9 @@ AVC (H.264) có độ phân giải tối đa 1080p, và phát video sẽ dùng n
Đã giả mạo dữ liệu phát trực tiếp.
Giả mạo dữ liệu phát trực tiếp
Android
- Android Creator
- Trình phát nhúng Android
- Thử nghiệm Android
Android TV
Android VR
iOS
- TV HTML5
- Trang Web
Máy khách mặc định
Việc tắt cài đặt này có thể gây ra sự cố khi phát video.
Độ nhạy khi vuốt để điều chỉnh độ sáng phải nằm trong khoảng từ 1-1000 (%).
@@ -1669,7 +1664,6 @@ Ngoài ra, quảng cáo sẽ không còn bị chặn trong trình phát Shorts.
Nếu cài đặt này không có hiệu lực, hãy thử chuyển sang chế độ Ẩn danh."
Nguyên gốc
RVX Music
- Chú ý
Hiện %s chưa được cài đặt. Hãy cài đặt và thử lại.
Tên gói của RVX Music đã được cài đặt.
Tên gói của RVX Music
diff --git a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml
index e61c58590..dcd7145e9 100644
--- a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml
+++ b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml
@@ -1,7 +1,21 @@
-
+
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/zh-rCN/strings.xml b/src/main/resources/youtube/translations/zh-rCN/strings.xml
index edbdfb52d..bbe982053 100644
--- a/src/main/resources/youtube/translations/zh-rCN/strings.xml
+++ b/src/main/resources/youtube/translations/zh-rCN/strings.xml
@@ -1,4 +1,4 @@
-
+
开启视频播放器的访问控制?
由于无障碍服务已启用,您的控制被修改
@@ -183,8 +183,8 @@
HDR 视频自动亮度已启用
HDR 视频自动亮度已禁用
禁用 HDR 视频自动亮度
- HDR 视频已禁用
- HDR 视频已启用
+ HDR 视频已启用
+ HDR 视频已禁用
HDR 视频
全屏时的横屏模式已启用
全屏时的横屏模式已禁用
@@ -1239,8 +1239,8 @@ Note:
隐藏或更改视频播放器中的弹出菜单
弹出菜单
播放器
- 返回 YouTube 用户名
- Return YouTube Dislike
+ 恢复 YouTube 用户名
+ 恢复 YouTube 点踩
SponsorBlock
自定义进度条组件
进度条
@@ -1312,7 +1312,7 @@ Note:
用户名
Handle 已使用
用户名已使用
- 启用返回 YouTube 用户名
+ 启用恢复 YouTube 用户名
"需要 YouTube Data API v3 开发者密钥才能将 handle 替换为用户名
免费计划下的 API 密钥每日配额为 10,000,其中每替换 1 条评论的 handle 为用户名会消耗 1 个配额
@@ -1334,7 +1334,7 @@ Note:
点踩百分比
点踩数已隐藏
点踩数已显示
- Return YouTube Dislike
+ 恢复 YouTube 点踩
预估点赞数已隐藏
预估点赞数已显示
显示预估点赞数
@@ -1342,15 +1342,15 @@ Note:
点踩数不可用(状态 %d)
点踩数暂时不可用(API 连接超时)
点踩数不可用(%s)
- 重新加载视频以使用 Return YouTube Dislike进行投票
+ 重新加载视频以使用 Return YouTube Dislike 进行投票
点踩数已在 Shorts 中隐藏
点踩数已在 Shorts 中显示
"在 Shorts 中显示点踩数
限制:在无痕模式下,点踩数可能不会显示"
在 Shorts 中显示点踩数
- 如果 YouTube Dislike 不可用,不会显示 Toast
- 如果 YouTube Dislike 不可用,会显示 Toast
+ 如果恢复 YouTube 点踩不可用,不显示 Toast
+ 如果恢复 YouTube 点踩不可用,则显示 Toast
如果 API 不可用,显示 Toast
隐藏
共享链接时,删除 URL 中的跟踪查询参数
@@ -1360,7 +1360,7 @@ Note:
清理视频字幕
关于
sponsor.ajay.app
- 数据由SponsorBlock API提供点击此处了解更多信息并查看其他平台的下载
+ 数据由 SponsorBlock API 提供,点击此处了解更多信息并查看其他平台的下载
API URL 已更改
API URL 无效
API URL 已重置
@@ -1459,7 +1459,7 @@ Note:
复制
导出失败:%s
导入 / 导出设置
- 您的 SponsorBlock JSON 配置,可导入 / 导出到 ReVanced Extended 和其他 SponsorBlock平台
+ 您的 SponsorBlock JSON 配置,可导入 / 导出到 ReVanced Extended 和其他 SponsorBlock 平台
您的 SponsorBlock JSON 配置,可导入 / 导出到 ReVanced Extended 和其他 SponsorBlock 平台包含您的私人用户 ID,请谨慎分享
导入失败:%s
配置文件成功导入
@@ -1518,15 +1518,15 @@ Note:
SponsorBlock 排行榜
SponsorBlock 已禁用
你已经跳过了 <b>%s</b> 段视频
- 重置跳过的段视频计数器?
- 那是 <b>%s</b>。
+ 重置跳过的视频片段计数器?
+ 一共 <b>%s</b>
你已经创建了 <b>%s</b> 段视频
点击此处查看您的片段
你的用户名:<b>%s</b>
点击这里更改你的用户名
无法更改用户名:状态:%1$d %2$s。
用户名成功更改。
- 无法提交该段视频。\n已存在。
+ 无法提交该视频片段\n已存在
无法提交片段:%s
无法提交片段:%s
无法提交片段\n频率受限(来自同一用户或 IP 次数过多)
@@ -1625,14 +1625,9 @@ AVC (H.264) 的最大解析度为 1080p,且视频播放将使用比 VP9 或 AV
流媒体数据已伪装
伪装流媒体数据
Android
- Android 创建者
- Android 嵌入式播放器
- Android 测试套件
Android TV
Android VR
iOS
- TV HTML5
- 网址
默认客户端
关闭此选项可能会导致视频不能正常播放
亮度滑动灵敏度必须介于 1-1000 之间 (%)
@@ -1673,7 +1668,6 @@ AVC (H.264) 的最大解析度为 1080p,且视频播放将使用比 VP9 或 AV
如果此设置未生效,请尝试切换到隐身模式"
Stock
RVX Music
- 警告
%s 未安装,请先安装
已安装的 RVX Music 包名
RVX Music 包名
diff --git a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml
index 28ad67da1..08acb435e 100644
--- a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml
+++ b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml
@@ -1,7 +1,21 @@
-
+
+ "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
+
+Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
+
+This feature works best with a very fast internet connection."
+ Seekbar thumbnails are medium quality.
+ Seekbar thumbnails are high quality.
+ Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
+ Floating button is shown.
+ Floating button is hidden.
+ Hide floating button
+ Shopping shelf is shown.
+ Shopping shelf is hidden.
+ Hide player shopping shelf
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/zh-rTW/strings.xml b/src/main/resources/youtube/translations/zh-rTW/strings.xml
index 823d0f566..f53b8ae42 100644
--- a/src/main/resources/youtube/translations/zh-rTW/strings.xml
+++ b/src/main/resources/youtube/translations/zh-rTW/strings.xml
@@ -1,4 +1,4 @@
-
+
是否啟用影片播放器的無障礙控制?
由於已啟用無障礙服務,因此您的控制項被修改。
@@ -1625,14 +1625,9 @@ AVC (H.264) 的最大解析度為 1080p,影片播放將比 VP9 或 AV1 使用
串流資料已偽裝。
偽裝串流數據
安卓
- 安卓創作者
- Android 嵌入式播放器
- Android 測試套件
Android 電視
Android VR
iOS
- TV HTML5
- Web
預設客戶端
關閉此設定可能會導致影片播放問題。
滑動控制 (亮度) 靈敏度的值必須在 1-1000 (%) 之間
@@ -1673,7 +1668,6 @@ AVC (H.264) 的最大解析度為 1080p,影片播放將比 VP9 或 AV1 使用
若此設定未生效,請嘗試切換至無痕模式。"
預設
RVX 音樂
- 警告
%s 未安裝。 請安裝它。
已安裝的 RVX 音樂 套件名稱。
RVX 音樂包名稱
From 08084103b99ae77da8ac24106a36a1f074787a0b Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Tue, 29 Oct 2024 09:23:51 +0300
Subject: [PATCH 05/18] build: Update api
---
api/revanced-patches.api | 3 +++
1 file changed, 3 insertions(+)
diff --git a/api/revanced-patches.api b/api/revanced-patches.api
index 3cd9098f2..6d688233b 100644
--- a/api/revanced-patches.api
+++ b/api/revanced-patches.api
@@ -783,16 +783,19 @@ public final class app/revanced/patches/shared/litho/LithoFilterPatch : app/reva
public abstract class app/revanced/patches/shared/mainactivity/BaseMainActivityResolvePatch : app/revanced/patcher/patch/BytecodePatch {
public field mainActivityMutableClass Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;
public field onConfigurationChangedMethod Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;
+ public field onCreateMethod Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;
public fun (Lapp/revanced/patcher/fingerprint/MethodFingerprint;)V
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
public final fun getMainActivityMutableClass ()Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;
public final fun getOnConfigurationChangedMethod ()Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;
+ public final fun getOnCreateMethod ()Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;
public final fun injectConstructorMethodCall (Ljava/lang/String;Ljava/lang/String;)V
public final fun injectOnBackPressedMethodCall (Ljava/lang/String;Ljava/lang/String;)V
public final fun injectOnCreateMethodCall (Ljava/lang/String;Ljava/lang/String;)V
public final fun setMainActivityMutableClass (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;)V
public final fun setOnConfigurationChangedMethod (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;)V
+ public final fun setOnCreateMethod (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;)V
}
public final class app/revanced/patches/shared/mapping/ResourceMappingPatch : app/revanced/patcher/patch/ResourcePatch {
From 53044ae7280cc0f7074a2d3b2b4bd0b7c692dbd4 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Tue, 29 Oct 2024 09:42:36 +0300
Subject: [PATCH 06/18] build: Update dependencies
---
package-lock.json | 3766 ++++++++++++++++++++++++++++-----------------
package.json | 4 +-
2 files changed, 2326 insertions(+), 1444 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7e0b101d5..3de45b5b9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,175 +8,41 @@
"@saithodev/semantic-release-backmerge": "^4.0.1",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
- "gradle-semantic-release-plugin": "^1.9.2",
- "semantic-release": "^24.1.0"
+ "gradle-semantic-release-plugin": "^1.10.1",
+ "semantic-release": "^24.2.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
- "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz",
+ "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.23.4",
- "chalk": "^2.4.2"
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/highlight": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
- "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
"integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
+ "license": "MIT",
"optional": true,
"engines": {
"node": ">=0.1.90"
@@ -187,6 +53,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -200,6 +67,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -209,6 +77,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -218,149 +87,158 @@
}
},
"node_modules/@octokit/auth-token": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
- "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz",
+ "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/core": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz",
- "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz",
+ "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/auth-token": "^4.0.0",
- "@octokit/graphql": "^7.0.0",
- "@octokit/request": "^8.0.2",
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
- "before-after-hook": "^2.2.0",
- "universal-user-agent": "^6.0.0"
+ "@octokit/auth-token": "^5.0.0",
+ "@octokit/graphql": "^8.0.0",
+ "@octokit/request": "^9.0.0",
+ "@octokit/request-error": "^6.0.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^3.0.2",
+ "universal-user-agent": "^7.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/endpoint": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz",
- "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==",
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz",
+ "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^12.0.0",
- "universal-user-agent": "^6.0.0"
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.2"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/graphql": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz",
- "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz",
+ "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/request": "^8.0.1",
- "@octokit/types": "^12.0.0",
- "universal-user-agent": "^6.0.0"
+ "@octokit/request": "^9.0.0",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/openapi-types": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz",
- "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==",
- "dev": true
+ "version": "22.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
+ "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@octokit/plugin-paginate-rest": {
- "version": "9.1.5",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz",
- "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==",
+ "version": "11.3.5",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz",
+ "integrity": "sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^12.4.0"
+ "@octokit/types": "^13.6.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": ">=5"
+ "@octokit/core": ">=6"
}
},
"node_modules/@octokit/plugin-retry": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz",
- "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz",
+ "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
+ "@octokit/request-error": "^6.0.0",
+ "@octokit/types": "^13.0.0",
"bottleneck": "^2.15.3"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": ">=5"
+ "@octokit/core": ">=6"
}
},
"node_modules/@octokit/plugin-throttling": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz",
- "integrity": "sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.2.tgz",
+ "integrity": "sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^12.2.0",
+ "@octokit/types": "^13.0.0",
"bottleneck": "^2.15.3"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": "^5.0.0"
+ "@octokit/core": "^6.0.0"
}
},
"node_modules/@octokit/request": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz",
- "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==",
+ "version": "9.1.3",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz",
+ "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/endpoint": "^9.0.0",
- "@octokit/request-error": "^5.0.0",
- "@octokit/types": "^12.0.0",
- "universal-user-agent": "^6.0.0"
+ "@octokit/endpoint": "^10.0.0",
+ "@octokit/request-error": "^6.0.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^7.0.2"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/request-error": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz",
- "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==",
+ "version": "6.1.5",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.5.tgz",
+ "integrity": "sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^12.0.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
+ "@octokit/types": "^13.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/types": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz",
- "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==",
+ "version": "13.6.1",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz",
+ "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/openapi-types": "^19.1.0"
+ "@octokit/openapi-types": "^22.2.0"
}
},
"node_modules/@pnpm/config.env-replace": {
@@ -368,6 +246,7 @@
"resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
"integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12.22.0"
}
@@ -377,6 +256,7 @@
"resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
"integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "4.2.10"
},
@@ -388,13 +268,15 @@
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@pnpm/npm-conf": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz",
- "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz",
+ "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@pnpm/config.env-replace": "^1.1.0",
"@pnpm/network.ca-file": "^1.0.1",
@@ -409,6 +291,7 @@
"resolved": "https://registry.npmjs.org/@saithodev/semantic-release-backmerge/-/semantic-release-backmerge-4.0.1.tgz",
"integrity": "sha512-WDsU28YrXSLx0xny7FgFlEk8DCKGcj6OOhA+4Q9k3te1jJD1GZuqY8sbIkVQaw9cqJ7CT+fCZUN6QDad8JW4Dg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@semantic-release/error": "^3.0.0",
"aggregate-error": "^3.1.0",
@@ -418,37 +301,509 @@
"semantic-release": "^22.0.7"
}
},
- "node_modules/@saithodev/semantic-release-backmerge/node_modules/clean-stack": {
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/core": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz",
- "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
+ "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "escape-string-regexp": "5.0.0"
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 18"
}
},
- "node_modules/@saithodev/semantic-release-backmerge/node_modules/cosmiconfig": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
- "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/endpoint": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz",
+ "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0",
- "path-type": "^4.0.0"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/graphql": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz",
+ "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request": "^8.3.0",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/openapi-types": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-paginate-rest": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz",
+ "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^12.6.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^20.0.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-retry": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz",
+ "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^12.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=5"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-retry/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^20.0.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-throttling": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz",
+ "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^12.2.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "^5.0.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^20.0.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/request": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz",
+ "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/endpoint": "^9.0.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/request-error": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz",
+ "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/commit-analyzer": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz",
+ "integrity": "sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "conventional-changelog-angular": "^7.0.0",
+ "conventional-commits-filter": "^4.0.0",
+ "conventional-commits-parser": "^5.0.0",
+ "debug": "^4.0.0",
+ "import-from-esm": "^1.0.3",
+ "lodash-es": "^4.17.21",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": "^18.17 || >=20.6.1"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=20.1.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/github": {
+ "version": "9.2.6",
+ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.6.tgz",
+ "integrity": "sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/core": "^5.0.0",
+ "@octokit/plugin-paginate-rest": "^9.0.0",
+ "@octokit/plugin-retry": "^6.0.0",
+ "@octokit/plugin-throttling": "^8.0.0",
+ "@semantic-release/error": "^4.0.0",
+ "aggregate-error": "^5.0.0",
+ "debug": "^4.3.4",
+ "dir-glob": "^3.0.1",
+ "globby": "^14.0.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.0",
+ "issue-parser": "^6.0.0",
+ "lodash-es": "^4.17.21",
+ "mime": "^4.0.0",
+ "p-filter": "^4.0.0",
+ "url-join": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=20.1.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/github/node_modules/@semantic-release/error": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
+ "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/github/node_modules/aggregate-error": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz",
+ "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clean-stack": "^5.2.0",
+ "indent-string": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.3.tgz",
+ "integrity": "sha512-KUsozQGhRBAnoVg4UMZj9ep436VEGwT536/jwSqB7vcEfA6oncCUU7UIYTRdLx7GvTtqn0kBjnkfLVkcnBa2YQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@semantic-release/error": "^4.0.0",
+ "aggregate-error": "^5.0.0",
+ "execa": "^8.0.0",
+ "fs-extra": "^11.0.0",
+ "lodash-es": "^4.17.21",
+ "nerf-dart": "^1.0.0",
+ "normalize-url": "^8.0.0",
+ "npm": "^10.5.0",
+ "rc": "^1.2.8",
+ "read-pkg": "^9.0.0",
+ "registry-auth-token": "^5.0.0",
+ "semver": "^7.1.2",
+ "tempy": "^3.0.0"
+ },
+ "engines": {
+ "node": "^18.17 || >=20"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=20.1.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/@semantic-release/error": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
+ "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/aggregate-error": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz",
+ "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clean-stack": "^5.2.0",
+ "indent-string": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/release-notes-generator": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz",
+ "integrity": "sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "conventional-changelog-angular": "^7.0.0",
+ "conventional-changelog-writer": "^7.0.0",
+ "conventional-commits-filter": "^4.0.0",
+ "conventional-commits-parser": "^5.0.0",
+ "debug": "^4.0.0",
+ "get-stream": "^7.0.0",
+ "import-from-esm": "^1.0.3",
+ "into-stream": "^7.0.0",
+ "lodash-es": "^4.17.21",
+ "read-pkg-up": "^11.0.0"
+ },
+ "engines": {
+ "node": "^18.17 || >=20.6.1"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=20.1.0"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz",
+ "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/ansi-escapes": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz",
+ "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/before-after-hook": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
+ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/clean-stack": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz",
+ "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "5.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-angular": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
+ "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "compare-func": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-writer": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz",
+ "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "conventional-commits-filter": "^4.0.0",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "meow": "^12.0.1",
+ "semver": "^7.5.2",
+ "split2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-changelog-writer": "cli.mjs"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-commits-filter": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz",
+ "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-commits-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-commits-parser": "cli.mjs"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
},
"peerDependencies": {
"typescript": ">=4.9.5"
@@ -464,6 +819,7 @@
"resolved": "https://registry.npmjs.org/env-ci/-/env-ci-10.0.0.tgz",
"integrity": "sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"execa": "^8.0.0",
"java-properties": "^1.0.2"
@@ -477,6 +833,7 @@
"resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
@@ -500,6 +857,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
"integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -507,11 +865,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@saithodev/semantic-release-backmerge/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/find-versions": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz",
+ "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver-regex": "^4.0.5"
+ },
"engines": {
"node": ">=12"
},
@@ -519,11 +881,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
"node_modules/@saithodev/semantic-release-backmerge/node_modules/human-signals": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
"integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=16.17.0"
}
@@ -533,6 +909,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -545,6 +922,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -552,11 +930,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/issue-parser": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz",
+ "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash.capitalize": "^4.2.1",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.uniqby": "^4.7.0"
+ },
+ "engines": {
+ "node": ">=10.13"
+ }
+ },
"node_modules/@saithodev/semantic-release-backmerge/node_modules/marked": {
"version": "9.1.6",
"resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz",
"integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==",
"dev": true,
+ "license": "MIT",
"bin": {
"marked": "bin/marked.js"
},
@@ -569,6 +965,7 @@
"resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-6.2.0.tgz",
"integrity": "sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-escapes": "^6.2.0",
"cardinal": "^2.1.1",
@@ -580,8 +977,21 @@
"engines": {
"node": ">=16.0.0"
},
- "peerDependencies": {
- "marked": ">=1 <12"
+ "peerDependencies": {
+ "marked": ">=1 <12"
+ }
+ },
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@saithodev/semantic-release-backmerge/node_modules/mimic-fn": {
@@ -589,6 +999,7 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -597,10 +1008,11 @@
}
},
"node_modules/@saithodev/semantic-release-backmerge/node_modules/npm-run-path": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
- "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^4.0.0"
},
@@ -616,6 +1028,7 @@
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^4.0.0"
},
@@ -631,6 +1044,7 @@
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz",
"integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -643,6 +1057,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -655,6 +1070,7 @@
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.12.tgz",
"integrity": "sha512-0mhiCR/4sZb00RVFJIUlMuiBkW3NMpVIW2Gse7noqEMoFGkvfPPAImEQbkBV8xga4KOPP4FdTRYuLLy32R1fPw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@semantic-release/commit-analyzer": "^11.0.0",
"@semantic-release/error": "^4.0.0",
@@ -698,6 +1114,7 @@
"resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
"integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -707,6 +1124,7 @@
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -723,6 +1141,7 @@
"resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
@@ -746,6 +1165,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
"integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -758,6 +1178,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -770,6 +1191,7 @@
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -777,17 +1199,26 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@saithodev/semantic-release-backmerge/node_modules/universal-user-agent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
+ "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@sec-ant/readable-stream": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
"integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@semantic-release/changelog": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz",
"integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@semantic-release/error": "^3.0.0",
"aggregate-error": "^3.0.0",
@@ -802,21 +1233,23 @@
}
},
"node_modules/@semantic-release/commit-analyzer": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz",
- "integrity": "sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz",
+ "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "conventional-changelog-angular": "^7.0.0",
- "conventional-commits-filter": "^4.0.0",
- "conventional-commits-parser": "^5.0.0",
+ "conventional-changelog-angular": "^8.0.0",
+ "conventional-changelog-writer": "^8.0.0",
+ "conventional-commits-filter": "^5.0.0",
+ "conventional-commits-parser": "^6.0.0",
"debug": "^4.0.0",
"import-from-esm": "^1.0.3",
"lodash-es": "^4.17.21",
"micromatch": "^4.0.2"
},
"engines": {
- "node": "^18.17 || >=20.6.1"
+ "node": ">=20.8.1"
},
"peerDependencies": {
"semantic-release": ">=20.1.0"
@@ -827,6 +1260,7 @@
"resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz",
"integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.17"
}
@@ -836,6 +1270,7 @@
"resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
"integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@semantic-release/error": "^3.0.0",
"aggregate-error": "^3.0.0",
@@ -854,15 +1289,16 @@
}
},
"node_modules/@semantic-release/github": {
- "version": "9.2.6",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.6.tgz",
- "integrity": "sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-11.0.0.tgz",
+ "integrity": "sha512-Uon6G6gJD8U1JNvPm7X0j46yxNRJ8Ui6SgK4Zw5Ktu8RgjEft3BGn+l/RX1TTzhhO3/uUcKuqM+/9/ETFxWS/Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/core": "^5.0.0",
- "@octokit/plugin-paginate-rest": "^9.0.0",
- "@octokit/plugin-retry": "^6.0.0",
- "@octokit/plugin-throttling": "^8.0.0",
+ "@octokit/core": "^6.0.0",
+ "@octokit/plugin-paginate-rest": "^11.0.0",
+ "@octokit/plugin-retry": "^7.0.0",
+ "@octokit/plugin-throttling": "^9.0.0",
"@semantic-release/error": "^4.0.0",
"aggregate-error": "^5.0.0",
"debug": "^4.3.4",
@@ -870,17 +1306,17 @@
"globby": "^14.0.0",
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.0",
- "issue-parser": "^6.0.0",
+ "issue-parser": "^7.0.0",
"lodash-es": "^4.17.21",
"mime": "^4.0.0",
"p-filter": "^4.0.0",
"url-join": "^5.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20.8.1"
},
"peerDependencies": {
- "semantic-release": ">=20.1.0"
+ "semantic-release": ">=24.1.0"
}
},
"node_modules/@semantic-release/github/node_modules/@semantic-release/error": {
@@ -888,6 +1324,7 @@
"resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
"integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -897,6 +1334,7 @@
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -913,6 +1351,7 @@
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "5.0.0"
},
@@ -923,23 +1362,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@semantic-release/github/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@semantic-release/github/node_modules/indent-string": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -948,19 +1376,20 @@
}
},
"node_modules/@semantic-release/npm": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.2.tgz",
- "integrity": "sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==",
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz",
+ "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@semantic-release/error": "^4.0.0",
"aggregate-error": "^5.0.0",
- "execa": "^8.0.0",
+ "execa": "^9.0.0",
"fs-extra": "^11.0.0",
"lodash-es": "^4.17.21",
"nerf-dart": "^1.0.0",
"normalize-url": "^8.0.0",
- "npm": "^10.0.0",
+ "npm": "^10.5.0",
"rc": "^1.2.8",
"read-pkg": "^9.0.0",
"registry-auth-token": "^5.0.0",
@@ -968,7 +1397,7 @@
"tempy": "^3.0.0"
},
"engines": {
- "node": "^18.17 || >=20"
+ "node": ">=20.8.1"
},
"peerDependencies": {
"semantic-release": ">=20.1.0"
@@ -979,8 +1408,22 @@
"resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
"integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/npm/node_modules/aggregate-error": {
@@ -988,6 +1431,7 @@
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -1004,6 +1448,7 @@
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "5.0.0"
},
@@ -1014,60 +1459,58 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@semantic-release/npm/node_modules/execa": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.0.tgz",
+ "integrity": "sha512-t7vvYt+oKnMbF3O+S5+HkylsPrsUatwJSe4Cv+4017R0MCySjECxnVJ2eyDXVD/Xpj5H29YzyYn6eEpugG7GJA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "@sindresorhus/merge-streams": "^4.0.0",
"cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
+ "figures": "^6.1.0",
+ "get-stream": "^9.0.0",
+ "human-signals": "^8.0.0",
+ "is-plain-obj": "^4.1.0",
+ "is-stream": "^4.0.1",
+ "npm-run-path": "^6.0.0",
+ "pretty-ms": "^9.0.0",
"signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
+ "strip-final-newline": "^4.0.0",
+ "yoctocolors": "^2.0.0"
},
"engines": {
- "node": ">=16.17"
+ "node": "^18.19.0 || >=20.5.0"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/@semantic-release/npm/node_modules/get-stream": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
+ "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sec-ant/readable-stream": "^0.4.1",
+ "is-stream": "^4.0.1"
+ },
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/npm/node_modules/human-signals": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz",
+ "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=16.17.0"
+ "node": ">=18.18.0"
}
},
"node_modules/@semantic-release/npm/node_modules/indent-string": {
@@ -1075,6 +1518,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1083,54 +1527,30 @@
}
},
"node_modules/@semantic-release/npm/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@semantic-release/npm/node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
+ "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/npm/node_modules/npm-run-path": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
- "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
- "dev": true,
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@semantic-release/npm/node_modules/onetime": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
+ "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "mimic-fn": "^4.0.0"
+ "path-key": "^4.0.0",
+ "unicorn-magic": "^0.3.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -1141,6 +1561,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1153,6 +1574,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -1161,36 +1583,51 @@
}
},
"node_modules/@semantic-release/npm/node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
+ "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/release-notes-generator": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz",
- "integrity": "sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==",
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz",
+ "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "conventional-changelog-angular": "^7.0.0",
- "conventional-changelog-writer": "^7.0.0",
- "conventional-commits-filter": "^4.0.0",
- "conventional-commits-parser": "^5.0.0",
+ "conventional-changelog-angular": "^8.0.0",
+ "conventional-changelog-writer": "^8.0.0",
+ "conventional-commits-filter": "^5.0.0",
+ "conventional-commits-parser": "^6.0.0",
"debug": "^4.0.0",
"get-stream": "^7.0.0",
"import-from-esm": "^1.0.3",
"into-stream": "^7.0.0",
"lodash-es": "^4.17.21",
- "read-pkg-up": "^11.0.0"
+ "read-package-up": "^11.0.0"
},
"engines": {
- "node": "^18.17 || >=20.6.1"
+ "node": ">=20.8.1"
},
"peerDependencies": {
"semantic-release": ">=20.1.0"
@@ -1201,6 +1638,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz",
"integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -1213,6 +1651,7 @@
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
"integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -1221,10 +1660,11 @@
}
},
"node_modules/@sindresorhus/merge-streams": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.0.tgz",
- "integrity": "sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
+ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -1236,19 +1676,22 @@
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
"integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/semver": {
"version": "7.5.8",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
"integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.3.4"
},
@@ -1261,6 +1704,7 @@
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -1270,15 +1714,16 @@
}
},
"node_modules/ansi-escapes": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
- "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz",
+ "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "type-fest": "^3.0.0"
+ "environment": "^1.0.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -1289,6 +1734,7 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1298,6 +1744,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1312,51 +1759,59 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
"integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/argv-formatter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz",
"integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/array-ify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
"integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
- "dev": true
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
+ "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==",
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/bottleneck": {
"version": "2.19.5",
"resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
"integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -1367,6 +1822,7 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -1376,6 +1832,7 @@
"resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
"integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansicolors": "~0.3.2",
"redeyed": "~2.1.0"
@@ -1389,6 +1846,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -1401,6 +1859,7 @@
"resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
@@ -1410,6 +1869,7 @@
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -1419,6 +1879,7 @@
"resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
"integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"chalk": "^4.0.0",
"highlight.js": "^10.7.1",
@@ -1440,6 +1901,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1456,6 +1918,7 @@
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -1467,6 +1930,7 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -1485,15 +1949,17 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
},
"node_modules/cli-table3": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
- "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"string-width": "^4.2.0"
},
@@ -1509,6 +1975,7 @@
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -1523,6 +1990,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1534,13 +2002,15 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/compare-func": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
"integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-ify": "^1.0.0",
"dot-prop": "^5.1.0"
@@ -1551,68 +2021,69 @@
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
"integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ini": "^1.3.4",
"proto-list": "~1.2.1"
}
},
"node_modules/conventional-changelog-angular": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz",
+ "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"compare-func": "^2.0.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/conventional-changelog-writer": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz",
- "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz",
+ "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "conventional-commits-filter": "^4.0.0",
+ "@types/semver": "^7.5.5",
+ "conventional-commits-filter": "^5.0.0",
"handlebars": "^4.7.7",
- "json-stringify-safe": "^5.0.1",
- "meow": "^12.0.1",
- "semver": "^7.5.2",
- "split2": "^4.0.0"
+ "meow": "^13.0.0",
+ "semver": "^7.5.2"
},
"bin": {
- "conventional-changelog-writer": "cli.mjs"
+ "conventional-changelog-writer": "dist/cli/index.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/conventional-commits-filter": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz",
- "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz",
+ "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/conventional-commits-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz",
- "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz",
+ "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-text-path": "^2.0.0",
- "JSONStream": "^1.3.5",
- "meow": "^12.0.1",
- "split2": "^4.0.0"
+ "meow": "^13.0.0"
},
"bin": {
- "conventional-commits-parser": "cli.mjs"
+ "conventional-commits-parser": "dist/cli/index.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/convert-hrtime": {
@@ -1620,6 +2091,7 @@
"resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz",
"integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1631,13 +2103,15 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cosmiconfig": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"env-paths": "^2.2.1",
"import-fresh": "^3.3.0",
@@ -1664,6 +2138,7 @@
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -1678,6 +2153,7 @@
"resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
"integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -1693,6 +2169,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
"integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -1701,12 +2178,13 @@
}
},
"node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -1722,6 +2200,7 @@
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
@@ -1730,13 +2209,15 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-type": "^4.0.0"
},
@@ -1749,6 +2230,7 @@
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
"integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-obj": "^2.0.0"
},
@@ -1761,6 +2243,7 @@
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
"integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"readable-stream": "^2.0.2"
}
@@ -1769,19 +2252,22 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/emojilib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz",
"integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/env-ci": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.0.0.tgz",
- "integrity": "sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz",
+ "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"execa": "^8.0.0",
"java-properties": "^1.0.2"
@@ -1795,6 +2281,7 @@
"resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
@@ -1818,6 +2305,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
"integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -1830,6 +2318,7 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
"integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=16.17.0"
}
@@ -1839,6 +2328,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -1851,6 +2341,7 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1859,10 +2350,11 @@
}
},
"node_modules/env-ci/node_modules/npm-run-path": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
- "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^4.0.0"
},
@@ -1878,6 +2370,7 @@
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^4.0.0"
},
@@ -1893,6 +2386,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1905,6 +2399,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -1917,6 +2412,7 @@
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1929,35 +2425,55 @@
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
+ "node_modules/environment": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
+ "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-arrayish": "^0.2.1"
}
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.8.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/esprima": {
@@ -1965,6 +2481,7 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
+ "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -1978,6 +2495,7 @@
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.0",
@@ -2001,6 +2519,7 @@
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -2017,6 +2536,7 @@
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
}
@@ -2026,6 +2546,7 @@
"resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz",
"integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-unicode-supported": "^2.0.0"
},
@@ -2037,10 +2558,11 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -2053,6 +2575,7 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^2.0.0"
},
@@ -2065,6 +2588,7 @@
"resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz",
"integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2073,15 +2597,17 @@
}
},
"node_modules/find-versions": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz",
- "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz",
+ "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "semver-regex": "^4.0.5"
+ "semver-regex": "^4.0.5",
+ "super-regex": "^1.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2092,6 +2618,7 @@
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
"integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.1",
"readable-stream": "^2.0.0"
@@ -2102,6 +2629,7 @@
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
"integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2111,20 +2639,12 @@
"node": ">=14.14"
}
},
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/function-timeout": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz",
"integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2137,6 +2657,7 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
@@ -2146,6 +2667,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -2154,17 +2676,18 @@
}
},
"node_modules/git-log-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz",
- "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz",
+ "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argv-formatter": "~1.0.0",
"spawn-error-forwarder": "~1.0.0",
"split2": "~1.0.0",
"stream-combiner2": "~1.1.1",
"through2": "~2.0.0",
- "traverse": "~0.6.6"
+ "traverse": "0.6.8"
}
},
"node_modules/git-log-parser/node_modules/split2": {
@@ -2172,6 +2695,7 @@
"resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz",
"integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"through2": "~2.0.0"
}
@@ -2181,6 +2705,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -2189,10 +2714,11 @@
}
},
"node_modules/globby": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
- "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz",
+ "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^2.1.0",
"fast-glob": "^3.3.2",
@@ -2213,6 +2739,7 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
"integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -2224,12 +2751,13 @@
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/gradle-semantic-release-plugin": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.9.2.tgz",
- "integrity": "sha512-8qpf4GYFPQ+UMUymYBy/VchOOwLILAWzZMrZX1R0RR3JMgJBMN2R0tJn92R/3rXmxx4OAqwUFH6Np51eFoxr3w==",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.10.1.tgz",
+ "integrity": "sha512-Q4dLAFICjPouUyRRHEKK8cXNB75nraXoioYZDZlVQOg4sYKudnTDZ3ohLmV3k4cPGiiMCh1ckXETkx9JnuyKmA==",
"dev": true,
"funding": [
{
@@ -2237,6 +2765,7 @@
"url": "https://github.com/sponsors/KengoTODA"
}
],
+ "license": "MIT",
"dependencies": {
"promisified-properties": "^3.0.0",
"split2": "^4.1.0"
@@ -2253,6 +2782,7 @@
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
"integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.5",
"neo-async": "^2.6.2",
@@ -2274,27 +2804,17 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/hasown": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
- "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/highlight.js": {
"version": "10.7.3",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
"integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": "*"
}
@@ -2304,6 +2824,7 @@
"resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz",
"integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -2312,22 +2833,24 @@
}
},
"node_modules/hosted-git-info": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
- "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz",
+ "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"lru-cache": "^10.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/http-proxy-agent": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz",
- "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -2337,10 +2860,11 @@
}
},
"node_modules/https-proxy-agent": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz",
- "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
+ "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.0.2",
"debug": "4"
@@ -2354,15 +2878,17 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10.17.0"
}
},
"node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -2372,6 +2898,7 @@
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -2388,15 +2915,17 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/import-from-esm": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.3.tgz",
- "integrity": "sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz",
+ "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.3.4",
"import-meta-resolve": "^4.0.0"
@@ -2406,10 +2935,11 @@
}
},
"node_modules/import-meta-resolve": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz",
- "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -2420,6 +2950,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -2429,6 +2960,7 @@
"resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz",
"integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2440,19 +2972,22 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/ini": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/into-stream": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz",
"integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"from2": "^2.3.0",
"p-is-promise": "^3.0.0"
@@ -2468,25 +3003,15 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "license": "MIT"
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -2496,6 +3021,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -2505,6 +3031,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -2517,6 +3044,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -2526,6 +3054,7 @@
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -2535,6 +3064,7 @@
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
"integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -2547,6 +3077,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -2559,6 +3090,7 @@
"resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
"integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"text-extensions": "^2.0.0"
},
@@ -2567,10 +3099,11 @@
}
},
"node_modules/is-unicode-supported": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz",
- "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
+ "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -2582,19 +3115,22 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/issue-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz",
- "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz",
+ "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"lodash.capitalize": "^4.2.1",
"lodash.escaperegexp": "^4.1.2",
@@ -2603,7 +3139,7 @@
"lodash.uniqby": "^4.7.0"
},
"engines": {
- "node": ">=10.13"
+ "node": "^18.17 || >=20.6.1"
}
},
"node_modules/java-properties": {
@@ -2611,6 +3147,7 @@
"resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz",
"integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6.0"
}
@@ -2619,13 +3156,15 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -2637,25 +3176,29 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
@@ -2670,13 +3213,15 @@
"dev": true,
"engines": [
"node >= 0.2.0"
- ]
+ ],
+ "license": "MIT"
},
"node_modules/JSONStream": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"dev": true,
+ "license": "(MIT OR Apache-2.0)",
"dependencies": {
"jsonparse": "^1.2.0",
"through": ">=2.2.7 <3"
@@ -2692,13 +3237,15 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/load-json-file": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
"integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"parse-json": "^4.0.0",
@@ -2714,6 +3261,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
"integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -2727,6 +3275,7 @@
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -2739,58 +3288,64 @@
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.capitalize": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz",
"integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.escaperegexp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.isstring": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
"integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.uniqby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz",
"integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
+ "license": "ISC"
},
"node_modules/marked": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.0.tgz",
- "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==",
+ "version": "12.0.2",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz",
+ "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
"dev": true,
+ "license": "MIT",
"bin": {
"marked": "bin/marked.js"
},
@@ -2799,15 +3354,16 @@
}
},
"node_modules/marked-terminal": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.0.0.tgz",
- "integrity": "sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz",
+ "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-escapes": "^6.2.0",
+ "ansi-escapes": "^7.0.0",
"chalk": "^5.3.0",
"cli-highlight": "^2.1.11",
- "cli-table3": "^0.6.3",
+ "cli-table3": "^0.6.5",
"node-emoji": "^2.1.3",
"supports-hyperlinks": "^3.0.0"
},
@@ -2815,16 +3371,17 @@
"node": ">=16.0.0"
},
"peerDependencies": {
- "marked": ">=1 <13"
+ "marked": ">=1 <14"
}
},
"node_modules/meow": {
- "version": "12.1.1",
- "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
- "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=16.10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2834,24 +3391,27 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
},
"node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "braces": "^3.0.2",
+ "braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {
@@ -2859,13 +3419,14 @@
}
},
"node_modules/mime": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz",
- "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz",
+ "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==",
"dev": true,
"funding": [
"https://github.com/sponsors/broofa"
],
+ "license": "MIT",
"bin": {
"mime": "bin/cli.js"
},
@@ -2878,6 +3439,7 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -2887,21 +3449,24 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/mz": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
@@ -2912,19 +3477,22 @@
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/nerf-dart": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz",
"integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/node-emoji": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz",
"integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sindresorhus/is": "^4.6.0",
"char-regex": "^1.0.2",
@@ -2936,13 +3504,13 @@
}
},
"node_modules/normalize-package-data": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
- "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^7.0.0",
- "is-core-module": "^2.8.1",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
},
@@ -2950,11 +3518,25 @@
"node": "^16.14.0 || >=18.0.0"
}
},
+ "node_modules/normalize-package-data/node_modules/hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
"node_modules/normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
+ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
},
@@ -2963,9 +3545,9 @@
}
},
"node_modules/npm": {
- "version": "10.8.2",
- "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.2.tgz",
- "integrity": "sha512-x/AIjFIKRllrhcb48dqUNAAZl0ig9+qMuN91RpZo3Cb2+zuibfh+KISl6+kVVyktDz230JKc208UkQwwMqyB+w==",
+ "version": "10.9.0",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.0.tgz",
+ "integrity": "sha512-ZanDioFylI9helNhl2LNd+ErmVD+H5I53ry41ixlLyCBgkuYb+58CvbAp99hW+zr5L9W4X7CchSoeqKdngOLSw==",
"bundleDependencies": [
"@isaacs/string-locale-compare",
"@npmcli/arborist",
@@ -3037,75 +3619,83 @@
"write-file-atomic"
],
"dev": true,
+ "license": "Artistic-2.0",
+ "workspaces": [
+ "docs",
+ "smoke-tests",
+ "mock-globals",
+ "mock-registry",
+ "workspaces/*"
+ ],
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^7.5.4",
- "@npmcli/config": "^8.3.4",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/map-workspaces": "^3.0.6",
- "@npmcli/package-json": "^5.2.0",
- "@npmcli/promise-spawn": "^7.0.2",
- "@npmcli/redact": "^2.0.1",
- "@npmcli/run-script": "^8.1.0",
+ "@npmcli/arborist": "^8.0.0",
+ "@npmcli/config": "^9.0.0",
+ "@npmcli/fs": "^4.0.0",
+ "@npmcli/map-workspaces": "^4.0.1",
+ "@npmcli/package-json": "^6.0.1",
+ "@npmcli/promise-spawn": "^8.0.1",
+ "@npmcli/redact": "^3.0.0",
+ "@npmcli/run-script": "^9.0.1",
"@sigstore/tuf": "^2.3.4",
- "abbrev": "^2.0.0",
+ "abbrev": "^3.0.0",
"archy": "~1.0.0",
- "cacache": "^18.0.3",
+ "cacache": "^19.0.1",
"chalk": "^5.3.0",
"ci-info": "^4.0.0",
"cli-columns": "^4.0.0",
"fastest-levenshtein": "^1.0.16",
"fs-minipass": "^3.0.3",
- "glob": "^10.4.2",
+ "glob": "^10.4.5",
"graceful-fs": "^4.2.11",
- "hosted-git-info": "^7.0.2",
- "ini": "^4.1.3",
- "init-package-json": "^6.0.3",
+ "hosted-git-info": "^8.0.0",
+ "ini": "^5.0.0",
+ "init-package-json": "^7.0.1",
"is-cidr": "^5.1.0",
- "json-parse-even-better-errors": "^3.0.2",
- "libnpmaccess": "^8.0.6",
- "libnpmdiff": "^6.1.4",
- "libnpmexec": "^8.1.3",
- "libnpmfund": "^5.0.12",
- "libnpmhook": "^10.0.5",
- "libnpmorg": "^6.0.6",
- "libnpmpack": "^7.0.4",
- "libnpmpublish": "^9.0.9",
- "libnpmsearch": "^7.0.6",
- "libnpmteam": "^6.0.5",
- "libnpmversion": "^6.0.3",
- "make-fetch-happen": "^13.0.1",
+ "json-parse-even-better-errors": "^4.0.0",
+ "libnpmaccess": "^9.0.0",
+ "libnpmdiff": "^7.0.0",
+ "libnpmexec": "^9.0.0",
+ "libnpmfund": "^6.0.0",
+ "libnpmhook": "^11.0.0",
+ "libnpmorg": "^7.0.0",
+ "libnpmpack": "^8.0.0",
+ "libnpmpublish": "^10.0.0",
+ "libnpmsearch": "^8.0.0",
+ "libnpmteam": "^7.0.0",
+ "libnpmversion": "^7.0.0",
+ "make-fetch-happen": "^14.0.1",
"minimatch": "^9.0.5",
"minipass": "^7.1.1",
"minipass-pipeline": "^1.2.4",
"ms": "^2.1.2",
- "node-gyp": "^10.1.0",
- "nopt": "^7.2.1",
- "normalize-package-data": "^6.0.2",
- "npm-audit-report": "^5.0.0",
- "npm-install-checks": "^6.3.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.1.0",
- "npm-profile": "^10.0.0",
- "npm-registry-fetch": "^17.1.0",
- "npm-user-validate": "^2.0.1",
+ "node-gyp": "^10.2.0",
+ "nopt": "^8.0.0",
+ "normalize-package-data": "^7.0.0",
+ "npm-audit-report": "^6.0.0",
+ "npm-install-checks": "^7.1.0",
+ "npm-package-arg": "^12.0.0",
+ "npm-pick-manifest": "^10.0.0",
+ "npm-profile": "^11.0.1",
+ "npm-registry-fetch": "^18.0.1",
+ "npm-user-validate": "^3.0.0",
"p-map": "^4.0.0",
- "pacote": "^18.0.6",
- "parse-conflict-json": "^3.0.1",
- "proc-log": "^4.2.0",
+ "pacote": "^19.0.0",
+ "parse-conflict-json": "^4.0.0",
+ "proc-log": "^5.0.0",
"qrcode-terminal": "^0.12.0",
- "read": "^3.0.1",
- "semver": "^7.6.2",
+ "read": "^4.0.0",
+ "semver": "^7.6.3",
"spdx-expression-parse": "^4.0.0",
- "ssri": "^10.0.6",
+ "ssri": "^12.0.0",
"supports-color": "^9.4.0",
"tar": "^6.2.1",
"text-table": "~0.2.0",
"tiny-relative-date": "^1.3.0",
"treeverse": "^3.0.0",
- "validate-npm-package-name": "^5.0.1",
- "which": "^4.0.0",
- "write-file-atomic": "^5.0.1"
+ "validate-npm-package-name": "^6.0.0",
+ "which": "^5.0.0",
+ "write-file-atomic": "^6.0.0"
},
"bin": {
"npm": "bin/npm-cli.js",
@@ -3120,6 +3710,7 @@
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
},
@@ -3194,6 +3785,18 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
+ "node_modules/npm/node_modules/@isaacs/fs-minipass": {
+ "version": "4.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/@isaacs/string-locale-compare": {
"version": "1.1.0",
"dev": true,
@@ -3201,7 +3804,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/@npmcli/agent": {
- "version": "2.2.2",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -3213,48 +3816,48 @@
"socks-proxy-agent": "^8.0.3"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/arborist": {
- "version": "7.5.4",
+ "version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/installed-package-contents": "^2.1.0",
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^7.1.1",
- "@npmcli/name-from-folder": "^2.0.0",
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/query": "^3.1.0",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "bin-links": "^4.0.4",
- "cacache": "^18.0.3",
+ "@npmcli/fs": "^4.0.0",
+ "@npmcli/installed-package-contents": "^3.0.0",
+ "@npmcli/map-workspaces": "^4.0.1",
+ "@npmcli/metavuln-calculator": "^8.0.0",
+ "@npmcli/name-from-folder": "^3.0.0",
+ "@npmcli/node-gyp": "^4.0.0",
+ "@npmcli/package-json": "^6.0.1",
+ "@npmcli/query": "^4.0.0",
+ "@npmcli/redact": "^3.0.0",
+ "@npmcli/run-script": "^9.0.1",
+ "bin-links": "^5.0.0",
+ "cacache": "^19.0.1",
"common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^7.0.2",
- "json-parse-even-better-errors": "^3.0.2",
+ "hosted-git-info": "^8.0.0",
+ "json-parse-even-better-errors": "^4.0.0",
"json-stringify-nice": "^1.1.4",
"lru-cache": "^10.2.2",
"minimatch": "^9.0.4",
- "nopt": "^7.2.1",
- "npm-install-checks": "^6.2.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-registry-fetch": "^17.0.1",
- "pacote": "^18.0.6",
- "parse-conflict-json": "^3.0.0",
- "proc-log": "^4.2.0",
- "proggy": "^2.0.0",
+ "nopt": "^8.0.0",
+ "npm-install-checks": "^7.1.0",
+ "npm-package-arg": "^12.0.0",
+ "npm-pick-manifest": "^10.0.0",
+ "npm-registry-fetch": "^18.0.1",
+ "pacote": "^19.0.0",
+ "parse-conflict-json": "^4.0.0",
+ "proc-log": "^5.0.0",
+ "proggy": "^3.0.0",
"promise-all-reject-late": "^1.0.0",
"promise-call-limit": "^3.0.1",
- "read-package-json-fast": "^3.0.2",
+ "read-package-json-fast": "^4.0.0",
"semver": "^7.3.7",
- "ssri": "^10.0.6",
+ "ssri": "^12.0.0",
"treeverse": "^3.0.0",
"walk-up-path": "^3.0.1"
},
@@ -3262,30 +3865,30 @@
"arborist": "bin/index.js"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/config": {
- "version": "8.3.4",
+ "version": "9.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/package-json": "^5.1.1",
+ "@npmcli/map-workspaces": "^4.0.1",
+ "@npmcli/package-json": "^6.0.1",
"ci-info": "^4.0.0",
- "ini": "^4.1.2",
- "nopt": "^7.2.1",
- "proc-log": "^4.2.0",
+ "ini": "^5.0.0",
+ "nopt": "^8.0.0",
+ "proc-log": "^5.0.0",
"semver": "^7.3.5",
"walk-up-path": "^3.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/fs": {
- "version": "3.1.1",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -3293,217 +3896,353 @@
"semver": "^7.3.5"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/git": {
- "version": "5.0.8",
+ "version": "6.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/promise-spawn": "^7.0.0",
- "ini": "^4.1.3",
+ "@npmcli/promise-spawn": "^8.0.0",
+ "ini": "^5.0.0",
"lru-cache": "^10.0.1",
- "npm-pick-manifest": "^9.0.0",
- "proc-log": "^4.0.0",
+ "npm-pick-manifest": "^10.0.0",
+ "proc-log": "^5.0.0",
"promise-inflight": "^1.0.1",
"promise-retry": "^2.0.1",
"semver": "^7.3.5",
- "which": "^4.0.0"
+ "which": "^5.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/installed-package-contents": {
- "version": "2.1.0",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-bundled": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
+ "npm-bundled": "^4.0.0",
+ "npm-normalize-package-bin": "^4.0.0"
},
"bin": {
"installed-package-contents": "bin/index.js"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/map-workspaces": {
- "version": "3.0.6",
+ "version": "4.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/name-from-folder": "^2.0.0",
+ "@npmcli/name-from-folder": "^3.0.0",
+ "@npmcli/package-json": "^6.0.0",
"glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
+ "minimatch": "^9.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/metavuln-calculator": {
- "version": "7.1.1",
+ "version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "cacache": "^18.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "pacote": "^18.0.0",
- "proc-log": "^4.1.0",
+ "cacache": "^19.0.0",
+ "json-parse-even-better-errors": "^4.0.0",
+ "pacote": "^19.0.0",
+ "proc-log": "^5.0.0",
"semver": "^7.3.5"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/name-from-folder": {
- "version": "2.0.0",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/node-gyp": {
- "version": "3.0.0",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/@npmcli/package-json": {
- "version": "5.2.0",
+ "version": "6.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^6.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^8.0.0",
+ "json-parse-even-better-errors": "^4.0.0",
+ "normalize-package-data": "^7.0.0",
+ "proc-log": "^5.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/promise-spawn": {
+ "version": "8.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "which": "^5.0.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/query": {
+ "version": "4.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.2"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/redact": {
+ "version": "3.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/run-script": {
+ "version": "9.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/node-gyp": "^4.0.0",
+ "@npmcli/package-json": "^6.0.0",
+ "@npmcli/promise-spawn": "^8.0.0",
+ "node-gyp": "^10.0.0",
+ "proc-log": "^5.0.0",
+ "which": "^5.0.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/bundle": {
+ "version": "2.3.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/protobuf-specs": "^0.3.2"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/core": {
+ "version": "1.1.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/protobuf-specs": {
+ "version": "0.3.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/sign": {
+ "version": "2.3.2",
"dev": true,
"inBundle": true,
- "license": "ISC",
+ "license": "Apache-2.0",
"dependencies": {
- "@npmcli/git": "^5.0.0",
- "glob": "^10.2.2",
- "hosted-git-info": "^7.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^6.0.0",
- "proc-log": "^4.0.0",
- "semver": "^7.5.3"
+ "@sigstore/bundle": "^2.3.2",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.2",
+ "make-fetch-happen": "^13.0.1",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@npmcli/promise-spawn": {
- "version": "7.0.2",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/agent": {
+ "version": "2.2.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "which": "^4.0.0"
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.3"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@npmcli/query": {
- "version": "3.1.0",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/fs": {
+ "version": "3.1.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "semver": "^7.3.5"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@npmcli/redact": {
- "version": "2.0.1",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/cacache": {
+ "version": "18.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
+ "dependencies": {
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
+ },
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@npmcli/run-script": {
- "version": "8.1.0",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/make-fetch-happen": {
+ "version": "13.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.0.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "node-gyp": "^10.0.0",
- "proc-log": "^4.0.0",
- "which": "^4.0.0"
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/minipass-fetch": {
+ "version": "3.0.5",
"dev": true,
"inBundle": true,
"license": "MIT",
- "optional": true,
+ "dependencies": {
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
"engines": {
- "node": ">=14"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
}
},
- "node_modules/npm/node_modules/@sigstore/bundle": {
- "version": "2.3.2",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/proc-log": {
+ "version": "4.2.0",
"dev": true,
"inBundle": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2"
- },
+ "license": "ISC",
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@sigstore/core": {
- "version": "1.1.0",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/ssri": {
+ "version": "10.0.6",
"dev": true,
"inBundle": true,
- "license": "Apache-2.0",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@sigstore/protobuf-specs": {
- "version": "0.3.2",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-filename": {
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
- "license": "Apache-2.0",
+ "license": "ISC",
+ "dependencies": {
+ "unique-slug": "^4.0.0"
+ },
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@sigstore/sign": {
- "version": "2.3.2",
+ "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-slug": {
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
- "license": "Apache-2.0",
+ "license": "ISC",
"dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "make-fetch-happen": "^13.0.1",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1"
+ "imurmurhash": "^0.1.4"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@sigstore/tuf": {
@@ -3556,12 +4295,12 @@
}
},
"node_modules/npm/node_modules/abbrev": {
- "version": "2.0.0",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/agent-base": {
@@ -3629,18 +4368,19 @@
"license": "MIT"
},
"node_modules/npm/node_modules/bin-links": {
- "version": "4.0.4",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "cmd-shim": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "read-cmd-shim": "^4.0.0",
- "write-file-atomic": "^5.0.0"
+ "cmd-shim": "^7.0.0",
+ "npm-normalize-package-bin": "^4.0.0",
+ "proc-log": "^5.0.0",
+ "read-cmd-shim": "^5.0.0",
+ "write-file-atomic": "^6.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/binary-extensions": {
@@ -3665,12 +4405,12 @@
}
},
"node_modules/npm/node_modules/cacache": {
- "version": "18.0.3",
+ "version": "19.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/fs": "^3.1.0",
+ "@npmcli/fs": "^4.0.0",
"fs-minipass": "^3.0.0",
"glob": "^10.2.2",
"lru-cache": "^10.0.1",
@@ -3678,13 +4418,88 @@
"minipass-collect": "^2.0.1",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
- "p-map": "^4.0.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^3.0.0"
+ "p-map": "^7.0.2",
+ "ssri": "^12.0.0",
+ "tar": "^7.4.3",
+ "unique-filename": "^4.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/cacache/node_modules/chownr": {
+ "version": "3.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/npm/node_modules/cacache/node_modules/minizlib": {
+ "version": "3.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.0.4",
+ "rimraf": "^5.0.5"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/npm/node_modules/cacache/node_modules/mkdirp": {
+ "version": "3.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "dist/cjs/src/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/cacache/node_modules/p-map": {
+ "version": "7.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm/node_modules/cacache/node_modules/tar": {
+ "version": "7.4.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.0.1",
+ "mkdirp": "^3.0.1",
+ "yallist": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/npm/node_modules/cacache/node_modules/yallist": {
+ "version": "5.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/npm/node_modules/chalk": {
@@ -3758,12 +4573,12 @@
}
},
"node_modules/npm/node_modules/cmd-shim": {
- "version": "6.0.3",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/color-convert": {
@@ -3832,7 +4647,7 @@
}
},
"node_modules/npm/node_modules/debug": {
- "version": "4.3.5",
+ "version": "4.3.6",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -3916,7 +4731,7 @@
}
},
"node_modules/npm/node_modules/foreground-child": {
- "version": "3.2.1",
+ "version": "3.3.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -3944,7 +4759,7 @@
}
},
"node_modules/npm/node_modules/glob": {
- "version": "10.4.2",
+ "version": "10.4.5",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -3959,9 +4774,6 @@
"bin": {
"glob": "dist/esm/bin.mjs"
},
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
@@ -3973,7 +4785,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/hosted-git-info": {
- "version": "7.0.2",
+ "version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -3981,7 +4793,7 @@
"lru-cache": "^10.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/http-cache-semantics": {
@@ -4030,7 +4842,7 @@
}
},
"node_modules/npm/node_modules/ignore-walk": {
- "version": "6.0.5",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -4038,7 +4850,7 @@
"minimatch": "^9.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/imurmurhash": {
@@ -4060,30 +4872,30 @@
}
},
"node_modules/npm/node_modules/ini": {
- "version": "4.1.3",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/init-package-json": {
- "version": "6.0.3",
+ "version": "7.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/package-json": "^5.0.0",
- "npm-package-arg": "^11.0.0",
- "promzard": "^1.0.0",
- "read": "^3.0.1",
+ "@npmcli/package-json": "^6.0.0",
+ "npm-package-arg": "^12.0.0",
+ "promzard": "^2.0.0",
+ "read": "^4.0.0",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "^5.0.0"
+ "validate-npm-package-name": "^6.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/ip-address": {
@@ -4145,16 +4957,13 @@
"license": "ISC"
},
"node_modules/npm/node_modules/jackspeak": {
- "version": "3.4.0",
+ "version": "3.4.3",
"dev": true,
"inBundle": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
- "engines": {
- "node": ">=14"
- },
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
@@ -4169,12 +4978,12 @@
"license": "MIT"
},
"node_modules/npm/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/json-stringify-nice": {
@@ -4208,201 +5017,197 @@
"license": "MIT"
},
"node_modules/npm/node_modules/libnpmaccess": {
- "version": "8.0.6",
+ "version": "9.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1"
+ "npm-package-arg": "^12.0.0",
+ "npm-registry-fetch": "^18.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmdiff": {
- "version": "6.1.4",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.4",
- "@npmcli/installed-package-contents": "^2.1.0",
+ "@npmcli/arborist": "^8.0.0",
+ "@npmcli/installed-package-contents": "^3.0.0",
"binary-extensions": "^2.3.0",
"diff": "^5.1.0",
"minimatch": "^9.0.4",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6",
+ "npm-package-arg": "^12.0.0",
+ "pacote": "^19.0.0",
"tar": "^6.2.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmexec": {
- "version": "8.1.3",
+ "version": "9.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.4",
- "@npmcli/run-script": "^8.1.0",
+ "@npmcli/arborist": "^8.0.0",
+ "@npmcli/run-script": "^9.0.1",
"ci-info": "^4.0.0",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6",
- "proc-log": "^4.2.0",
- "read": "^3.0.1",
- "read-package-json-fast": "^3.0.2",
+ "npm-package-arg": "^12.0.0",
+ "pacote": "^19.0.0",
+ "proc-log": "^5.0.0",
+ "read": "^4.0.0",
+ "read-package-json-fast": "^4.0.0",
"semver": "^7.3.7",
"walk-up-path": "^3.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmfund": {
- "version": "5.0.12",
+ "version": "6.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.4"
+ "@npmcli/arborist": "^8.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmhook": {
- "version": "10.0.5",
+ "version": "11.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^18.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmorg": {
- "version": "6.0.6",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^18.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmpack": {
- "version": "7.0.4",
+ "version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.4",
- "@npmcli/run-script": "^8.1.0",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6"
+ "@npmcli/arborist": "^8.0.0",
+ "@npmcli/run-script": "^9.0.1",
+ "npm-package-arg": "^12.0.0",
+ "pacote": "^19.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmpublish": {
- "version": "9.0.9",
+ "version": "10.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"ci-info": "^4.0.0",
- "normalize-package-data": "^6.0.1",
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.2.0",
+ "normalize-package-data": "^7.0.0",
+ "npm-package-arg": "^12.0.0",
+ "npm-registry-fetch": "^18.0.1",
+ "proc-log": "^5.0.0",
"semver": "^7.3.7",
"sigstore": "^2.2.0",
- "ssri": "^10.0.6"
+ "ssri": "^12.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmsearch": {
- "version": "7.0.6",
+ "version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^18.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmteam": {
- "version": "6.0.5",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^18.0.1"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/libnpmversion": {
- "version": "6.0.3",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/git": "^5.0.7",
- "@npmcli/run-script": "^8.1.0",
- "json-parse-even-better-errors": "^3.0.2",
- "proc-log": "^4.2.0",
+ "@npmcli/git": "^6.0.1",
+ "@npmcli/run-script": "^9.0.1",
+ "json-parse-even-better-errors": "^4.0.0",
+ "proc-log": "^5.0.0",
"semver": "^7.3.7"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/lru-cache": {
- "version": "10.2.2",
+ "version": "10.4.3",
"dev": true,
"inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "14 || >=16.14"
- }
+ "license": "ISC"
},
"node_modules/npm/node_modules/make-fetch-happen": {
- "version": "13.0.1",
+ "version": "14.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/agent": "^2.0.0",
- "cacache": "^18.0.0",
+ "@npmcli/agent": "^3.0.0",
+ "cacache": "^19.0.1",
"http-cache-semantics": "^4.1.1",
- "is-lambda": "^1.0.1",
"minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
+ "minipass-fetch": "^4.0.0",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
"negotiator": "^0.6.3",
- "proc-log": "^4.2.0",
+ "proc-log": "^5.0.0",
"promise-retry": "^2.0.1",
- "ssri": "^10.0.0"
+ "ssri": "^12.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/minimatch": {
@@ -4442,22 +5247,35 @@
}
},
"node_modules/npm/node_modules/minipass-fetch": {
- "version": "3.0.5",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"minipass": "^7.0.3",
"minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
+ "minizlib": "^3.0.1"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
},
"optionalDependencies": {
"encoding": "^0.1.13"
}
},
+ "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": {
+ "version": "3.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.0.4",
+ "rimraf": "^5.0.5"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
"node_modules/npm/node_modules/minipass-flush": {
"version": "1.0.5",
"dev": true,
@@ -4574,12 +5392,12 @@
"license": "MIT"
},
"node_modules/npm/node_modules/mute-stream": {
- "version": "1.0.0",
+ "version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/negotiator": {
@@ -4592,7 +5410,7 @@
}
},
"node_modules/npm/node_modules/node-gyp": {
- "version": "10.1.0",
+ "version": "10.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -4603,9 +5421,9 @@
"graceful-fs": "^4.2.6",
"make-fetch-happen": "^13.0.0",
"nopt": "^7.0.0",
- "proc-log": "^3.0.0",
+ "proc-log": "^4.1.0",
"semver": "^7.3.5",
- "tar": "^6.1.2",
+ "tar": "^6.2.1",
"which": "^4.0.0"
},
"bin": {
@@ -4615,17 +5433,192 @@
"node": "^16.14.0 || >=18.0.0"
}
},
+ "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/agent": {
+ "version": "2.2.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": {
+ "version": "3.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": {
+ "version": "2.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/cacache": {
+ "version": "18.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/isexe": {
+ "version": "3.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": {
+ "version": "13.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": {
+ "version": "3.0.5",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/nopt": {
+ "version": "7.2.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/node-gyp/node_modules/proc-log": {
+ "version": "4.2.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/ssri": {
+ "version": "10.0.6",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
+ "dependencies": {
+ "unique-slug": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": {
+ "version": "4.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/npm/node_modules/node-gyp/node_modules/which": {
+ "version": "4.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/nopt": {
- "version": "7.2.1",
+ "version": "8.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -4635,47 +5628,56 @@
"bin": {
"nopt": "bin/nopt.js"
},
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/nopt/node_modules/abbrev": {
+ "version": "2.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/normalize-package-data": {
- "version": "6.0.2",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
"dependencies": {
- "hosted-git-info": "^7.0.0",
+ "hosted-git-info": "^8.0.0",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-audit-report": {
- "version": "5.0.0",
+ "version": "6.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-bundled": {
- "version": "3.0.1",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-normalize-package-bin": "^3.0.0"
+ "npm-normalize-package-bin": "^4.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-install-checks": {
- "version": "6.3.0",
+ "version": "7.1.0",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
@@ -4683,99 +5685,112 @@
"semver": "^7.1.1"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-normalize-package-bin": {
- "version": "3.0.1",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-package-arg": {
- "version": "11.0.2",
+ "version": "12.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
+ "hosted-git-info": "^8.0.0",
+ "proc-log": "^5.0.0",
"semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
+ "validate-npm-package-name": "^6.0.0"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-packlist": {
- "version": "8.0.2",
+ "version": "9.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "ignore-walk": "^6.0.4"
+ "ignore-walk": "^7.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-pick-manifest": {
- "version": "9.1.0",
+ "version": "10.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^11.0.0",
+ "npm-install-checks": "^7.1.0",
+ "npm-normalize-package-bin": "^4.0.0",
+ "npm-package-arg": "^12.0.0",
"semver": "^7.3.5"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/npm-profile": {
- "version": "10.0.0",
+ "version": "11.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-registry-fetch": "^18.0.0",
+ "proc-log": "^5.0.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-registry-fetch": {
+ "version": "18.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.0.0"
+ "@npmcli/redact": "^3.0.0",
+ "jsonparse": "^1.3.1",
+ "make-fetch-happen": "^14.0.0",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^4.0.0",
+ "minizlib": "^3.0.1",
+ "npm-package-arg": "^12.0.0",
+ "proc-log": "^5.0.0"
},
"engines": {
- "node": ">=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
- "node_modules/npm/node_modules/npm-registry-fetch": {
- "version": "17.1.0",
+ "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": {
+ "version": "3.0.1",
"dev": true,
"inBundle": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "@npmcli/redact": "^2.0.0",
- "jsonparse": "^1.3.1",
- "make-fetch-happen": "^13.0.0",
- "minipass": "^7.0.2",
- "minipass-fetch": "^3.0.0",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^11.0.0",
- "proc-log": "^4.0.0"
+ "minipass": "^7.0.4",
+ "rimraf": "^5.0.5"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": ">= 18"
}
},
"node_modules/npm/node_modules/npm-user-validate": {
- "version": "2.0.1",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/p-map": {
@@ -4800,48 +5815,48 @@
"license": "BlueOak-1.0.0"
},
"node_modules/npm/node_modules/pacote": {
- "version": "18.0.6",
+ "version": "19.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/git": "^5.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/package-json": "^5.1.0",
- "@npmcli/promise-spawn": "^7.0.0",
- "@npmcli/run-script": "^8.0.0",
- "cacache": "^18.0.0",
+ "@npmcli/git": "^6.0.0",
+ "@npmcli/installed-package-contents": "^3.0.0",
+ "@npmcli/package-json": "^6.0.0",
+ "@npmcli/promise-spawn": "^8.0.0",
+ "@npmcli/run-script": "^9.0.0",
+ "cacache": "^19.0.0",
"fs-minipass": "^3.0.0",
"minipass": "^7.0.2",
- "npm-package-arg": "^11.0.0",
- "npm-packlist": "^8.0.0",
- "npm-pick-manifest": "^9.0.0",
- "npm-registry-fetch": "^17.0.0",
- "proc-log": "^4.0.0",
+ "npm-package-arg": "^12.0.0",
+ "npm-packlist": "^9.0.0",
+ "npm-pick-manifest": "^10.0.0",
+ "npm-registry-fetch": "^18.0.0",
+ "proc-log": "^5.0.0",
"promise-retry": "^2.0.1",
"sigstore": "^2.2.0",
- "ssri": "^10.0.0",
+ "ssri": "^12.0.0",
"tar": "^6.1.11"
},
"bin": {
"pacote": "bin/index.js"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/parse-conflict-json": {
- "version": "3.0.1",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
+ "json-parse-even-better-errors": "^4.0.0",
"just-diff": "^6.0.0",
"just-diff-apply": "^5.2.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/path-key": {
@@ -4870,7 +5885,7 @@
}
},
"node_modules/npm/node_modules/postcss-selector-parser": {
- "version": "6.1.0",
+ "version": "6.1.2",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -4883,21 +5898,21 @@
}
},
"node_modules/npm/node_modules/proc-log": {
- "version": "4.2.0",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/proggy": {
- "version": "2.0.0",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/promise-all-reject-late": {
@@ -4938,15 +5953,15 @@
}
},
"node_modules/npm/node_modules/promzard": {
- "version": "1.0.2",
+ "version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "read": "^3.0.1"
+ "read": "^4.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/qrcode-terminal": {
@@ -4958,37 +5973,37 @@
}
},
"node_modules/npm/node_modules/read": {
- "version": "3.0.1",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "mute-stream": "^1.0.0"
+ "mute-stream": "^2.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/read-cmd-shim": {
- "version": "4.0.0",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/read-package-json-fast": {
- "version": "3.0.2",
+ "version": "4.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
+ "json-parse-even-better-errors": "^4.0.0",
+ "npm-normalize-package-bin": "^4.0.0"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/retry": {
@@ -5000,6 +6015,21 @@
"node": ">= 4"
}
},
+ "node_modules/npm/node_modules/rimraf": {
+ "version": "5.0.10",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/npm/node_modules/safer-buffer": {
"version": "2.1.2",
"dev": true,
@@ -5008,7 +6038,7 @@
"optional": true
},
"node_modules/npm/node_modules/semver": {
- "version": "7.6.2",
+ "version": "7.6.3",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -5156,7 +6186,7 @@
"license": "BSD-3-Clause"
},
"node_modules/npm/node_modules/ssri": {
- "version": "10.0.6",
+ "version": "12.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -5164,7 +6194,7 @@
"minipass": "^7.0.3"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/string-width": {
@@ -5318,7 +6348,119 @@
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/unique-filename": {
+ "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/agent": {
+ "version": "2.2.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/fs": {
+ "version": "3.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/cacache": {
+ "version": "18.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/make-fetch-happen": {
+ "version": "13.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/minipass-fetch": {
+ "version": "3.0.5",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/proc-log": {
+ "version": "4.2.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/ssri": {
+ "version": "10.0.6",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js/node_modules/unique-filename": {
"version": "3.0.0",
"dev": true,
"inBundle": true,
@@ -5330,7 +6472,7 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/unique-slug": {
+ "node_modules/npm/node_modules/tuf-js/node_modules/unique-slug": {
"version": "4.0.0",
"dev": true,
"inBundle": true,
@@ -5342,6 +6484,30 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/npm/node_modules/unique-filename": {
+ "version": "4.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "unique-slug": "^5.0.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/unique-slug": {
+ "version": "5.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
"node_modules/npm/node_modules/util-deprecate": {
"version": "1.0.2",
"dev": true,
@@ -5369,12 +6535,12 @@
}
},
"node_modules/npm/node_modules/validate-npm-package-name": {
- "version": "5.0.1",
+ "version": "6.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/walk-up-path": {
@@ -5384,7 +6550,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/which": {
- "version": "4.0.0",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -5395,7 +6561,7 @@
"node-which": "bin/which.js"
},
"engines": {
- "node": "^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/which/node_modules/isexe": {
@@ -5508,7 +6674,7 @@
}
},
"node_modules/npm/node_modules/write-file-atomic": {
- "version": "5.0.1",
+ "version": "6.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -5517,7 +6683,7 @@
"signal-exit": "^4.0.1"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/npm/node_modules/yallist": {
@@ -5531,6 +6697,7 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -5540,6 +6707,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
@@ -5549,6 +6717,7 @@
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^2.1.0"
},
@@ -5564,6 +6733,7 @@
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz",
"integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -5576,6 +6746,7 @@
"resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz",
"integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-map": "^7.0.1"
},
@@ -5591,6 +6762,7 @@
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz",
"integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5600,6 +6772,7 @@
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-try": "^1.0.0"
},
@@ -5612,6 +6785,7 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-limit": "^1.1.0"
},
@@ -5620,10 +6794,11 @@
}
},
"node_modules/p-map": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz",
- "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz",
+ "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -5636,6 +6811,7 @@
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
"integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5645,6 +6821,7 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -5654,6 +6831,7 @@
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -5666,6 +6844,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -5684,6 +6863,7 @@
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
"integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -5695,13 +6875,15 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
"integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/parse5-htmlparser2-tree-adapter": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
"integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parse5": "^6.0.1"
}
@@ -5710,19 +6892,22 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/parsimmon": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz",
"integrity": "sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -5732,6 +6917,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -5741,15 +6927,24 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -5762,6 +6957,7 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -5771,6 +6967,7 @@
"resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
"integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up": "^2.0.0",
"load-json-file": "^4.0.0"
@@ -5784,6 +6981,7 @@
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz",
"integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parse-ms": "^4.0.0"
},
@@ -5798,13 +6996,15 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/promisified-properties": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/promisified-properties/-/promisified-properties-3.0.0.tgz",
"integrity": "sha512-ARteuBuUpPg/+spsMhcKHvdtOW/q8btyyVYYxxegGgx+7u9ix9at8DjP2KM2t8+4SuI8wBLt+3X876FMQx91yQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parsimmon": "^1.13.0"
},
@@ -5817,7 +7017,8 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
"integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/queue-microtask": {
"version": "1.2.3",
@@ -5837,13 +7038,15 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
"dependencies": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -5859,25 +7062,14 @@
"resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz",
"integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up-simple": "^1.0.0",
"read-pkg": "^9.0.0",
"type-fest": "^4.6.0"
},
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-package-up/node_modules/type-fest": {
- "version": "4.25.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.25.0.tgz",
- "integrity": "sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw==",
- "dev": true,
- "engines": {
- "node": ">=16"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -5888,6 +7080,7 @@
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
"integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/normalize-package-data": "^2.4.3",
"normalize-package-data": "^6.0.0",
@@ -5908,6 +7101,7 @@
"integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==",
"deprecated": "Renamed to read-package-up",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up-simple": "^1.0.0",
"read-pkg": "^9.0.0",
@@ -5920,23 +7114,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "4.10.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz",
- "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==",
- "dev": true,
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/read-pkg/node_modules/parse-json": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz",
"integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.22.13",
"index-to-position": "^0.1.2",
@@ -5949,23 +7132,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg/node_modules/type-fest": {
- "version": "4.10.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz",
- "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==",
- "dev": true,
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -5981,6 +7153,7 @@
"resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
"integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"esprima": "~4.0.0"
}
@@ -5990,6 +7163,7 @@
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz",
"integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@pnpm/npm-conf": "^2.1.0"
},
@@ -6002,6 +7176,7 @@
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -6011,6 +7186,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -6020,6 +7196,7 @@
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -6044,6 +7221,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"queue-microtask": "^1.2.2"
}
@@ -6052,17 +7230,19 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/semantic-release": {
- "version": "24.1.0",
- "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.1.0.tgz",
- "integrity": "sha512-FwaE2hKDHQn9G6GA7xmqsc9WnsjaFD/ppLM5PUg56Do9oKSCf+vH6cPeb3hEBV/m06n8Sh9vbVqPjHu/1onzQw==",
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.0.tgz",
+ "integrity": "sha512-fQfn6e/aYToRtVJYKqneFM1Rg3KP2gh3wSWtpYsLlz6uaPKlISrTzvYAFn+mYWo07F0X1Cz5ucU89AVE8X1mbg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@semantic-release/commit-analyzer": "^13.0.0-beta.1",
"@semantic-release/error": "^4.0.0",
- "@semantic-release/github": "^10.0.0",
+ "@semantic-release/github": "^11.0.0",
"@semantic-release/npm": "^12.0.0",
"@semantic-release/release-notes-generator": "^14.0.0-beta.1",
"aggregate-error": "^5.0.0",
@@ -6075,7 +7255,7 @@
"get-stream": "^6.0.0",
"git-log-parser": "^1.2.0",
"hook-std": "^3.0.0",
- "hosted-git-info": "^7.0.0",
+ "hosted-git-info": "^8.0.0",
"import-from-esm": "^1.3.1",
"lodash-es": "^4.17.21",
"marked": "^12.0.0",
@@ -6097,272 +7277,14 @@
"node": ">=20.8.1"
}
},
- "node_modules/semantic-release/node_modules/@octokit/auth-token": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz",
- "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==",
- "dev": true,
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/core": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz",
- "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==",
- "dev": true,
- "dependencies": {
- "@octokit/auth-token": "^5.0.0",
- "@octokit/graphql": "^8.0.0",
- "@octokit/request": "^9.0.0",
- "@octokit/request-error": "^6.0.1",
- "@octokit/types": "^13.0.0",
- "before-after-hook": "^3.0.2",
- "universal-user-agent": "^7.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/endpoint": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz",
- "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.0.0",
- "universal-user-agent": "^7.0.2"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/graphql": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz",
- "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==",
- "dev": true,
- "dependencies": {
- "@octokit/request": "^9.0.0",
- "@octokit/types": "^13.0.0",
- "universal-user-agent": "^7.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/openapi-types": {
- "version": "22.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==",
- "dev": true
- },
- "node_modules/semantic-release/node_modules/@octokit/plugin-paginate-rest": {
- "version": "11.3.3",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.3.tgz",
- "integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.5.0"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": ">=6"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/plugin-retry": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz",
- "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==",
- "dev": true,
- "dependencies": {
- "@octokit/request-error": "^6.0.0",
- "@octokit/types": "^13.0.0",
- "bottleneck": "^2.15.3"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": ">=6"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/plugin-throttling": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz",
- "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.0.0",
- "bottleneck": "^2.15.3"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": "^6.0.0"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/request": {
- "version": "9.1.3",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz",
- "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==",
- "dev": true,
- "dependencies": {
- "@octokit/endpoint": "^10.0.0",
- "@octokit/request-error": "^6.0.1",
- "@octokit/types": "^13.1.0",
- "universal-user-agent": "^7.0.2"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/request-error": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz",
- "integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^13.0.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/semantic-release/node_modules/@octokit/types": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
- "dev": true,
- "dependencies": {
- "@octokit/openapi-types": "^22.2.0"
- }
- },
- "node_modules/semantic-release/node_modules/@semantic-release/commit-analyzer": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz",
- "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==",
- "dev": true,
- "dependencies": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0",
- "debug": "^4.0.0",
- "import-from-esm": "^1.0.3",
- "lodash-es": "^4.17.21",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=20.8.1"
- },
- "peerDependencies": {
- "semantic-release": ">=20.1.0"
- }
- },
"node_modules/semantic-release/node_modules/@semantic-release/error": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
- "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
- "dev": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/semantic-release/node_modules/@semantic-release/github": {
- "version": "10.1.7",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.1.7.tgz",
- "integrity": "sha512-QnhP4k1eqzYLz6a4kpWrUQeKJYXqHggveMykvUFbSquq07GF85BXvr/QLhpOD7bpDcmEfL8VnphRA7KT5i9lzQ==",
- "dev": true,
- "dependencies": {
- "@octokit/core": "^6.0.0",
- "@octokit/plugin-paginate-rest": "^11.0.0",
- "@octokit/plugin-retry": "^7.0.0",
- "@octokit/plugin-throttling": "^9.0.0",
- "@semantic-release/error": "^4.0.0",
- "aggregate-error": "^5.0.0",
- "debug": "^4.3.4",
- "dir-glob": "^3.0.1",
- "globby": "^14.0.0",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.0",
- "issue-parser": "^7.0.0",
- "lodash-es": "^4.17.21",
- "mime": "^4.0.0",
- "p-filter": "^4.0.0",
- "url-join": "^5.0.0"
- },
- "engines": {
- "node": ">=20.8.1"
- },
- "peerDependencies": {
- "semantic-release": ">=20.1.0"
- }
- },
- "node_modules/semantic-release/node_modules/@semantic-release/npm": {
- "version": "12.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz",
- "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==",
- "dev": true,
- "dependencies": {
- "@semantic-release/error": "^4.0.0",
- "aggregate-error": "^5.0.0",
- "execa": "^9.0.0",
- "fs-extra": "^11.0.0",
- "lodash-es": "^4.17.21",
- "nerf-dart": "^1.0.0",
- "normalize-url": "^8.0.0",
- "npm": "^10.5.0",
- "rc": "^1.2.8",
- "read-pkg": "^9.0.0",
- "registry-auth-token": "^5.0.0",
- "semver": "^7.1.2",
- "tempy": "^3.0.0"
- },
- "engines": {
- "node": ">=20.8.1"
- },
- "peerDependencies": {
- "semantic-release": ">=20.1.0"
- }
- },
- "node_modules/semantic-release/node_modules/@semantic-release/release-notes-generator": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz",
- "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==",
- "dev": true,
- "dependencies": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0",
- "debug": "^4.0.0",
- "get-stream": "^7.0.0",
- "import-from-esm": "^1.0.3",
- "into-stream": "^7.0.0",
- "lodash-es": "^4.17.21",
- "read-package-up": "^11.0.0"
- },
- "engines": {
- "node": ">=20.8.1"
- },
- "peerDependencies": {
- "semantic-release": ">=20.1.0"
- }
- },
- "node_modules/semantic-release/node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz",
- "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz",
+ "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
}
},
"node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": {
@@ -6370,6 +7292,7 @@
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
"integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -6382,6 +7305,7 @@
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -6393,17 +7317,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semantic-release/node_modules/before-after-hook": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
- "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==",
- "dev": true
- },
"node_modules/semantic-release/node_modules/clean-stack": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "5.0.0"
},
@@ -6414,78 +7333,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semantic-release/node_modules/conventional-changelog-angular": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz",
- "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==",
- "dev": true,
- "dependencies": {
- "compare-func": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/semantic-release/node_modules/conventional-changelog-writer": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz",
- "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==",
- "dev": true,
- "dependencies": {
- "@types/semver": "^7.5.5",
- "conventional-commits-filter": "^5.0.0",
- "handlebars": "^4.7.7",
- "meow": "^13.0.0",
- "semver": "^7.5.2"
- },
- "bin": {
- "conventional-changelog-writer": "dist/cli/index.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/semantic-release/node_modules/conventional-commits-filter": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz",
- "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==",
- "dev": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/semantic-release/node_modules/conventional-commits-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz",
- "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==",
- "dev": true,
- "dependencies": {
- "meow": "^13.0.0"
- },
- "bin": {
- "conventional-commits-parser": "dist/cli/index.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/semantic-release/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/semantic-release/node_modules/execa": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.1.tgz",
- "integrity": "sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.0.tgz",
+ "integrity": "sha512-t7vvYt+oKnMbF3O+S5+HkylsPrsUatwJSe4Cv+4017R0MCySjECxnVJ2eyDXVD/Xpj5H29YzyYn6eEpugG7GJA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^4.0.0",
"cross-spawn": "^7.0.3",
@@ -6494,7 +7347,7 @@
"human-signals": "^8.0.0",
"is-plain-obj": "^4.1.0",
"is-stream": "^4.0.1",
- "npm-run-path": "^5.2.0",
+ "npm-run-path": "^6.0.0",
"pretty-ms": "^9.0.0",
"signal-exit": "^4.1.0",
"strip-final-newline": "^4.0.0",
@@ -6512,6 +7365,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
"integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sec-ant/readable-stream": "^0.4.1",
"is-stream": "^4.0.1"
@@ -6523,27 +7377,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semantic-release/node_modules/find-versions": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz",
- "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==",
- "dev": true,
- "dependencies": {
- "semver-regex": "^4.0.5",
- "super-regex": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/semantic-release/node_modules/human-signals": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz",
"integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=18.18.0"
}
@@ -6553,6 +7392,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -6565,34 +7405,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
"integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
"dev": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/issue-parser": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz",
- "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==",
- "dev": true,
- "dependencies": {
- "lodash.capitalize": "^4.2.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.uniqby": "^4.7.0"
- },
- "engines": {
- "node": "^18.17 || >=20.6.1"
- }
- },
- "node_modules/semantic-release/node_modules/meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
- "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -6601,15 +7414,17 @@
}
},
"node_modules/semantic-release/node_modules/npm-run-path": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
+ "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "path-key": "^4.0.0"
+ "path-key": "^4.0.0",
+ "unicorn-magic": "^0.3.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -6620,6 +7435,7 @@
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz",
"integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -6632,6 +7448,7 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -6644,6 +7461,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -6656,6 +7474,7 @@
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
"integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -6663,20 +7482,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semantic-release/node_modules/universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "dev": true
+ "node_modules/semantic-release/node_modules/unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
"node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -6689,6 +7513,7 @@
"resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
"integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "^7.3.5"
},
@@ -6704,6 +7529,7 @@
"resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz",
"integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -6711,23 +7537,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -6740,6 +7555,7 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -6748,13 +7564,15 @@
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/signale": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz",
"integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^2.3.2",
"figures": "^2.0.0",
@@ -6769,6 +7587,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -6781,6 +7600,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -6795,6 +7615,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
@@ -6803,13 +7624,25 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/signale/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
"node_modules/signale/node_modules/figures": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
@@ -6822,6 +7655,7 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -6831,6 +7665,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -6843,6 +7678,7 @@
"resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz",
"integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"unicode-emoji-modifier-base": "^1.0.0"
},
@@ -6855,6 +7691,7 @@
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
},
@@ -6867,6 +7704,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -6875,45 +7713,51 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz",
"integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/spdx-correct": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-exceptions": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz",
- "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==",
- "dev": true
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true,
+ "license": "CC-BY-3.0"
},
"node_modules/spdx-expression-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.17",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
- "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
- "dev": true
+ "version": "3.0.20",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz",
+ "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==",
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/split2": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
"integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">= 10.x"
}
@@ -6923,6 +7767,7 @@
"resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
"integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"duplexer2": "~0.1.0",
"readable-stream": "^2.0.2"
@@ -6933,6 +7778,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
@@ -6942,6 +7788,7 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -6956,6 +7803,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -6968,6 +7816,7 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -6977,6 +7826,7 @@
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -6986,6 +7836,7 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -6995,6 +7846,7 @@
"resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz",
"integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"function-timeout": "^1.0.1",
"time-span": "^5.1.0"
@@ -7011,6 +7863,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -7019,16 +7872,20 @@
}
},
"node_modules/supports-hyperlinks": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
- "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz",
+ "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
},
"engines": {
"node": ">=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/temp-dir": {
@@ -7036,6 +7893,7 @@
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
"integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
@@ -7045,6 +7903,7 @@
"resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
"integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -7063,6 +7922,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -7075,6 +7935,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
"integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -7087,6 +7948,7 @@
"resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz",
"integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -7099,6 +7961,7 @@
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"any-promise": "^1.0.0"
}
@@ -7108,6 +7971,7 @@
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"thenify": ">= 3.1.0 < 4"
},
@@ -7119,13 +7983,15 @@
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
@@ -7136,6 +8002,7 @@
"resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz",
"integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"convert-hrtime": "^5.0.0"
},
@@ -7151,6 +8018,7 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -7163,6 +8031,7 @@
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz",
"integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -7171,22 +8040,24 @@
}
},
"node_modules/type-fest": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
- "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "version": "4.26.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz",
+ "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">=14.16"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"optional": true,
"bin": {
"uglifyjs": "bin/uglifyjs"
@@ -7200,6 +8071,7 @@
"resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz",
"integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -7209,6 +8081,7 @@
"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
"integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -7221,6 +8094,7 @@
"resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
"integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -7232,16 +8106,18 @@
}
},
"node_modules/universal-user-agent": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
- "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
- "dev": true
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
+ "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
@@ -7251,6 +8127,7 @@
"resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz",
"integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
@@ -7259,13 +8136,15 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -7276,6 +8155,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -7290,13 +8170,15 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -7313,13 +8195,15 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4"
}
@@ -7329,21 +8213,17 @@
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
},
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -7362,6 +8242,7 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -7371,6 +8252,7 @@
"resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz",
"integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
diff --git a/package.json b/package.json
index 827688e6b..788ff709a 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"@saithodev/semantic-release-backmerge": "^4.0.1",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
- "gradle-semantic-release-plugin": "^1.9.2",
- "semantic-release": "^24.1.0"
+ "gradle-semantic-release-plugin": "^1.10.1",
+ "semantic-release": "^24.2.0"
}
}
From e767d6626a408eb4bd833efb6021c431a209975a Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Tue, 29 Oct 2024 14:36:26 +0300
Subject: [PATCH 07/18] refactor(Python): Use better structure
---
main.py | 133 -----------
src/utils/missing_prefs.py | 68 ------
src/utils/missing_strings.py | 134 ------------
src/utils/remove_unused_strings.py | 230 --------------------
src/utils/replace_strings.py | 192 ----------------
src/utils/sort_strings.py | 136 ------------
src/utils/utils.py | 82 -------
xml_tools/config/settings.py | 66 ++++++
xml_tools/core/exceptions.py | 13 ++
xml_tools/core/logging.py | 132 +++++++++++
xml_tools/handlers/missing_prefs.py | 72 ++++++
xml_tools/handlers/missing_strings.py | 77 +++++++
xml_tools/handlers/remove_unused_strings.py | 230 ++++++++++++++++++++
xml_tools/handlers/replace_strings.py | 78 +++++++
xml_tools/handlers/sort_strings.py | 53 +++++
xml_tools/main.py | 208 ++++++++++++++++++
xml_tools/utils/git.py | 87 ++++++++
xml_tools/utils/xml.py | 93 ++++++++
18 files changed, 1109 insertions(+), 975 deletions(-)
delete mode 100644 main.py
delete mode 100644 src/utils/missing_prefs.py
delete mode 100644 src/utils/missing_strings.py
delete mode 100644 src/utils/remove_unused_strings.py
delete mode 100644 src/utils/replace_strings.py
delete mode 100644 src/utils/sort_strings.py
delete mode 100644 src/utils/utils.py
create mode 100644 xml_tools/config/settings.py
create mode 100644 xml_tools/core/exceptions.py
create mode 100644 xml_tools/core/logging.py
create mode 100644 xml_tools/handlers/missing_prefs.py
create mode 100644 xml_tools/handlers/missing_strings.py
create mode 100644 xml_tools/handlers/remove_unused_strings.py
create mode 100644 xml_tools/handlers/replace_strings.py
create mode 100644 xml_tools/handlers/sort_strings.py
create mode 100644 xml_tools/main.py
create mode 100644 xml_tools/utils/git.py
create mode 100644 xml_tools/utils/xml.py
diff --git a/main.py b/main.py
deleted file mode 100644
index a7085b42c..000000000
--- a/main.py
+++ /dev/null
@@ -1,133 +0,0 @@
-"""
-These python scripts follow PEP 8 guidelines with the exception that the maximum line length is extended
-to 120 characters.
-All other PEP 8 conventions apply, such as naming conventions, indentation, imports, and documentation strings.
-The project uses the Black formatter for consistent code style and Flake8 for linting and style checks.
-"""
-
-import argparse
-import os
-import subprocess
-import sys
-
-# ANSI escape codes for colors
-GREEN = "\033[92m"
-RESET = "\033[0m"
-
-
-def run_command(command, cwd=None):
- print(f"{GREEN}Running command:{RESET} {' '.join(command)}")
- result = subprocess.run(command, capture_output=True, text=True, cwd=cwd)
- if result.stdout:
- print(result.stdout)
- if result.stderr:
- print(f"Error: {result.stderr}")
- return result.returncode
-
-
-def git_operations(rvx_dir):
- """
- Perform git operations (checkout, fetch, pull) in the specified directory.
- """
- if run_command(["git", "switch", "dev"], cwd=rvx_dir) != 0:
- print("Error during git checkout")
- return False
- if run_command(["git", "fetch"], cwd=rvx_dir) != 0:
- print("Error during git fetch")
- return False
- if run_command(["git", "pull"], cwd=rvx_dir) != 0:
- print("Error during git pull")
- return False
- return True
-
-
-def main():
- parser = argparse.ArgumentParser(description="Run various string processing scripts.")
-
- parser.add_argument("-a", "--all", action="store_true", help="Run all commands in order.")
- parser.add_argument(
- "-m",
- "--missing",
- action="store_true",
- help="Run missing_strings.py.",
- )
- parser.add_argument(
- "-r",
- "--replace",
- action="store_true",
- help="Run replace_strings.py.",
- )
- parser.add_argument(
- "--remove",
- action="store_true",
- help="Run remove_unused_strings.py.",
- )
- parser.add_argument("-s", "--sort", action="store_true", help="Run sort_strings.py.")
- parser.add_argument("-p", "--prefs", action="store_true", help="Run missing_prefs.py.")
-
- parser.add_argument(
- "--youtube",
- action="store_true",
- help="Specify the --youtube argument for replace and sort commands.",
- )
- parser.add_argument(
- "--music",
- action="store_true",
- help="Specify the --music argument for replace and sort commands.",
- )
- parser.add_argument(
- "--rvx-base-dir",
- type=str,
- help="Specify the base directory of RVX patches operations.",
- )
-
- args = parser.parse_args()
-
- # Retrieve the rvx_base_dir from environment variables if not provided as
- # an argument
- rvx_base_dir = args.rvx_base_dir or os.getenv("RVX_BASE_DIR")
-
- if not rvx_base_dir:
- raise ValueError(
- "rvx_base_dir must be specified either as an argument or through \
- the RVX_BASE_DIR environment variable."
- )
-
- sub_arg = "--music" if args.music else "--youtube"
- rvx_base_dir_arg = f"--rvx-base-dir={rvx_base_dir}"
-
- commands = []
-
- if args.all:
- if git_operations(rvx_base_dir):
- commands = [
- [sys.executable, "src/utils/replace_strings.py", "--youtube", rvx_base_dir_arg],
- [sys.executable, "src/utils/replace_strings.py", "--music", rvx_base_dir_arg],
- [sys.executable, "src/utils/missing_strings.py", "--youtube"],
- [sys.executable, "src/utils/missing_strings.py", "--music"],
- [sys.executable, "src/utils/remove_unused_strings.py", "--youtube"],
- [sys.executable, "src/utils/remove_unused_strings.py", "--music"],
- [sys.executable, "src/utils/sort_strings.py", "--youtube"],
- [sys.executable, "src/utils/sort_strings.py", "--music"],
- ]
- else:
- if args.missing:
- commands.append([sys.executable, "src/utils/missing_strings.py", sub_arg])
- if args.prefs:
- commands.append([sys.executable, "src/utils/missing_prefs.py", rvx_base_dir_arg])
- if args.remove:
- commands.append([sys.executable, "src/utils/remove_unused_strings.py", sub_arg])
-
- if args.replace:
- if git_operations(rvx_base_dir):
- commands.append([sys.executable, "src/utils/replace_strings.py", sub_arg, rvx_base_dir_arg])
-
- if args.sort:
- commands.append([sys.executable, "src/utils/sort_strings.py", sub_arg])
-
- for command in commands:
- run_command(command)
-
-
-if __name__ == "__main__":
- main()
diff --git a/src/utils/missing_prefs.py b/src/utils/missing_prefs.py
deleted file mode 100644
index ec7444d0e..000000000
--- a/src/utils/missing_prefs.py
+++ /dev/null
@@ -1,68 +0,0 @@
-import re
-import os
-import argparse
-
-
-def extract_keys(file_path):
- """
- Extract keys from the XML file.
-
- Args:
- file_path (str): The path to the XML file.
-
- Returns:
- set: A set of keys extracted from the file.
- """
- key_pattern = re.compile(r'android:key="(\w+)"') # Compile the regex pattern to match keys
- keys_found = set() # Use a set to store unique keys
-
- # Open the XML file and search for the keys
- with open(file_path, "r", encoding="utf-8") as file:
- for line in file:
- matches = key_pattern.findall(line) # Find all keys in the line
- keys_found.update(matches) # Add found keys to the set
-
- return keys_found
-
-
-def main():
- # Set up argument parser
- parser = argparse.ArgumentParser(description="Search for keys in XML files.")
- parser.add_argument(
- "--rvx-base-dir",
- type=str,
- required=True,
- help="Specify the base directory of RVX patches operations.",
- )
-
- # Parse the arguments
- args = parser.parse_args()
- base_dir = args.rvx_base_dir
-
- # Define the file paths based on the base directory provided
- prefs_file_1 = os.path.join(
- base_dir, "src/main/resources/youtube/settings/xml/revanced_prefs.xml"
- )
- prefs_file_2 = "src/main/resources/youtube/settings/xml/revanced_prefs.xml"
-
- # Check if files exist
- if not os.path.exists(prefs_file_1) or not os.path.exists(prefs_file_2):
- print("Error: One or both XML files are missing.")
- return
-
- # Extract keys from the first file
- keys_in_file_1 = extract_keys(prefs_file_1)
-
- # Extract keys from the second file
- keys_in_file_2 = extract_keys(prefs_file_2)
-
- # Find keys that are in the first file but not in the second
- keys_not_in_file_2 = keys_in_file_1 - keys_in_file_2
-
- # Print the keys not found in the second file
- for key in keys_not_in_file_2:
- print(key)
-
-
-if __name__ == "__main__":
- main()
diff --git a/src/utils/missing_strings.py b/src/utils/missing_strings.py
deleted file mode 100644
index 245096727..000000000
--- a/src/utils/missing_strings.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import os
-import xml.etree.ElementTree as ET
-import xml.sax.saxutils as saxutils
-from utils import Utils
-
-
-def get_strings_dict(root):
- """
- Extract strings from the XML root and return them as a dictionary.
-
- :param root: Root element of the XML tree.
- :return: Dictionary with name attributes as keys and text as values.
- """
- strings_dict = {}
- for string in root.findall("string"):
- name = string.get("name")
- text = string.text
- strings_dict[name] = text
- return strings_dict
-
-
-def ensure_directory_exists(directory):
- """
- Ensure that the directory exists. If it does not, create it.
-
- :param directory: Path to the directory.
- """
- if not os.path.exists(directory):
- os.makedirs(directory)
-
-
-def read_missing_strings(missing_file_path):
- """
- Read the missing strings from the missing_strings.xml file and return them
- as a dictionary.
-
- :param missing_file_path: Path to the missing_strings.xml file.
- :return: Dictionary of missing strings.
- """
- if os.path.exists(missing_file_path):
- try:
- _, _, missing_root = Utils.parse_xml(missing_file_path)
- return get_strings_dict(missing_root)
- except ET.ParseError as e:
- print(f"Error parsing {missing_file_path}: {e}")
- return {}
- return {}
-
-
-def escape_xml_chars(text):
- return saxutils.escape(text)
-
-
-def write_missing_strings(missing_file_path, missing_strings):
- """
- Write the missing strings to the missing_strings.xml file.
-
- :param missing_file_path: Path to the missing_strings.xml file.
- :param missing_strings: Dictionary of missing strings to write.
- """
- ensure_directory_exists(os.path.dirname(missing_file_path))
- with open(missing_file_path, "w", encoding="utf-8") as f:
- f.write("\n\n")
- for name, text in missing_strings.items():
- f.write(f' {escape_xml_chars(text)}\n')
- f.write("\n")
-
-
-def compare_and_update_missing_file(source_dict, dest_file_path, missing_file_path):
- """
- Compare source strings with destination strings and update
- missing_strings.xml accordingly.
-
- :param source_dict: Dictionary of source strings.
- :param dest_file_path: Path to the destination XML file.
- :param missing_file_path: Path to the missing_strings.xml file.
- """
- if os.path.exists(dest_file_path):
- try:
- _, _, dest_root = Utils.parse_xml(dest_file_path)
- dest_dict = get_strings_dict(dest_root)
- except ET.ParseError as e:
- print(f"Error parsing {dest_file_path}: {e}")
- dest_dict = {}
- else:
- dest_dict = {}
-
- # Read existing missing strings
- missing_strings = read_missing_strings(missing_file_path)
-
- # Update missing strings based on comparison with destination strings
- for name, text in source_dict.items():
- if name in dest_dict:
- if name in missing_strings:
- del missing_strings[name]
- else:
- missing_strings[name] = text
-
- # Write updated missing strings back to the file if not empty,
- # otherwise delete the file
- if missing_strings:
- write_missing_strings(missing_file_path, missing_strings)
- elif os.path.exists(missing_file_path):
- print(f"Deleting empty missing strings file: {missing_file_path}")
- os.remove(missing_file_path)
-
-
-def main():
- """
- Main function to handle the XML parsing, comparison, and updating process.
- """
- # Get the directories based on the user selection (YouTube or Music)
- args = Utils.get_arguments()
- source_file = args["source_file"]
- destination_directory = args["destination_directory"]
-
- try:
- _, _, source_root = Utils.parse_xml(source_file)
- except (FileNotFoundError, ET.ParseError) as e:
- print(f"Error parsing source file {source_file}: {e}")
- return
-
- source_dict = get_strings_dict(source_root)
-
- for dirpath, dirnames, filenames in os.walk(destination_directory):
- for dirname in dirnames:
- lang_dir = os.path.join(dirpath, dirname)
- dest_file_path = os.path.join(lang_dir, "strings.xml")
- missing_file_path = os.path.join(lang_dir, "missing_strings.xml")
- compare_and_update_missing_file(source_dict, dest_file_path, missing_file_path)
-
-
-if __name__ == "__main__":
- main()
diff --git a/src/utils/remove_unused_strings.py b/src/utils/remove_unused_strings.py
deleted file mode 100644
index c5750f4cf..000000000
--- a/src/utils/remove_unused_strings.py
+++ /dev/null
@@ -1,230 +0,0 @@
-import os
-from lxml import etree
-from utils import Utils
-
-# Constants for blacklisted and prefixed strings
-BLACKLISTED_STRINGS = (
- # YouTube
- "revanced_remember_video_quality_mobile",
- "revanced_remember_video_quality_wifi",
- # YouTube Music
- "revanced_sb_api_url_sum",
- "revanced_sb_enabled",
- "revanced_sb_enabled_sum",
- "revanced_sb_toast_on_skip",
- "revanced_sb_toast_on_skip_sum",
-)
-PREFIX_TO_IGNORE = (
- "revanced_icon_",
- "revanced_spoof_app_version_target_entry_",
- "revanced_spoof_streaming_data_side_effects_",
-)
-
-
-def get_base_name(name):
- """Return the base name by stripping '_title' or '_summary' suffix."""
- if name.endswith("_title"):
- return name[:-6]
- elif name.endswith("_summary"):
- return name[:-8]
- elif name.endswith("_summary_off"):
- return name[:-12]
- elif name.endswith("_summary_on"):
- return name[:-11]
- return name
-
-
-def search_in_files(directories, name_values):
- """
- Search for the values in all files with allowed extensions within the
- specified directories, excluding 'strings.xml' files. It also checks
- for the base string by stripping the '_title' and '_summary' suffixes.
-
- Args:
- directories (list): List of directories to search in.
- name_values (list): List of 'name' attribute values to search for.
-
- Returns:
- dict: Dictionary with 'name' values as keys and list of file paths
- where they were found as values.
- """
- results = {name: [] for name in name_values}
- allowed_extensions = (".kt", ".java", ".xml")
-
- for directory in directories:
- for root, dirs, files in os.walk(directory):
- # Ignore dot directories and the build directory
- dirs[:] = [d for d in dirs if not d.startswith(".") and d != "build"]
- for file in files:
- if file in ("strings.xml", "missing_strings.xml") or not file.endswith(allowed_extensions):
- continue
- file_path = os.path.join(root, file)
- try:
- with open(file_path, "r", encoding="utf-8") as f:
- content = f.read()
- for name in name_values:
- # Check if the name exists in the content first
- if name in content:
- results[name].append(file_path)
- else:
- # If not, then check the base name
- base_name = get_base_name(name)
- if base_name in content:
- results[name].append(file_path)
- except Exception as e:
- print(f"Error reading {file_path}: {e}")
-
- return results
-
-
-def should_remove(name, unused_names):
- """
- Determine whether a string with the given 'name' attribute should be
- removed. It checks both the original name and its base form without the
- '_title' or '_summary' suffix.
-
- Args:
- name (str): The value of the 'name' attribute.
- unused_names (list): List of 'name' attribute values that are not used.
-
- Returns:
- bool: True if the element should be removed, False otherwise.
- """
- base_name = get_base_name(name)
- return (
- (name in unused_names or base_name in unused_names)
- and name not in BLACKLISTED_STRINGS
- and not any(name.startswith(prefix) for prefix in PREFIX_TO_IGNORE)
- )
-
-
-def remove_unused_strings(xml_file_paths, unused_names):
- """
- Remove strings with unused 'name' attributes from the specified XML files
- and write the sorted strings back to the file.
-
- Args:
- xml_file_paths (list): List of paths to XML files.
- unused_names (list): List of 'name' attribute values that are not used.
- """
- for file_path in xml_file_paths:
- tree = etree.parse(file_path)
- root = tree.getroot()
-
- # Create a dictionary of strings to keep
- strings_dict = {}
- for element in root.findall(".//*[@name]"):
- name = element.get("name")
- if not should_remove(name, unused_names):
- strings_dict[name] = element.text
-
- # Write the sorted strings back to the file
- write_sorted_strings(file_path, strings_dict)
-
-
-def check_translation_files(main_xml_path, translation_files):
- """
- Check each translation file against the main XML file, remove strings
- that don't exist in the main XML file, and write the sorted strings back.
-
- Args:
- main_xml_path (str): Path to the main XML file.
- translation_files (list): List of paths to translation XML files.
- """
- main_tree = etree.parse(main_xml_path)
- main_root = main_tree.getroot()
- main_names = set(element.get("name") for element in main_root.findall(".//*[@name]"))
-
- for translation_file in translation_files:
- translation_tree = etree.parse(translation_file)
- translation_root = translation_tree.getroot()
-
- # Create a dictionary of strings to keep
- strings_dict = {}
- for element in translation_root.findall(".//*[@name]"):
- name = element.get("name")
- if name in main_names:
- strings_dict[name] = element.text
-
- # Write the sorted strings back to the file
- write_sorted_strings(translation_file, strings_dict)
-
-
-def write_sorted_strings(file_path, strings_dict):
- """
- Write the strings to the XML file sorted by their name attributes.
-
- Args:
- file_path (str): Path to the XML file.
- strings_dict (dict): Dictionary of strings to write.
- """
- ensure_directory_exists(os.path.dirname(file_path))
-
- # Create the root element and add strings sorted by name
- root = etree.Element("resources")
- for name in sorted(strings_dict.keys()):
- string_element = etree.Element("string", name=name)
- string_element.text = strings_dict[name]
- root.append(string_element)
-
- # Write the XML file with 4-space indentation
- tree = etree.ElementTree(root)
- xml_bytes = etree.tostring(tree, encoding="utf-8", pretty_print=True, xml_declaration=True)
-
- # Manually adjust the indentation to 4 spaces
- xml_string = xml_bytes.decode("utf-8").replace(" element
- new_string_elem = etree.Element("string", name=name)
- new_string_elem.text = text
- # Append it to the target root
- target_root.append(new_string_elem)
-
- # Save the updated XML content back to the target file
- save_xml_file(target_file, target_tree)
-
-
-def parse_xml_file(file_path):
- """
- Parses an XML file and returns the ElementTree object.
-
- Args:
- - file_path (str): Path to the XML file to parse.
-
- Returns:
- - etree.ElementTree: Parsed XML tree object.
- """
- parser = etree.XMLParser(remove_blank_text=True)
- tree = etree.parse(file_path, parser)
- return tree
-
-
-def save_xml_file(file_path, tree):
- """
- Saves the XML document to a file, preserving the XML declaration and
- indentation.
-
- Args:
- - file_path (str): Path to save the XML file.
- - tree (etree.ElementTree): XML tree object to save.
- """
- xml_declaration = "\n"
- xml_content = etree.tostring(
- tree, pretty_print=True, xml_declaration=False, encoding="unicode"
- )
-
- # Adjust the indentation to 4 spaces
- xml_content = xml_content.replace(" Path:
+ """
+ Get absolute path to a specific resource directory or file.
+
+ Args:
+ app (str): Application identifier (e.g., 'youtube' or 'music')
+ resource_type (str): Type of resource or path relative to the app directory
+ (e.g., 'settings/xml/prefs.xml')
+
+ Returns:
+ Path: Absolute path to the requested resource
+
+ Example:
+ >>> settings = Settings()
+ >>> path = settings.get_resource_path('youtube', 'settings/xml/prefs.xml')
+ >>> str(path)
+ '/absolute/path/to/project/src/main/resources/youtube/settings/xml/prefs.xml'
+ """
+ return (self.RESOURCES_DIR / app / resource_type).resolve()
diff --git a/xml_tools/core/exceptions.py b/xml_tools/core/exceptions.py
new file mode 100644
index 000000000..3c3555c36
--- /dev/null
+++ b/xml_tools/core/exceptions.py
@@ -0,0 +1,13 @@
+class XMLToolsError(Exception):
+ """Base exception for XML tools."""
+ pass
+
+
+class ConfigError(XMLToolsError):
+ """Configuration related errors."""
+ pass
+
+
+class XMLProcessingError(XMLToolsError):
+ """XML processing related errors."""
+ pass
diff --git a/xml_tools/core/logging.py b/xml_tools/core/logging.py
new file mode 100644
index 000000000..60c7add16
--- /dev/null
+++ b/xml_tools/core/logging.py
@@ -0,0 +1,132 @@
+import logging
+from pathlib import Path
+from typing import Optional
+
+# ANSI escape codes for colors
+BLUE: str = "\033[94m"
+GREEN: str = "\033[92m"
+YELLOW: str = "\033[93m"
+RED: str = "\033[91m"
+CYAN: str = "\033[96m"
+DARK_CYAN: str = "\033[1;36m"
+RESET: str = "\033[0m"
+
+
+class ColorFormatter(logging.Formatter):
+ """
+ Custom formatter to add colors based on log level and special message formatting.
+
+ Attributes:
+ level_colors (dict): Mapping of log levels to their corresponding colors.
+ """
+ level_colors = {
+ "DEBUG": BLUE,
+ "INFO": GREEN,
+ "WARNING": YELLOW,
+ "ERROR": RED,
+ "CRITICAL": RED,
+ }
+
+ def format(self, record: logging.LogRecord) -> str:
+ """
+ Format the log record with colors and special message handling.
+
+ Args:
+ record (logging.LogRecord): The log record to format.
+
+ Returns:
+ str: The formatted log message with appropriate colors.
+
+ Note:
+ - Preserves original record attributes by saving and restoring them
+ - Applies special coloring to "Starting process:" messages
+ - Colors log levels according to severity
+ """
+ # Save original values
+ original_levelname = record.levelname
+ original_msg = record.msg
+
+ # Color the level name
+ if record.levelname in self.level_colors:
+ record.levelname = f"{self.level_colors[record.levelname]}{record.levelname}{RESET}"
+
+ # If message starts with "Starting process", color that part
+ if isinstance(record.msg, str) and record.msg.startswith("Starting process:"):
+ record.msg = f"{CYAN}Starting process:{DARK_CYAN}{str(record.msg).split(':', 1)[1]}{RESET}"
+
+ # Format with colors
+ formatted_message = super().format(record)
+
+ # Restore original values
+ record.levelname = original_levelname
+ record.msg = original_msg
+
+ return formatted_message
+
+
+def setup_logging(log_file: Optional[Path] = None, debug: bool = True) -> logging.Logger:
+ """
+ Configure logging with colored level names for console output and optional file logging.
+
+ Args:
+ log_file (Optional[Path]): Path to the log file. If None, only console logging is configured.
+ debug (bool): Whether to enable DEBUG level logging. Defaults to True.
+
+ Returns:
+ logging.Logger: Configured logger instance.
+
+ Note:
+ - Console output uses colors for better readability
+ - File output (if enabled) uses plain text without colors
+ - DEBUG messages are enabled by default
+ - Clears any existing handlers before configuration
+ """
+ # Create logger
+ logger = logging.getLogger("xml_tools")
+
+ # Set the base level to DEBUG if debug is True, otherwise INFO
+ base_level = logging.DEBUG if debug else logging.INFO
+ logger.setLevel(base_level)
+
+ # Remove any existing handlers
+ logger.handlers = []
+
+ # Console handler with colors
+ console_handler = logging.StreamHandler()
+ console_handler.setLevel(base_level) # Use same level as logger
+ console_formatter = ColorFormatter(
+ "%(asctime)s - %(levelname)s - %(message)s"
+ )
+ console_handler.setFormatter(console_formatter)
+ logger.addHandler(console_handler)
+
+ # File handler without colors if log_file specified
+ if log_file:
+ file_handler = logging.FileHandler(log_file)
+ file_handler.setLevel(base_level) # Use same level as logger
+ file_formatter = logging.Formatter(
+ "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
+ )
+ file_handler.setFormatter(file_formatter)
+ logger.addHandler(file_handler)
+
+ # Log initial setup
+ logger.debug("Logging system initialized")
+ if log_file:
+ logger.debug(f"Log file created at: {log_file}")
+
+ return logger
+
+
+def log_process(logger: logging.Logger, process_name: str) -> None:
+ """
+ Log the start of a process with special formatting.
+
+ Args:
+ logger (logging.Logger): The logger instance to use.
+ process_name (str): Name of the process being started.
+
+ Note:
+ Uses special color formatting for "Starting process:" messages.
+ """
+ logger.info(f"Starting process: {process_name}")
diff --git a/xml_tools/handlers/missing_prefs.py b/xml_tools/handlers/missing_prefs.py
new file mode 100644
index 000000000..314b424ac
--- /dev/null
+++ b/xml_tools/handlers/missing_prefs.py
@@ -0,0 +1,72 @@
+from pathlib import Path
+from typing import Set
+import re
+import logging
+
+from config.settings import Settings
+from core.exceptions import XMLProcessingError
+
+logger = logging.getLogger("xml_tools")
+
+
+def extract_keys(path: Path) -> Set[str]:
+ """Extract keys from XML file.
+
+ Args:
+ path: Path to XML file
+
+ Returns:
+ Set of extracted keys
+
+ Raises:
+ XMLProcessingError: If parsing fails
+ """
+ try:
+ key_pattern = re.compile(r'android:key="(\w+)"') # Compile the regex pattern to match keys
+ keys_found = set() # Use a set to store unique keys
+
+ # Open the XML file and search for the keys
+ with open(path, "r", encoding="utf-8") as file:
+ for line in file:
+ matches = key_pattern.findall(line) # Find all keys in the line
+ keys_found.update(matches) # Add found keys to the set
+
+ return keys_found
+ except Exception as e:
+ logger.error(f"Failed to extract keys from {path}: {e}")
+ raise XMLProcessingError(f"Failed to extract keys from {path}: {e}")
+
+
+def process(app: str, base_dir: Path) -> None:
+ """Process prefs files to find missing keys.
+
+ Args:
+ app: Application name (youtube/music)
+ base_dir: Base directory of RVX patches operations
+ """
+ settings = Settings()
+ base_path = settings.get_resource_path(app, "settings")
+
+ # Define file paths using base_dir
+ prefs_path_1 = base_dir / "src/main/resources/youtube/settings/xml/revanced_prefs.xml"
+ prefs_path_2 = base_path / "xml/revanced_prefs.xml"
+
+ try:
+ # Extract keys from both files
+ keys_1 = extract_keys(prefs_path_1)
+ keys_2 = extract_keys(prefs_path_2)
+
+ # Find missing keys
+ missing_keys = keys_1 - keys_2
+
+ # Log results
+ if missing_keys:
+ logger.info("Missing keys found:")
+ for key in sorted(missing_keys):
+ logger.info(key)
+ else:
+ logger.info("No missing keys found")
+
+ except XMLProcessingError as e:
+ logger.error(f"Failed to process preference files: {e}")
+ raise
diff --git a/xml_tools/handlers/missing_strings.py b/xml_tools/handlers/missing_strings.py
new file mode 100644
index 000000000..fc850abf2
--- /dev/null
+++ b/xml_tools/handlers/missing_strings.py
@@ -0,0 +1,77 @@
+from pathlib import Path
+import logging
+from lxml import etree as ET
+
+from config.settings import Settings
+from core.exceptions import XMLProcessingError
+from utils.xml import XMLProcessor
+
+logger = logging.getLogger("xml_tools")
+
+
+def compare_and_update(source_path: Path, dest_path: Path, missing_path: Path) -> None:
+ """Compare source and destination files and update missing strings.
+
+ Args:
+ source_path: Path to source XML file
+ dest_path: Path to destination XML file
+ missing_path: Path to missing strings file
+ """
+ try:
+ # Parse source and destination files
+ _, _, source_strings = XMLProcessor.parse_file(source_path)
+ _, _, dest_strings = XMLProcessor.parse_file(dest_path)
+ _, _, missing_path_strings = (
+ XMLProcessor.parse_file(missing_path) if missing_path.exists() else (None, None, {})
+ )
+
+ # Find missing strings
+ missing_strings = {}
+ for name, data in source_strings.items():
+ if name not in dest_strings:
+ missing_strings[name] = data
+
+ if missing_strings:
+ # Create new root with missing strings
+ root = ET.Element("resources")
+ for name, data in sorted(missing_strings.items()):
+ # If the string is already in the file and the count of strings is the same, then skip.
+ if name in missing_path_strings and len(missing_strings.keys()) == len(missing_path_strings.keys()):
+ logger.info(f"Up to date: {missing_path}")
+ return
+ string_elem = ET.Element("string", **data["attributes"])
+ string_elem.text = data["text"]
+ root.append(string_elem)
+
+ # Write missing strings file
+ XMLProcessor.write_file(missing_path, root)
+ logger.info(f"Modified missing strings file: {missing_path}")
+ elif missing_path.exists():
+ missing_path.unlink()
+ logger.info(f"Removed empty missing strings file: {missing_path}")
+
+ except Exception as e:
+ logger.error(f"Failed to process missing strings: {e}")
+ raise XMLProcessingError(str(e))
+
+
+def process(app: str) -> None:
+ """Process all files to find missing strings.
+
+ Args:
+ app: Application name (youtube/music)
+ """
+ settings = Settings()
+ source_path = settings.get_resource_path(app, "settings") / "host/values/strings.xml"
+ translations = settings.get_resource_path(app, "translations")
+
+ try:
+ for lang_dir in translations.iterdir():
+ if lang_dir.is_dir():
+ dest_path = lang_dir / "strings.xml"
+ missing_path = lang_dir / "missing_strings.xml"
+ compare_and_update(source_path, dest_path, missing_path)
+
+ except Exception as e:
+ logger.error(f"Failed to process {app} translations: {e}")
+ raise XMLProcessingError(str(e))
diff --git a/xml_tools/handlers/remove_unused_strings.py b/xml_tools/handlers/remove_unused_strings.py
new file mode 100644
index 000000000..d7c081716
--- /dev/null
+++ b/xml_tools/handlers/remove_unused_strings.py
@@ -0,0 +1,230 @@
+from typing import Set, Dict, List
+import logging
+import os
+from lxml import etree as ET
+from pathlib import Path
+
+from config.settings import Settings
+from core.exceptions import XMLProcessingError
+from utils.xml import XMLProcessor
+
+logger = logging.getLogger("xml_tools")
+
+# Constants
+BLACKLISTED_STRINGS: Set[str] = {
+ "revanced_remember_video_quality_mobile",
+ "revanced_remember_video_quality_wifi",
+ "revanced_sb_api_url_sum",
+ "revanced_sb_enabled",
+ "revanced_sb_enabled_sum",
+ "revanced_sb_toast_on_skip",
+ "revanced_sb_toast_on_skip_sum"
+}
+
+PREFIX_TO_IGNORE: tuple[str, ...] = (
+ "revanced_icon_",
+ "revanced_spoof_app_version_target_entry_",
+ "revanced_spoof_streaming_data_side_effects_"
+)
+
+settings_instance = Settings()
+
+SCRIPT_DIR = settings_instance.BASE_DIR
+SEARCH_DIRECTORIES = [
+ str(SCRIPT_DIR.parent / "revanced-patches"),
+ str(SCRIPT_DIR.parent / "revanced-integrations")
+]
+ALLOWED_EXTENSIONS = (".kt", ".java", ".xml")
+
+
+def get_base_name(name: str) -> str:
+ """
+ Return the base name by stripping known suffixes from a string name.
+
+ Args:
+ name (str): The original string name.
+
+ Returns:
+ str: The string name with known suffixes removed.
+
+ Example:
+ >>> get_base_name("my_setting_summary_on")
+ 'my_setting'
+ """
+ suffixes = [
+ "_title",
+ "_summary_off",
+ "_summary_on",
+ "_summary"
+ ]
+ for suffix in suffixes:
+ if name.endswith(suffix):
+ return name[:-len(suffix)]
+ return name
+
+
+def search_in_files(directories: List[str], name_values: Set[str]) -> Dict[str, List[str]]:
+ """
+ Search for string names in all files within specified directories.
+
+ Args:
+ directories (List[str]): List of directory paths to search.
+ name_values (Set[str]): Set of string names to search for.
+
+ Returns:
+ Dict[str, List[str]]: Dictionary mapping each string name to a list of file paths where it was found.
+
+ Raises:
+ OSError: If there are problems accessing the directories or files.
+ UnicodeDecodeError: If a file cannot be read as UTF-8.
+
+ Notes:
+ - Skips hidden directories and 'build' directories
+ - Ignores 'strings.xml' and 'missing_strings.xml' files
+ - Only searches files with extensions defined in ALLOWED_EXTENSIONS
+ - Searches for both original names and their base forms (without suffixes)
+ """
+ results = {name: [] for name in name_values}
+
+ for directory in directories:
+ abs_dir = os.path.abspath(directory)
+ logger.info(f"Searching in directory: {abs_dir} (exists: {os.path.exists(abs_dir)})")
+
+ for root, dirs, files in os.walk(directory):
+ # Skip hidden and build directories
+ dirs[:] = [d for d in dirs if not d.startswith(".") and d != "build"]
+
+ for file in files:
+ if (file in ("strings.xml", "missing_strings.xml") or not file.endswith(ALLOWED_EXTENSIONS)):
+ continue
+
+ file_path = os.path.join(root, file)
+ try:
+ with open(file_path, "r", encoding="utf-8") as f:
+ content = f.read()
+ for name in name_values:
+ # Check both original name and base name
+ if name in content or get_base_name(name) in content:
+ results[name].append(file_path)
+ except Exception as e:
+ logger.error(f"Error reading {file_path}: {e}")
+
+ return results
+
+
+def should_remove(name: str, unused_names: Set[str]) -> bool:
+ """
+ Determine if a string should be removed based on various criteria.
+
+ Args:
+ name (str): The string name to check.
+ unused_names (Set[str]): Set of string names that were not found in any source files.
+
+ Returns:
+ bool: True if the string should be removed, False otherwise.
+
+ Notes:
+ A string should be removed if:
+ - The string or its base name is in the unused_names set
+ - The string is not in BLACKLISTED_STRINGS
+ - The string does not start with any prefix in PREFIX_TO_IGNORE
+ """
+ base_name = get_base_name(name)
+ return (
+ (name in unused_names or base_name in unused_names) and
+ name not in BLACKLISTED_STRINGS and
+ not any(name.startswith(prefix) for prefix in PREFIX_TO_IGNORE)
+ )
+
+
+def process_xml_file(file_path: Path, unused_names: Set[str]) -> None:
+ """
+ Process a single XML file to remove unused strings.
+
+ Args:
+ file_path (Path): Path to the XML file to process.
+ unused_names (Set[str]): Set of string names that should be considered for removal.
+
+ Raises:
+ XMLProcessingError: If there are any errors during XML processing.
+
+ Notes:
+ - Creates a new XML tree containing only the strings that should be kept
+ - Only writes the file if strings were actually removed
+ - Maintains original XML structure and attributes
+ """
+ try:
+ _, _, strings_dict = XMLProcessor.parse_file(file_path)
+
+ # Count strings before removal
+ initial_count = len(strings_dict)
+
+ # Create new root with only used strings
+ new_root = ET.Element("resources")
+ kept_strings = 0
+ for name, data in sorted(strings_dict.items()):
+ if not should_remove(name, unused_names):
+ string_elem = ET.Element("string", **data["attributes"])
+ string_elem.text = data["text"]
+ new_root.append(string_elem)
+ kept_strings += 1
+
+ # Only write if strings were actually removed
+ if kept_strings < initial_count:
+ XMLProcessor.write_file(file_path, new_root)
+ logger.info(
+ f"Updated {file_path}: "
+ f"removed {initial_count - kept_strings} strings, "
+ f"kept {kept_strings} strings"
+ )
+ else:
+ logger.info(f"No changes needed for {file_path}")
+
+ except Exception as e:
+ logger.error(f"Error processing {file_path}: {e}")
+ raise XMLProcessingError(f"Failed to process {file_path}: {str(e)}")
+
+
+def process(app: str) -> None:
+ """
+ Remove unused strings from XML files for a given application.
+
+ Args:
+ app (str): The application identifier to process.
+
+ Raises:
+ XMLProcessingError: If there are any errors during XML processing.
+
+ Notes:
+ - Processes both the source strings file and all translation files
+ - Uses settings from the Settings class to determine file locations
+ - Maintains a log of all operations
+ - Skips writing files if no changes are needed
+ """
+ settings = Settings()
+ base_path = settings.get_resource_path(app, "settings")
+ source_path = base_path / "host/values/strings.xml"
+ translations = settings.get_resource_path(app, "translations")
+
+ try:
+ # Get source strings
+ _, _, source_strings = XMLProcessor.parse_file(source_path)
+
+ # Find unused strings using direct file search
+ search_results = search_in_files(SEARCH_DIRECTORIES, set(source_strings.keys()))
+ unused_names = {name for name, files in search_results.items() if not files}
+
+ # Process source file
+ if unused_names:
+ process_xml_file(source_path, unused_names)
+
+ # Process translation files
+ for lang_dir in translations.iterdir():
+ if lang_dir.is_dir():
+ dest_path = lang_dir / "strings.xml"
+ if dest_path.exists():
+ process_xml_file(dest_path, unused_names)
+
+ except Exception as e:
+ logger.error(f"Error during processing: {e}")
+ raise XMLProcessingError(str(e))
diff --git a/xml_tools/handlers/replace_strings.py b/xml_tools/handlers/replace_strings.py
new file mode 100644
index 000000000..55c63832f
--- /dev/null
+++ b/xml_tools/handlers/replace_strings.py
@@ -0,0 +1,78 @@
+from pathlib import Path
+import logging
+from lxml import etree as ET
+
+from config.settings import Settings
+from core.exceptions import XMLProcessingError
+from utils.xml import XMLProcessor
+
+logger = logging.getLogger("xml_tools")
+
+
+def update_strings(target_path: Path, source_path: Path) -> None:
+ """Update target XML file with strings from source file.
+
+ Args:
+ target_path: Path to target XML file
+ source_path: Path to source XML file
+ """
+ try:
+ # Parse source and target files
+ _, target_root, target_strings = XMLProcessor.parse_file(target_path)
+ _, _, source_strings = XMLProcessor.parse_file(source_path)
+
+ # Update existing strings
+ for elem in target_root.findall(".//string"):
+ name = elem.get("name")
+ if name in source_strings:
+ data = source_strings[name]
+ elem.text = data["text"]
+ elem.attrib.update(data["attributes"])
+ del source_strings[name]
+
+ # Add new strings
+ for name, data in sorted(source_strings.items()):
+ string_elem = ET.Element("string", **data["attributes"])
+ string_elem.text = data["text"]
+ target_root.append(string_elem)
+
+ # Write updated file
+ XMLProcessor.write_file(target_path, target_root)
+ logger.info(f"Updated strings in {target_path}")
+
+ except Exception as e:
+ logger.error(f"Failed to update strings in {target_path}: {e}")
+ raise XMLProcessingError(str(e))
+
+
+def process(app: str, base_dir: Path) -> None:
+ """Process all files to replace strings.
+
+ Args:
+ app: Application name (youtube/music)
+ base_dir: Base directory of RVX patches operations
+ """
+ settings = Settings()
+ base_path = settings.get_resource_path(app, "settings")
+ source_path = base_path / "host/values/strings.xml"
+ translations = settings.get_resource_path(app, "translations")
+
+ try:
+ # First update base strings file from RVX
+ rvx_base_path = base_dir / "src/main/resources" / app
+ rvx_source_path = rvx_base_path / "settings/host/values/strings.xml"
+ if rvx_source_path.exists():
+ update_strings(source_path, rvx_source_path)
+
+ # Process translation files
+ for lang_dir in translations.iterdir():
+ if lang_dir.is_dir():
+ target_path = lang_dir / "strings.xml"
+ rvx_lang_path = rvx_base_path / "translations" / lang_dir.name / "strings.xml"
+
+ if rvx_lang_path.exists():
+ update_strings(target_path, rvx_lang_path)
+
+ except Exception as e:
+ logger.error(f"Failed to process {app} translations: {e}")
+ raise XMLProcessingError(str(e))
diff --git a/xml_tools/handlers/sort_strings.py b/xml_tools/handlers/sort_strings.py
new file mode 100644
index 000000000..20eebd7ca
--- /dev/null
+++ b/xml_tools/handlers/sort_strings.py
@@ -0,0 +1,53 @@
+from pathlib import Path
+from lxml import etree as ET
+import logging
+
+from config.settings import Settings
+from core.exceptions import XMLProcessingError
+from utils.xml import XMLProcessor
+
+logger = logging.getLogger("xml_tools")
+
+
+def sort_file(path: Path) -> None:
+ """Sort strings in XML file alphabetically.
+
+ Args:
+ path: Path to XML file to sort
+ """
+ try:
+ _, root, strings = XMLProcessor.parse_file(path)
+
+ # Create new root with sorted strings
+ new_root = ET.Element("resources")
+ for name in sorted(strings.keys()):
+ data = strings[name]
+ string_elem = ET.Element("string", **data["attributes"])
+ string_elem.text = data["text"]
+ new_root.append(string_elem)
+
+ XMLProcessor.write_file(path, new_root)
+ logger.info(f"Sorted strings in {path}")
+
+ except Exception as e:
+ logger.error(f"Failed to sort {path}: {e}")
+ raise XMLProcessingError(f"Failed to sort {path}: {e}")
+
+
+def process(app: str) -> None:
+ """Process all files for an app.
+
+ Args:
+ app: Application name (youtube/music)
+ """
+ settings = Settings()
+ base_path = settings.get_resource_path(app, "settings")
+ translations = settings.get_resource_path(app, "translations")
+
+ # Sort main strings file
+ sort_file(base_path / "host/values/strings.xml")
+
+ # Sort translation files
+ for lang_dir in translations.iterdir():
+ if lang_dir.is_dir():
+ sort_file(lang_dir / "strings.xml")
diff --git a/xml_tools/main.py b/xml_tools/main.py
new file mode 100644
index 000000000..70a01bdfa
--- /dev/null
+++ b/xml_tools/main.py
@@ -0,0 +1,208 @@
+from pathlib import Path
+import click
+import os
+import sys
+from typing import Optional, List, Tuple, Callable
+from logging import Logger
+
+from config.settings import Settings
+from core.exceptions import ConfigError
+from core.logging import setup_logging, log_process
+from utils.git import GitClient
+from handlers import missing_prefs, missing_strings, remove_unused_strings, replace_strings, sort_strings
+
+settings = Settings()
+
+
+def get_rvx_base_dir() -> Path:
+ """Get RVX base directory from environment variable.
+
+ Returns:
+ Path: The path to the RVX base directory.
+
+ Raises:
+ ConfigError: If RVX_BASE_DIR environment variable is not set.
+
+ Note:
+ This function checks for the RVX_BASE_DIR environment variable
+ which must be set before running the application.
+ """
+ rvx_dir = os.getenv("RVX_BASE_DIR")
+ if not rvx_dir:
+ raise ConfigError("RVX_BASE_DIR environment variable must be set")
+ return Path(rvx_dir)
+
+
+def validate_rvx_base_dir(ctx: click.Context, base_dir: Optional[str] = None) -> Path:
+ """Validate and return the RVX base directory path.
+
+ Args:
+ ctx (click.Context): The Click context object containing shared resources.
+ base_dir (Optional[str], optional): The base directory path string. Defaults to None.
+
+ Returns:
+ Path: A validated Path object for the RVX base directory.
+
+ Raises:
+ SystemExit: If the base directory validation fails.
+
+ Note:
+ If base_dir is not provided, the function attempts to get it from
+ the RVX_BASE_DIR environment variable.
+ """
+ if not base_dir:
+ try:
+ base_dir = str(get_rvx_base_dir())
+ except ConfigError as e:
+ ctx.obj['logger'].error(str(e))
+ sys.exit(1)
+ return Path(base_dir)
+
+
+def process_all(app: str, base_dir: Path, logger: Logger) -> None:
+ """Run all processing steps in sequence for the specified application.
+
+ Args:
+ app (str): The application to process ('youtube' or 'music').
+ base_dir (Path): The base directory path for RVX operations.
+ logger (Logger): The logger instance for recording operations.
+
+ Raises:
+ SystemExit: If any processing step fails or Git sync fails.
+ Exception: If any handler encounters an error during execution.
+
+ Note:
+ This function executes the following steps in order:
+ 1. Syncs the Git repository
+ 2. Replaces strings for YouTube and YouTube Music
+ 3. Removes unused strings
+ 4. Sorts strings
+ 5. Checks for missing strings
+ 6. Checks for missing preferences
+ """
+ git = GitClient(base_dir)
+ if not git.sync_repository():
+ sys.exit(1)
+
+ handlers: List[Tuple[str, Callable, List[str]]] = [
+ ("Replace Strings (YouTube)", replace_strings.process, ["youtube", base_dir]),
+ ("Replace Strings (YouTube Music)", replace_strings.process, ["music", base_dir]),
+ ("Remove Unused Strings (YouTube)", remove_unused_strings.process, ["youtube"]),
+ ("Remove Unused Strings (YouTube Music)", remove_unused_strings.process, ["music"]),
+ ("Sort Strings (YouTube)", sort_strings.process, ["youtube"]),
+ ("Sort Strings (YouTube Music)", sort_strings.process, ["music"]),
+ ("Missing Strings Check (YouTube)", missing_strings.process, ["youtube"]),
+ ("Missing Strings Check (YouTube Music)", missing_strings.process, ["music"]),
+ ("Missing Prefs Check", missing_prefs.process, ["youtube", base_dir]),
+ ]
+
+ for process_name, handler, args in handlers:
+ try:
+ log_process(logger, process_name)
+ handler(*args)
+ except Exception as e:
+ logger.error(f"Handler {process_name} failed: {e}")
+ sys.exit(1)
+
+
+@click.group(invoke_without_command=True)
+@click.option("--log-file", type=str, help="Path to log file")
+@click.option("--rvx-base-dir", type=str, help="Base directory of RVX patches operations", envvar="RVX_BASE_DIR")
+@click.option("-a", "--all", "run_all", is_flag=True, help="Run all commands in order")
+@click.option("-m", "--missing", is_flag=True, help="Run missing strings check")
+@click.option("-r", "--replace", is_flag=True, help="Run replace strings operation")
+@click.option("--remove", is_flag=True, help="Remove unused strings")
+@click.option("-s", "--sort", is_flag=True, help="Sort strings in XML files")
+@click.option("-p", "--prefs", is_flag=True, help="Run missing preferences check")
+@click.option("--youtube/--music", default=True, help="Process YouTube or Music strings")
+@click.pass_context
+def cli(ctx: click.Context,
+ log_file: Optional[str],
+ rvx_base_dir: Optional[str],
+ run_all: bool,
+ missing: bool,
+ replace: bool,
+ remove: bool,
+ sort: bool,
+ prefs: bool,
+ youtube: bool) -> None:
+ """XML processing tools for RVX patches with backwards compatibility.
+
+ Args:
+ ctx (click.Context): Click context object for sharing resources between commands.
+ log_file (Optional[str]): Path to the log file. If None, logs to stdout.
+ rvx_base_dir (Optional[str]): Base directory for RVX operations. Can be set via RVX_BASE_DIR env var.
+ run_all (bool): Flag to run all processing steps in sequence.
+ missing (bool): Flag to run missing strings check.
+ replace (bool): Flag to run string replacement operation.
+ remove (bool): Flag to remove unused strings.
+ sort (bool): Flag to sort strings in XML files.
+ prefs (bool): Flag to run missing preferences check.
+ youtube (bool): Flag to process YouTube (--youtube) or Music (--music) strings.
+
+ Raises:
+ SystemExit: If any processing step fails.
+ Exception: If any operation encounters an error.
+
+ Note:
+ - The function initializes logging and validates the RVX base directory when required.
+ - Operations are executed in the order specified by command line flags.
+ - The --youtube/--music flag determines which application's strings to process.
+ - When --all is specified, all operations are run in a predefined sequence.
+ """
+ # Initialize the logger
+ logger = setup_logging(Path(log_file) if log_file else None)
+
+ app = "youtube" if youtube else "music"
+
+ # Store common context
+ ctx.obj = {
+ "app": app,
+ "logger": logger
+ }
+
+ # Only validate RVX_BASE_DIR for commands that need it
+ needs_rvx_dir = run_all or replace or prefs
+ if needs_rvx_dir:
+ base_dir = validate_rvx_base_dir(ctx, rvx_base_dir)
+
+ # Handle all operations if --all is specified
+ if run_all:
+ try:
+ process_all(app, base_dir, logger)
+ return
+ except Exception as e:
+ logger.error(f"Error during processing: {e}")
+ sys.exit(1)
+
+ # Handle individual operations
+ try:
+ if missing:
+ log_process(logger, "Missing Strings Check")
+ missing_strings.process(app)
+
+ if prefs:
+ log_process(logger, "Missing Preferences Check")
+ missing_prefs.process(app, base_dir)
+
+ if remove:
+ log_process(logger, "Remove Unused Strings")
+ remove_unused_strings.process(app)
+
+ if replace:
+ git = GitClient(base_dir)
+ if git.sync_repository():
+ log_process(logger, "Replace Strings")
+ replace_strings.process(app, base_dir)
+
+ if sort:
+ log_process(logger, "Sort Strings")
+ sort_strings.process(app)
+
+ except Exception as e:
+ logger.error(f"Error during processing: {e}")
+ sys.exit(1)
+
+
+if __name__ == "__main__":
+ cli()
diff --git a/xml_tools/utils/git.py b/xml_tools/utils/git.py
new file mode 100644
index 000000000..14a670a09
--- /dev/null
+++ b/xml_tools/utils/git.py
@@ -0,0 +1,87 @@
+import subprocess
+from pathlib import Path
+from typing import Tuple
+import logging
+
+logger = logging.getLogger("xml_tools")
+
+
+class GitClient:
+ """
+ Handler for Git operations on a repository.
+
+ This class provides methods to perform Git operations on a specified repository path.
+
+ Attributes:
+ repo_path (Path): Path to the Git repository
+ """
+
+ def __init__(self, repo_path: Path) -> None:
+ """
+ Initialize GitClient with repository path.
+
+ Args:
+ repo_path (Path): Path to the Git repository
+
+ Returns:
+ None
+ """
+ self.repo_path = repo_path
+
+ def run_command(self, command: list) -> Tuple[int, str, str]:
+ """
+ Execute a Git command and return its result.
+
+ Args:
+ command (list): List of command components (e.g., ["git", "pull"])
+
+ Returns:
+ Tuple[int, str, str]: A tuple containing:
+ - Return code (0 for success)
+ - Command output (stdout)
+ - Error output (stderr)
+
+ Note:
+ Commands are executed in the repository directory specified during initialization.
+ """
+ try:
+ result = subprocess.run(
+ command,
+ cwd=self.repo_path,
+ capture_output=True,
+ text=True
+ )
+ return result.returncode, result.stdout, result.stderr
+ except subprocess.SubprocessError as e:
+ logger.error(f"Git command failed: {e}")
+ return 1, "", str(e)
+
+ def sync_repository(self) -> bool:
+ """
+ Synchronize the repository with its remote.
+
+ This method performs three operations in sequence:
+ 1. Switches to the 'dev' branch
+ 2. Fetches updates from remote
+ 3. Pulls changes
+
+ Returns:
+ bool: True if all operations succeeded, False otherwise
+
+ Note:
+ Logs success/failure of each operation through the logger.
+ """
+ operations = [
+ (["git", "switch", "dev"], "checkout"),
+ (["git", "fetch"], "fetch"),
+ (["git", "pull"], "pull")
+ ]
+
+ for command, operation in operations:
+ code, out, err = self.run_command(command)
+ if code != 0:
+ logger.error(f"Git {operation} failed: {err}")
+ return False
+ logger.info(f"Git {operation} successful")
+
+ return True
diff --git a/xml_tools/utils/xml.py b/xml_tools/utils/xml.py
new file mode 100644
index 000000000..df79d73df
--- /dev/null
+++ b/xml_tools/utils/xml.py
@@ -0,0 +1,93 @@
+from lxml import etree as ET
+from typing import Dict, Tuple
+from pathlib import Path
+import logging
+from core.exceptions import XMLProcessingError
+
+logger = logging.getLogger("xml_tools")
+
+
+class XMLProcessor:
+ """
+ Utilities for processing XML files.
+
+ This class provides static methods for parsing and writing XML files,
+ with special handling for elements containing 'name' attributes.
+ """
+
+ @staticmethod
+ def parse_file(path: Path) -> Tuple[ET.ElementTree, ET.Element, Dict[str, Dict[str, str]]]:
+ """
+ Parse an XML file and extract data from elements with 'name' attributes.
+
+ Args:
+ path (Path): Path to the XML file to parse
+
+ Returns:
+ Tuple[ET.ElementTree, ET.Element, Dict[str, Dict[str, str]]]: A tuple containing:
+ - The parsed XML tree
+ - Root element
+ - Dictionary mapping element names to their properties:
+ {
+ "element_name": {
+ "text": "element text content",
+ "attributes": {"attr1": "value1", ...}
+ }
+ }
+
+ Raises:
+ XMLProcessingError: If the file cannot be parsed or read
+
+ Note:
+ Only elements with 'name' attributes are included in the returned dictionary.
+ """
+ try:
+ tree = ET.parse(path)
+ root = tree.getroot()
+
+ # Capture all elements with a 'name' attribute
+ strings = {}
+ for elem in root.findall(".//*[@name]"):
+ name = elem.get("name")
+ if name:
+ strings[name] = {
+ "text": elem.text or "",
+ "attributes": dict(elem.attrib)
+ }
+
+ return tree, root, strings
+ except (ET.ParseError, IOError) as e:
+ logger.error(f"Failed to parse {path}: {e}")
+ raise XMLProcessingError(f"Failed to parse {path}: {e}")
+
+ @staticmethod
+ def write_file(path: Path, root: ET.Element, pretty_print: bool = True) -> None:
+ """
+ Write an XML element tree to a file.
+
+ Args:
+ path (Path): Output file path
+ root (ET.Element): Root element to write
+ pretty_print (bool): Whether to format the output with proper indentation
+
+ Raises:
+ XMLProcessingError: If the file cannot be written
+
+ Note:
+ - Creates parent directories if they don't exist
+ - Uses 4-space indentation when pretty_print is True
+ - Writes in UTF-8 encoding with XML declaration
+ """
+ try:
+ path.parent.mkdir(parents=True, exist_ok=True)
+ tree = ET.ElementTree(root)
+ ET.indent(tree, space=" ") # Set indentation to 4 spaces
+ tree.write(
+ path,
+ encoding="utf-8",
+ xml_declaration=True,
+ pretty_print=pretty_print
+ )
+ except IOError as e:
+ logger.error(f"Failed to write {path}: {e}")
+ raise XMLProcessingError(f"Failed to write {path}: {e}")
From 4a1c3b3898e42bfc42bed368f2146d6153a64e0d Mon Sep 17 00:00:00 2001
From: semantic-release-bot
Date: Tue, 29 Oct 2024 11:42:27 +0000
Subject: [PATCH 08/18] chore(release): 2.231.0-dev.1 [skip ci]
# [2.231.0-dev.1](https://github.com/anddea/revanced-patches/compare/v2.230.0...v2.231.0-dev.1) (2024-10-29)
### Features
* **YouTube - Hide ads:** Add `Hide player shopping shelf` setting ([320aa48](https://github.com/anddea/revanced-patches/commit/320aa485f917ef612e12b5bca27a307c2961a57c))
* **YouTube - Hide feed components:** Add `Hide floating button` setting ([da4dd43](https://github.com/anddea/revanced-patches/commit/da4dd43bb1b3a493fb1f4480fca2f9471e431437))
* **YouTube - Seekbar components:** Add `Enable high quality thumbnails` setting ([a0476b5](https://github.com/anddea/revanced-patches/commit/a0476b59b5c724cc1da232df0757ee9797edf505))
---
CHANGELOG.md | 9 +++++++++
gradle.properties | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4b9180ed8..edb8ecec9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+# [2.231.0-dev.1](https://github.com/anddea/revanced-patches/compare/v2.230.0...v2.231.0-dev.1) (2024-10-29)
+
+
+### Features
+
+* **YouTube - Hide ads:** Add `Hide player shopping shelf` setting ([320aa48](https://github.com/anddea/revanced-patches/commit/320aa485f917ef612e12b5bca27a307c2961a57c))
+* **YouTube - Hide feed components:** Add `Hide floating button` setting ([da4dd43](https://github.com/anddea/revanced-patches/commit/da4dd43bb1b3a493fb1f4480fca2f9471e431437))
+* **YouTube - Seekbar components:** Add `Enable high quality thumbnails` setting ([a0476b5](https://github.com/anddea/revanced-patches/commit/a0476b59b5c724cc1da232df0757ee9797edf505))
+
# [2.230.0](https://github.com/anddea/revanced-patches/compare/v2.229.0...v2.230.0) (2024-10-29)
diff --git a/gradle.properties b/gradle.properties
index 8e58d2afd..92ef78a5c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.parallel = true
org.gradle.caching = true
kotlin.code.style = official
-version = 2.230.0
+version = 2.231.0-dev.1
From 2aa33b25624dea2cc387035b468716f3933a1bd0 Mon Sep 17 00:00:00 2001
From: Patriot99 <31535921+Patriot99@users.noreply.github.com>
Date: Tue, 29 Oct 2024 21:17:35 +0100
Subject: [PATCH 09/18] chore(YouTube - Translations): Update `Polish` (#863)
---
.../translations/pl-rPL/missing_strings.xml | 17 -----------------
.../youtube/translations/pl-rPL/strings.xml | 15 +++++++++++++++
2 files changed, 15 insertions(+), 17 deletions(-)
delete mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
deleted file mode 100644
index 4bce935b0..000000000
--- a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
-
diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml
index e10a52a4d..43a6f4273 100644
--- a/src/main/resources/youtube/translations/pl-rPL/strings.xml
+++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml
@@ -1710,4 +1710,19 @@ Jeśli opcja nie przynosi skutku, spróbuj przełączyć się na tryb incognito.
Sprawdź lub usuń listę kanałów dodanych do białej listy
Biała lista kanałów
SponsorBlock
+
+ "Przywróci to miniaturki w transmisjach na żywo, które ich nie mają.
+
+Zużycie danych internetowych może być większe, a miniaturki w pasku postępu filmu mogą mieć drobne opóźnienie przed wyświetleniem.
+
+Funkcja działa najlepiej przy bardzo szybkim połączeniu internetowym."
+ Średnia
+ Wysoka
+ Rozdzielczość miniaturek
+ Widoczny
+ Ukryty
+ Pływający przycisk
+ Widoczne
+ Ukryte
+ Półki sklepowe
From 03cef77761bfebe1945ec320413d91e5d8ce740c Mon Sep 17 00:00:00 2001
From: BlackGold8282
Date: Wed, 6 Nov 2024 02:09:57 +0900
Subject: [PATCH 10/18] chore(YouTube - Translations): Update `Korean` (#866)
---
.../translations/ko-rKR/missing_strings.xml | 10 +----
.../youtube/translations/ko-rKR/strings.xml | 40 +++++++++++--------
2 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml
index 4995e20be..8b1378917 100644
--- a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml
@@ -1,9 +1 @@
-
-
- Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
- Long press video downloader package name
- MMT Orange
- MMT Pink
- MMT Turquoise
- Xisr Yellow
-
+
diff --git a/src/main/resources/youtube/translations/ko-rKR/strings.xml b/src/main/resources/youtube/translations/ko-rKR/strings.xml
index 53b1cfd08..186070d4c 100644
--- a/src/main/resources/youtube/translations/ko-rKR/strings.xml
+++ b/src/main/resources/youtube/translations/ko-rKR/strings.xml
@@ -50,8 +50,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
동영상의 끝 부분 이미지
스틸 컷 썸네일에서 표시되는 이미지
구독 탭
- 타임스탬프에서 정보를 표시하지 않습니다.
- 타임스탬프에서 정보를 표시합니다.
+ 타임스탬프에서 정보를 표시하지 않습니다.\n• 정보: 동영상 화질, 동영상 재생 속도
+ 타임스탬프에서 정보를 표시합니다.\n• 정보: 동영상 화질, 동영상 재생 속도
타임스탬프에서 정보 표시하기
현재 동영상 재생 속도 값을 표시합니다.\n\n동영상을 재생하는 동안에 타임스탬프 정보를 길게 누르면 다른 정보로 빠르게 전환할 수 있습니다.
현재 동영상 화질 값을 표시합니다.\n\n동영상을 재생하는 동안에 타임스탬프 정보를 길게 누르면 다른 정보로 빠르게 전환할 수 있습니다.
@@ -76,7 +76,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
YouTube 기본 공유 시트를 사용합니다.
Android 기본 공유 시트를 사용합니다.\n\n• 공유 버튼으로 바로 Android 기본 공유 메뉴를 실행할 수 있습니다.
공유 시트 변경하기
- 자동재생
+ 자동넘김
기본값
일시정지
반복하기
@@ -192,7 +192,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
동영상에서 \'Like (좋아요)\' 버튼이 언급되었을 때, 해당 버튼에 빛나는 애니메이션을 적용합니다.\n• 일부 언어는 아직 지원되지 않습니다.
동영상에서 \'Like (좋아요)\' 버튼이 언급되었을 때, 해당 버튼에 빛나는 애니메이션을 적용하지 않습니다.\n• 일부 언어는 아직 지원되지 않습니다.
빛나는 \'좋아요 & 싫어요\' 버튼 비활성화하기
- "QUIC 프로토콜을 비활성화해서 동영상을 불러올 때 발생하는 동영상 압축과 푸는 과정을 제거하여 동영상 로딩 속도를 향상시킵니다. 모바일 데이터 사용량이 증가할 수 있으니 주의하세요."
+ "QUIC 프로토콜을 비활성화해서 동영상을 불러올 때 발생하는 동영상 압축과 푸는 과정을 제거하여 동영상 로딩 속도를 향상시킵니다. 더 많은 모바일 데이터가 사용되오니 주의하세요."
QUIC 프로토콜 비활성화하기
앱을 시작할 때, Shorts 플레이어를 다시 실행합니다.
앱을 시작할 때, Shorts 플레이어를 다시 실행하지 않습니다.
@@ -273,7 +273,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
재생바 터치 조작 활성화하기
"이 설정을 활성화하면 재생바 썸네일이 없는 실시간 스트림에서 썸네일이 복원됩니다.
-인터넷 데이터가 더 많이 사용될 수 있으며, 재생바 썸네일이 표시되기 전에 약간의 지연이 발생합니다.
+재생바 썸네일이 표시되기 전에 약간의 지연이 발생하고, 더 많은 모바일 데이터가 사용되오니 주의하세요.
이 설정은 인터넷 연결이 매우 좋을 때 가장 잘 작동합니다."
재생바 썸네일이 일반화질입니다,
@@ -362,6 +362,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
재생목록 외부 다운로더 앱 패키지명
NewPipe 또는 YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
+ 길게 눌러서 실행할 NewPipe 또는 YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
+ 길게 눌러서 동영상 외부 다운로더 앱 패키지명
동영상 외부 다운로더 앱 패키지명
"
다음과 같은 상황에서 동영상이 전체 화면으로 전환됩니다:
@@ -608,8 +610,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
보건 정보 패널이 표시됩니다.
보건 정보 패널이 숨겨집니다.
보건 정보 패널 숨기기
- 매장 쇼핑 선반이 표시됩니다.
- 매장 쇼핑 선반이 숨겨집니다.
+ 매장 쇼핑 선반이 표시됩니다.\n• 크리에이터명 매장 쇼핑 선반
+ 매장 쇼핑 선반이 숨겨집니다.\n• 크리에이터명 매장 쇼핑 선반
매장 쇼핑 선반 숨기기
믹스 재생목록이 표시됩니다.
믹스 재생목록이 숨겨집니다.
@@ -728,8 +730,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
버튼이 표시됩니다.
버튼이 숨겨집니다.
이전 & 다음 동영상 버튼 숨기기
- 판매자 쇼핑 선반이 표시됩니다.
- 판매자 쇼핑 선반이 숨겨집니다.
+ 판매자 쇼핑 선반이 표시됩니다.\n• 판매자(크리에이터명) 선반
+ 판매자 쇼핑 선반이 숨겨집니다.\n• 판매자(크리에이터명) 선반
판매자 쇼핑 선반 숨기기
YouTube Music 버튼이 표시됩니다.
YouTube Music 버튼이 숨겨집니다.
@@ -743,8 +745,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
댓글 미리보기가 표시됩니다.
댓글 미리보기가 숨겨집니다.
댓글 미리보기 숨기기
- 댓글 섹션의 크기가 변경되므로 댓글 섹션에서 실시간 채팅 다시보기를 열 수 없습니다.
- 댓글 섹션의 크기가 변경되지 않으므로 댓글 섹션에서 실시간 채팅 다시보기를 열 수 있습니다.
+ 댓글 섹션의 크기가 변경되므로 댓글 섹션에서 '실시간 채팅 다시보기' 및 'YouTube Music에서 감상하기'를 열 수 없습니다.
+ 댓글 섹션의 크기가 변경되지 않으므로 댓글 섹션에서 '실시간 채팅 다시보기' 및 'YouTube Music에서 감상하기'를 열 수 있습니다.
댓글 미리보기 유형 숨기기
프로모션 알림 배너가 표시됩니다.
프로모션 알림 배너가 숨겨집니다.
@@ -1108,8 +1110,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
웹 검색 결과가 표시됩니다.
웹 검색 결과가 숨겨집니다.
웹 검색 결과 숨기기
- YouTube Doodles가 표시됩니다.\n• 이벤트성 YouTube 헤더
- YouTube Doodles가 숨겨집니다.\n• 이벤트성 YouTube 헤더
+ YouTube Doodles가 표시됩니다.\n• Doodles: 기념일 로고 헤더
+ YouTube Doodles가 숨겨집니다.\n• Doodes: 기념일 로고 헤더
YouTube Doodles 숨기기
"YouTube Doodles는 공휴일이나 기념일 등, 그날에 맞춘 디자인으로 변경되는 왼쪽 상단의 YouTube 헤더를 말합니다.
@@ -1124,12 +1126,16 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
MMT
MMT Blue
MMT Green
+ MMT Orange
+ MMT Pink
+ MMT Turquoise
MMT Yellow
Revancify Blue
Revancify Red
Revancify Yellow
Vanced Black
Vanced Light
+ Xisr Yellow
YouTube
자동 회전 모드를 켜지 않고, 전체 화면으로 시청 중 화면을 껐다 켰을 때, 가로 모드를 유지합니다.
가로 모드로 강제로 유지되는 시간을 지정할 수 있습니다. (밀리초)\n\n화면을 끄고 이 시간이 지나고 다시 켰을 때는 세로 모드로 적용됩니다.
@@ -1319,7 +1325,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
채널 이름을 사용합니다.
채널 핸들 변경하기
타임스탬프를 누르면 남은 시간을 표시할 수 있습니다.
- 타임스탬프를 누르면 재생 속도 또는 동영상 화질 설정 메뉴 구성요소를 열 수 있습니다.
+ 타임스탬프를 누르면 동영상 재생 속도 또는 동영상 화질 설정 메뉴 구성요소를 열 수 있습니다.
타임스탬프 액션 변경하기
만들기 버튼을 설정 버튼으로 변경합니다.
만들기 버튼 변경하기
@@ -1635,9 +1641,9 @@ API Key를 발급받는 방법을 보려면 여기를 누르세요."
iOS 동영상 코덱을 AVC (H.264), VP9 또는 AV1으로 활성화합니다.\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들이 제거되어 360p와 1080p(Premium 기능)만 선택할 수 있거나 화질 메뉴를 선택할 수 없을 수 있습니다.
iOS 동영상 코덱을 AVC (H.264)로 활성화합니다.\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값들이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다
iOS AVC (H.264) 강제로 활성화하기
- "이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다.
+ "이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다.
-AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 데이터가 사용됩니다."
+AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 모바일 데이터가 사용되오니 주의하세요."
"• 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다."
"• 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다."
"• 영화 또는 회원 전용 동영상과 같은 유료 동영상이 재생되지 않을 수 있습니다.\n• 되감기가 가능한 실시간 스트림이 라이브 중인 시점이 아닌 처음부터 재생될 수 있습니다.\n• 동영상이 1초 일찍 종료될 수 있습니다.\n• OPUS 오디오 코덱이 지원되지 않습니다."
@@ -1674,7 +1680,7 @@ AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9
오버레이가 표시되는 시간을 지정할 수 있습니다. (밀리초)
오버레이 타임아웃
볼륨 스와이프 감도는 1-1000 사이어야 합니다. (퍼센트)
- 볼륨 스와이프의 최소 거리를 1-1000 사이에서 지정할 수 있습니다. (퍼센트)\n\n최소 거리가 짧을수록 볼륨 레벨이 더 빨리 변경됩니다.\n\n권장 볼륨 스와이프 감도는 15단계 볼륨에서 100%, 150단계 볼륨에서 10%입니다.
+ 볼륨 스와이프의 최소 거리를 1-1000 사이에서 지정할 수 있습니다. (퍼센트)\n\n최소 거리가 짧을수록 볼륨 레벨이 더 빠르게 변경됩니다.\n\n권장 볼륨 스와이프 감도는 15단계 볼륨에서 100%, 150단계 볼륨에서 10%입니다.
볼륨 스와이프 감도
"기기 정보를 변경하여 만들기 버튼과 알림 버튼의 위치를 교환합니다.
• 이 설정을 변경하더라도 기기를 다시 시작할 때까지 적용되지 않을 수 있습니다.
From fef16e84d05be391b301e09d7958d685d4d9df38 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Wed, 6 Nov 2024 13:34:00 +0300
Subject: [PATCH 11/18] feat(YouTube - Description components): Add `Hide
AI-generated video summary section` setting
---
src/main/resources/youtube/settings/xml/revanced_prefs.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
index e1188301a..fc493b7e4 100644
--- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml
+++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml
@@ -471,6 +471,7 @@
-
-
From a58c3dfbc6573adc56d7ea600bf66f5cb885ac73 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Wed, 6 Nov 2024 13:45:03 +0300
Subject: [PATCH 14/18] fix(YouTube - Overlay buttons): Support A/B player
layout
---
.../patches/youtube/utils/fix/bottomui/CfBottomUIPatch.kt | 3 +++
.../bottomui/fingerprints/ExploderControlsFingerprint.kt | 8 ++++++++
2 files changed, 11 insertions(+)
create mode 100644 src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/fingerprints/ExploderControlsFingerprint.kt
diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/CfBottomUIPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/CfBottomUIPatch.kt
index 66374cddf..67bbc0f4f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/CfBottomUIPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/CfBottomUIPatch.kt
@@ -3,6 +3,7 @@ package app.revanced.patches.youtube.utils.fix.bottomui
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.Patch
+import app.revanced.patches.youtube.utils.fix.bottomui.fingerprints.ExploderControlsFingerprint
import app.revanced.patches.youtube.utils.fix.bottomui.fingerprints.FullscreenButtonPositionFingerprint
import app.revanced.patches.youtube.utils.fix.bottomui.fingerprints.FullscreenButtonViewStubFingerprint
import app.revanced.util.injectLiteralInstructionBooleanCall
@@ -12,6 +13,7 @@ import app.revanced.util.injectLiteralInstructionBooleanCall
)
object CfBottomUIPatch : BytecodePatch(
setOf(
+ ExploderControlsFingerprint,
FullscreenButtonPositionFingerprint,
FullscreenButtonViewStubFingerprint
)
@@ -23,6 +25,7 @@ object CfBottomUIPatch : BytecodePatch(
* Therefore, this patch only applies to versions that can resolve this fingerprint.
*/
mapOf(
+ ExploderControlsFingerprint to 45643739,
FullscreenButtonViewStubFingerprint to 45617294,
FullscreenButtonPositionFingerprint to 45627640
).forEach { (fingerprint, literalValue) ->
diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/fingerprints/ExploderControlsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/fingerprints/ExploderControlsFingerprint.kt
new file mode 100644
index 000000000..520113443
--- /dev/null
+++ b/src/main/kotlin/app/revanced/patches/youtube/utils/fix/bottomui/fingerprints/ExploderControlsFingerprint.kt
@@ -0,0 +1,8 @@
+package app.revanced.patches.youtube.utils.fix.bottomui.fingerprints
+
+import app.revanced.util.fingerprint.LiteralValueFingerprint
+
+internal object ExploderControlsFingerprint : LiteralValueFingerprint(
+ returnType = "Z",
+ literalSupplier = { 45643739 },
+)
\ No newline at end of file
From 2d5d3256ac73d09b93d917e3c1985618d379f3b7 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Wed, 6 Nov 2024 14:04:13 +0300
Subject: [PATCH 15/18] chore(Python): Check if missing strings path exists and
is not empty
---
xml_tools/handlers/missing_strings.py | 4 +---
xml_tools/utils/xml.py | 3 +++
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/xml_tools/handlers/missing_strings.py b/xml_tools/handlers/missing_strings.py
index fc850abf2..eba720515 100644
--- a/xml_tools/handlers/missing_strings.py
+++ b/xml_tools/handlers/missing_strings.py
@@ -21,9 +21,7 @@ def compare_and_update(source_path: Path, dest_path: Path, missing_path: Path) -
# Parse source and destination files
_, _, source_strings = XMLProcessor.parse_file(source_path)
_, _, dest_strings = XMLProcessor.parse_file(dest_path)
- _, _, missing_path_strings = (
- XMLProcessor.parse_file(missing_path) if missing_path.exists() else (None, None, {})
- )
+ _, _, missing_path_strings = XMLProcessor.parse_file(missing_path)
# Find missing strings
missing_strings = {}
diff --git a/xml_tools/utils/xml.py b/xml_tools/utils/xml.py
index df79d73df..4d473fc8c 100644
--- a/xml_tools/utils/xml.py
+++ b/xml_tools/utils/xml.py
@@ -41,6 +41,9 @@ def parse_file(path: Path) -> Tuple[ET.ElementTree, ET.Element, Dict[str, Dict[s
Note:
Only elements with 'name' attributes are included in the returned dictionary.
"""
+ if not path.exists() or path.stat().st_size < 2:
+ return None, None, {}
+
try:
tree = ET.parse(path)
root = tree.getroot()
From cd48784bbf0d3df708c6f4bca12141cbb1cb3152 Mon Sep 17 00:00:00 2001
From: Aaron Veil <70171475+anddea@users.noreply.github.com>
Date: Wed, 6 Nov 2024 14:25:57 +0300
Subject: [PATCH 16/18] chore(Translations): Update translations
---
.../music/translations/el-rGR/strings.xml | 28 +-
.../translations/ja-rJP/missing_strings.xml | 18 +-
.../music/translations/ja-rJP/strings.xml | 16 +
.../translations/ru-rRU/missing_strings.xml | 38 +-
.../music/translations/ru-rRU/strings.xml | 38 +-
.../music/translations/vi-rVN/strings.xml | 70 +-
.../youtube/settings/host/values/strings.xml | 22 +-
.../translations/ar/missing_strings.xml | 5 +-
.../youtube/translations/ar/strings.xml | 2 +-
.../youtube/translations/bg-rBG/strings.xml | 5 +-
.../translations/de-rDE/missing_strings.xml | 3 +
.../youtube/translations/de-rDE/strings.xml | 2 +-
.../translations/el-rGR/missing_strings.xml | 14 -
.../youtube/translations/el-rGR/strings.xml | 106 +-
.../youtube/translations/es-rES/strings.xml | 13 +-
.../translations/fr-rFR/missing_strings.xml | 17 +-
.../youtube/translations/fr-rFR/strings.xml | 28 +-
.../translations/hu-rHU/missing_strings.xml | 44 +-
.../youtube/translations/hu-rHU/strings.xml | 145 +-
.../translations/it-rIT/missing_strings.xml | 17 +-
.../youtube/translations/it-rIT/strings.xml | 1580 +++++++++--------
.../translations/ja-rJP/missing_strings.xml | 17 +-
.../youtube/translations/ja-rJP/strings.xml | 16 +-
.../translations/ko-rKR/missing_strings.xml | 1 -
.../youtube/translations/ko-rKR/strings.xml | 15 +-
.../translations/pl-rPL/missing_strings.xml | 6 +
.../youtube/translations/pl-rPL/strings.xml | 33 +-
.../translations/pt-rBR/missing_strings.xml | 17 +-
.../youtube/translations/pt-rBR/strings.xml | 16 +-
.../translations/ru-rRU/missing_strings.xml | 17 +-
.../youtube/translations/ru-rRU/strings.xml | 88 +-
.../translations/tr-rTR/missing_strings.xml | 9 +-
.../youtube/translations/tr-rTR/strings.xml | 4 +-
.../translations/uk-rUA/missing_strings.xml | 17 +-
.../youtube/translations/uk-rUA/strings.xml | 16 +-
.../translations/vi-rVN/missing_strings.xml | 17 +-
.../youtube/translations/vi-rVN/strings.xml | 236 +--
.../translations/zh-rCN/missing_strings.xml | 17 +-
.../youtube/translations/zh-rCN/strings.xml | 16 +-
.../translations/zh-rTW/missing_strings.xml | 17 +-
.../youtube/translations/zh-rTW/strings.xml | 16 +-
41 files changed, 1432 insertions(+), 1370 deletions(-)
delete mode 100644 src/main/resources/youtube/translations/ko-rKR/missing_strings.xml
create mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
diff --git a/src/main/resources/music/translations/el-rGR/strings.xml b/src/main/resources/music/translations/el-rGR/strings.xml
index 08b910b93..e2f7f5cdf 100644
--- a/src/main/resources/music/translations/el-rGR/strings.xml
+++ b/src/main/resources/music/translations/el-rGR/strings.xml
@@ -28,7 +28,7 @@
Λίστα από συμβολοσειρές στοιχείων που θα φιλτραριστούν, διαχωρισμένες με νέες γραμμές.
Επεξεργασία προσαρμοσμένου φίλτρου
Χρήση προσαρμοσμένου φίλτρου για απόκρυψη στοιχείων διεπαφής.
- Χρήση προσαρμοσμένου φίλτρου
+ Προσαρμοσμένο φίλτρο
Μη έγκυρο φίλτρο: %s.
Οι ταχύτητες πρέπει να είναι μικρότερες από %sx.
Μη έγκυρες ταχύτητες αναπαραγωγής.
@@ -72,7 +72,7 @@
Κουμπί προηγούμενου βίντεο στον miniplayer
"Ενεργοποίηση του κωδικοποιητή OPUS αν η ανταπόκριση του προγράμματος αναπαραγωγής τον περιλαμβάνει.
-Πληροφορία: Οι τελευταίες εκδόσεις Android χρησιμοποιούν τον κωδικοποιητή opus από προεπιλογή, οπότε αυτή η ρύθμιση ισχύει μόνο για χρήστες που χρησιμοποιούν τη λειτουργία τροποποίησης έκδοσης εφαρμογής, σε πολύ παλιές εκδόσεις."
+Πληροφορία: Οι τελευταίες εκδόσεις Android χρησιμοποιούν τον κωδικοποιητή opus από προεπιλογή, οπότε αυτή η ρύθμιση ισχύει μόνο για χρήστες που χρησιμοποιούν τη λειτουργία παραποίησης έκδοσης εφαρμογής, σε πολύ παλιές εκδόσεις."
Ενεργοποίηση κωδικοποιητή opus
Ενεργοποίηση χειρονομίας σάρωσης προς τα κάτω για απόρριψη της ελαχιστοποιημένης οθόνης αναπαραγωγής.
Χειρονομία απόρριψης ελαχιστοποιημένης οθόνης αναπαραγωγής
@@ -87,7 +87,7 @@
Προσθήκη μιας γκρι απόχρωσης στο παρασκήνιο της οθόνης αναπαραγωγής για να μειωθεί η καταπόνηση των ματιών.
Ενεργοποίηση λειτουργίας zen
Επαναφέρθηκε στην προεπιλεγμένη τιμή.
- Επανεκκίνηση ώστε να φορτωθεί σωστά η εφαρμογή
+ Επανεκκίνηση ώστε να φορτωθεί σωστά η διάταξη
Ανανέωση και επανεκκίνηση
Εξαγωγή ρυθμίσεων σε αρχείο
Αποτυχία εξαγωγής ρυθμίσεων.
@@ -118,7 +118,7 @@
Απόκρυψη κενών στοιχείων στο μενού λογαριασμού.
Απόκρυψη κενών στοιχείων
Λίστα ονομάτων των επιλογών του μενού λογαριασμού για φιλτράρισμα, διαχωρισμένα με νέες γραμμές.
- Αλλαγή φίλτρου του μενού λογαριασμού
+ Επεξεργασία φίλτρου μενού λογαριασμού
Απόκρυψη στοιχείων του μενού λογαριασμού χρησιμοποιώντας προσαρμοσμένο φίλτρο.
Φιλτράρισμα του μενού λογαριασμού
Απόκρυψη του κουμπιού αποθήκευσης σε λίστα αναπαραγωγής.
@@ -144,7 +144,7 @@
Απόκρυψη του κουμπιού μετάδοσης.
Απόκρυψη κουμπιού μετάδοσης
Απόκρυψη της γραμμής κατηγοριών.
- Απόκρυψη γραμμής φίλτρων
+ Απόκρυψη γραμμής κατηγοριών
Απόκρυψη των οδηγιών κοινότητας στην κορυφή της ενότητας σχολίων.
Απόκρυψη οδηγιών κοινότητας
Απόκρυψη των κουμπιών χρονοσήμανσης και επιλογής emoji κατά την πληκτρολόγηση σχολίου.
@@ -156,10 +156,10 @@
Απόκρυψη στοιχείου 3 στηλών
Απόκρυψη μενού «Προσθήκη στην ουρά»
Απόκρυψη μενού «Υπότιτλοι»
- Απόκρυψη μενού «Διαγραφή playlist»
+ Απόκρυψη μενού «Διαγραφή λίστας αναπαραγωγής»
Απόκρυψη μενού «Παράβλεψη ουράς»
Απόκρυψη μενού «Λήψη»
- Απόκρυψη μενού «Επεξεργασία playlist»
+ Απόκρυψη μενού «Επεξεργασία λίστας αναπαραγωγής»
Απόκρυψη μενού «Μετάβαση στο άλμπουμ»
Απόκρυψη μενού «Μετάβαση στον καλλιτέχνη»
Απόκρυψη μενού «Μετάβαση στο επεισόδιο»
@@ -168,12 +168,12 @@
Απόκρυψη κουμπιών «Μου αρέσει» και «Δεν μου αρέσει»
Απόκρυψη μενού «Αναπαραγωγή μετά»
Απόκρυψη μενού «Ποιότητα»
- Απόκρυψη μενού «Κατάργηση playlist από τη βιβλιοθήκη»
- Απόκρυψη μενού «Κατάργηση από playlist»
+ Απόκρυψη μενού «Κατάργηση λίστας αναπαραγωγής από τη βιβλιοθήκη»
+ Απόκρυψη μενού «Κατάργηση από λίστα αναπαραγωγής»
Απόκρυψη μενού «Αναφορά»
Απόκρυψη μενού «Αποθήκευση επεισοδίου για αργότερα»
- Απόκρυψη μενού «Αποθήκευση playlist στη Βιβλιοθήκη»
- Απόκρυψη μενού «Αποθήκευση στο playlist»
+ Απόκρυψη μενού «Αποθήκευση λίστας αναπαραγωγής στη Βιβλιοθήκη»
+ Απόκρυψη μενού «Αποθήκευση στη λίστα αναπαραγωγής»
Απόκρυψη μενού «Κοινοποίηση»
Απόκρυψη μενού «Τυχαία αναπαραγωγή»
Απόκρυψη μενού «Χρονόμετρο ύπνου»
@@ -234,7 +234,7 @@
Απόκρυψη μενού «Γενικά»
Απόκρυψη μενού «Ειδοποιήσεις»
Απόκρυψη μενού «Αποκτήστε το Music Premium»
- Απόκρυψη μενού «Οικογενειακό Κέντρο»
+ Απόκρυψη μενού «Κέντρο οικογένειας»
Απόκρυψη μενού «Αναπαραγωγή»
Απόκρυψη μενού «Απόρρητο & δεδομένα»
Απόκρυψη μενού «Προτάσεις»
@@ -392,7 +392,7 @@
Εμφάνιση μηνύματος κατά την αυτόματη παράλειψη
Να εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης όταν ένα τμήμα παραλείπεται αυτόματα.
Οι ρυθμίσεις αντιγράφηκαν στο πρόχειρο.
- "Τροποποίηση έκδοσης εφαρμογής σε παλιότερη έκδοση.
+ "Παραποίηση έκδοσης εφαρμογής σε παλιότερη έκδοση.
• Αυτό θα αλλάξει την εμφάνιση της εφαρμογής, αλλά πιθανότατα να προκύψουν άγνωστα θέματα.
• Αν αργότερα γίνει απενεργοποίηση, η παλιά εμφάνιση μπορεί να παραμείνει μέχρι να διαγραφούν τα δεδομένα της εφαρμογής."
@@ -401,5 +401,5 @@
7.16.53 - Επαναφορά παλιάς γραμμής ενεργειών
Επιλέξτε την έκδοση εφαρμογής που θα χρησιμοποιηθεί.
Έκδοση της εφαρμογής που θα χρησιμοποιηθεί
- Τροποποίηση έκδοσης εφαρμογής
+ Παραποίηση έκδοσης εφαρμογής
diff --git a/src/main/resources/music/translations/ja-rJP/missing_strings.xml b/src/main/resources/music/translations/ja-rJP/missing_strings.xml
index dd6aa3c72..11cf8ef8d 100644
--- a/src/main/resources/music/translations/ja-rJP/missing_strings.xml
+++ b/src/main/resources/music/translations/ja-rJP/missing_strings.xml
@@ -1,39 +1,23 @@
-
+
To open YouTube Music links in RVX Music, enable \'Open supported links\' and enable the supported web addresses.
Open default app settings
Reset to default values.
Hide About menu
- Hide Data saving menu
- Hide Downloads & storage menu
- Hide General menu
- Hide Notifications menu
Hide Get Music premium menu
- Hide Family Center menu
- Hide Playback menu
- Hide Privacy & data menu
- Hide Recommendations menu
- Return YouTube Username
- Settings menu
@handle (Username)
Select the username display format.
Display format
Username (@handle)
- Username
Replaces handles with usernames in comments.
- Enable Return YouTube Username
"A YouTube Data API v3 Developer Key is required to replace handles with usernames.
The daily quota for API keys on the free plan is 10,000, and 1 quota is used to replace a handle with a username for 1 comment.
Click to see how to issue a API key."
- About YouTube Data API key
- The developer key for using the YouTube Data API v3.
- YouTube Data API key
1. Go to <a href=%1$s>Create a new project</a>.<br>2. Click the <b>CREATE</b> button.<br>3. Go to <a href=%2$s>YouTube Data API v3</a>.<br>4. Click the <b>ENABLE</b> button.<br>5. Click the <b>CREATE CREDENTIALS</b> button.<br>6. Select the <b>Public data</b> option.<br>7. Click the <b>NEXT</b> button.<br>8. Copy the API key.<br><br>※ API key should never be shared with others, so it is not included in Import / Export settings.
Issue YouTube Data API v3 developer key
Shows the estimated like count of videos.
Show estimated likes
Hidden
- 7.16.53 - Restore old action bar
diff --git a/src/main/resources/music/translations/ja-rJP/strings.xml b/src/main/resources/music/translations/ja-rJP/strings.xml
index 047ab69eb..87c425d61 100644
--- a/src/main/resources/music/translations/ja-rJP/strings.xml
+++ b/src/main/resources/music/translations/ja-rJP/strings.xml
@@ -222,6 +222,14 @@
プロモーションバナーを非表示
フィードからサンプルシェルフを非表示にします。
サンプルシェルフを非表示
+ 「データの節約」を非表示
+ 「一時保存とストレージ」を非表示
+ 「全般」を非表示
+ 「通知」を非表示
+ 「ファミリーセンター」を非表示
+ 「再生」を非表示
+ 「プライバシーとデータ」を非表示
+ 「おすすめ」を非表示
"設定の要素を非表示にします。
YT Music の設定だけでなく、ReVanced Extended の設定も非表示にします。"
設定メニューを非表示
@@ -241,8 +249,10 @@ YT Music の設定だけでなく、ReVanced Extended の設定も非表示に
その他
ナビゲーションバー
プレーヤー
+ Return YouTube Username
Return YouTube Dislike
SponsorBlock
+ 設定メニュー
動画
再生速度を変更するたびに、再生速度を保存します。
再生速度の変更を保存
@@ -282,6 +292,11 @@ YT Music の設定だけでなく、ReVanced Extended の設定も非表示に
古いプレーヤーのレイアウト
ライブラリのUIを古いスタイルに戻します (実験的)
古いスタイルのライブラリを有効化
+ ユーザーネーム
+ Return YouTube Username を有効化
+ YouTube Data API キーについて
+ YouTube Data API v3 を使用するための開発者キー。
+ YouTube Data API キー
Return YouTube Dislike について
低評価のデータは、Return YouTube Dislike API によって提供されています。詳細はここをタップしてください。
ReturnYouTubeDislike.com
@@ -360,6 +375,7 @@ YT Music の設定だけでなく、ReVanced Extended の設定も非表示に
• 後からこの機能を無効にしても、データを消去するまで古い UI のままになる場合があります。"
4.27.53 - カナダの地域でラジオモードを無効化
6.11.52 - リアルタイムの歌詞を無効化
+ 7.16.53 - 古いアクションバーを復元
偽装するバージョンを選択してください。
偽装するバージョン
アプリのバージョンを偽装
diff --git a/src/main/resources/music/translations/ru-rRU/missing_strings.xml b/src/main/resources/music/translations/ru-rRU/missing_strings.xml
index 96243e8d7..a687f9a25 100644
--- a/src/main/resources/music/translations/ru-rRU/missing_strings.xml
+++ b/src/main/resources/music/translations/ru-rRU/missing_strings.xml
@@ -1,42 +1,6 @@
-
+
Don\'t show again
- To open YouTube Music links in RVX Music, enable \'Open supported links\' and enable the supported web addresses.
- Open default app settings
- Reset to default values.
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
- Hide About menu
- Hide Data saving menu
- Hide Downloads & storage menu
- Hide General menu
- Hide Notifications menu
- Hide Get Music premium menu
- Hide Family Center menu
- Hide Playback menu
- Hide Privacy & data menu
- Hide Recommendations menu
- Return YouTube Username
- Settings menu
- @handle (Username)
- Select the username display format.
- Display format
- Username (@handle)
- Username
- Replaces handles with usernames in comments.
- Enable Return YouTube Username
- "A YouTube Data API v3 Developer Key is required to replace handles with usernames.
-
-The daily quota for API keys on the free plan is 10,000, and 1 quota is used to replace a handle with a username for 1 comment.
-
-Click to see how to issue a API key."
- About YouTube Data API key
- The developer key for using the YouTube Data API v3.
- YouTube Data API key
- 1. Go to <a href=%1$s>Create a new project</a>.<br>2. Click the <b>CREATE</b> button.<br>3. Go to <a href=%2$s>YouTube Data API v3</a>.<br>4. Click the <b>ENABLE</b> button.<br>5. Click the <b>CREATE CREDENTIALS</b> button.<br>6. Select the <b>Public data</b> option.<br>7. Click the <b>NEXT</b> button.<br>8. Copy the API key.<br><br>※ API key should never be shared with others, so it is not included in Import / Export settings.
- Issue YouTube Data API v3 developer key
- Shows the estimated like count of videos.
- Show estimated likes
- Hidden
- 7.16.53 - Restore old action bar
diff --git a/src/main/resources/music/translations/ru-rRU/strings.xml b/src/main/resources/music/translations/ru-rRU/strings.xml
index 4bb31de17..dc5591ecd 100644
--- a/src/main/resources/music/translations/ru-rRU/strings.xml
+++ b/src/main/resources/music/translations/ru-rRU/strings.xml
@@ -34,6 +34,8 @@
Недопустимые пользовательские скорости воспроизведения. Используются значения по умолчанию.
Настройте доступные скорости воспроизведения.
Изменить скорости
+ Чтобы открыть ссылку на YouTube Music в RVX Music, включите \"Открывать поддерживаемые ссылки\" и включите поддерживаемые веб-адреса.
+ Открыть настройки по умолчанию
Отключает автоматическое включение субтитров.
Отключить автоматические субтитры
Отключает анимацию Кайро при запуске приложения.
@@ -86,6 +88,7 @@
Включить режим \"Дзен\" в подкастах
Меняет оттенок фона проигрывателя видео на светло-серый, чтобы уменьшить нагрузку на глаза.
Режим \"Дзен\"
+ Сброшены до значений по умолчанию.
Перезапустите для правильной загрузки интерфейса
Обновите и перезапустите
Извлечь настройки в файл
@@ -227,6 +230,16 @@
Скрыть баннер с уведомлением о промо акции
Скрывает полку \"Семплы\" в ленте.
Скрыть полку \"Семплы\"
+ Скрыть \"О YouTube Music\"
+ Скрыть \"Экономия трафика\"
+ Скрыть \"Скачивание и хранение\"
+ Скрыть \"Общие\"
+ Скрыть \"Уведомления\"
+ Скрыть \"Оформить подписку Music Premium\"
+ Скрыть \"Семейный центр\"
+ Скрыть \"Воспроизведение\"
+ Скрыть \"Конфиденциальность и данные\"
+ Скрыть \"Рекомендации\"
"Скрывает элементы меню настроек.
При этом скрывается не только меню настроек YT Music, но и меню настроек ReVanced Extended."
Скрыть меню настроек
@@ -246,8 +259,10 @@
Разное
Панель навигации
Плеер
- Return YouTube Dislike
+ Вернуть имя пользователя YouTube
+ Вернуть YouTube Dislike
SponsorBlock
+ Меню настроек
Видео
Запоминает последнюю выбранную скорость воспроизведения.
Запоминать изменения скорости
@@ -287,6 +302,23 @@
Восстановить старый интерфейс проигрывателя
Возвращает вкладку \"Библиотека\" к старому стилю. (Экспериментальная опция)
Восстановить старый стиль вкладки \"Библиотека\"
+ \@псевдоним (Имя пользователя)
+ Выбор формата отображения имени пользователя.
+ Формат отображения
+ Имя пользователя (@псевдоним)
+ Имя пользователя
+ Заменяет псевдонимы имена пользователей в комментариях.
+ Включить возврат имени пользователя YouTube
+ "Чтобы заменить псевдонимы на имена пользователей, необходим ключ разработчика YouTube Data API v3.
+
+Ежедневная квота для ключей API в бесплатном тарифе составляет 10 000 и 1 квота используется для замены псевдонима на имя пользователя для 1 комментария.
+
+Нажмите, чтобы узнать, как создать ключ API."
+ О ключе YouTube Data API
+ Ключ разработчика для использования API YouTube Data v3.
+ Ключ YouTube Data API
+ 1. Перейдите в раздел <a href=%1$s>Создать New Project</a>.<br>2. Нажмите кнопку <b>CREATE</b>.<br>3. Перейдите в <a href=%2$s>YouTube Data API v3</a>.<br>4. Нажмите кнопку <b>ENABLE</b>.<br>5. Нажмите кнопку <b>CREATE CREDENTIALS</b>.<br>6. Выберите <b>Public data</b>.<br>7. Нажмите кнопку <b>NEXT</b>.<br>8. Скопируйте ключ API. <br><br>※ Ключ API нельзя предоставлять другим, поэтому он не включен в Импорт/Экспорт настроек.
+ Создание ключа разработчика YouTube Data API v3
Об интеграции
Данные предоставлены Return YouTube Dislike API. Нажмите здесь, чтобы узнать больше.
ReturnYouTubeDislike.com
@@ -296,12 +328,15 @@
Кол-во отметок \"Не нравится\" в процентах
Отображает количество отметок \"Не нравится\" в видео.
Включить Return YouTube Dislike
+ Показывает примерное количество лайков видео.
+ Показать приблизительное количество лайков
Отметки \"Не нравится\" недоступны (достигнут лимит клиентов сервера API).
Отметки \"Не нравится\" недоступны (состояние %d).
Отметки \"Не нравится\" недоступны (время API истекло).
Отметки \"Не нравится\" недоступны (%s).
Отображает всплывающее уведомление, когда API Return YouTube Dislike недоступен.
Уведомлять, когда API недоступен
+ Скрыто
Убирает параметры отслеживания запросов из адресов при отправке ссылки.
Подчищать ссылки
Об интеграции
@@ -365,6 +400,7 @@
• Если отключить данную опцию после её активации, старый интерфейс может оставаться до тех пор, пока данные приложения не будут очищены."
4.27.53 - Отключить режим радиостанции в канадских регионах
6.11.52 - Отключить динамические текста
+ 7.16.53 - Восстановить старую панель действий
Выберите целевую версию приложения для подмены.
Целевая версия приложения при подмене
Подмена версии приложения
diff --git a/src/main/resources/music/translations/vi-rVN/strings.xml b/src/main/resources/music/translations/vi-rVN/strings.xml
index 80ef8382a..38e81ae4c 100644
--- a/src/main/resources/music/translations/vi-rVN/strings.xml
+++ b/src/main/resources/music/translations/vi-rVN/strings.xml
@@ -40,16 +40,16 @@ Nhấn vào nút Tiếp tục và tắt tối ưu hóa pin."
Tắt tự động hiển thị phụ đề
Vô hiệu hóa hoạt ảnh kiểu Cairo khi ứng dụng khởi chạy.
Vô hiệu hóa hoạt ảnh kiểu Cairo
- Vô hiệu hóa chuyển hướng đến bài hát tiếp theo khi nhấp vào nút Không thích.
- Vô hiệu hoá chuyển hướng khi ấn nút không thích
+ Ngăn chuyển đến bài hát tiếp theo khi nhấn nút Không thích.
+ Tắt chuyển hướng khi nhấn nút Không thích
Tắt vuốt để chuyển bài hát trong trình phát thu nhỏ.
Tắt cử chỉ trình phát thu nhỏ
Tắt vuốt để chuyển bài hát trong trình phát.
Tắt cử chỉ trình phát
Đặt màu thanh điều hướng phía dưới cùng thành màu đen.
Thanh điều hướng màu đen
- Thay đổi màu nền trình phát sang màu đen.
- Sử dụng nền trình phát màu đen
+ Thay đổi màu nền trình phát thành màu đen.
+ Nền trình phát màu đen
Đồng bộ màu của trình phát thu nhỏ với màu của trình phát.
Trình phát thu nhỏ khớp màu
"Bật trình đơn tuỳ chọn dạng hộp thoại.
@@ -69,15 +69,15 @@ Hạn chế:
Thêm nút bài hát tiếp theo vào trình phát thu nhỏ.
Thêm nút tiếp theo vào trình phát thu nhỏ
Thêm nút bài hát trước đó vào trình phát thu nhỏ.
- Thêm nút phát trước đó vào trình phát thu nhỏ
- "Áp dụng bộ giải mã OPUS nếu phản hồi của trình phát bao gồm nó.
+ Thêm nút trước đó vào trình phát thu nhỏ
+ "Áp dụng codec OPUS nếu phản hồi của trình phát bao gồm nó.
Cụ thể:
-• Các phiên bản YouTube Music mới nhất sử dụng bộ giải mãi OPUS như mặc định.
+• Các phiên bản YouTube Music mới nhất sử dụng codec OPUS như mặc định.
• Điều này chỉ áp dụng cho người dùng giả mạo với các phiên bản ứng dụng rất cũ."
- Bộ giải mã OPUS
- Bật thao tác vuốt xuống để đóng trình phát thu nhỏ.
- Thao tác vuốt để đóng trình phát thu nhỏ
+ Codec OPUS
+ Vuốt xuống để đóng trình phát thu nhỏ.
+ Vuốt để đóng trình phát thu nhỏ
"Thêm tính năng Cắt bỏ khoảng lặng vào mục tuỳ chọn tốc độ phát.
Cụ thể:
@@ -120,7 +120,7 @@ Cụ thể:
Ẩn các mục trống khỏi trình đơn Tài khoản.
Ẩn mục trống
Nhập tên các mục thành phần của trình đơn Tài khoản mà bạn muốn lọc được phân cách bằng dòng.
- Bộ lọc mục Tài khoản
+ Bộ lọc trình đơn Tài khoản
Ẩn các thành phần của trình đơn Tài khoản bằng bộ lọc tuỳ chỉnh.
Ẩn trình đơn Tài khoản
Ẩn nút Lưu trong bảng nút thao tác.
@@ -149,10 +149,10 @@ Cụ thể:
Ẩn thanh danh mục
Ẩn các nhãn nguyên tắc (Nguyên tắc cộng đồng, Nguyên tắc của kênh,...) trong phần Bình luận.
Ẩn các nhãn nguyên tắc
- Ẩn dấu thời gian và biểu tượng cảm xúc khi đang nhập bình luận.
- Ẩn dấu thời gian và biểu tượng cảm xúc
- Ẩn lớp phủ tối xuất hiện khi chạm đúp để tìm kiếm.
- Ẩn bộ lọc lớp phủ nhấn đúp
+ Ẩn nút dấu thời gian và các biểu tượng cảm xúc khi đang nhập bình luận.
+ Ẩn nút dấu thời gian và các biểu tượng cảm xúc
+ Ẩn lớp phủ tối xuất hiện khi nhấn đúp để tua.
+ Ẩn lớp phủ khi nhấn đúp để tua
Ẩn nút nổi trong thẻ Thư viện.
Ẩn nút nổi
Ẩn 3 ô thao tác nhanh
@@ -216,19 +216,19 @@ Nếu tính năng này tắt, quảng cáo toàn màn hình sẽ bị chặn (c
Ẩn thẻ Đoạn nhạc
Ẩn thẻ Nâng cấp khỏi thanh điều hướng.
Ẩn thẻ Nâng cấp
- Ẩn nút Thông báo trong thanh công cụ.
+ Ẩn nút Thông báo khỏi thanh công cụ.
Ẩn nút Thông báo
Ẩn nhãn quảng cáo được tài trợ.
Ẩn nhãn quảng cáo được tài trợ
- Ẩn thẻ danh sách phát trong bảng feed.
- Ẩn thẻ danh sách phát
+ Ẩn kệ thẻ danh sách phát ở thẻ Trang chủ.
+ Ẩn kệ thẻ danh sách phát
Ẩn quảng cáo mua Music Premium bật lên.
Ẩn quảng cáo bật lên
Ẩn quảng cáo biểu ngữ mua Music Premium.
Ẩn quảng cáo biểu ngữ
Ẩn biểu ngữ thông báo khuyến mãi.
Ẩn biểu ngữ thông báo khuyến mãi
- Ẩn thẻ Đoạn nhạc trong bảng feed.
+ Ẩn kệ Đoạn nhạc ở thẻ Trang chủ.
Ẩn thẻ Đoạn nhạc
Ẩn mục Giới thiệu về Youtube Music
Ẩn mục Chế độ tiết kiệm dữ liệu
@@ -243,16 +243,16 @@ Nếu tính năng này tắt, quảng cáo toàn màn hình sẽ bị chặn (c
"Ẩn các thành phần của mục Cài đặt.
Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục Cài đặt ReVanced Extended."
Ẩn mục cài đặt
- Ẩn nút tìm kiếm âm thanh trên thanh tìm kiếm.
- Ẩn nút tìm kiếm âm thanh
- Ẩn nút \'Chạm để nâng cấp\'.
- Ẩn nút \'Chạm để nâng cấp\'
+ Ẩn nút Tìm kiếm bằng âm thanh kế bên thanh tìm kiếm.
+ Ẩn nút Tìm kiếm bằng âm thanh
+ Ẩn nút Chạm để nâng cấp.
+ Ẩn nút Chạm để nâng cấp
Ẩn các mục Chính sách quyền riêng tư và Điều khoản dịch vụ khỏi trình đơn Tài khoản.
Ẩn mục Bảo mật và Điều khoản
- Ẩn nút tìm kiếm bằng giọng nói trên thanh tìm kiếm.
+ Ẩn nút Tìm kiếm bằng giọng nói kế bên thanh tìm kiếm.
Ẩn nút Tìm kiếm bằng giọng nói
Tài khoản
- Bảng nút thao tác
+ Thanh thao tác
Quảng cáo
Trình đơn tuỳ chọn
Tổng quan
@@ -284,7 +284,7 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
\nLưu ý: Tuỳ chọn này chỉ tự động chấp nhận hộp thoại cảnh báo, không thể bỏ qua giới hạn về độ tuổi."
Xoá hộp thoại cảnh báo trước khi xem
Tiếp tục phát video từ thời điểm đã dừng lại khi chuyển sang YouTube.
- Tiếp tục xem
+ Tiếp tục phát
Thay thế mục Loại bỏ danh sách chờ bằng mục Xem trên YouTube.
Thay thế mục Loại bỏ danh sách chờ
Xem trên YouTube
@@ -293,15 +293,15 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
Báo vi phạm trong phần bình luận
Thay thế mục Báo vi phạm bằng mục Tốc độ phát.
Thay thế mục Báo vi phạm
- Khôi phục bảng bình luận bật lên về kiểu cũ.
- Bảng bình luận bật lên kiểu cũ
+ Khôi phục bảng bình luận kiểu cũ.
+ Bảng bình luận kiểu cũ
Khôi phục nền trình phát về kiểu cũ.
Nền trình phát kiểu cũ
"Khôi phục bố cục trình phát về kiểu cũ.
\nLưu ý: Một số tính năng có thể không hoạt động bình thường trong bố cục trình phát kiểu cũ."
- Khôi phục bố cục trình phát kiểu cũ
+ Bố cục trình phát kiểu cũ
Khôi phục lại thẻ Thư viện về kiểu cũ. (Thử nghiệm)
- Khôi phục thẻ thư viện kiểu cũ
+ Thẻ Thư viện kiểu cũ
\@handle (Tên người dùng)
Chọn định dạng hiển thị tên người dùng.
Định dạng hiển thị
@@ -309,15 +309,15 @@ Khi bật không những ẩn mục Cài đặt YT Music, mà còn ẩn mục C
Tên người dùng
Hiển thị tên người dùng thay vì tên hiển thị trong phần bình luận.
Kích hoạt Return YouTube Username
- "Khoá nhà phát triển YouTube Data API v3 là một mã khoá cho phép các nhà phát triển thao tác lấy dữ liệu từ Youtube, và nó cũng cần thiết để thay thế \"Tên hiển thị\" thành \"Tên người dùng\".
+ "Khoá nhà phát triển YouTube Data API v3 là một mã khoá cho phép các nhà phát triển truy cập lấy dữ liệu từ Youtube, và chúng cũng cần thiết để thay thế @tên hiển thị thành tên người dùng.
-Giới hạn truy cập hàng ngày cho các khoá API trên gói miễn phí là 10000 lần, với mỗi lượt truy cập chỉ thay thế được 1 bình luận.
+Giới hạn truy cập hàng ngày cho các khoá API trên gói miễn phí là 10000 lần, với mỗi lượt truy cập chỉ áp dụng cho 1 bình luận.
Nhấp vào đây để xem các bước phát hành khóa API."
Giới thiệu về khoá YouTube Data API
- Khoá phát triển để sử dụng YouTube Data API v3.
+ Khoá nhà phát triển để sử dụng YouTube Data API v3.
Khoá Youtube Data API
- 1. Tạo dự án mới <a href=%1$s>Nhấn vào đây</a>.<br>2. Nhấn vào nút <b>CREATE</b>.<br>3. Đi tới YouTube Data API v3 <a href=%2$s>Nhấn vào đây</a>.<br>4. Nhấn vào nút <b>ENABLE</b>.<br>5. Nhấn vào nút <b>CREATE CREDENTIALS</b>.<br>6. Chọn <b>Public data</b>.<br>7. Nhấn vào nút <b>NEXT</b>.<br>8. Sao chép mã khoá API.<br><br>※ Khoá API không nên được chia sẻ với người khác, vì vậy nó cũng không xuất hiện trong cài đặt Nhập/Xuất.
+ 1. <a href=%1$s>Tạo dự án mới</a>.<br>2. Ấn vào <b>CREATE</b>.<br>3. Đi tới <a href=%2$s>YouTube Data API v3</a>.<br>4. Ấn vào <b>ENABLE</b>.<br>5. Ấn vào <b>CREATE CREDENTIALS</b>.<br>6. Chọn <b>Public data</b>.<br>7. Ấn vào <b>NEXT</b>.<br>8. Sao chép mã API.<br><br>※ Không nên chia sẻ mã API với người khác, vì vậy chúng cũng không có mặt trong mục Nhập/Xuất cài đặt.
Phát hành mã khoá
Giới thiệu
Dữ liệu về số lượt không thích được cung cấp bởi API Return YouTube Dislike. Nhấn vào đây để tìm hiểu thêm.
@@ -400,7 +400,7 @@ Lưu ý:\n- Tuỳ chọn này sẽ thay đổi giao diện ứng dụng, tuy nhi
- Nếu tắt tuỳ chọn này sau đó, giao diện cũ có thể vẫn tồn tại cho đến khi bạn xoá dữ liệu ứng dụng."
4.27.53 - Tắt chế độ Đài phát ở một số vùng của Canada
6.11.52 - Tắt lời bài hát theo thời gian thực
- 7.16.53 - Khôi phục bảng nút thao tác cũ
+ 7.16.53 - Khôi phục thanh thao tác kiểu cũ
Chọn phiên bản YouTube Music mà bạn muốn giả mạo.
Phiên bản giả mạo
Giả mạo phiên bản ứng dụng
diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml
index 928dd57f2..702fe2f51 100644
--- a/src/main/resources/youtube/settings/host/values/strings.xml
+++ b/src/main/resources/youtube/settings/host/values/strings.xml
@@ -51,7 +51,10 @@ Tap here to learn more about DeArrow."
Video time to take still captures from
Subscriptions tab
Information is not appended to the timestamp.
- Information is appended to the timestamp.
+ "Information is appended to the timestamp.
+
+Tap to configure the video quality or playback speed.
+Tap and hold to toggle the appended information type."
Append timestamp information
Append playback speed.
Append video quality.
@@ -376,6 +379,9 @@ Please download %2$s from the website."
"Hide elements of the account menu and You tab.
Some components may not be hidden."
Hide account menu
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
Album cards are shown.
Album cards are hidden.
Hide album cards
@@ -487,18 +493,18 @@ Store"
Hide expandable shelves
Captions button is shown.
Captions button is hidden.
- Hide feed captions button
+ Hide Captions button
List of flyout menu names to filter, separated by new lines.
Feed flyout menu filter
Feed flyout menu filter is disabled.
Feed flyout menu filter is enabled.
Enable feed flyout menu filter
- Feed search bar is shown.
- Feed search bar is hidden.
- Hide feed search bar
- Feed surveys are shown.
- Feed surveys are hidden.
- Hide feed surveys
+ Search bar is shown.
+ Search bar is hidden.
+ Hide search bar
+ Surveys are shown.
+ Surveys are hidden.
+ Hide surveys
Film strip overlay is shown.
Film strip overlay is hidden.
Hide film strip overlay
diff --git a/src/main/resources/youtube/translations/ar/missing_strings.xml b/src/main/resources/youtube/translations/ar/missing_strings.xml
index a0dadfc3c..43788e232 100644
--- a/src/main/resources/youtube/translations/ar/missing_strings.xml
+++ b/src/main/resources/youtube/translations/ar/missing_strings.xml
@@ -1,4 +1,4 @@
-
+
Don\'t show again
Courses / Learning
@@ -6,6 +6,9 @@
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/ar/strings.xml b/src/main/resources/youtube/translations/ar/strings.xml
index aecc9c77e..5b4ffb59e 100644
--- a/src/main/resources/youtube/translations/ar/strings.xml
+++ b/src/main/resources/youtube/translations/ar/strings.xml
@@ -50,7 +50,7 @@
وقت الفيديو لأخذ اللقطات الثابتة منه
علامة تبويب الاشتراكات
لا يتم إضافة المعلومات بطابع الوقت.
- يتم إضافة المعلومات بطابع الوقت.
+ "يتم إضافة المعلومات بطابع الوقت."
إضافة معلومات طابع الوقت
إضافة سرعة التشغيل.
إضافة جودة الفيديو.
diff --git a/src/main/resources/youtube/translations/bg-rBG/strings.xml b/src/main/resources/youtube/translations/bg-rBG/strings.xml
index 2980b3faa..9eddfe572 100644
--- a/src/main/resources/youtube/translations/bg-rBG/strings.xml
+++ b/src/main/resources/youtube/translations/bg-rBG/strings.xml
@@ -43,7 +43,7 @@
Времето на видеоклипа, от който ще бъдат взети кадрите
Абонаменти
Индикатор на времето за възпроизвеждане е Изкл.
- Индикатор на времето за възпроизвеждане е Вкл.
+ "Индикатор на времето за възпроизвеждане е Вкл."
Индикатор на времето за възпроизвеждане
Индикатор за скорост на възпроизвеждане.
Индикатор за качество на видеото.
@@ -466,6 +466,7 @@
Филмовата лента се показва.
Филмовата лента е скрита
Скриване на филмовата лента
+ Скриване на изскачащ бутон
Плаващия бутон за микрофона се показва.
Плаващия бутон за микрофона е скрит.
Плаващ бутон за микрофона
@@ -770,6 +771,8 @@
Самоспонсорираните карти са скрити.
Скриване на самоспонсорирани карти
Скриване на менюто на акаунта
+ Менюто за субтитрие скрито.
+ Скриване на менюто за субтитри
Основни настройки се показват.
Основни настройки са скрити.
Меню \"Основни настройки\"
diff --git a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml
index c6d969566..373e48d64 100644
--- a/src/main/resources/youtube/translations/de-rDE/missing_strings.xml
+++ b/src/main/resources/youtube/translations/de-rDE/missing_strings.xml
@@ -67,6 +67,9 @@ Do you want to spoof the app version before restarting the app?"
Video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
Highlighted search links are shown.
Highlighted search links are hidden.
Hide highlighted search links
diff --git a/src/main/resources/youtube/translations/de-rDE/strings.xml b/src/main/resources/youtube/translations/de-rDE/strings.xml
index 6a35141e5..753b65a18 100644
--- a/src/main/resources/youtube/translations/de-rDE/strings.xml
+++ b/src/main/resources/youtube/translations/de-rDE/strings.xml
@@ -49,7 +49,7 @@ Tippen Sie hier, um mehr über DeArrow zu erfahren."
Videozeit von der Stand-Aufnahmen aufgenommen werden
Abonnements
Das Anhängen von Zeitstempelinformationen ist deaktiviert
- Zeitstempelinformationen anhängen ist aktiviert
+ "Zeitstempelinformationen anhängen ist aktiviert"
Zeitstempelinformationen anhängen
Wiedergabegeschwindigkeit anhängen
Videoqualität hinzufügen
diff --git a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml
index 5fea28b1e..fdfdb4e6d 100644
--- a/src/main/resources/youtube/translations/el-rGR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/el-rGR/missing_strings.xml
@@ -2,24 +2,10 @@
Don\'t show again
Courses / Learning
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/el-rGR/strings.xml b/src/main/resources/youtube/translations/el-rGR/strings.xml
index 01632a2b0..493d5c257 100644
--- a/src/main/resources/youtube/translations/el-rGR/strings.xml
+++ b/src/main/resources/youtube/translations/el-rGR/strings.xml
@@ -25,7 +25,7 @@
Διεύθυνση API του DeArrow
Δεν εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το DeArrow δεν είναι διαθέσιμο.
Εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το DeArrow δεν είναι διαθέσιμο.
- Μήνυμα αν το API δεν είναι διαθέσιμο
+ Εμφάνιση μηνύματος αν το API δεν είναι διαθέσιμο
DeArrow προσωρινά μη διαθέσιμο. (κωδικός: %s)
DeArrow προσωρινά μη διαθέσιμο.
Καρτέλα «Αρχική»
@@ -48,7 +48,10 @@
Ο χρόνος του βίντεο από τον οποίο θα ληφθούν τα καρέ
Καρτέλα «Εγγραφές»
Η προσθήκη πληροφοριών στη χρονοσφραγίδα είναι απενεργοποιημένη.
- Η προσθήκη πληροφοριών στη χρονοσφραγίδα είναι ενεργοποιημένη.
+ "Οι πληροφορίες προσθέτονται στην χρονοσφραγίδα.
+
+Πατήστε για να ρυθμίσετε την ποιότητα του βίντεο ή την ταχύτητα αναπαραγωγής.
+Πατήστε παρατεταμένα για εναλλαγή του τύπου της πληροφορίας που προσθέτεται."
Προσθήκη πληροφοριών χρονοσφραγίδας
Εμφάνιση της ταχύτητας αναπαραγωγής.
Εμφάνιση της ποιότητας βίντεο.
@@ -69,7 +72,7 @@
Αλλαγή διεπαφής
Εμφανίζονται εναλλαγές διακόπτη.
Εμφανίζονται εναλλαγές κειμένου.
- Αλλαγή τύπου εναλλαγής ρυθμίσεων
+ Τύπος εναλλαγής ρυθμίσεων
Χρησιμοποιείται το μενού κοινοποίηση της εφαρμογής.
Χρησιμοποιείται το μενού κοινοποίηση της συστήματός σας.
Αλλαγή μενού κοινοποίησης
@@ -107,7 +110,7 @@
Επεξεργασία προσαρμοσμένου φίλτρου
Το προσαρμοσμένο φίλτρο χρήστη είναι απενεργοποιημένο.
Το προσαρμοσμένο φίλτρο χρήστη είναι ενεργοποιημένο.
- Χρήση προσαρμοσμένου φίλτρου
+ Προσαρμοσμένο φίλτρο
Μη έγκυρο φίλτρο: %s.
Εμφανίζεται το αναδυόμενο μενού παλιού στυλ.
Εμφανίζεται προσαρμοσμένο παράθυρο.
@@ -127,8 +130,8 @@
Προεπιλεγμένη ποιότητα βίντεο με δεδομένα κινητής τηλεφωνίας
Προεπιλεγμένη ποιότητα βίντεο με Wi-Fi
Απενεργοποίηση της λειτουργίας περιβάλλοντος σε λειτουργία πλήρους οθόνης.
- Η λειτουργία περιβάλλοντος είναι ενεργοποιημένη σε πλήρη οθόνη.
- Η λειτουργία περιβάλλοντος είναι απενεργοποιημένη σε πλήρη οθόνη.
+ Η λειτουργία περιβάλλοντος είναι ενεργοποιημένη στη λειτουργία πλήρους οθόνης.
+ Η λειτουργία περιβάλλοντος είναι απενεργοποιημένη στη λειτουργία πλήρους οθόνης.
Απενεργοποίηση σε πλήρη οθόνη
Απενεργοποίηση της λειτουργίας περιβάλλοντος πάντα.
Η λειτουργία περιβάλλοντος είναι ενεργοποιημένη.
@@ -139,7 +142,7 @@
Απενεργοποίηση υποχρεωτικών κομματιών ήχου
Οι υποχρεωτικοί αυτόματοι υπότιτλοι εμφανίζονται.
Οι υποχρεωτικοί αυτόματοι υπότιτλοι είναι απενεργοποιημένοι.
- Απενεργοποίηση αυτόματων υπότιτλων
+ Απενεργοποίηση υποχρεωτικών αυτόματων υπότιτλων
Εμφανίζονται.
Κρυμμένα.
Αναδυόμενα παράθυρα οθόνης αναπαραγωγής
@@ -152,30 +155,30 @@
Η ενεργοποίηση αυτής της ρύθμισης θα απενεργοποιήσει την αυτόματη εναλλαγή σε YouTube Mix κατά την αναπαραγωγή μουσικής ενώ η αυτόματη αναπαραγωγή είναι ενεργοποιημένη.
Η προεπιλεγμένη ταχύτητα αναπαραγωγής εφαρμόζεται σε ζωντανές μεταδόσεις.
Η προεπιλεγμένη ταχύτητα αναπαραγωγής δεν εφαρμόζεται σε ζωντανές μεταδόσεις.
- Αποτροπή αλλαγής ταχύτητας σε ζωντανές μεταδόσεις
+ Απενεργοποίηση αλλαγής ταχύτητας σε ζωντανές μεταδόσεις
Η προεπιλεγμένη ταχύτητα εφαρμόζεται σε βίντεο μουσικής.
"Η προεπιλεγμένη ταχύτητα αναπαραγωγής δεν εφαρμόζεται για τα βίντεο μουσικής.
Περιορισμός: Αυτή η ρύθμιση ενδέχεται να μην ισχύει για τα βίντεο που δεν περιλαμβάνουν την λειτουργία «Ακρόαση με YouTube Music»."
- Αποτροπή αλλαγής ταχύτητας για μουσική
- Το πάνελ εμπλοκών είναι ενεργοποιημένο.
- Το πάνελ εμπλοκών είναι απενεργοποιημένο.
- Απενεργοποίηση πάνελ εμπλοκών
+ Απενεργοποίηση αλλαγής ταχύτητας σε βίντεο μουσικής
+ Ο πίνακας αλληλεπίδρασης είναι ενεργοποιημένος.
+ Ο πίνακας αλληλεπίδρασης είναι απενεργοποιημένος.
+ Απενεργοποίηση πίνακα αλληλεπίδρασης
Η απόκριση δόνησης είναι ενεργοποιημένη.
Η απόκριση δόνησης είναι απενεργοποιημένη.
- Απενεργοποίηση στην αλλαγή κεφαλαίων
+ Απενεργοποίηση απόκρισης δόνησης κατά την αλλαγή κεφαλαίων
Η απόκριση δόνησης είναι ενεργοποιημένη.
Η απόκριση δόνησης είναι απενεργοποιημένη.
- Απενεργοποίηση στο σύρσιμο
+ Απενεργοποίηση απόκρισης δόνησης κατά τη λειτουργία ακριβής αναζήτησης
Η απόκριση δόνησης είναι ενεργοποιημένη.
Η απόκριση δόνησης είναι απενεργοποιημένη.
- Απενεργοποίηση στην ακριβή αναζήτηση
+ Απενεργοποίηση απόκρισης δόνησης στο σύρσιμο για αναζήτηση
Η απόκριση δόνησης είναι ενεργοποιημένη.
Η απόκριση δόνησης είναι απενεργοποιημένη.
- Απενεργοποίηση στο «Αφήστε για ακύρωση»
+ Απενεργοποίηση απόκρισης δόνησης του «Αφήστε για ακύρωση»
Η απόκριση δόνησης είναι ενεργοποιημένη.
Η απόκριση δόνησης είναι απενεργοποιημένη.
- Απενεργοποίηση στη χειρονομία ζουμ
+ Απενεργοποίηση απόκρισης δόνησης κατά την χειρονομία ζουμ
Η αυτόματη φωτεινότητα HDR είναι ενεργοποιημένη.
Η αυτόματη φωτεινότητα HDR είναι απενεργοποιημένη.
Απενεργοποίηση αυτόματης φωτεινότητας HDR
@@ -262,12 +265,20 @@
Παράκαμψη ανακατευθύνσεων συνδέσμων
Ενεργοποίηση του κωδικοποιητή OPUS αν η ανταπόκριση του προγράμματος αναπαραγωγής τον περιλαμβάνει.
Ενεργοποίηση κωδικοποιητή OPUS
- Δεν αποθηκεύεται ούτε επαναφέρεται η φωτεινότητα κατά την έξοδο ή την είσοδο σε πλήρη οθόνη.
- Αποθήκευση και επαναφορά φωτεινότητας κατά την έξοδο ή την είσοδο σε πλήρη οθόνη.
+ Η φωτεινότητα δεν αποθηκεύεται ούτε επαναφέρεται κατά την έξοδο ή την είσοδο σε πλήρη οθόνη.
+ Η φωτεινότητα αποθηκεύεται και επαναφέρεται κατά την έξοδο ή την είσοδο σε πλήρη οθόνη.
Αποθήκευση και επαναφορά φωτεινότητας
Το πάτημα γραμμής προόδου είναι απενεργοποιημένο.
Το πάτημα γραμμής προόδου είναι ενεργοποιημένο.
Πάτημα γραμμής προόδου
+ "Αυτό θα επαναφέρει τις μικρογραφίες σε ζωντανές μεταδόσεις που δεν έχουν μικρογραφίες γραμμής προόδου.
+
+Η χρήση δεδομένων internet ενδέχεται να είναι υψηλότερη, και οι μικρογραφίες της γραμμής προόδου θα έχουν μια μικρή καθυστέρηση πριν εμφανιστούν.
+
+Αυτή η ρύθμιση λειτουργεί καλύτερα με γρήγορη σύνδεση internet."
+ Οι μικρογραφίες της γραμμής προόδου είναι μέτριας ποιότητας.
+ Οι μικρογραφίες της γραμμής προόδου είναι υψηλής ποιότητας.
+ Μικρογραφίες υψηλής ποιότητας
Οι χρονοσφραγίδες είναι απενεργοποιημένες.
"Οι χρονοσφραγίδες είναι ενεργοποιημένες.
@@ -311,7 +322,7 @@
Ευρεία γραμμή αναζήτησης
Η ευρεία γραμμή αναζήτησης δεν περιλαμβάνει την επικεφαλίδα του YouTube.
Η ευρεία γραμμή αναζήτησης περιλαμβάνει την επικεφαλίδα του YouTube.
- Ευρεία γραμμή αναζήτησης με επικεφαλίδα
+ Συμπερίληψη της επικεφαλίδας
Περιγραφή
"Εισάγετε τον τίτλο του πίνακα περιγραφής βίντεο στη γλώσσα σας.
Η λειτουργία «Αυτόματο άνοιγμα περιγραφής βίντεο» ενδέχεται να μη λειτουργήσει αν η εισαγόμενη συμβολοσειρά σας δεν ταιριάζει με τον τίτλο."
@@ -320,7 +331,7 @@
Η περιγραφή βίντεο ανοίγεται αυτόματα.
Αυτόματο άνοιγμα περιγραφής βίντεο
Θέλετε να συνεχίσετε;
- Επαναφέρθηκε στην προεπιλεγμένη τιμή.
+ Έγινε επαναφορά στις προεπιλεγμένες τιμές.
Επανεκκίνηση ώστε να φορτωθεί σωστά η διάταξη
"Υπάρχει ένα σφάλμα από πλευράς διακομιστή του YouTube το οποίο προκαλεί να μην εμφανίζονται κάποιοι αριθμοί όπως τα like, οι προβολές, και οι ημερομηνίες μεταμόρφωσης για κάποιους χρήστες.
@@ -351,7 +362,7 @@
Προειδοποίηση
%s δεν έχει εγκατασταθεί. Παρακαλούμε εγκαταστήστε το.
Όνομα πακέτου της εγκατεστημένης σας εξωτερικής εφαρμογής λήψης (π.χ YTLDnis).
- Όνομα πακέτου προγράμματος λήψης playlist
+ Όνομα πακέτου προγράμματος λήψης λίστας αναπαραγωγής
Όνομα πακέτου της εγκατεστημένης σας εξωτερικής εφαρμογής λήψης (π.χ NewPipe, YTLDnis).
Όνομα πακέτου προγράμματος λήψης βίντεο
"Τα βίντεο θα αλλάξουν σε λειτουργία πλήρους οθόνης στις ακόλουθες περιπτώσεις:
@@ -360,10 +371,13 @@
• Όταν πατιέται μια χρονοσήμανση στα σχόλια."
Εξαναγκασμός πλήρης οθόνης πάντα
Λίστα ονομάτων των επιλογών του μενού λογαριασμού για φιλτράρισμα, διαχωρισμένα με νέες γραμμές.
- Αλλαγή φίλτρου μενού λογαριασμού
+ Επεξεργασία φίλτρου μενού λογαριασμού
"Απόκρυψη στοιχείων του μενού λογαριασμού και της καρτέλας «Εσείς».
Κάποια στοιχεία ενδέχεται να μην κρύβονται."
Φιλτράρισμα μενού λογαριασμού
+ Εμφανίζεται.
+ Κρυμμένη.
+ Σύνοψη βίντεο παραγμένου με τεχνητή νοημοσύνη
Εμφανίζονται.
Κρυμμένες.
Κάρτες άλμπουμ
@@ -410,10 +424,10 @@
Playlists
Κοινότητα"
Λίστα ονομάτων καρτελών σελίδας καναλιού για φιλτράρισμα, διαχωρισμένα με νέες γραμμές.
- Αλλαγή φίλτρου καρτελών καναλιού
+ Επεξεργασία φίλτρου καρτελών καναλιού
Το φίλτρο καρτελών καναλιού είναι απενεργοποιημένο.
Το φίλτρο καρτελών καναλιού είναι ενεργοποιημένο.
- Χρήση φίλτρου καρτελών καναλιού
+ Φιλτράρισμα καρτελών καναλιού
Εμφανίζεται.
Κρυμμένο.
Υδατογράφημα καναλιού
@@ -483,21 +497,24 @@ Playlists
Επεκτάσιμες ενότητες
Εμφανίζεται.
Κρυμμένο.
- Κουμπί υπότιτλων στη ροή
+ Κουμπί υπότιτλων
Λίστα ονομάτων των επιλογών του αναδυόμενου μενού για φιλτράρισμα, διαχωρισμένα με νέες γραμμές.
- Αλλαγή φίλτρου αναδυόμενων μενού ροής
- Το φιλτάρισμα αναδυόμενων μενού στη ροή είναι απενεργοποιημένο.
- Το φιλτάρισμα αναδυόμενων μενού στη ροή είναι ενεργοποιημένο.
- Χρήση φίλτρου αναδυόμενου μενού ροής
+ Επεξεργασία φίλτρου αναδυόμενων μενού ροής
+ Το φιλτράρισμα του αναδυόμενου μενού στη ροή είναι απενεργοποιημένο.
+ Το φιλτράρισμα του αναδυόμενου μενού στη ροή είναι ενεργοποιημένο.
+ Φιλτράρισμα του αναδυόμενου μενού στη ροή
Εμφανίζεται.
Κρυμμένη.
- Γραμμή αναζήτησης στη ροή
+ Γραμμή αναζήτησης
Εμφανίζονται.
Κρυμμένες.
- Έρευνες στη ροή
+ Έρευνες
Η χειρονομία αναζήτησης καρέ-καρέ είναι ενεργοποιημένη.
Η χειρονομία αναζήτησης καρέ-καρέ είναι απενεργοποιημένη.
Απενεργοποίηση ακριβής αναζήτησης
+ Εμφανίζεται.
+ Κρυμμένο.
+ Αιωρούμενο κουμπί
Εμφανίζεται.
Κρυμμένο.
Αιωρούμενο κουμπί μικροφώνου
@@ -715,6 +732,9 @@ Playlists
Εμφανίζονται.
Κρυμμένα.
Κουμπιά προηγούμενου & επόμενου βίντεο
+ Εμφανίζεται.
+ Κρυμμένη.
+ Ενότητα αγορών οθόνης αναπαραγωγής
Εμφανίζεται.
Κρυμμένο.
Κουμπί YouTube Music
@@ -750,7 +770,7 @@ Playlists
Κουμπί περισσότερων ενεργειών
Εμφανίζεται.
Κρυμμένο.
- Κουμπί ανοίγματος playlist μίξης
+ Κουμπί ανοίγματος λίστας αναπαραγωγής μίξης
Εμφανίζεται.
Κρυμμένο.
Κουμπί ανοίγματος playlist
@@ -795,7 +815,7 @@ Playlists
Μικρογραφίες όρων αναζήτησης
Εμφανίζεται.
Κρυμμένη.
- Οδηγία κύλισης γραμμής προόδου
+ Οδηγία συρσίματος γραμμής προόδου
Εμφανίζεται.
Κρυμμένη.
Οδηγία «Αφήστε για ακύρωση»
@@ -855,7 +875,7 @@ Playlists
Μενού «Παρακολουθήστε σε TV»
Εμφανίζεται.
Κρυμμένο.
- Μενού «Οικογενειακό Κέντρο»
+ Μενού «Κέντρο οικογένειας»
Εμφανίζεται.
Κρυμμένο.
Μενού «Δοκιμάστε νέες πειραματικές λειτουργίες»
@@ -933,8 +953,8 @@ Playlists
Κρυμμένες.
Ετικέτες προώθησης επί πληρωμή
Εμφανίζεται.
- Κρυμμένη.
- Επικεφαλίδα κατά την παύση
+ Κρυμμένο.
+ Λογότυπο Shorts κατά την παύση
Εμφανίζονται.
Κρυμμένα.
Κουμπιά εμφάνισης κατά την παύση
@@ -1072,7 +1092,7 @@ Playlists
Περιορισμοί:
• Τα Shorts δε φιλτράρονται.
• Τα βίντεο με 0 προβολές δε φιλτράρονται."
- Σχετικά με το φιλτράρισμα βάσει προβολών
+ Σχετικά με το φιλτράρισμα με βάση τον αριθμό προβολών
Τα βίντεο στην καρτέλα «Αρχική» δε φιλτράρονται με βάση τον αριθμό προβολών.
Τα βίντεο στην καρτέλα «Αρχική» φιλτράρονται με βάση τον αριθμό προβολών.
Φιλτράρισμα καρτέλας «Αρχική»
@@ -1185,7 +1205,7 @@ Playlists
Λίστα επιτρεπόμενων
Αν εμφανίζεται, το κουμπί λήψης λίστας αναπαραγωγής ανοίγει το εγγενές πρόγραμμα λήψης του YouTube.
Το κουμπί λήψης λίστας αναπαραγωγής εμφανίζεται πάντα, και σε δημόσιες λίστες αναπαραγωγής ανοίγει το εξωτερικό πρόγραμμα λήψης σας.
- Μετατροπή κουμπιού λήψης playlist
+ Μετατροπή κουμπιού λήψης λίστας αναπαραγωγής
Το κουμπί λήψης του YouTube ανοίγει το εγγενές πρόγραμμα λήψης της εφαρμογής.
Το κουμπί λήψης του YouTube ανοίγει το εξωτερικό πρόγραμμα λήψης σας.
Μετατροπή κουμπιού λήψης βίντεο
@@ -1241,11 +1261,11 @@ Playlists
Απόκρυψη ή αλλαγή στοιχείων που σχετίζονται με τη λειτουργία πλήρους οθόνης.
Λειτουργία πλήρους οθόνης
Γενικά
- Απενεργοποίηση η ενεργοποίηση απόκρισης δόνησης.
+ Απενεργοποίηση η ενεργοποίηση της απόκρισης δόνησης.
Απόκριση δόνησης
Μετατροπή ενέργειας πατήματος των κουμπιών της εφαρμογής.
Μετατροπή κουμπιών
- Εισαγωγή ή εξαγωγή των ρυθμίσεων σας.
+ Εισαγωγή ή εξαγωγή των ρυθμίσεών σας.
Εισαγωγή / Εξαγωγή ρυθμίσεων
Αλλαγή του στυλ της ελαχιστοποιημένης οθόνης αναπαραγωγής.
Ελαχιστοποιημένη οθόνη αναπαραγωγής
@@ -1374,7 +1394,7 @@ Playlists
Εμφάνιση στα Shorts
Δεν εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το Return YouTube Dislike δεν είναι διαθέσιμο.
Εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το Return YouTube Dislike δεν είναι διαθέσιμο.
- Μήνυμα αν το API δεν είναι διαθέσιμο
+ Εμφάνιση μηνύματος αν το API δεν είναι διαθέσιμο
Κρυμμένο
Αφαίρεση των παραμέτρων παρακολούθησης από τις διευθύνσεις URL κατά την κοινοποίηση συνδέσμων.
Καθαρισμός συνδέσμων κοινοποίησης
@@ -1552,7 +1572,7 @@ Playlists
Το τμήμα υποβλήθηκε επιτυχώς.
Δεν εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το SponsorBlock δεν είναι διαθέσιμο.
Εμφανίζεται μήνυμα στο κάτω μέρος της οθόνης αν το SponsorBlock δεν είναι διαθέσιμο.
- Μήνυμα αν το API δεν είναι διαθέσιμο
+ Εμφάνιση μηνύματος αν το API δεν είναι διαθέσιμο
Αλλαγή κατηγορίας
Αρνητική ψήφος
Αδυναμία ψηφοφορίας για το τμήμα: %s.
diff --git a/src/main/resources/youtube/translations/es-rES/strings.xml b/src/main/resources/youtube/translations/es-rES/strings.xml
index 40276baef..04a8752ee 100644
--- a/src/main/resources/youtube/translations/es-rES/strings.xml
+++ b/src/main/resources/youtube/translations/es-rES/strings.xml
@@ -50,7 +50,7 @@ Pulsa aquí para saber más sobre DeArrow."
Tiempo de vídeo para tomar capturas fijas
Pestaña de suscripciones
La adición de información en la marca de tiempo está desactivada.
- La adición de información en la marca de tiempo está activada.
+ "La adición de información en la marca de tiempo está activada."
Añadir información en marca de tiempo
Añadir velocidad de reproducción.
Añadir calidad de vídeo.
@@ -371,6 +371,9 @@ Descarga %2$s desde el sitio web."
"Oculta elementos del menú de la cuenta y de la pestaña Tú.
Algunos componentes pueden no estar ocultos."
Ocultar menú de cuenta
+ La sección de resumen de vídeo generado por IA está visible.
+ La sección de resumen de vídeo generado por IA está oculta.
+ Ocultar sección de resumen de vídeo generado por IA
Las tarjetas del álbum están visibles.
Las tarjetas del álbum están ocultas.
Ocultar tarjetas de álbum
@@ -585,12 +588,12 @@ Las palabras con letras mayúsculas en el medio deben introducirse con las mayú
Los botones de me gusta y no me gusta están visibles.
Los botones de me gusta y no me gusta están ocultos.
Ocultar botones de me gusta y no me gusta
- Los mensajes de chat en vivo están visibles.\n\nEsta configuración se aplica también a los videos en vivo de Shorts.
- Los mensajes de chat en vivo están ocultos.\n\nEsta configuración se aplica también a los videos en vivo de Shorts.
- Ocultar mensajes de chat en vivo
+ Los mensajes de chat en directo están visibles.\n\nEste ajuste se aplica también a los vídeos en directo de Shorts.
+ Los mensajes de chat en directo están ocultos.\n\nEste ajuste se aplica también a los vídeos en directo de Shorts.
+ Ocultar mensajes de chat en directo
Se muestra el botón de repetición del Live Chat.\n\nAparece en pantalla completa al cerrar el Live Chat.
El botón de repetición de Live Chat está oculto.\n\nAparece en pantalla completa al cerrar el Live Chat.
- Ocultar botón de repetición de chat en vivo
+ Ocultar botón de repetición de chat en directo
Oculta los vídeos con menos de 1.000 visualizaciones de los feeds de inicio que hayan sido subidos desde canales a los que no estás suscrito.
Ocultar vídeos con pocas visualizaciones
Los paneles médicos están visibles.
diff --git a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml
index 22ae254ec..c7e1ce32d 100644
--- a/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/fr-rFR/missing_strings.xml
@@ -2,24 +2,13 @@
Don\'t show again
Courses / Learning
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
Disabled comments button or with label \"0\" is shown.
Disabled comments button or with label \"0\" is hidden.
Hide disabled comments button
diff --git a/src/main/resources/youtube/translations/fr-rFR/strings.xml b/src/main/resources/youtube/translations/fr-rFR/strings.xml
index e4e6dfab9..3624a8b68 100644
--- a/src/main/resources/youtube/translations/fr-rFR/strings.xml
+++ b/src/main/resources/youtube/translations/fr-rFR/strings.xml
@@ -50,7 +50,7 @@ Cliquez ici pour en savoir plus sur DeArrow."
Quelle partie de la vidéo utiliser pour la capture
Onglet \"Abonnements\"
L\'information n\'est pas ajoutée à côté de l\'horodatage (durée de la vidéo).
- L\'information est ajoutée à côté de l\'horodatage (durée de la vidéo).
+ "L'information est ajoutée à côté de l'horodatage (durée de la vidéo)."
Ajouter info. à côté de la durée
Ajoute la vitesse de lecture.
Ajoute la qualité vidéo.
@@ -268,6 +268,14 @@ Effet secondaire : le thème Cairo peut également s'appliquer sur les points d
L\'appui sur la barre de progression est désactivé.
L\'appui sur la barre de progression est activé.
Activer l\'appui sur la barre de progression
+ "Cela va restaurer les miniatures des diffusions en direct n'ayant pas de miniatures dans la barre de progression.
+
+L'utilisation des données Internet peut être plus élevée et les miniatures de la barre de progression s'afficheront avec un léger retard.
+
+Cette fonction fonctionne mieux avec une connexion internet très rapide."
+ Les miniatures de la barre de sélection sont en qualité moyenne.
+ Les miniatures de la barre de progression sont en haute qualité.
+ Activer les miniatures en haute qualité
L\'horodatage est désactivé.
"L'horodatage est activé.
@@ -488,6 +496,9 @@ Boutique"
La bande de film est affichée.
La bande de film est masquée.
Masquer la bande de film
+ Les boutons flottants sont affichés.
+ Les boutons flottants sont masqués.
+ Masquer les boutons flottants
Le bouton \"Micro\" est affiché.
Le bouton \"Micro\" est masqué.
Masquer le bouton \"Micro\"
@@ -707,6 +718,9 @@ Les mots comportant des majuscules au milieu doivent être saisis de la même fa
Les boutons sont affichés.
Les boutons sont masqués.
Masquer les boutons \"Précédent & Suivant\"
+ L\'étagère des produits est affiché.
+ L\'étagère des produits est masqué.
+ Masquer l\'étagère des produits sur le lecteur
Le bouton \"YouTube Music\" est affiché.
Le bouton \"YouTube Music\" est masqué.
Masquer le bouton \"YouTube Music\"
@@ -792,9 +806,9 @@ Si la mise en page de l'écran du lecteur change en raison de modifications côt
Masq. noms des chapitres sur la barre de progression
La barre de progression sur le lecteur est affiché.
La barre de progression sur le lecteur est masqué.
- Les miniatures sur la barre de progression sont affichés.
- Les miniatures sur la barre de progression sont masqués.
- Masq. barre de progression sur les miniatures
+ Les miniatures de la barre de progression sont affichés.
+ Les miniatures de la barre de progression sont masqués.
+ Masq. barre de progression des miniatures
Masquer la barre de progression
Les cartes autosponsorisées sont affichées.
Les cartes autosponsorisées sont masquées.
@@ -1078,9 +1092,9 @@ Limitations :
Les Doodles YouTube sont affichés.
Les Doodles YouTube sont masqués.
Masquer les Doodles YouTube
- "Les Doodles YouTube apparaissent quelques jours par an.
+ "Les Doodles YouTube apparaissent quelques fois par an.
-Si un Doodle YouTube est actuellement diffusé dans votre région et que le paramètre est activé, les filtres situés à côté de la barre de recherche sera également masquée."
+Si un Doodle YouTube est actuellement diffusé dans votre région et que ce paramètre est activé, les filtres situés à côté de la barre de recherche sera également masquée."
Le voile du zoom est affiché.
Le voile du zoom est masqué.
Masquer le voile du zoom
@@ -1290,7 +1304,7 @@ Appuyez longuement pour ouvrir les paramètres RVX."
"Appuyez pour ouvrir les paramètres RVX.
Appuyez longuement pour ouvrir les paramètres YouTube."
Action à attribuer au bouton
- Les miniatures sur la barre de progression sont affichées en mode plein écran.
+ Les miniatures de la barre de progression sont affichées en mode plein écran.
Les anciennes miniatures sont affichées au-dessus de barre de progression.
Restaure les anciennes miniatures de la barre de progression
Masque la nouvelle interface de qualité vidéo.
diff --git a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml
index 5a311b7e7..43788e232 100644
--- a/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml
+++ b/src/main/resources/youtube/translations/hu-rHU/missing_strings.xml
@@ -2,38 +2,13 @@
Don\'t show again
Courses / Learning
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
- "There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
-
-A temporary workaround for this issue is to spoof the app version to 19.13.37.
-
-Do you want to spoof the app version before restarting the app?"
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
- Highlighted search links are shown.
- Highlighted search links are hidden.
- Hide highlighted search links
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
- Shown in channel.
- "Hidden in channel.
-
-Info:
-• Only shelves with the Shorts header on the home tab are hidden."
- Hide in channel
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Blue
MMT Green
MMT Orange
@@ -44,23 +19,10 @@ Info:
Vanced Black
Vanced Light
Xisr Yellow
- @handle (Username)
- Display format
- Username (@handle)
- Username
- "Phrases like '#', 'Fundraiser', 'Shop' and 'products' were shown from the video subtitles."
- "Phrases like '#', 'Fundraiser', 'Shop' and 'products' were hidden from the video subtitles."
- Sanitize video subtitle
Adjust: Mark Start and End Time for segment
Verify the Segment
Edit the Segment
Forward by Specified Time (Default: 150ms)
Publish Created Segment
Rewind by Specified Time (Default: 150ms)
- Brightness swipe sensitivity must be between 1-1000 (%).
- Configure the minimum distance for brightness swiping between 1 and 1000 (%).\nThe shorter the minimum distance, the faster the brightness level changes.
- Brightness swipe sensitivity
- Volume swipe sensitivity must be between 1-1000 (%).
- Configure the minimum distance for volume swiping between 1 and 1000 (%).\n\nThe shorter the minimum distance, the faster the volume level changes.\n\nRecommended volume swipe sensitivity is 100% at 15-volume steps and 10% at 150-volume steps.
- Volume swipe sensitivity
diff --git a/src/main/resources/youtube/translations/hu-rHU/strings.xml b/src/main/resources/youtube/translations/hu-rHU/strings.xml
index de14bab67..76636b731 100644
--- a/src/main/resources/youtube/translations/hu-rHU/strings.xml
+++ b/src/main/resources/youtube/translations/hu-rHU/strings.xml
@@ -44,14 +44,14 @@ Koppints ide, ha többet szeretnél megtudni a DeArrow-ról."
Pillanatkép készítésének ideje
Előfizetések oldal
Az információ nem kerül hozzáadásra az időbélyeghez.
- Az információ hozzáadásra kerül az időbélyeghez.
+ "Az információ hozzáadásra kerül az időbélyeghez."
Időbélyegző információ hozzáfűzése
Lejátszási sebesség hozzáadása.
Videóminőség hozzáadása.
Információ típusának hozzáfűzése
- A \'Mozifilmes világítás\' mód le van tiltva akkumulátorkímélő üzemmódban.
- A \'Mozifilmes világítás\' mód engedélyezett akkumulátorkímélő üzemmódban.
- Megkerüli a \'Mozifilmes világítás\' mód korlátozásait
+ A mozifilmes világítás mód le van tiltva akkumulátorkímélő üzemmódban.
+ A mozifilmes világítás mód engedélyezett akkumulátorkímélő üzemmódban.
+ Megkerüli a mozifilmes világítás mód korlátozásait
A domain, ahonnan a képeket le lehet hívni.\nMegjegyzés: Csak a domainnevet írd be, azaz a \"https\:\/\/\" előtag nélkül.
Alternatív domain
Az eredeti cím használata a képekhez.\n\nEnnek engedélyezése javíthatja a hiányzó képeket, amelyek bizonyos régiókban le vannak tiltva.
@@ -99,7 +99,7 @@ Korlátozás: Előfordulhat, hogy az eszköztár Vissza gombja nem működik."
Az általános fejléc van engedélyezve.
A prémium fejléc van engedélyezve.
YouTube fejléc módosítása
- A szűrendő összetevő útvonal építő karakterláncok listája új sorral elválasztva
+ A szűrendő összetevők listája új sorokkal elválasztva.
Egyéni szűrő
Az egyéni szűrő le van tiltva.
Az egyéni szűrő engedélyezett.
@@ -114,7 +114,7 @@ Korlátozás: Előfordulhat, hogy az eszköztár Vissza gombja nem működik."
Egyedi lejátszási sebesség
A lejátszó átlátszóságának 0 és 100 között kell lennie. Visszaállítás alapértelmezettre.
Átlátszósági érték 0 és 100 között, ahol a 0 az átlátszó.
- Egyéni lejátszó fedvény átlátszósága
+ Egyéni lejátszó átlátszóság beállítása
Írja be a keresősáv színének hexadecimális kódját.
Keresősáv egyéni színe
A YouTube linkek megnyitásához az RVX-ben engedélyezze az \'Támogatott linkek megnyitása\' és engedélyezze a támogatott webcímeket.
@@ -125,11 +125,11 @@ Korlátozás: Előfordulhat, hogy az eszköztár Vissza gombja nem működik."
Letiltja a \'Mozifilmes világítás\' módot teljes képernyőn.
A mozifilmes világítás engedélyezett teljes képernyőn.
A mozifilmes világítás le van tiltva teljes képernyőn.
- Teljes képernyőn a \'Mozifilmes világítás\' mód letiltása
+ Mozifilmes világítás mód letiltása teljes képernyőn
Mindig tiltsa le \'Mozifilmes világítás\' módot.
A mozifilmes világítás engedélyezett.
A mozifilmes világítás letiltva.
- \'Mozifilmes világítás\' mód letiltása
+ Mozifilmes világítás mód letiltása
A kényszerített automatikus hangsávok engedélyezve vannak.
A kényszerített automatikus hangsávok le vannak tiltva.
Kényszerített automatikus hangsávok letiltása
@@ -198,12 +198,12 @@ Korlátozás: Előfordulhat, hogy ez a beállítás nem vonatkozik azokra a vide
A szökőkút animáció engedélyezve van a Like gombon.
A szökőkút animáció le van tiltva a Like gombon.
Like gomb animáció elrejtése
- "Letiltja a '2x sebességgel lejátszás' funkciót, ha hosszan nyomva tartja.
+ "Letiltja a '2x>>' funkciót, hosszan nyomva tartásra.
Megjegyzés:
-• A sebesség átfedés letiltásával visszaállítható a régi elrendezés 'Csúszás a kereséshez' viselkedése.
-• A beállítás letiltása nem erőlteti meg a sebesség átfedést."
- Sebesség átfedés letiltása
+• A gyorsított lejátszás letiltásával visszaállítható a keresősáv korábbi 'Csúsztatás kereséshez' viselkedése.
+• A beállítás letiltása nem erőlteti a gyorsított lejátszást."
+ Gyorsított lejátszás letiltása
Az indító animáció engedélyezve.
Az indító animáció letiltva.
Indító animáció letiltása
@@ -262,6 +262,14 @@ Mellékhatás: a Cairo stílus az értesítési pontokra is alkalmazódik."A keresősávon történő érintés ki van kapcsolva.
A keresősávon történő érintés engedélyezve van.
Érintés engedélyezése a kereső sávon
+ "Ezzel visszaállítja az indexképeket az olyan élő közvetítésekhez, amelyek nem rendelkeznek keresősáv-bélyegképekkel.
+
+Az internetes adathasználat magasabb lehet, és a keresősáv bélyegképei kis késéssel jelennek meg.
+
+Ez a funkció nagyon gyors internetkapcsolat mellett működik a legjobban."
+ A keresősáv bélyegképei közepes minőségűek.
+ A keresősáv bélyegképei kiváló minőségűek.
+ Jó minőségű miniatűrök engedélyezése
Fejezetek letiltva.
"Az időbélyeg engedélyezve van.
@@ -293,17 +301,17 @@ Korlátozások:
A videólejátszó alatti lefelé húzás esetén a teljes képernyős módra váltás ki van kapcsolva.
A videólejátszó alatti lefelé húzás esetén a teljes képernyős módra váltás be van kapcsolva.
Nézőpanel bekapcsolása gesztussal
- "Ha bekapcsolja ezt a beállítást, letiltja a beállítások gombot a Te fülben.
+ "Ha bekapcsolja ezt a beállítást, letiltja a beállítások gombot a Te lapon.
Ebben az esetben kérjük használja a következő utat a beállításokhoz való hozzáféréshez:
-Te fül → Csatorna megtekintése → Menü → Beállítások."
+Te lap → Csatorna megtekintése → Menü → Beállítások"
Széles kereső sáv engedélyezése a Te lapon
A széles keresősáv le van tiltva.
A széles keresősáv engedélyezve van.
Széles keresősáv engedélyezése
- A széles keresősáv nem tartalmazza a YouTube fejlécét.
- A széles keresősáv tartalmazza a YouTube fejlécét.
- Széles keresősáv engedélyezése fejléc mellett
+ A széles keresősáv elakarja a YouTube fejlécét.
+ A széles keresősáv nem takarja el a YouTube fejlécét.
+ Széles, fejléces keresősáv engedélyezése
Leírás
"Írja be a videoleírás panel címét az Ön nyelvén.
A 'Videoleírások kibővítése' nem működik, ha a beírt sztring nem egyezik meg a videoleírás panel címével. "
@@ -314,6 +322,11 @@ A 'Videoleírások kibővítése' nem működik, ha a beírt sztring nem egyezik
Szeretnéd folytatni?
Visszaállítás az alapértelmezett értékekre.
Indítsa újra a rendszert a normál elrendezés betöltéséhez
+ "Van egy YouTube szerveroldali hiba, ami miatt a gördülő számokat tartalmazó szövegek, például a tetszésnyilvánítások, a megtekintések és a feltöltési dátumok el vannak rejtve egyes felhasználók számára.
+
+A probléma ideiglenes megoldása az alkalmazás verziójának 19.13.37-re való hamisítása.
+
+Szeretné hamisítani az alkalmazás verzióját az alkalmazás újraindítása előtt?"
Frissítés és újraindítás
A beállítások exportálása sikertelen.
A beállítások exportálása sikeres.
@@ -398,7 +411,7 @@ Lejátszási listák
A csatornafül szűrő be van kapcsolva.
Csatornafül szűrő bekapcsolása
A csatorna vízjele látható.
- A vízjel el van rejtve
+ A csatorna vízjel el van rejtve.
Csatorna vízjel elrejtése
A fejezetek szakaszai megjelennek.
A fejezetek szakaszai el vannak rejtve.
@@ -406,12 +419,15 @@ Lejátszási listák
A vágások polc látható.
A vágások polc elrejtve.
Vágások polc elrejtése
- A klip gomb látható
- A klip gomb el van rejtve
- Vágás gomb elrejtése
+ A klip gomb látható.
+ A klip gomb el van rejtve.
+ Klip gomb elrejtése
A \'Short létrehozása\' gomb látható.
A \'Short létrehozása\' gomb el van rejtve.
Short létrehozás gomb elrejtése
+ A kiemelt keresési hivatkozások láthatóak.
+ A kiemelt keresési hivatkozások el vannak rejtve.
+ Kiemelt keresési hivatkozások elrejtése
A Köszönöm gomb megjelenik.
A Köszönöm gomb el van rejtve.
Köszönöm gomb elrejtése
@@ -439,9 +455,9 @@ Lejátszási listák
A tartalom készítésének módja rész látható.
A tartalom készítésének módja rész elrejtve.
A tartalmak szekció elrejtése
- A közösségi finanszírozási doboz megjelenik
- A közösségi finanszírozási doboz el van rejtve
- Közösségi finanszírozási doboz elrejtése
+ A közösségi finanszírozás látható.
+ A közösségi finanszírozás el van rejtve.
+ Közösségi finanszírozás elrejtése
A dupla koppintásos átfedés szűrő látható.
A dupla koppintásos átfedés szűrő elrejtve.
Dupla koppintás átfedés szűrő elrejtése
@@ -474,6 +490,9 @@ Lejátszási listák
A filmszalag fedés látható.
A filmszalag fedés el van rejtve.
Filmszalag fedés elrejtése
+ A lebegő gomb látható.
+ A lebegő gomb el van rejtve.
+ Lebegő gomb elrejtése
A lebegő mikrofon gomb látható.
A lebegő mikrofon gomb el van rejtve.
Lebegő mikrofon gomb elrejtése
@@ -509,8 +528,8 @@ Korlátozás: előfordulhat, hogy a közösségi bejegyzés képe a teljes képe
Az infó kártyák rész látható
Az infó kártyák rész el van rejtve
Infó kártyák rész elrejtése
- Az info kártyák megjelennek
- Az info kártyák el vannak rejtve
+ Az info kártyák láthatóak.
+ Az info kártyák el vannak rejtve.
Infó kártyák elrejtése
Az info panelek láthatóak.
Az info panelek el vannak rejtve.
@@ -689,6 +708,9 @@ Korlátozások:
A gombok megjelennek.
A gombok el vannak rejtve.
Előző és következő gomb elrejtése
+ A bevásárló polc látható.
+ A bevásárló polc el van rejtve.
+ Lejátszó bevásárló polcának elrejtése
YouTube Music gomb megjelenik.
YouTube Music gomb rejtve van.
YouTube Zene gomb elrejtése
@@ -760,9 +782,9 @@ Ha a lejátszó képernyőjének elrendezése a szerveroldali változtatások mi
A jutalmak gomb látható.
A jutalmak gomb el van rejtve.
Jutalmak gomb elrejtése
- A miniatűrök a keresési kifejezések előzményeiben láthatóak.
- A miniatűrök a keresési kifejezések előzményeiben el vannak rejtve.
- Keresett kifejezés miniatűrjének elrejtése
+ A bélyegképek a keresési kifejezések előzményeiben láthatóak.
+ A bélyegképek a keresési kifejezések előzményeiben el vannak rejtve.
+ Keresési kifejezések bélyegképeinek elrejtése
A kereső üzenet látható.
A kereső üzenet el van rejtve.
Kereső üzenet elrejtése
@@ -846,7 +868,7 @@ Ha a lejátszó képernyőjének elrendezése a szerveroldali változtatások mi
A megosztás gomb látható
A megosztás gomb el van rejtve
Megosztás elrejtése
- A Vásárlás gomb megjelenik.
+ A vásárlás gomb látható.
A Vásárlás gomb el van rejtve.
Üzlet gomb elrejtése
A vásárlási linkek láthatóak
@@ -915,6 +937,12 @@ Ha a lejátszó képernyőjének elrendezése a szerveroldali változtatások mi
A megosztás gomb látható.
A megosztás gomb el van rejtve.
Megosztás gomb elrejtése
+ A csatornában látható.
+ "A csatornában el van rejtve.
+
+Információ:
+• Csak azok a polcok lesznek elrejtve a kezdőlapon, amelyeknél a Shorts fejléce látható."
+ Elrejtés a csatornában
Megjelenítve a nézési előzmények között.
Elrejtve a nézési előzmények között.
Elrejtés a nézési előzmények között
@@ -997,27 +1025,27 @@ Note:
Az automatikus lejátszás a YouTube beállításaiban módosítható:
Beállítások → Automatikus lejátszás → Következő videó automatikus lejátszása"
Javasolt videó végoldali képernyő elrejtése
- A köszönet gomb látható
- A köszönet gomb el van rejtve
- Köszönet elrejtése
+ A köszönet gomb látható.
+ A köszönet gomb el van rejtve.
+ Köszönet gomb elrejtése
A jegy polcok láthatóak.
A jegy polcok elrejtve.
Jegy polcok elrejtése
Az időtartam látható.
Az időtartam el van rejtve.
Időtartam elrejtése
- Az időzített reakciók megjelenítve
- Az időzített reakciók elrejtve
+ Az időzített reakciók láthatóak.
+ Az időzített reakciók el vannak rejtve.
Időzített reakciók elrejtése
- A Cast gomb megjelenik.
- A Cast gomb el van rejtve.
- Szereplők gomb elrejtése
+ Az átküldés gomb látható.
+ Az átküldés gomb el van rejtve.
+ Átküldés gomb elrejtése
A létrehozás gomb látható.
A létrehozás gomb el van rejtve.
Létrehozás gomb elrejtése
- Az értesítés gomb látható.
- Az értesítés gomb el van rejtve.
- Értesítés gomb elrejtése
+ Az értesítések gomb látható.
+ Az értesítések gomb el van rejtve.
+ Értesítések gomb elrejtése
Az átirat rész megjelenik
Az átirat rész el van rejtve
Átirat rész elrejtése
@@ -1165,15 +1193,15 @@ Tartsa nyomva a sebesség alaphelyzetbe állításához."
Elemek elrejtése vagy megjelenítése a fiók menüben és a Te fülön.
Fiók menü
Videók alatti műveletgombok elrejtése vagy megjelenítése.
- Műveletgombok
+ Művelet gombok
Hirdetések
Alternatív miniatűrök
- Tiltsa le a környezeti módot, vagy kerülje meg a környezeti mód korlátozásait.
- Környezeti mód
+ Tiltsa le a mozifilmes világítás módot, vagy kerülje meg a korlátozásait.
+ Mozifilmes világítás mód
Rejtse el vagy jelenítse meg a kategória sávot a hírfolyamban, keresésben és a kapcsolódó videókban.
Kategória sáv
Rejtse el vagy mutassa meg a videók alatt található csatornasáv elemeit.
- Csatornasáv
+ Csatorna sáv
Komponensek elrejtése vagy megjelenítése a csatornaprofilban.
Csatorna profil
Rejtse el vagy mutassa a hozzászólások rész elemeit.
@@ -1265,17 +1293,21 @@ Ez nem kerüli meg a korhatárt. Csak automatikusan fogadja el."
Időbélyeg művelet megváltoztatása
A létrehozás gombot beállítások gombra cseréli.
Létrehozás gomb cseréje
- "Ide kattintva megnyílik a YouTube beállítások.
-Ide hosszan nyomva tartva megnyílik az RVX beállítások."
- "Ide kattintva megnyílik az RVX beállítások.
-Ide hosszan nyomva tartva megnyílik a YouTube beállítások."
- A gombhoz rendelhető művelet típusa
+ "Érintse meg a YouTube-beállítások megnyitásához.
+Érintse meg és tartsa lenyomva az RVX beállítások megnyitásához."
+ "Érintse meg az RVX beállítások megnyitásához.
+Érintse meg és tartsa lenyomva a YouTube-beállítások megnyitásához."
+ Gombhoz rendelhető művelet típusa
A keresősáv bélyegképei megjelennek a teljes képernyőn
A keresősáv bélyegképei megjelennek a keresősáv felett
Régi keresősáv bélyegképek visszaállítása
A régi videóminőség menü nem jelenik meg
A régi videóminőség menü jelenik meg
Régi videóminőség menü visszaállítása
+ \@kezelő (felhasználónév)
+ Megjelenítési formátum
+ Felhasználónév (@kezelő)
+ Felhasználónév
A kezelő van használatban.
A felhasználónév van használatban.
A YouTube-felhasználónév visszaadás engedélyezése
@@ -1321,6 +1353,9 @@ Korlátozás: A nem tetszések lehet nem jelennek meg kijelentkezett felhasznál
Rejtett
Linkek megosztásakor eltávolítja a nyomkövetés lekérdezési paramétereket az URL-ekből.
Megosztási linkek tisztítása
+ "Az olyan kifejezések, mint a „#”, „Adománygyűjtés”, „Üzlet” és „termékek”, láthatóak a videófeliratokban."
+ "Az olyan kifejezések, mint a „#”, „Adománygyűjtés”, „Üzlet” és „termékek”, el lettek rejtve a videófeliratokban."
+ Videó feliratának tisztítása
Rólunk
sponsor.ajay.app
Az adatokat a SponsorBlock API biztosítja. Koppintson ide, ha többet szeretne megtudni és megtekintené a letöltéseket más platformokra
@@ -1538,8 +1573,8 @@ Info:
A beállítás bekapcsolása videolejátszási problémákat okozhat.
Kihagyott előtöltött puffer.
Az egyéni lejátszási sebességnek 0 és 8.0 között kell lennie. Visszaállítás az alapértelmezett értékekre.
- Sebesség átfedés érték 0-8.0 között.
- Sebesség átfedés érték
+ Gyorsított lejátszás érték 0-8.0 között.
+ Gyorsított lejátszás értéke
"A kliens verziójának hamisítása régi verzióra.
• Ez megváltoztatja az alkalmazás megjelenését, de ismeretlen mellékhatások léphetnek fel.
@@ -1587,6 +1622,9 @@ Ha kikapcsolja, akkor ajánlott törölni az app adatait, hogy elkerülje a UI h
iOS
Alapértelmezett kliens
A beállítás kikapcsolása videólejátszási problémákat okozhat.
+ A fényerő csúsztatás érzékenységének 1 és 1000 (%) között kell lennie.
+ Állítsa be a minimális távolságot a fényerő csúsztatásához 1 és 1000 (%) között.\nMinél kisebb a minimális távolság, annál gyorsabban változik a fényerő szintje.
+ Fényerő csúsztatás érzékenység
A csúsztatási mozdulatok le vannak tiltva a \'Képernyő lezárása\' módban.
A csúsztatási mozdulatok engedélyezve vannak a \'Képernyő lezárása\' módban.
A csúsztatási mozdulatok a \'Képernyő lezárása\' módban
@@ -1603,6 +1641,9 @@ Megjegyzés: Ezzel a képernyőterület méretét is megváltoztatja, ahol érz
Csúsztatási-átfedés szövegmérete
Az átfedés láthatóságának időtartama ezredmásodpercben
Csúsztatási átfedés időkorlátja
+ A hangerő csúsztatás érzékenységének 1 és 1000 (%) között kell lennie.
+ Állítsa be a hangerő csúsztatásának minimális távolságát 1 és 1000 (%) között.\n\nMinél kisebb a minimális távolság, annál gyorsabban változik a hangerő.\n\nAz ajánlott hangerő-csúsztatási érzékenység 100% 15 hangerős lépéseknél és 10% 150 hangerős lépéseknél.
+ Hangerő csúsztatás érzékenység
"A létrehozás gomb és az értesítés gomb helyzetét cseréli ki a készülék információinak meghamisításával.
• A készüléket esetleg újra kell indítani a beállítás változtatásának érvényesítéséhez.
diff --git a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml
index dcd7145e9..8956daf6e 100644
--- a/src/main/resources/youtube/translations/it-rIT/missing_strings.xml
+++ b/src/main/resources/youtube/translations/it-rIT/missing_strings.xml
@@ -1,21 +1,10 @@
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/it-rIT/strings.xml b/src/main/resources/youtube/translations/it-rIT/strings.xml
index 055d0c072..06e8062ef 100644
--- a/src/main/resources/youtube/translations/it-rIT/strings.xml
+++ b/src/main/resources/youtube/translations/it-rIT/strings.xml
@@ -23,78 +23,76 @@ Se attivato, gli URL dei video verranno inviati al server API e non vengono invi
Tocca qui per saperne di più su DeArrow."
DeArrow
- URL API DeArrow non valido.
- L\'URL dell\'endpoint della cache delle anteprime DeArrow.
+ URL API DeArrow non valido
+ L\'URL dell\'endpoint della cache dei thumbnails DeArrow.
Endpoint API di DeArrow
- Notifica toast nascosta DeArrow non è disponibile.
- Notifica toast visibile se DeArrow non è disponibile.
+ La notifica toast è nascosta se DeArrow non è disponibile.
+ La notifica toast è visibile se DeArrow non è disponibile.
Mostra una notifica toast se l\'API non è disponibile
- DeArrow temporaneamente non disponibile. (status code: %s)
- DeArrow temporaneamente non disponibile.
+ DeArrow temporaneamente non disponibile (Stato: %s)
+ DeArrow temporaneamente non disponibile
Scheda Home
Scheda Tu
- Anteprime originali
- DeArrow & anteprime originali
- DeArrow & catture statiche
+ Thumbnails originali
+ DeArrow e thumbnails originali
+ DeArrow e catture statiche
Catture statiche
- Playlist del riproduttore, video consigliati
+ Playlist e video consigliati
Risultati di ricerca
Thumbnails alternativi
- Le catture statiche sono prese dall\'inizio, da metà o alla fine di ogni video. Queste immagini sono integrate in YouTube e non viene usata nessuna API esterna.
+ Le catture statiche sono prese dall\'inizio, metà o fine di ogni video. Queste immagini sono integrate in YouTube e non viene usata nessuna API esterna.
Catture statiche del video
- Utilizzando catture statiche di alta qualità.
- Utilizzando catture statiche di media qualità. Le anteprime si caricheranno più velocemente, ma i video in tempo reale, i video non ancora rilasciati, o video molto vecchi potrebbero mostrare anteprime bianche.
- Attiva catture statiche veloci
- Inizio del video
- Metà del video
- Fine del video
- Il punto del video da cui prendere la cattura statica
- Scheda iscrizioni
- L\'informazione nel timestamp è nascosto
- L\'informazione nel timestamp è visibile
- Mostra l\'informazione nel timestamp
- Velocità di riproduzione
-
-(Tocca e tieni premuto il timestamp per cambiare il tipo durante la riproduzione del video)
- Qualità del video
+ Le catture statiche di alta qualità sono attivati.
+ Le catture statiche di media qualità sono attivati. I thumbnails caricheranno più velocemente, ma i video dal vivo, quelli non rilasciati e molto vecchi potrebbero mostrare thumbnails vuoti.
+ Attiva le catture statiche veloci
+ Inizio
+ Metà
+ Fine
+ Il punto del video da cui prendere le catture statiche
+ Scheda Iscrizioni
+ L\'informazione nel timestamp è nascosta.
+ "L'informazione nel timestamp è visibile.
-(Tocca e tieni premuto il timestamp per cambiare il tipo durante la riproduzione del video)
- Il tipo di informazione
+Tocca e tieni premuto l'informazione mostrata per cambiare il tipo."
+ Mostra l\'informazione nel timestamp
+ Velocità di riproduzione.
+ Qualità.
+ Cambia il tipo di informazione da mostrare
La modalità Ambient in modalità risparmio energetico è disattivata.
La modalità Ambient in modalità risparmio energetico è attivata.
Bypassa le restrizioni della modalità Ambient
Il dominio da cui prelevare le immagini.\nNota: Inserisce solo il nome di dominio, cioè senza il prefisso \"https\:\/\/\".
Dominio alternativo
- Usando l\'host dell\'immagine originalei.\n\nAttivando questo si possono correggere le immagini mancanti che sono bloccate in alcune regioni.
- Utilizzando l\'host yt4.ggpht.com per le immagini.
- Aggira restrizioni regionali delle immagini
+ Usando l\'host originale per le immagini.\n\nL\'attivazione di questa impostazione può correggere le immagini mancanti, poichè sono bloccate in alcune regioni.
+ Usando l\'host yt4.ggpht.com per le immagini.
+ Bypassa le restrizioni regionali delle immagini
Originale
Telefono
- Telefono (max 480 dp)
+ Telefono (Massimo 480 dp)
Tablet
- Tablet (Min. 600 dp)
- Cambia layout
- Vengono utilizzati gli interruttori a levetta.
- Vengono utilizzati gli interruttori con testo.
- Cambia il tipo d\'interruttore
- Schermata di condivisione nativa in utilizzo.
- Schermata di condivisione di sistema in utilizzo.
- Cambia schermata di condivisione
+ Tablet (Minimo 600 dp)
+ Cambia l\'interfaccia
+ Levetta.
+ Testo.
+ Cambia il tipo di interruttore
+ Nativo.
+ Sistema.
+ Cambia la schermata di condivisione
Riproduzione automatica
Predefinito
Pausa
Ripeti
- Cambia lo stato di ripetizione degli shorts
+ Cambia lo stato di ripetizione degli Shorts
Esplora canali
Corsi / Istruzione
- Predefinita
+ Predefinita (Home)
Esplora
Giochi
Cronologia
- Libreria
+ Tu (Raccolta)
Video piaciuti
- Diretta
- Film
+ Live
+ Film e TV
Musica
Cerca
Shorts
@@ -106,30 +104,30 @@ Tocca qui per saperne di più su DeArrow."
La pagina iniziale cambia solo una volta.
"La pagina iniziale cambia sempre.
-Limitazione: Il pulsante indietro sulla barra degli strumenti potrebbe non funzionare."
+Nota: il pulsante Indietro della barra degli strumenti potrebbe non funzionare."
Cambia il tipo di pagina iniziale
- L\'intestazione generica è attivata.
- L\'intestazione Premium è attivata.
- Cambia intestazione di YouTube
- Configura i componenti da nascondere separati da nuove righe
+ Nativa.
+ Premium.
+ Cambia l\'intestazione di YouTube
+ L\'elenco dei componenti da filtrare, separati da nuove righe.
Modifica il filtro personalizzato
Il filtro personalizzato è disattivato.
Il filtro personalizzato è attivato.
Attiva il filtro personalizzato
Filtro personalizzato non valido (%s)
- Viene utilizzato il menu a comparsa a vecchio stile.
- Viene utilizzato il dialogo personalizzato.
- Tipo di menu di velocità di riproduzione personalizzato
+ Vecchio menù a comparsa.
+ Finestra personalizzata.
+ Cambia il tipo di menù della velocità di riproduzione personalizzata
Velocità personalizzate di riproduzione non valide, ripristinate al predefinito
Velocità di riproduzione personalizzata non valida. Utilizzando i valori predefiniti.
- È disponibile aggiungere, rimuovere o modificare le velocità di riproduzione
+ Aggiungi, rimuovi o modifica le velocità di riproduzione.
Modifica le velocità personalizzate del video
- L\'opacità della copertura del riproduttore deve essere compresa tra 0 e 100. Ripristinati i valori predefiniti.
- Il valore dell\'opacità è tra 0 a 100, dove 0 è trasparente.
+ L\'opacità della sovrapposizione del riproduttore deve essere tra 0 e 100
+ Il valore dell\'opacità è tra 0 e 100, dove 0 è trasparente.
L\'opacità personalizzata della sovrapposizione del riproduttore
- Digita il codice esadecimale del colore della barra di avanzamento
+ Digita il codice esadecimale del colore della barra di avanzamento.
Valore del colore personalizzato della barra di avanzamento
- Per aprire ReVanced Extended da un\'applicazione esterna, attiva \"Apri collegamenti supportati\" e abilita gli indirizzi web supportati.
+ Per aprire RVX da un\'applicazione esterna, attiva \"Apri collegamenti supportati\" e abilita gli indirizzi web supportati.
Apri le impostazioni predefinite dell\'app
Velocità di riproduzione predefinita
Qualità predefinita dei video con connessione dati
@@ -154,10 +152,10 @@ Limitazione: Il pulsante indietro sulla barra degli strumenti potrebbe non funzi
"Il cambio automatico alle playlist miste è attivato quando la riproduzione automatica è attivata.
La riproduzione automatica può essere modificata nelle impostazioni di YouTube:
-Impostazioni → Riproduzione automatica → Riproduci automaticamente video successivo"
+Impostazioni → Riproduzione automatica → Telefono cellulare/tablet"
Il cambio automatico alle playlist miste è disattivato.
Disattiva il cambio automatico alle playlist miste
- L\'attivazione di questa funzione disattiva il cambio automatico alle playlist miste durante la riproduzione di musica con la riproduzione automatica attiva.
+ L\'attivazione di questa impostazione disattiva il cambio automatico alle playlist miste durante la riproduzione di musica con la riproduzione automatica attiva.
La velocità di riproduzione predefinita nei video dal vivo è attivata
La velocità di riproduzione predefinita nei video dal vivo è disattivata
Disattiva la velocità di riproduzione predefinita nei video dal vivo
@@ -193,44 +191,44 @@ Limitazione: Questa impostazione potrebbe non applicarsi ai video che non includ
La modalità orizzontale a schermo intero è attivata.
La modalità orizzontale a schermo intero è disattivata.
Disattiva la modalità orizzontale a schermo intero
- I pulsanti Mi piace e Non mi piace brilleranno quando menzionati.
- I pulsanti Mi piace e Non mi piace non brilleranno quando menzionati.
+ I pulsanti Mi Piace e Non Mi Piace brilleranno quando menzionati.
+ I pulsanti Mi Piace e Non Mi Piace non brilleranno quando menzionati.
Disattiva il bagliore dei pulsanti Mi Piace e Non Mi Piace
- "Disattiva il protocollo QUIC di CronetEngine"
+ "Disattiva il protocollo QUIC di CronetEngine."
Disattiva il protocollo QUIC
- Il riproduttore Shorts riprenderà all\'avvio dell\'app.
- Il riproduttore Shorts non riprenderà all\'avvio dell\'app.
- Disabilita la ripresa del riproduttore Shorts
- Le animazioni degli aggiornamenti in tempo reale dei contatori sono attivate.
- Le animazioni degli aggiornamenti in tempo reale dei contatori sono disattivate.
- Disattiva le animazioni degli aggiornamenti in tempo reale dei contatori
+ Il riproduttore degli Shorts riprenderà all\'avvio dell\'app.
+ Il riproduttore degli Shorts non riprenderà all\'avvio dell\'app.
+ Disattiva la ripresa del riproduttore degli Shorts
+ L\'effetto contatore dei numeri è attivato.
+ L\'effetto contatore dei numeri è disattivato.
+ Disattiva l\'effetto contatore dei numeri
I capitoli sono abilitati nella barra di avanzamento.
I capitoli sono disabilitati nella barra di avanzamento.
Disabilita i capitoli della barra di avanzamento
- L\'animazione della fontana è abilitata sopra il pulsante mi piace.
- L\'animazione della fontana è disabilitata sopra il pulsante mi piace.
- Disabilita animazione pulsante Mi piace
+ L\'animazione sopra il pulsante Mi Piace è attivata.
+ L\'animazione sopra il pulsante Mi Piace è disattivata.
+ Disattiva l\'animazione sopra il pulsante Mi Piace
"Disattiva la funzione \"2x>>\" quando tieni premuto.
-Nota:
-• Disattivando la sovrapposizione della velocità verrà ripristinato la funzione \"Scorri la barra di avanzamento\" della vecchia interfaccia.
-• Disattivando questa impostazione non si attiva forzatamente la sovrapposizione della velocità."
- Disattiva la sovrapposizione della velocità quando tieni premuto
- L\'animazione dell\'avvio è attivata.
- L\'animazione dell\'avvio è disattivata.
- Disattiva l\'animazione dell\'avvio
+Note:
+• La disattivazione della sovrapposizione della velocità ripristinerà il gesto \"Scorri la barra di avanzamento\" della vecchia interfaccia.
+• La disattivazione di questa impostazione non attiva forzatamente la sovrapposizione della velocità."
+ Disattiva la sovrapposizione della velocità
+ L\'animazione di avvio è attivata.
+ L\'animazione di avvio è disattivata.
+ Disattiva l\'animazione di avvio
"Disabilita le seguenti interazioni quando la descrizione del video viene espansa:
• Tocca per scorrere.
• Tocca e tieni premuto per selezionare il testo."
Disabilita l\'interazione della descrizione video
- Codec VP9 è abilitato.
- "Il codec VP9 è disabilitato.
+ Il codec video VP9 è attivato.
+ "Il codec video VP9 è disattivato.
• La risoluzione massima è 1080p.
-• La riproduzione video utilizzerà più dati internet di VP9.
-• Per ottenere la riproduzione HDR, il video HDR utilizza ancora il codec VP9."
- Disabilita codec VP9
+• La riproduzione utilizzerà più dati internet di VP9.
+• VP9 è usato per la riproduzione HDR."
+ Disattiva il codec video VP9
La barra di avanzamento Cairo e disabilitata.
"La barra di avanzamento Cairo è abilitata.
@@ -245,9 +243,9 @@ Effetto collaterale: il tema Cairo viene applicato anche ai punti di notifica."<
Il colore personalizzato della barra di avanzamento è disattivato.
Il colore personalizzato della barra di avanzamento è attivato.
Attiva il colore personalizzato della barra di avanzamento
- Il registro del debug non include il buffer
- Il registro del debug include il buffer
- Attiva il registro del debug col buffer
+ Il registro del debug non include il buffer.
+ Il registro del debug include il buffer.
+ Attiva il registro del debug con il buffer
Il registro del debug è disattivato.
Il registro del debug è attivato.
Attiva il registro del debug
@@ -263,56 +261,65 @@ Effetto collaterale: il tema Cairo viene applicato anche ai punti di notifica."<
Lo spazio tra i pulsanti di navigazione è normale.
Lo spazio tra i pulsanti di navigazione è ristretto.
Attiva i pulsanti di navigazione compatti
- Segui la regola predefinita di reindirizzamento
- Bypassa i reindirizzamenti degli URL
+ Seguendo la regola predefinita di reindirizzamento.
+ Bypassando i reindirizzamenti degli URL.
Attiva l\'apertura diretta dei link
- Abilita il codec OPUS se la risposta del riproduttore include il codec OPUS.
- Abilita codec OPUS
- Non salvare e ripristinare la luminosità quando si esce o si entra a schermo intero.
- Salva e ripristina la luminosità quando esci o entri a schermo intero.
- Abilita salvataggio e ripristino luminosità
+ Attiva il codec audio Opus se la risposta del riproduttore lo include.
+ Attiva il codec audio Opus
+ Non salva e ripristina la luminosità uscendo ed entrando a schermo intero.
+ Salva e ripristina la luminosità uscendo ed entrando a schermo intero.
+ Attiva il salvataggio e il ripristino della luminosità
Il tocco della barra di avanzamento è disattivato.
Il tocco della barra di avanzamento è attivato.
Attiva il tocco della barra di avanzamento
+ "Questo ripristinerà le miniature ai livestreams che non hanno miniature nella barra di avanzamento.
+
+utilizzo dei dati Internet può essere più alto, e le miniature della barra di avanzamento avranno un leggero ritardo prima di mostrare.
+
+Questa funzione funziona meglio con una connessione internet molto veloce."
+ Le miniature della barra di avanzamento sono di media qualità.
+ Le miniature della barra di avanzamento sono di alta qualità.
+ Abilita miniature di alta qualità
Timestamp è disabilitato.
"Timestamp è abilitato.
Problema noto: Poiché questa è una caratteristica nella fase di sviluppo di Google, il layout potrebbe essere rotto."
Abilita timestamp
- Il trascinamento per modificare la luminosità è disattivato.
- Il trascinamento per modificare la luminosità è attivato.
- Attiva il trascinamento per modificare la luminosità
+ Il gesto della luminosità è disattivato.
+ Il gesto della luminosità è attivato.
+ Attiva il gesto della luminosità
La vibrazione tattile è disattivata.
La vibrazione tattile è attivata.
Attiva la vibrazione tattile
- Il valore più basso del gesto luminosità non attiva la luminosità automatica.
- Il valore più basso del gesto luminosità attiva la luminosità automatica.
- Abilita gesto di luminosità automatica
- Tocca per attivare i gesti di trascinamento
- Tocca e tieni premuto per attivare i gesti di trascinamento
+ Il valore più basso del gesto della luminosità non attiva la luminosità automatica.
+ Il valore più basso del gesto della luminosità attiva la luminosità automatica.
+ Attiva il gesto della luminosità automatica
+ Il gesto Premi-per-Trascinare è disattivato.
+ Il gesto Premi-per-Trascinare è attivato.
Attiva il gesto Premi-per-Trascinare
- Scorrendo verso l\'alto / verso il basso non verrà riprodotto il video successivo / precedente.
- Scorrendo verso l\'alto / verso il basso si riproduce il video successivo / precedente.
- Abilita lo scorrimento per cambiare video a schermo intero
- Il trascinamento per modificare il volume è disattivato.
- Il trascinamento per modificare il volume è attivato.
- Attiva il trascinamento per modificare il volume
+ Trascinando verso l\'alto non verrà riprodotto il video successivo e trascinando verso il basso non verrà riprodotto il video precedente.
+ Trascinando verso l\'alto verrà riprodotto il video successivo e trascinando verso il basso verrà riprodotto il video precedente.
+ Attiva il gesto per cambiare video
+ Il gesto del volume è disattivato.
+ Il gesto del volume è attivato.
+ Attiva il gesto del volume
La barra di navigazione traslucida è disattivata.
La barra di navigazione traslucida è attivata.
Attiva la barra di navigazione traslucida
- L\'inserimento a schermo intero quando scorri giù sotto il lettore video è disabilitato.
- L\'inserimento a schermo intero quando scorri giù sotto il lettore video è abilitato.
- Abilita i gesti del pannello di controllo
- "L'attivazione di questa funzione disattiva il pulsante Impostazioni nella scheda Tu.
+ Il gesto per passare a schermo intero trascinando verso il basso sotto il riproduttore è disattivato.
+ Il gesto per passare a schermo intero trascinando verso il basso sotto il riproduttore è attivato.
+ Attiva i gesti del pannello di controllo
+ "L'attivazione di questa impostazione disattiverà il pulsante Impostazioni nella scheda Tu.
-In questo caso, utilizzare il seguente percorso per accedere alle impostazioni:
-Scheda Tu → Visualizza canale → Menù → Impostazioni"
+In questo caso, utilizzare i seguenti percorsi per accedere alle impostazioni:
+• Scheda Tu → Visualizza canale → 3 punti verticali → Impostazioni
+• Scheda Home → Pulsante Esplora → Tendenze → 3 punti verticali → Impostazioni"
Attiva la barra di ricerca estesa nella scheda Tu
La barra di ricerca estesa è disattivata.
La barra di ricerca estesa è attivata.
Attiva la barra di ricerca estesa
- La barra di ricerca larga con intestazione è disattivata.
- La barra di ricerca larga con intestazione è attivata.
+ La barra di ricerca estesa con l\'intestazione è disattivata.
+ La barra di ricerca estesa con l\'intestazione è attivata.
Attiva la barra di ricerca estesa con l\'intestazione
Descrizione
"Inserisci il titolo del pannello descrizione video nella tua lingua.
@@ -322,50 +329,50 @@ Scheda Tu → Visualizza canale → Menù → Impostazioni"
Le descrizioni video vengono espanse automaticamente.
Espandi descrizioni video
Desideri procedere?
- Ripristina ai valori predefiniti.
+ Ripristinato ai valori predefiniti
Riavvia per caricare l\'interfaccia normalmente
- "C'è un bug sul lato server di YouTube che fa sì che il testo del numero rotante come mi piace, le viste e le date di caricamento siano nascosti per alcuni utenti.
+ "C'è un bug sul lato server di YouTube che fa sì che il numero di mi piace e non mi piace, le visualizzazioni e le date di caricamento siano nascosti per alcuni utenti.
-Una soluzione temporanea per questo problema è quello di camuffare la versione app a 19.13.37.
+Una soluzione temporanea è quella di camuffare la versione dell'app a 19.13.37.
-Vuoi camuffare la versione dell'app prima di riavviare l'app?"
+Vuoi camuffare la versione prima di riavviare l'app?"
Aggiorna e riavvia
- Impossibile esportare le impostazioni
+ Esportazione delle impostazioni non riuscita
Impostazioni esportate con successo
- Esporta le impostazioni in un file
+ Esporta le impostazioni in un file.
Esporta le impostazioni
Importa
Copia
- Esporta/Importa le impostazioni come testo
- Esporta/Importa come testo
- Impossibile importare le impostazioni
+ Esporta o importa le impostazioni come testo.
+ Esporta o importa come testo.
+ Importazione delle impostazioni non riuscita
Impostazioni ripristinati al predefinito
Impostazioni importate con successo
- Importa le impostazioni dal file esportato
+ Importa le impostazioni dal file esportato.
Importa le impostazioni
Ripristina
- Cerca %s
+ Cerca su %s
ReVanced Extended
- Scaricatore esterno
+ Downloader esterno
Non installato
"%1$s non è installato.
Si prega di scaricare %2$s dal sito web."
Attenzione
%s non è installato. Per favore installalo.
- Nome del pacchetto dello scaricatore esterno installato, come YTDLnis.
- Nome del pacchetto dello scaricatore di playlist
- Nome del pacchetto dello scaricatore esterno installato, ad esempio NewPipe o YTDLnis.
- Nome pacchetto scaricatore video
+ Il nome del pacchetto dell\'app di download esterna installata, ad esempio YTDLnis.
+ Nome del pacchetto del downloader esterno delle playlist
+ Il nome del pacchetto dell\'app di download esterna installata, ad esempio NewPipe o YTDLnis.
+ Nome del pacchetto del downloader esterno dei video
"Il video passerà automaticamente a schermo intero nelle seguenti situazioni:
-• Toccando su un timestamp nei commenti
-• Appena il video inizia"
+• Toccando su un timestamp nei commenti.
+• Appena il video inizia."
Forza lo schermo intero
Visualizza la finestra di ottimizzazione per GMSCore a ogni avvio dell\'applicazione.
Mostra la finestra di ottimizzazione per GMSCore
- Elenco di nomi dei menù degli account da filtrare, separati da nuove righe.
+ L\'elenco dei nomi dei menù degli account da filtrare, separati da nuove righe.
Modifica il filtro dei menù dell\'account
- "Nascondi gli elementi del menù dell'account e della scheda Tu.
-Alcuni componenti potrebbero non essere nascosti."
+ "Nascondi i componenti dei menù dell'account e della scheda Tu.
+Nota: alcuni componenti potrebbero non essere nascosti."
Nascondi i menù dell\'account
Le schede degli album sono visibili.
Le schede degli album sono nascoste.
@@ -379,14 +386,14 @@ Alcuni componenti potrebbero non essere nascosti."
Il pulsante Esplora Negozio è visibile.
Il pulsante Esplora Negozio è nascosto.
Nascondi il pulsante Esplora Negozio
- "Nasconde le seguenti sezioni:
+ "Nasconde i seguenti scaffali:
• Ultime notizie
• Continua a guardare
-• Esplora altri canali
+• Guarda di nuovo
• Ascolta di nuovo
-• Shopping
-• Guarda di nuovo"
- Nascondi sezione a carosello
+• Esplora altri canali
+• Shopping"
+ Nascondi lo scaffale a carosello
È visibile nelle schede.
È nascosta nelle schede.
Nascondi nelle schede
@@ -396,38 +403,38 @@ Alcuni componenti potrebbero non essere nascosti."
È visibile nei risultati di ricerca.
È nascosta nei risultati di ricerca.
Nascondi nei risultati di ricerca
- Le linee guida del canale sono visibili.
- Le linee guida del canale sono nascoste.
- Nascondi le linee guida del canale
- La sezione degli abbonati è visibile.
- La sezione degli abbonati è nascosta.
- Nascondi la sezione degli abbonati
- I link in cima al profilo del canale sono visibili.
- I link in cima al profilo del canale sono nascosti.
- Nascondi i link in cima al profilo del canale
+ Le linee guida dei canali sono visibili.
+ Le linee guida dei canali sono nascoste.
+ Nascondi le linee guida dei canali
+ Lo scaffale degli abbonati è visibile.
+ Lo scaffale degli abbonati è nascosto.
+ Nascondi lo scaffale degli abbonati
+ I link in cima al profilo dei canali sono visibili.
+ I link in cima al profilo dei canali sono nascosti.
+ Nascondi i link in cima al profilo dei canali
"Shorts
Playlist
Negozio"
- Elenco dei nomi delle schede dei canali da filtrare, separati da nuove righe.
- Filtro sulle schede del canale
- Il filtro delle schede del canale è disattivato.
- Il filtro delle schede del canale è attivato.
- Attiva il filtro delle schede del canale
+ L\'elenco dei nomi delle schede dei canali da filtrare, separati da nuove righe.
+ Filtro delle schede dei canali
+ Il filtro delle schede dei canali è disattivato.
+ Il filtro delle schede dei canali è attivato.
+ Attiva il filtro delle schede dei canali
Il watermark nei video è visibile.
Il watermark nei video è nascosto.
Nascondi il watermark nei video
Le sezioni dei capitoli sono mostrate.
Le sezioni dei capitoli sono nascoste.
Nascondi le sezioni capitoli
- La sezione dei chip è visibile.
- La sezione dei chip è nascosta.
- Nascondi la sezione dei chip
+ Lo scaffale dei chip è visibile.
+ Lo scaffale dei chip è nascosto.
+ Nascondi lo scaffale dei chip
Il pulsante Clip è visibile.
Il pulsante Clip è nascosto.
Nascondi il pulsante Clip
- Il pulsante Crea shorts è visibile.
+ Il pulsante Crea Shorts è visibile.
Il pulsante Crea Shorts è nascosto.
- Nascondi il pulsante Crea Short
+ Nascondi il pulsante Crea Shorts
I collegamenti di ricerca evidenziati sono mostrati.
I collegamenti di ricerca evidenziati sono nascosti.
Nascondi collegamenti di ricerca evidenziati
@@ -446,9 +453,9 @@ Negozio"
La sezione Commenti è visibile.
La sezione Commenti è nascosta.
Nascondi la sezione Commenti
- Sono visibili nei canali.
- Sono nascosti nei canali.
- Nascondi nei canali
+ Sono visibili nel canale.
+ Sono nascosti nel canale.
+ Nascondi nel canale
Sono visibili nella scheda Home e nei video correlati.
Sono nascosti nella scheda Home e nei video correlati.
Nascondi nella scheda Home e nei video correlati
@@ -470,35 +477,38 @@ Negozio"
Le schede finali sono visibili.
Le schede finali sono nascoste.
Nascondi le schede finali
- Il chip espandibile è visibile.
- Il chip espandibile è nascosto.
+ Il chip espandibile sotto i video è visibile.
+ Il chip espandibile sotto i video è nascosto.
Nascondi il chip espandibile sotto i video
- Gli scaffali espandibili sono mostrati.
+ Gli scaffali espandibili sono visibili.
Gli scaffali espandibili sono nascosti.
- Nascondi scaffali espandibili
+ Nascondi gli scaffali espandibili
Il pulsante Sottotitoli è visibile.
Il pulsante Sottotitoli è nascosto.
Nascondi il pulsante Sottotitoli
- Elenco dei nomi dei menù a comparsa da filtrare, separati da nuove righe.
+ L\'elenco dei nomi dei menù a comparsa da filtrare, separati da nuove righe.
Filtro dei menù a comparsa
Il filtro dei menù a comparsa è disattivato.
Il filtro dei menù a comparsa è attivato.
Attiva il filtro dei menù a comparsa
- La barra di ricerca del feed è visibile.
- La barra di ricerca nel feed è nascosta.
- Nascondi la barra di ricerca nel feed
- I sondaggi nel feed sono visibili.
- I sondaggi nel feed sono nascosti.
- Nascondi i sondaggi nel feed
+ La barra di ricerca è visibile.
+ La barra di ricerca è nascosta.
+ Nascondi la barra di ricerca
+ I sondaggi sono visibili.
+ I sondaggi sono nascosti.
+ Nascondi i sondaggi
La sovrapposizione della pellicola è visibile.
La sovrapposizione della pellicola è nascosta.
Nascondi la sovrapposizione della pellicola
- Il pulsante fluttuante del microfono è visibile.
- Il pulsante fluttuante del microfono è nascosto.
- Nascondi il pulsante fluttuante del microfono
- La sezione Per Te è visibile.
- La sezione Per Te è nascosta.
- Nascondi la sezione Per Te
+ Il pulsante fluttuante è visibile.
+ Il pulsante fluttuante è nascosto.
+ Nascondi il pulsante fluttuante
+ Il pulsante Microfono fluttuante è visibile.
+ Il pulsante Microfono fluttuante è nascosto.
+ Nascondi il pulsante Microfono fluttuante
+ Lo scaffale Per Te è visibile.
+ Lo scaffale Per Te è nascosto.
+ Nascondi lo scaffale Per Te
Gli annunci a schermo intero sono visibili.
Gli annunci a schermo intero sono nascosti.
Nascondi gli annunci a schermo intero
@@ -522,9 +532,9 @@ Limitazione: Le immagini dei post della community a schermo intero potrebbero es
Il pulsante di ricerca immagine è visibile.
Il pulsante di ricerca immagine è nascosto.
Nascondi il pulsante di ricerca immagine
- Le sezioni delle immagini sono visibili.
- Le sezioni delle immagini sono nascoste.
- Nascondi le sezioni delle immagini
+ Lo scaffale delle immagini è visibile.
+ Lo scaffale delle immagini è nascosto.
+ Nascondi lo scaffale delle immagini
La sezione Schede Informative è visibile
La sezione Schede Informative è nascosta
Nascondi la sezione Schede Informative
@@ -540,35 +550,38 @@ Limitazione: Le immagini dei post della community a schermo intero potrebbero es
La sezione dei concetti chiave è mostrata.
La sezione dei concetti chiave è nascosta.
Nascondi sezione concetti chiave
- "Home / Iscrizioni / I risultati della ricerca vengono filtrati per nascondere i contenuti che soddisfano le frasi delle parole chiave.
+ "Le schede Home e Iscrizioni e i risultati di ricerca sono filtrati per nascondere i video che soddisfano le parole chiave o frasi.
-Limitazioni:
-- Alcuni Short potrebbero non essere nascosti.
-- Alcuni componenti della interfaccia utente potrebbero non essere nascosti.
-- La ricerca di una parola chiave potrebbe non mostrare alcun risultato."
- Informazioni sul filtro per parole chiave
- Circondando una parola/frase chiave con doppi apici si impedirà corrispondenze parziali di titoli di video e nomi di canali.<br><br>Ad esempio,<br><b>\"ia\"</b> nasconderà il video: <b>Come funziona la IA?</b><br>ma non nasconderà: <b>Cosa significa imparzialità?</b>
- Abbina parole intere
+Note:
+• Gli Shorts non possono essere nascosti in base al nome del canale.
+• Alcuni componenti della interfaccia potrebbero non essere nascosti.
+• La ricerca di una parola chiave potrebbe non mostrare alcun risultato."
+ Informazioni sul filtro in base a parole chiave
+ Racchiudendo una parola chiave o frase tra virgolette doppie si impediranno corrispondenze parziali dei titoli dei video e dei nomi dei canali.<br><br>Ad esempio:<br><b>\"ia\"</b> nasconderà il video <b>\"Come funziona la IA?\"</b><br>Ma non nasconderà il video <b>\"Cosa significa imparzialità?\"</b>
+ Combacia parole intere
I commenti non sono filtrati.
I commenti sono filtrati.
- Nascondi commenti per parole chiave
+ Nascondi i commenti in base a parole chiave
I video della scheda Home non sono filtrati.
I video della scheda Home sono filtrati.
- Nascondi i video della scheda Home per parole chiave
- "Parole chiave e frasi da nascondere, separate da nuove righe.
-Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo (es: iPhone, TikTok, LeBlanc)."
+ Nascondi i video della scheda Home in base a parole chiave
+ "L'elenco delle parole chiave e frasi da nascondere, separate da nuove righe.
+
+Le parole chiave possono essere nomi di canali o qualsiasi testo mostrato nei titoli dei video.
+
+Le parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo (ad esempio: iPhone, TikTok, LeBlanc)."
Parole chiave da nascondere
- I risultati di ricerca non sono filtrati per parole chiave.
- I risultati di ricerca sono filtrati per parole chiave.
- Nascondi i risultati di ricerca per parole chiave
- I video della scheda iscrizioni non sono filtrati.
- I video della scheda iscrizioni sono filtrati.
- Nascondi i video della scheda iscrizioni per parole chiave
- La parola chiave nasconderà tutti i video: %s.
- Parola chiave non valida. Non è possibile usare: \'%s\' come filtro
- Aggiungi le virgolette per usare parola chiave: %s.
- La parola chiave ha dichiarazioni in conflitto: %s.
- La parola chiave è troppo corta e richiede le virgolette: %s.
+ I risultati di ricerca non sono filtrati.
+ I risultati di ricerca sono filtrati.
+ Nascondi i risultati di ricerca in base a parole chiave
+ I video della scheda Iscrizioni non sono filtrati.
+ I video della scheda Iscrizioni sono filtrati.
+ Nascondi i video della scheda Iscrizioni in base a parole chiave
+ La parola chiave nasconderà tutti i video: %s
+ Non è possibile usare la parola chiave: %s
+ Aggiungi le virgolette per usare la parola chiave: %s
+ La parola chiave ha dichiarazioni in conflitto: %s
+ La parola chiave è troppo corta e richiede le virgolette: %s
I post più recenti sono visibili.
I post più recenti sono nascosti.
Nascondi i post più recenti
@@ -578,27 +591,27 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
I pulsanti Mi Piace e Non Mi Piace sono visibili.
I pulsanti Mi Piace e Non Mi Piace sono nascosti.
Nascondi i pulsanti Mi Piace e Non Mi Piace
- I messaggi della chat dal vivo sono visibili.\n\nQuesta funzione si applica anche agli Short dal vivo.
- I messaggi della chat dal vivo sono nascosti.\n\nQuesta funzione si applica anche agli Short dal vivo.
+ I messaggi della chat dal vivo sono visibili.\n\nQuesta impostazione si applica anche agli Shorts dal vivo.
+ I messaggi della chat dal vivo sono nascosti.\n\nQuesta impostazione si applica anche agli Shorts dal vivo.
Nascondi i messaggi della chat dal vivo
- Il pulsante Replay della Chat dal vivo è mostrato.\n\nApparirà a schermo intero quando si chiude la chat dal vivo.
+ Il pulsante Replay della Chat dal vivo è visibile.\n\nApparirà a schermo intero quando si chiude la chat dal vivo.
Il pulsante Replay della Chat dal vivo è nascosto.\n\nApparirà a schermo intero quando si chiude la chat dal vivo.
Nascondi il pulsante replay della chat dal vivo
- Nascondi video con meno di 1.000 visualizzazioni dalla scheda Home che sono stati caricati dai canali a cui non sei iscritto.
- Nascondi video con poche visualizzazioni
+ Nascondi i video con meno di 1.000 visualizzazioni dalla scheda Home che sono stati caricati dai canali a cui non sei iscritto.
+ Nascondi i video con poche visualizzazioni
I pannelli medici sono visibili.
I pannelli medici sono nascosti.
Nascondi i pannelli medici
Le sezioni del merchandising sono visibili.
Le sezioni del merchandising sono nascoste.
Nascondi le sezioni del merchandising
- Le playlist mix sono visibili.
- Le playlist mix sono nascoste.
- Nascondi le playlist mix
+ Le playlist miste sono visibili.
+ Le playlist miste sono nascoste.
+ Nascondi le playlist miste
La sezione dei film è visibile.
La sezione dei film è nascosta.
Nascondi la sezione dei film
- La barra di navigazione è mostrata.
+ La barra di navigazione è visibile.
La barra di navigazione è nascosta.
Nascondi la barra di navigazione
Il pulsante Crea è visibile.
@@ -607,15 +620,15 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
Il pulsante Home è visibile.
Il pulsante Home è nascosto.
Nascondi il pulsante Home
- Le etichette della barra di navigazione sono visibili.
- Le etichette della barra di navigazione sono nascoste.
- Nascondi le etichette della barra di navigazione
- Il pulsante Libreria è visibile.
- Il pulsante Libreria è nascosto.
- Nascondi il pulsante Libreria
- Il pulsante notifiche è visibile.
- Il pulsante notifiche è nascosto.
- Nascondi il pulsante notifiche
+ Le etichette sono visibili.
+ Le etichette sono nascoste.
+ Nascondi le etichette
+ Il pulsante Tu (Raccolta) è visibile.
+ Il pulsante Tu (Raccolta) è nascosto.
+ Nascondi il pulsante Tu (Raccolta)
+ Il pulsante Notifiche è visibile.
+ Il pulsante Notifiche è nascosto.
+ Nascondi il pulsante Notifiche
Il pulsante Shorts è visibile.
Il pulsante Shorts è nascosto.
Nascondi il pulsante Shorts
@@ -628,19 +641,19 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
L\'etichetta della promozione a pagamento è visibile.
L\'etichetta della promozione a pagamento è nascosta.
Nascondi l\'etichetta della promozione a pagamento
- I giochi interattivi sono visibili.
- I giochi interattivi sono nascosti.
- Nascondi Giochi Interattivi
+ Lo scaffale Giochi Interattivi è visibile.
+ Lo scaffale Giochi Interattivi è nascosto.
+ Nascondi lo scaffale Giochi Interattivi
Il pulsante Riproduzione Automatica è visibile.
Il pulsante Riproduzione Automatica è nascosto.
Nascondi il pulsante Riproduzione Automatica
- Il pulsante Sottotitoli è mostrato.
+ Il pulsante Sottotitoli è visibile.
Il pulsante Sottotitoli è nascosto.
Nascondi il pulsante Sottotitoli
- Il pulsante trasmetti è mostrato.
- Il pulsante trasmetti è nascosto.
- Nascondi il pulsante trasmetti
- Il pulsante Comprimi è mostrato.
+ Il pulsante Trasmetti è visibile.
+ Il pulsante Trasmetti è nascosto.
+ Nascondi il pulsante Trasmetti
+ Il pulsante Comprimi è visibile.
Il pulsante Comprimi è nascosto.
Nascondi il pulsante Comprimi
Il menù Modalità Ambient è visibile.
@@ -655,9 +668,9 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
Il menù Sottotitoli è visibile.
Il menù Sottotitoli è nascosto.
Nascondi il menù Sottotitoli
- Il menu Premium 1080p è mostrato.
- Il menu Premium 1080p è nascosto.
- Nascondi il menu Premium 1080p
+ Il menù 1080p Premium è visibile.
+ Il menù 1080p Premium è nascosto.
+ Nascondi il menù 1080p Premium
Il menù Guida e Feedback è visibile.
Il menù Guida e Feedback è nascosto.
Nascondi il menù Guida e Feedback
@@ -703,13 +716,16 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
Il menù Guarda in VR è visibile.
Il menù Guarda in VR è nascosto.
Nascondi il menù Guarda in VR
- Il pulsante schermo intero è mostrato.
- Il pulsante schermo intero è nascosto.
- Nascondi il pulsante schermo intero
- I pulsanti sono mostrati.
- I pulsanti sono nascosti.
- Nascondi il precedente & prossimo pulsante
- Il pulsante YouTube Music è mostrato.
+ Il pulsante Schermo Intero è visibile.
+ Il pulsante Schermo Intero è nascosto.
+ Nascondi il pulsante Schermo Intero
+ I pulsanti Precedente e Successivo sono visibili.
+ I pulsanti Precedente e Successivo sono nascosti.
+ Nascondi i pulsanti Precedente e Successivo
+ Lo scaffale dei prodotti è visibile.
+ Lo scaffale dei prodotti è nascosto.
+ Nascondi lo scaffale dei prodotti
+ Il pulsante YouTube Music è visibile.
Il pulsante YouTube Music è nascosto.
Nascondi il pulsante YouTube Music
Il pulsante Salva è visibile.
@@ -721,56 +737,55 @@ Parole con lettere maiuscole all'interno devono essere inserite con il maiuscolo
Il commento di anteprima è visibile.
Il commento di anteprima è nascosto.
Nascondi il commento di anteprima
- Questo cambia la dimensione della sezione Commenti, quindi è impossibile aprire \"Riproduci Chat dal Vivo\".
- Questo non cambia la dimensione della sezione Commenti, quindi è possibile aprire \"Riproduci Chat dal Vivo\".
+ Questo cambia la dimensione della sezione Commenti, rendendo impossibile aprire il replay del live chat nella sezione commenti.
+ Questo non cambia la dimensione della sezione Commenti, rendendo possibile aprire il replay del live chat nella sezione commenti.
Nascondi il tipo di commento di anteprima
Il banner di avviso promozionale è visibile.
Il banner di avviso promozionale è nascosto.
- Nascondi banner di avviso promozionale
- Il pulsante Commenti è mostrato.
+ Nascondi il banner di avviso promozionale
+ Il pulsante Commenti è visibile.
Il pulsante Commenti è nascosto.
Nascondi il pulsante Commenti
- Il pulsante Non Mi Piace è mostrato.
- Il pulsante non mi piace è nascosto.
- Nascondi il pulsante non mi piace
- Il pulsante mi piace è mostrato.
- Il pulsante mi piace è nascosto.
+ Il pulsante Non Mi Piace è visibile.
+ Il pulsante Non Mi Piace è nascosto.
+ Nascondi il pulsante Non Mi Piace
+ Il pulsante Mi Piace è visibile.
+ Il pulsante Mi Piace è nascosto.
Nascondi il pulsante Mi Piace
- Il pulsante Chat dal Vivo è mostrato.
+ Il pulsante Chat dal Vivo è visibile.
Il pulsante Chat dal Vivo è nascosto.
Nascondi il pulsante Chat dal Vivo
- Il pulsante Altro è mostrato.
+ Il pulsante Altro è visibile.
Il pulsante Altro è nascosto.
Nascondi il pulsante Altro
- Il pulsante Apri Mix Playlist è mostrato.
+ Il pulsante Apri Mix Playlist è visibile.
Il pulsante Apri Mix Playlist è nascosto.
Nascondi il pulsante Apri Mix Playlist
- Il pulsante Apri Playlist è mostrato.
+ Il pulsante Apri Playlist è visibile.
Il pulsante Apri Playlist è nascosto.
Nascondi il pulsante Apri Playlist
- Il pulsante Salva in una Playlist è mostrato.
- Il pulsante Salva in una Playlist è nascosto.
- Nascondi il pulsante Salva in una Playlist
- Il pulsante Condividi è mostrato.
+ Il pulsante Salva è visibile.
+ Il pulsante Salva è nascosto.
+ Nascondi il pulsante Salva
+ Il pulsante Condividi è visibile.
Il pulsante Condividi è nascosto.
Nascondi il pulsante Condividi
Il contenitore delle azioni rapide è visibile.
Il contenitore delle azioni rapide è nascosto.
Nascondi il contenitore delle azioni rapide
- "Nasconde i seguenti video consigliati:
-
-• Video con tag 'Solo per membri'.
-• Video con frasi come 'Persone guardano anche' sotto."
- Nascondi video consigliati
+ "Nasconde i seguenti video consigliati con:
+• Tag \"Riservato agli abbonati\".
+• Frasi come \"Le persone hanno guardato anche questo video\" sotto."
+ Nascondi i video consigliati
La sezione \'Più video\' nel contenitore delle azioni rapide e la sovrapposizione video correlato sono mostrate.
La sezione \'Più video\' nel contenitore delle azioni rapide e la sovrapposizione video correlato sono nascoste.
Nascondi sovrapposizione video correlato
- I video correlati sono mostrati.
+ I video correlati sono visibili.
I video correlati sono nascosti.
- Nascondi video correlati
- "Questa impostazione limita il numero massimo di layout che possono essere caricati sulla schermata del player.
+ Nascondi i video correlati
+ "Questa impostazione limita il numero massimo di interfacce che possono essere caricate sulla schermata del riproduttore.
-Se il layout della schermata del player cambia a causa di modifiche lato server, i layout non intenzionali possono essere nascosti sullo schermo del giocatore."
+Se l'interfaccia della schermata del riproduttore cambia a causa di modifiche lato server, potrebbero esserci delle interfacce indesiderate nascosti nella schermata del riproduttore."
Il pulsante Remix è visibile.
Il pulsante Remix è nascosto.
Nascondi il pulsante Remix
@@ -782,7 +797,7 @@ Se il layout della schermata del player cambia a causa di modifiche lato server,
Nascondi pulsante Ricompense
I thumbnails nella cronologia delle ricerche sono visibili.
I thumbnails nella cronologia delle ricerche sono nascosti.
- Nascondi il anteprime nella cronologia delle ricerche
+ Nascondi i thumbnails nella cronologia delle ricerche
Il messaggio di scorrimento è visibile.
Il messaggio di scorrimento è nascosto.
Nascondi il messaggio di scorrimento
@@ -794,75 +809,75 @@ Se il layout della schermata del player cambia a causa di modifiche lato server,
Nascondi le etichette dei capitoli della barra di avanzamento
La barra di avanzamento è visibile.
La barra di avanzamento è nascosta.
- La barra di avanzamento nel thumbnail dei video è visibile.
- La barra di avanzamento nel thumbnail dei video è nascosta.
- Nascondi la barra di avanzamento nel thumbnail dei video
+ La barra di avanzamento nei thumbnails dei video è visibile.
+ La barra di avanzamento nei thumbnails dei video è nascosta.
+ Nascondi la barra di avanzamento nei thumbnails dei video
Nascondi la barra di avanzamento
- Le schede auto promozionali sono visibili.
- Le schede auto promozionali sono nascoste.
- Nascondi le schede auto promozionali
- Il menu Informazioni è mostrato.
- Il menu Informazioni è nascosto.
- Nascondi il menu Informazioni
- Il menu Accessibilità è mostrato.
- Il menu di Accessibilità è nascosto.
- Nascondi il menu Accessibilità
- Il menu Account è mostrato.
- Il menu Account è nascosto.
- Nascondi menu Account
- Il menu Riproduzione automatica è mostrato.
- Il menu Riproduzione automatica è nascosto.
- Nascondi il menu Riproduzione automatica
- Il menu di Fatturazione e pagamenti è mostrato.
- Il menu di Fatturazione e pagamenti è nascosto.
- Nascondi il menu Fatturazione e pagamenti
- Il menu Sottotitoli è mostrato.
- Il menu Sottotitoli è nascosto.
- Nascondi il menu Sottotitoli
- Il menu delle App collegate è mostrato.
- Il menu delle App collegate è nascosto.
- Nascondi il menu delle App collegate
- Il menu di Salvataggio dati è mostrato.
- Il menu di Salvataggio dati è nascosto.
- Nascondi il menu di Salvataggio dati
- Il menu Generale è mostrato.
- Menu Generale è nascosto.
- Nascondi menu Generale
- Il menu Gestisci tutta la cronologia è mostrato.
- Il menu Gestisci tutta la cronologia è nascosto.
- Nascondi il menu Gestisci tutta la cronologia
- Il menu Chat Live è mostrato.
- Il menu Chat live è nascosto.
- Nascondi il menu Chat live
- Il menu delle Notifiche è mostrato.
- Il menu delle Notifiche è nascosto.
- Nascondi il menu Notifiche
- Il menu Sfondo è mostrato.
- Il menu Sfondo è nascosto.
- Nascondi il menu Sfondo
- Il menu Guarda nella TV è mostrato.
- Il menu Guarda nella TV è nascosto.
- Nascondi il menu Guarda nella TV
- Il menu Centro Famiglia è mostrato.
- Il menu Centro Famiglia è nascosto.
- Nascondi menu Centro Famiglia
- Il menu Prova le nuove funzionalità sperimentali è mostrato.
- Il menu Prova le nuove funzionalità sperimentali è nascosto.
- Nascondi il menu Prova le nuove funzionalità sperimentali
- Il menu Privacy è mostrato.
- Il menu Privacy è nascosto.
- Nascondi il menu Privacy
- Il menu Acquisti e abbonamenti è mostrato.
- Il menu Acquisti e abbonamenti è nascosto.
- Nascondi il menu Acquisti e abbonamenti
+ Le schede autopromozionali sono visibili.
+ Le schede autopromozionali sono nascoste.
+ Nascondi le schede autopromozionali
+ Il menù Informazioni è visibile.
+ Il menù Informazioni è nascosto.
+ Nascondi il menù Informazioni
+ Il menù Accessibilità è visibile.
+ Il menù Accessibilità è nascosto.
+ Nascondi il menù Accessibilità
+ Il menù Account è visibile.
+ Il menù Account è nascosto.
+ Nascondi il menù Account
+ Il menù Riproduzione Automatica è visibile.
+ Il menù Riproduzione Automatica è nascosto.
+ Nascondi il menù Riproduzione Automatica
+ Il menù Fatturazione e Pagamenti è visibile.
+ Il menù Fatturazione e Pagamenti è nascosto.
+ Nascondi il menù Fatturazione e Pagamenti
+ Il menù Sottotitoli è visibile.
+ Il menù Sottotitoli è nascosto.
+ Nascondi il menù Sottotitoli
+ Il menù App Collegate è visibile.
+ Il menù App Collegate è nascosto.
+ Nascondi il menù App Collegate
+ Il menù Risparmio Dati è visibile.
+ Il menù Risparmio Dati è nascosto.
+ Nascondi il menù Risparmio Dati
+ Il menù Generali è visibile.
+ Il menù Generali è nascosto.
+ Nascondi il menù Generali
+ Il menù Gestisci Tutta la Cronologia è visibile.
+ Il menù Gestisci Tutta la Cronologia è nascosto.
+ Nascondi il menù Gestisci Tutta la Cronologia
+ Il menù Chat Live è visibile.
+ Il menù Chat Live è nascosto.
+ Nascondi il menù Chat Live
+ Il menù Notifiche è visibile.
+ Il menù Notifiche è nascosto.
+ Nascondi il menù Notifiche
+ Il menù Sfondo è visibile.
+ Il menù Sfondo è nascosto.
+ Nascondi il menù Sfondo
+ Il menù Guarda sulla TV è visibile.
+ Il menù Guarda sulla TV è nascosto.
+ Nascondi il menù Guarda sulla TV
+ Il menù Centro Famiglia è visibile.
+ Il menù Centro Famiglia è nascosto.
+ Nascondi il menù Centro Famiglia
+ Il menù Prova le Nuove Funzionalità Sperimentali è visibile.
+ Il menù Prova le Nuove Funzionalità Sperimentali è nascosto.
+ Nascondi il menù Prova le Nuove Funzionalità Sperimentali
+ Il menù Privacy è visibile.
+ Il menù Privacy è nascosto.
+ Nascondi il menù Privacy
+ Il menù Acquisti e Abbonamenti è visibile.
+ Il menù Acquisti e Abbonamenti è nascosto.
+ Nascondi il menù Acquisti e Abbonamenti
Nascondi elementi nel menu delle impostazioni di YouTube.
Nascondi menu impostazioni di YouTube
- Il menu delle Preferenze di qualità video è mostrato.
- Il menu delle Preferenze di qualità video è nascosto.
- Nascondi il menu Preferenze qualità video
- Il menu I tuoi dati su YouTube è mostrato.
- Il menu I tuoi dati su YouTube è nascosto.
- Nascondi il menu I tuoi dati su YouTube
+ Il menù Preferenze Relative alla Qualità Video è visibile.
+ Il menù Preferenze Relative alla Qualità Video è nascosto.
+ Nascondi il menù Preferenze Relative alla Qualità Video
+ Il menù I Tuoi Dati su YouTube è visibile.
+ Il menù I Tuoi Dati su YouTube è nascosto.
+ Nascondi il menù I Tuoi Dati su YouTube
Il pulsante Condividi è visibile.
Il pulsante Condividi è nascosto.
Nascondi il pulsante Condividi
@@ -872,134 +887,133 @@ Se il layout della schermata del player cambia a causa di modifiche lato server,
La sezione Prodotti è visibile.
La sezione Prodotti è nascosta.
Nascondi la sezione Prodotti
- La barra del canale è mostrata.
+ La barra del canale è visibile.
La barra del canale è nascosta.
- Nascondi barra del canale
- Il pulsante Commenti è mostrato.
+ Nascondi la barra del canale
+ Il pulsante Commenti è visibile.
Il pulsante Commenti è nascosto.
Nascondi il pulsante Commenti
Il pulsante dei commenti disabilitato o con l\'etichetta \"0\" sono mostrati.
Il pulsante dei commenti disabilitato o con l\'etichetta \"0\" sono nascosti.
Nascondi il pulsante dei commenti disabilitati
- Il pulsante Non Mi Piace è mostrato.
- Il pulsante non mi piace è nascosto.
- Nascondi il pulsante non mi piace
- "I pulsanti fluttuanti come 'Usa questo suono' sono mostrati nella scheda del Canale degli short."
- "I pulsanti fluttuanti come 'Usa questo suono' sono nascosti nella scheda del Canale degli short."
- Nascondi pulsante fluttuante
- L\'etichetta del collegamento del video è mostrato.
- L\'etichetta del collegamento video è nascosta.
- Nascondi l\'etichetta completa del collegamento video
- Il pulsante schermo verde è mostrato.
- Il pulsante dello schermo verde è nascosto.
- Nascondi pulsante schermo verde
- I pannelli informativi sono mostrati.
+ Il pulsante Non Mi Piace è visibile.
+ Il pulsante Non Mi Piace è nascosto.
+ Nascondi il pulsante Non Mi Piace
+ "I pulsanti fluttuanti come Usa Questa Traccia Audio sono visibili."
+ "I pulsanti fluttuanti come Usa Questa Traccia Audio sono nascosti."
+ Nascondi i pulsanti fluttuanti
+ L\'etichetta del link del video è visibile.
+ L\'etichetta del link del video è nascosta.
+ Nascondi l\'etichetta del link del video
+ Il pulsante Green Screen è visibile.
+ Il pulsante Green Screen è nascosto.
+ Nascondi il pulsante Green Screen
+ I pannelli informativi sono visibili.
I pannelli informativi sono nascosti.
Nascondi i pannelli informativi
- Il pulsante Abbonati è Mostrato.
+ Il pulsante Abbonati è visibile.
Il pulsante Abbonati è nascosto.
Nascondi il pulsante Abbonati
- Il pulsante mi piace è mostrato.
- Il pulsante mi piace è nascosto.
+ Il pulsante Mi Piace è visibile.
+ Il pulsante Mi Piace è nascosto.
Nascondi il pulsante Mi Piace
- L\'intestazione della Chat dal vivo è mostrata.\n\nIl pulsante Indietro nell\'intestazione non verrà nascosto.
- L\'intestazione della Chat dal vivo è nascosta.\n\nIl pulsante Indietro nell\'intestazione non verrà nascosto.
- Nascondi intestazione chat dal vivo
- Il pulsante posizione è mostrato.
- Il pulsante posizione è nascosto.
- Nascondi pulsante posizione
- La barra di navigazione è mostrata.
+ L\'intestazione della chat dal vivo è visibile.\n\nNota: il pulsante Indietro dell\'intestazione non verrà nascosto.
+ L\'intestazione della chat dal vivo è nascosta.\n\nNota: il pulsante Indietro dell\'intestazione non verrà nascosto.
+ Nascondi l\'intestazione della chat dal vivo
+ Il pulsante Posizione è visibile.
+ Il pulsante Posizione è nascosto.
+ Nascondi il pulsante Posizione
+ La barra di navigazione è visibile.
La barra di navigazione è nascosta.
Nascondi la barra di navigazione
- L\'etichetta della promozione a pagamento è mostrato.
+ L\'etichetta della promozione a pagamento è visibile.
L\'etichetta della promozione a pagamento è nascosta.
Nascondi l\'etichetta della promozione a pagamento
- L\'intestazione in pausa è mostrata.
+ L\'intestazione in pausa è visibile.
L\'intestazione in pausa è nascosta.
Nascondi l\'intestazione in pausa
- I pulsanti di sovrapposizione in pausa sono mostrati.
+ I pulsanti di sovrapposizione in pausa sono visibili.
I pulsanti di sovrapposizione in pausa sono nascosti.
Nascondi i pulsanti di sovrapposizione in pausa
- Lo sfondo del pulsante è mostrato.
- Lo sfondo del pulsante è nascosto.
- Nascondi lo sfondo del pulsante Riproduci & Pausa
- Il pulsante Remix è mostrato.
+ Lo sfondo dei pulsanti Riproduci e Pausa è visibile.
+ Lo sfondo dei pulsanti Riproduci e Pausa è nascosto.
+ Nascondi lo sfondo dei pulsanti Riproduci e Pausa
+ Il pulsante Remix è visibile.
Il pulsante Remix è nascosto.
Nascondi il pulsante Remix
- Il pulsante Salva musica è visibile.
- Il pulsante Salva musica è nascosto.
- Nascondi il pulsante Salva musica
- Il pulsante suggerimenti di ricerca è mostrato.
- Il pulsante suggerimenti di ricerca è nascosto.
- Nascondi il pulsante suggerimenti di ricerca
- Il pulsante condividi è mostrato.
+ Il pulsante Salva Musica è visibile.
+ Il pulsante Salva Musica è nascosto.
+ Nascondi il pulsante Salva Musica
+ Il pulsante Suggerimenti di Ricerca è visibile.
+ Il pulsante Suggerimenti di Ricerca è nascosto.
+ Nascondi il pulsante Suggerimenti di Ricerca
+ Il pulsante Condividi è visibile.
Il pulsante Condividi è nascosto.
Nascondi il pulsante Condividi
- Mostrato nel canale.
- "Nascosto nel canale.
+ Sono visibili nel canale.
+ "Sono nascosti nel canale.
-Informazione:
-• Solo gli scaffali con l'intestazione Shorts nella scheda home sono nascosti."
+Nota: solo gli scaffali con l'intestazione Shorts nella scheda Home sono nascosti."
Nascondi nel canale
- Mostrato nella cronologia delle visualizzazioni.
- Nascosto nella cronologia delle visualizzazioni.
+ Sono visibili nella cronologia delle visualizzazioni.
+ Sono nascosti nella cronologia delle visualizzazioni.
Nascondi nella cronologia delle visualizzazioni
- Mostrato Nella home feed e video correlati.
- Nascosto nella home feed e video correlati.
- Nascondi nella home feed e video correlati
- Gli Shorts dei risultati di ricerca sono visibili.
- Gli Shorts dei risultati di ricerca sono nascosti.
- Nascondi gli Shorts dei risultati di ricerca
- Gli Shorts della scheda Iscrizioni sono visibili.
- Gli Shorts della scheda Iscrizioni sono nascosti.
- Nascondi gli Shorts della scheda Iscrizioni
- "Problema noto: l'intestazione ufficiale nei risultati di ricerca sarà nascosta"
- Nascondi lo scaffale degli Shorts
- Il pulsante negozio è mostrato.
+ Sono visibili nella scheda Home e nei video correlati.
+ Sono nascosti nella scheda Home e nei video correlati.
+ Nascondi nella scheda Home e nei video correlati
+ Sono visibili nei risultati di ricerca.
+ Sono nascosti nei risultati di ricerca.
+ Nascondi nei risultati di ricerca
+ Sono visibili nella scheda Iscrizioni.
+ Sono nascosti nella scheda Iscrizioni.
+ Nascondi nella scheda Iscrizioni
+ "Nota: l'intestazione ufficiale nei risultati di ricerca sarà nascosta."
+ Nascondi gli scaffali degli Shorts
+ Il pulsante Negozio è visibile.
Il pulsante Negozio è nascosto.
Nascondi il pulsante Negozio
- Il pulsante shopping è mostrato.
- Il pulsante shopping è nascosto.
- Nascondi pulsante Shopping
- Il pulsante suono è mostrato.
- Il pulsante suono è nascosto.
- Nascondi pulsante suono
- L\'etichetta dei metadati è mostrata.
- L\'etichetta dei metadati è nascosta.
- Nascondi l\'etichetta dei metadati audio
+ Il pulsante Prodotti è visibile.
+ Il pulsante Prodotti è nascosto.
+ Nascondi il pulsante Prodotti
+ Il pulsante Suono è visibile.
+ Il pulsante Suono è nascosto.
+ Nascondi il pulsante Suono
+ L\'etichetta dei metadati dell\'audio è visibile.
+ L\'etichetta dei metadati dell\'audio è nascosta.
+ Nascondi l\'etichetta dei metadati dell\'audio
Gli adesivi sono visibili.
Gli adesivi sono nascosti.
- Nascondi adesivi
- Il pulsante d\'iscrizione è mostrato.
- Il pulsante d\'iscrizione è nascosto.
- Nascondi il pulsante d\'iscrizione
- Il pulsante Super Grazie è mostrato.
+ Nascondi gli adesivi
+ Il pulsante Iscriviti è visibile.
+ Il pulsante Iscriviti è nascosto.
+ Nascondi il pulsante Iscriviti
+ Il pulsante Super Grazie è visibile.
Il pulsante Super Grazie è nascosto.
Nascondi il pulsante Super Grazie
- Prodotti taggati sono mostrati.
- Prodotti taggati sono nascosti.
- Nascondi prodotti taggati
- La barra degli strumenti è mostrata.
+ I prodotti taggati sono visibili.
+ I prodotti taggati sono nascosti.
+ Nascondi i prodotti taggati
+ La barra degli strumenti è visibile.
La barra degli strumenti è nascosta.
Nascondi la barra degli strumenti
- Il pulsante Tendenze è mostrato.
+ Il pulsante Tendenze è visibile.
Il pulsante Tendenze è nascosto.
- Nascondi pulsante Tendenze
- Il pulsante Usa modello è mostrato.
- Il pulsante Usa modello è nascosto.
- Nascondi il pulsante Usa modello
- Usa il pulsante sonoro è mostrato.
- Usa il pulsante sonoro è nascosto.
- Nascondi Usa questo pulsante sonoro
- Il titolo è mostrato.
+ Nascondi il pulsante Tendenze
+ Il pulsante Usa Template è visibile.
+ Il pulsante Usa Template è nascosto.
+ Nascondi il pulsante Usa Template
+ Il pulsante Usa Questa Traccia è visibile.
+ Il pulsante Usa Questa Traccia è nascosto.
+ Nascondi il pulsante Usa Questa Traccia
+ Il titolo è visibile.
Il titolo è nascosto.
- Nascondi il titolo del video
- Il pulsante Mostra di più è visibile.
- Il tasto Mostra di più è nascosto.
- Nascondi il pulsante Mostra di più
- La snack bar è visibile.
- La snack bar è nascosta.
- Nascondi la snack bar
+ Nascondi il titolo
+ Il pulsante Mostra Altro è visibile.
+ Il pulsante Mostra Altro è nascosto.
+ Nascondi il pulsante Mostra Altro
+ Le notifiche snackbar sono visibili.
+ Le notifiche snackbar sono nascoste.
+ Nascondi le notifiche snackbar
Il pulsante Avvia Prova è visibile.
Il pulsante Avvia Prova è nascosto.
Nascondi il pulsante Avvia Prova
@@ -1019,14 +1033,14 @@ Note:
"Il video suggerito della schermata finale è nascosto quando la riproduzione automatica è disattivata.
La riproduzione automatica può essere modificata nelle impostazioni di YouTube:
-Impostazioni → Riproduzione automatica → Riproduci automaticamente video successivo"
+Impostazioni → Riproduzione automatica → Telefono cellulare/tablet"
Nascondi il video suggerito nella schermata finale
Il pulsante Grazie è visibile.
Il pulsante Grazie è nascosto.
Nascondi pulsante Grazie
- La sezione degli eventi è visibile.
- La sezione degli eventi è nascosta.
- Nascondi la sezione degli eventi
+ Lo scaffale degli eventi è visibile.
+ Lo scaffale degli eventi è nascosto.
+ Nascondi lo scaffale degli eventi
Il timestamp è visibile
Il timestamp è nascosto
Nascondi il timestamp
@@ -1048,45 +1062,45 @@ Impostazioni → Riproduzione automatica → Riproduci automaticamente video suc
Gli annunci video sono visibili.
Gli annunci video sono nascosti.
Nascondi gli annunci video
- "Home / iscrizione / I risultati della ricerca sono filtrati per nascondere i video con visualizzazioni inferiori o superiori a un numero specificato.
+ "Le schede Home e Iscrizioni e i risultati di ricerca sono filtrati per nascondere i video con visualizzazioni inferiori o superiori ad un numero specificato.
-Limitazioni:
-• Gli short non possono essere nascosti.
+Note:
+• Gli Shorts non possono essere nascosti.
• I video con 0 visualizzazioni non sono filtrati."
- Informazioni sul filtro del conteggio delle visualizzazioni
+ Informazioni sul filtro delle visualizzazioni
I video della scheda Home non sono filtrati.
I video della scheda Home sono filtrati.
- Nascondi video della scheda Home per visualizzazioni
+ Nascondi i video della scheda Home per visualizzazioni
I risultati di ricerca non sono filtrati.
- I risultati della ricerca sono filtrati.
- Nascondi i risultati della ricerca per visualizzazioni
- I video della scheda iscrizioni feed non sono filtrati.
- I video della scheda iscrizioni feed sono filtrati.
- Nascondi i video della scheda iscrizioni per visualizzazioni
+ I risultati di ricerca sono filtrati.
+ Nascondi i risultati di ricerca per visualizzazioni
+ I video della scheda Iscrizioni feed non sono filtrati.
+ I video della scheda Iscrizioni feed sono filtrati.
+ Nascondi i video della scheda Iscrizioni per visualizzazioni
Nascondi i video consigliati con meno di un numero specifico di visualizzazioni.\n\nProblema noto: I video con 0 visualizzazioni non vengono filtrati.
Nascondi i video consigliati per il numero di visualizzazioni
I video con più visualizzazioni di questo numero saranno nascosti.
- Maggiore delle visualizzazioni
+ Visualizzazioni superiori
I video con meno visualizzazioni di questo numero saranno nascosti.
- Meno delle visualizzazioni
- K -> 1 000\nM -> 1 000 000\nB -> 1 000 000 000\nvisualizzazioni -> visualizzazioni
- Specifica il tuo modello linguistico per il numero di visualizzazioni mostrate sotto ogni video nell\'interfaccia utente. Ogni chiave (una lettera o una parola nella tua lingua) -> valore (significato della chiave) deve essere su una nuova riga. Le chiavi vanno prima del \"->\" segno. Se cambi la lingua dell\'app o di sistema, devi reimpostare questa impostazione.\n\nEsempi:\nInglese: 10K views = K -> 1000, views -> visualizzazioni\nSpagnolo: 10 K vistas = K -> 1000, vistas -> visualizzazioni
- Visualizza chiavi
+ Visualizzazioni inferiori
+ Mln di -> 1000000\nMld -> 1000000000\nvisualizzazioni -> views
+ Specifica il tuo modello linguistico per il numero di visualizzazioni mostrate sotto ogni video nell\'interfaccia. Ogni chiave (una lettera o una parola nella tua lingua) -> valore (significato della chiave) deve essere su una nuova riga. Le chiavi vanno prima del \"->\" segno. Se cambi la lingua dell\'app o di sistema, devi reimpostare questa impostazione.\n\nEsempi:\nInglese: 10K views = K -> 1000, views -> visualizzazioni\nSpagnolo: 10 K vistas = K -> 1000, vistas -> views
+ Visualizza le chiavi
Il banner dei prodotti è visibile.
Il banner dei prodotti è nascosto.
Nascondi il banner dei prodotti
- Il pulsante di ricerca vocale è visibile.
- Il pulsante di ricerca vocale è nascosto.
- Nascondi pulsante di ricerca vocale
+ Il pulsante Microfono è visibile.
+ Il pulsante Microfono è nascosto.
+ Nascondi il pulsante Microfono
I risultati di ricerca del web sono visibili.
I risultati di ricerca del web sono nascosti.
Nascondi i risultati di ricerca del web
- I Doodle di YouTube sono mostrati.
- I Doodle di YouTube sono nascosti.
- Nascondi i Doodle Di YouTube
- "Il Doodle di YouTube si presenta un paio di giorni ogni anno.
+ Il Doodle è visibile.
+ Il Doodle è nascosto.
+ Nascondi il Doodle
+ "Gli YouTube Doodle compaiono alcuni giorni all'anno.
-Se un Doodle di YouTube è attualmente mostrato nella tua regione e questa impostazione nascondi è attiva, poi la barra dei filtri sotto la barra di ricerca sarà anche nascosta."
+Se nella tua regione è attualmente visibile un Doodle e questa impostazione è attiva, anche la barra dei filtri nei risultati di ricerca verrà nascosta."
La sovrapposizione dello zoom è visibile.
La sovrapposizione dello zoom è nascosta.
Nascondi la sovrapposizione dello zoom
@@ -1105,33 +1119,31 @@ Se un Doodle di YouTube è attualmente mostrato nella tua regione e questa impos
Vanced Chiaro
Xisr Giallo
YouTube
- Mantiene la modalità orizzontale quando lo schermo viene spento e acceso a schermo intero
-
-Problema noto: potrebbe rompere la funzione Picture-in-Picture
- Il tempo in millisecondi in cui viene forzata la modalità orizzontale
+ Mantiene la modalità orizzontale quando lo schermo viene spento e acceso a schermo intero.
+ Il tempo in millisecondi in cui viene forzata la modalità orizzontale.
Il time-out della modalità orizzontale forzata
Mantieni la modalità orizzontale
Inventario
- L\'azione a doppio tocco è disattivata.
- "L'azione a doppio tocco è attivata.
+ Il gesto Doppio Tocco è disattivato.
+ "Il gesto Doppio Tocco è attivato.
-• Toccare due volte per aumentare la dimensione del video minimizzato.
-• Toccare nuovamente due volte per tornare alle dimensioni originali."
- Attiva l\'azione a doppio tocco
- Il trascinamento e rilascio è disattivato.
- Il trascinamento e rilascio è attivato.
- Attiva il trascinamento e rilascio
+• Tocca due volte per aumentare la dimensione del video minimizzato.
+• Tocca di nuovo due volte per tornare alle dimensioni originali."
+ Attiva il gesto Doppio Tocco
+ Il gesto Trascina-e-Rilascia è disattivato.
+ Il gesto Trascina-e-Rilascia è attivato.
+ Attiva il gesto Trascina-e-Rilascia
I pulsanti Espandi e Chiudi sono visibili.
- I pulsanti Espandi e Chiudi sono nascosti.\n(Scorri il riproduttore minimizzato per espandere o chiudere)
- Nascondi i pulsanti espandi e chiudi
- Salta avanti e salta indietro sono visibili.
- Salta avanti e salta indietro sono nascosti.
- Nascondi i pulsanti salta avanti e salta indietro
+ I pulsanti Espandi e Chiudi sono nascosti.\n(Trascina il riproduttore minimizzato per espandere o chiudere)
+ Nascondi i pulsanti Espandi e Chiudi
+ I pulsanti Salta Avanti e Salta Indietro sono visibili.
+ I pulsanti Salta Avanti e Salta Indietro sono nascosti.
+ Nascondi i pulsanti Salta Avanti e Salta Indietro
I sottotesti sono visibili.
I sottotesti sono nascosti.
Nascondi i sottotesti
- L\'opacità della copertura del riproduttore minimizzato deve essere compresa tra 0 e 100. Reimpostati i valori predefiniti.
- Il valore dell\'opacità è compreso tra 0 e 100, dove 0 è trasparente.
+ L\'opacità della sovrapposizione del riproduttore minimizzato deve essere tra 0 e 100
+ Il valore dell\'opacità è tra 0 e 100, dove 0 è trasparente.
Opacità della sovrapposizione
Originale
Telefono
@@ -1139,19 +1151,19 @@ Problema noto: potrebbe rompere la funzione Picture-in-Picture
Moderno 1
Moderno 2
Moderno 3
- Tipologia del riproduttore minimizzato
+ Cambia il tipo di riproduttore minimizzato
Pulsanti in sovrapposizione
"Tocca per attivare le ripetizioni dei video.
-Tocca e tieni premuto per attivare la pausa dopo le ripetizione"
+Tocca e tieni premuto per attivare la pausa dopo le ripetizione."
Mostra il pulsante Ripeti Sempre
"Tocca per copiare l'URL del video.
-Tocca e tieni premuto per copiare l'URL del video con il timestamp"
+Tocca e tieni premuto per copiare l'URL del video con il timestamp."
"Tocca per copiare l'URL del video con il timestamp.
-Tocca e tieni premuto per copiare il timestamp del video"
+Tocca e tieni premuto per copiare il timestamp del video."
Mostra il pulsante Copia URL Video con Timestamp
Mostra il pulsante Copia URL Video
- Tocca per avviare il downloader esterno
- Mostra il pulsante Download Esterno
+ Tocca per avviare il downloader esterno.
+ Mostra il pulsante Downloader Esterno
Tocca per silenziare il volume del video corrente. Tocca di nuovo per disattivarlo.
Mostra pulsante volume silenziato
Tocca e tieni premuto per cambiare lo stato del pulsante.
@@ -1166,24 +1178,24 @@ Tocca e tieni premuto per annullare."
\"Tocca per aprire la finestra della whitelist.
Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
Mostra il pulsante whitelist
- Se visualizzato, il pulsante nativo di download della playlist apre lo scaricatore nativo.
- Il pulsante nativo di download della playlist è sempre visualizzato, e nelle playlist pubbliche, apre il tuo scaricatore esterno.
- Sovrascrivi il pulsante per scaricare le playlist
- Il pulsante nativo per scaricare il video apre lo scaricatore nativo.
- Il pulsante nativo per scaricare il video apre il tuo scaricatore esterno.
- Sovrascrivi il pulsante per scaricare i video
- YouTube music è necessario per sovrascrivere l\'azione del pulsante. Tocca qui per scaricare YouTube Music.
+ Se è visibile, il pulsante Download Playlist nativo apre il downloader nativo.
+ Il pulsante Download Playlist nativo è sempre visibile e nelle playlist pubbliche apre il downloader esterno.
+ Sovrascrivi il pulsante Download Playlist
+ Il pulsante Download Video nativo apre il downloader nativo.
+ Il pulsante Download Video nativo apre il downloader esterno.
+ Sovrascrivi il pulsante Download Video
+ L\'app YouTube Music è necessario per sovrascrivere l\'azione del pulsante. Tocca qui per scaricare YouTube Music.
Prerequisito
- Il pulsante YouTube Music apre l\'app nativa.
- Il pulsante YouTube Music apre il RVX Music.
+ Il pulsante YouTube Music apre l\'app originale.
+ Il pulsante YouTube Music apre l\'app RVX Music.
Sovrascrivi il pulsante YouTube Music
Escluso
Incluso
Normale
- Pulsanti azione
+ Pulsanti di azione
Impostazioni aggiuntive
- Animazione / Feedback
- Pulsante download
+ Animazione e feedback
+ Pulsanti Download
Opzioni sperimentali
Restrizioni regionali delle immagini
Esporta / Importa come file
@@ -1194,52 +1206,52 @@ Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
Informazioni patch
Azioni rapide
Video consigliati
- Scaffali Shorts
+ Scaffali degli Shorts
Azioni suggerite
Strumenti utilizzati
Filtro sul numero di visualizzazioni
- Nascondi o mostra gli elementi nei menù dell\'account e nella scheda Tu.
+ Personalizza i componenti dei menù dell\'account e della scheda Tu.
Menù dell\'account
- Nascondi o mostra i pulsanti di azione sotto i video.
- Pulsanti azione
+ Personalizza i pulsanti di azione sotto i video.
+ Pulsanti di azione
Annunci
- Anteprime alternative
+ Thumbnails alternativi
Disattiva la modalità Ambient o bypassa le sue restrizioni.
Modalità Ambient
- Nascondi o mostra la barra delle categorie nelle schede, nei risultati di ricerca e nei video correlati.
- Barra delle categorie
- Nascondi o mostra i componenti della barra dei canali sotto i video.
+ Nascondi o mostra la barra dei filtri nelle schede, nei risultati di ricerca e nei video correlati.
+ Barra dei filtri
+ Personalizza i componenti della barra del canale sotto i video.
Barra del canale
- Nascondi o mostra i componenti nel profilo del canale.
+ Personalizza i componenti del profilo del canale.
Profilo del canale
- Nascondi o mostra i componenti della sezione commenti.
+ Personalizza i componenti della sezione Commenti.
Commenti
- Mostra o nascondi i post della community nelle schede e nei canali.
+ Nascondi o mostra i post della community nelle schede e nel canale.
Post della community
- Nascondi componenti utilizzando filtri personalizzati.
+ Nascondi i componenti usando il filtro personalizzato.
Filtro personalizzato
- Nascondi o mostra i componenti dei menù a comparsa.
+ Personalizza i componenti dei menù a comparsa.
Menù a comparsa
- Feed
- Nascondi o cambia componenti relativi allo schermo intero.
+ Schede
+ Personalizza i componenti dello schermo intero.
Schermo intero
Generale
- Disattiva o attiva la vibrazione tattile.
- Vibrazione tattile
- Sostituisce l\'azione del clic dei pulsanti in-app.
- Pulsanti gancio
+ Disattiva o attiva le vibrazioni tattili.
+ Vibrazioni tattili
+ Sovrascrive l\'azione dei pulsanti.
+ Pulsanti Download
Esporta o importa le impostazioni.
Esporta / Importa impostazioni
- Cambia lo stile del riproduttore minimizzato nell\'app.
+ Cambia lo stile del riproduttore minimizzato.
Riproduttore minimizzato
Varie
- Nascondi o mostra i componenti della sezione della barra di navigazione.
+ Personalizza i componenti della barra di navigazione.
Barra di navigazione
Informazioni sulle patch applicate.
Informazioni patch
- Nascondi o mostra i pulsanti nel riproduttore.
+ Personalizza i pulsanti del riproduttore.
Pulsanti del riproduttore
- Nascondi o cambia i componenti dei menù a comparsa nel riproduttore.
+ Personalizza i componenti dei menù a comparsa nel riproduttore.
Menù a comparsa
Riproduttore
Return YouTube Username
@@ -1247,119 +1259,119 @@ Tocca e tieni premuto per aprire la finestra delle impostazioni della whitelist.
SponsorBlock
Personalizza i componenti della barra di avanzamento.
Barra di avanzamento
- Nascondi gli elementi del menù delle impostazioni di YouTube.
- Menù impostazioni
- Nascondi o mostra i componenti nel produttore Shorts.
- Riproduttore Shorts
+ Personalizza i componenti del menù delle impostazioni di YouTube.
+ Menù delle impostazioni
+ Personalizza i componenti del riproduttore degli Shorts.
+ Riproduttore degli Shorts
Shorts
- Camuffa il data streaming per prevenire problemi di riproduzione.
- Camuffa data streaming
- Controlli a scorrimento
- Nascondi o cambia i componenti situati sulla barra degli strumenti, come la barra di ricerca, i pulsanti della barra degli strumenti, e l\'intestazione.
+ Camuffa i dati in streaming per prevenire problemi di riproduzione.
+ Camuffa i dati in streaming
+ Gesti di trascinamento
+ Personalizza i componenti della barra degli strumenti, come la barra di ricerca, i pulsanti e l\'intestazione.
Barra degli strumenti
- Nascondi o mostra i componenti della descrizione del video.
- Descrizione del video
- Nascondi video per parole chiave o visualizzazioni.
- Filtro sui video
+ Personalizza i componenti della descrizione dei video.
+ Descrizione dei video
+ Nascondi i video in base a parole chiave o visualizzazioni.
+ Filtro dei video
Video
- Cambia le impostazioni relative alla cronologia.
+ Cambia le impostazioni della cronologia.
Cronologia
Il margine superiore delle azioni rapide deve essere compreso tra 0-32. Reimposta ai valori predefiniti.
Configura la spaziatura dalla barra di ricerca al contenitore di azione rapida, tra 0-32.
Margine superiore delle azioni rapide
- "Rifiuta forzatamente la risposta di codec AV1 del software.
-Verrà applicato un codec diverso dopo circa 20 secondi di buffering."
- Rifiuta la risposta di codec AV1 software
- Il processo di Fallback provoca circa 20 secondi di buffering.
- Sfalsamento
- Le modifiche della velocità di riproduzione si applicano solo al video corrente.
- Le modifiche della velocità di riproduzione si applicano a tutti i video.
- Ricorda le modifiche della velocità di riproduzione
- Un toast non verrà mostrato quando si cambia la velocità di riproduzione predefinita.
- Un toast verrà mostrato quando si cambia la velocità di riproduzione predefinita.
- Mostra un toast
- Cambiando la velocità predefinita a %s.
- I cambiamenti di qualità si applicano solo al video corrente.
- I cambiamenti di qualità si applicano a tutti i video.
+ "Rifiuta forzatamente la risposta del codec video AV1.
+Verrà applicato un codec video diverso dopo circa 20 secondi di buffering."
+ Rifiuta la risposta del codec video AV1
+ Il processo di fallback provoca circa 20 secondi di buffering
+ Numero massimo di interfacce
+ I cambiamenti alla velocità di riproduzione si applicano solo al video corrente.
+ I cambiamenti alla velocità di riproduzione si applicano a tutti i video.
+ Ricorda i cambiamenti della velocità di riproduzione
+ Una notifica toast non verrà mostrato quando si cambierà la velocità di riproduzione predefinita.
+ Una notifica toast verrà mostrato quando si cambierà la velocità di riproduzione predefinita.
+ Mostra una notifica toast al cambio della velocità di riproduzione
+ Cambiando la velocità predefinita a %s
+ I cambiamenti alla qualità video si applicano solo al video corrente.
+ I cambiamenti alla qualità video si applicano a tutti i video.
Ricorda i cambiamenti di qualità video
- Un toast non verrà mostrato quando si cambia la qualità video predefinita.
- Un toast verrà mostrato quando si cambia la velocità di riproduzione predefinita.
- Mostra un toast
- Cambiando la qualità predefinita con connessione dati a %s.
- Impossibile impostare la qualità video.
- Cambiare la qualità Wi-Fi predefinita in %s.
- "Rimuove la finestra di discrezione del visualizzatore.
-Questo non aggira la restrizione di età. La accetta solamente in automatico."
- Rimuovi la finestra di discrezione del visualizzatore
- Sostituisce il codec software AV1 con il codec VP9.
- Sostituire il codec AV1 software
- Il manico del canale è usato.
- Il nome del canale è usato.
- Sostituisci manico del canale
+ Una notifica toast non verrà mostrato quando si cambierà la qualità video predefinita.
+ Una notifica toast verrà mostrato quando si cambierà la qualità video predefinita.
+ Mostra una notifica toast al cambio della qualità video
+ Cambiando la qualità video predefinita con connessione dati a %s
+ Impostazione della qualità video non riuscita
+ Cambiando la qualità video predefinita con Wi-Fi a %s
+ "Rimuove la finestra sulla discrezione dello spettatore.
+Nota: questo non bypassa la restrizione di età, ma la accetta automaticamente."
+ Rimuovi la finestra sulla discrezione dello spettatore
+ Sostituisce il codec video AV1 con il codec video VP9.
+ Sostituisci il codec video AV1
+ L\'handle è visibile.
+ Il nome del canale è visibile.
+ Sostituisci l\'handle con il nome del canale
Tocca per mostrare il tempo restante.
Tocca per aprire la velocità di riproduzione o il menu a comparsa di qualità video.
Sostituire l\'azione timestamp
Sostituisce il pulsante Crea con il pulsante Impostazioni.
- Sostituisci il pulsante Crea
+ Sostituisci il pulsante Crea con il pulsante Impostazioni
"Tocca per aprire le impostazioni di YouTube.
Tocca e tieni premuto per aprire le impostazioni di RVX."
"Tocca per aprire le impostazioni di RVX.
Tocca e tieni premuto per aprire le impostazioni di YouTube."
- Tipo di azione da assegnare al pulsante
+ Cambia il tipo di azione da assegnare al pulsante
Le miniature della barra di avanzamento appariranno a schermo intero.
Le miniature della barra di ricerca appariranno sopra la barra di avanzamento.
Ripristina vecchie miniature della barra di avanzamento
- Il vecchio menu di qualità video non è mostrato.
- Vecchio menu di qualità video è mostrato.
+ Il vecchio menu di qualità video non è visibile.
+ Vecchio menu di qualità video è visibile.
Ripristina il vecchio menu di qualità video
- \@maniglia (Nome utente)
+ \@handle (Nome utente)
Formato di visualizzazione
- Nome utente (@maniglia)
+ Nome utente (@handle)
Nome utente
- La maniglia è usata.
- Il Nome utente è usato.
+ L\'handle è visible.
+ Il nome utente è visibile.
Attiva Return YouTube Username
- "La chiave sviluppatore YouTube API v3 è necessaria per sostituire la Maniglia con il Nome utente.
+ "Una chiave sviluppatore di YouTube Data API v3 è necessaria per sostituire gli handle con i nomi utente.
-La quota giornaliera per le chiavi API sul piano gratuito è di 10.000, e 1 quota è utilizzata per sostituire la Maniglia con il Nome utente per 1 commento.
+La quota giornaliera per le chiavi API nel piano gratuito è di 10.000 e 1 quota viene utilizzata per sostituire un handle con un nome utente per 1 commento.
-Clicca per vedere come emettere una chiave API."
- Informazioni sulla chiave API dati di YouTube
- La chiave sviluppatore per l\'utilizzo dell\'API dati di YouTube v3.
- Chiave API dati di YouTube
+Tocca per vedere come emettere una chiave API."
+ Informazioni sulla chiave API di dati di YouTube
+ La chiave sviluppatore per utilizzare YouTube Data API v3.
+ Chiave API di dati di YouTube
1. Vai su <a href=%1$s>Crea un nuovo progetto</a>.<br>. Clicca il pulsante <b>CREA</b>.<br>3. Vai su <a href=%2$s>dati YouTube API v3</a>.<br>4. Fare clic sul pulsante <b>ABILITA</b>.<br>5. Fare clic sul pulsante <b>CREA CREDENZIALI</b>.<br>6. Selezionare l\'opzione <b>Dati pubblici</b>.<br>7. Fare clic sul pulsante <b>AVANTI</b><br>8. Copia la chiave API.<br><br>※ La chiave API non dovrebbe mai essere condivisa con gli altri, quindi non è inclusa nelle impostazioni di Esportazione / Importazione.
- Inserimento chiave dati sviluppatore API di YouTube v3
+ Inserimento della chiave sviluppatore YouTube Data API v3
Informazioni
- I dati relativi ai Non Mi Piace sono forniti dall\'API di Return YouTube Dislike. Tocca qui per saperne di più
+ I dati relativi ai non mi piace sono forniti dall\'API di Return YouTube Dislike. Tocca qui per saperne di più.
ReturnYouTubeDislike.com
- Pulsante Mi Piace riadattato per la migliore visualizzazione
- Pulsante Mi Piace riadattato per una dimensione minima
+ Riadattato per la migliore visualizzazione.
+ Riadattato per una dimensione minima.
Attiva il pulsante Mi Piace compatto
- Numero
- Percentuale
- Il tipo di Non Mi Piace
- I Non Mi Piace sono nascosti.
- I Non Mi Piace sono visibili.
+ Numero.
+ Percentuale.
+ Cambia il tipo di non mi piace
+ I non mi piace sono nascosti.
+ I non mi piace sono visibili.
Attiva Return YouTube Dislike
- I Mi piace stimati sono nascosti.
- I Mi piace stimati sono mostrati.
- Mostra i Mi piace stimati
- Non Mi Piace non disponibili (è stato raggiunto il limite del client API)
- Non Mi Piace non disponibili (stato: %d)
- Non Mi Piace temporaneamente non disponibili (API scaduto)
- Non Mi Piace non disponibili (%s)
- Ricarica il video per votare utilizzando Return YouTube Dislike
- I Non Mi Piace degli Shorts sono nascosti.
- I Non Mi Piace degli Shorts sono visibili.
- "Non mi piace mostrati negli Shorts.
+ I mi piace stimati sono nascosti.
+ I mi piace stimati sono visibili.
+ Mostra i mi piace stimati
+ Non mi piace non disponibili (È stato raggiunto il limite del client API)
+ Non mi piace non disponibili (Stato: %d)
+ Non mi piace temporaneamente non disponibili (API scaduto)
+ Non mi piace non disponibili (%s)
+ Ricarica il video per votare usando Return YouTube Dislike
+ I non mi piace degli Shorts sono nascosti.
+ I non mi piace degli Shorts sono visibili.
+ "I Non mi piace degli Shorts sono visibili.
-Limitazione: Non mi piace possono non apparire se l'utente non è registrato o in modalità incognito."
- Mostra i Non Mi Piace degli Shorts
- Notifica toast nascosta se l\'API di ReturnYouTubeDislike non è disponibile
- Notifica toast visibile se l\'API di ReturnYouTubeDislike non è disponibile
+Nota: i non mi piace potrebbero non apparire se l'utente non ha effettuato l'accesso o in navigazione in incognito."
+ Mostra i non mi piace degli Shorts
+ La notifica toast è nascosta se l\'API di ReturnYouTubeDislike non è disponibile.
+ La notifica toast è visibile se l\'API di ReturnYouTubeDislike non è disponibile.
Mostra una notifica toast se l\'API non è disponibile
- Nascosto
- Rimuove i parametri della query di tracciamento dagli URL durante la condivisione dei link
+ Nascosti
+ Rimuove i parametri di tracciamento dagli URL durante la condivisione dei link.
Sanitizza i link di condivisione
"Frasi come '#', 'Raccolta fondi', 'Negozio' e 'Prodotti' sono state mostrate nei sottotitoli video."
"Frasi come '#', 'Raccolta fondi', 'Negozio' e 'Prodotti' sono state nascoste nei sottotitoli video."
@@ -1367,162 +1379,162 @@ Limitazione: Non mi piace possono non apparire se l'utente non è registrato o i
Informazioni
sponsor.ajay.app
I dati sono forniti dall\'API di SponsorBlock. Tocca qui per saperne di più e vedere i download per altre piattaforme.
- URL API cambiato.
- URL API non valido.
- URL API ripristinato.
+ URL API cambiato
+ URL API non valido
+ URL API ripristinato
Aspetto
- Colore cambiato.
+ Colore cambiato
Colore:
- Codice colore non valido.
- Colore ripristinato.
+ Codice colore non valido
+ Colore ripristinato
Creazione di nuovi segmenti
- Cambia il comportamento del segmento
+ Cambia il comportamento dei segmenti
Nascondi automaticamente il pulsante Salta
- Il Pulsante Salta è mostrato per l\'intero segmento.
- Il pulsante Salta scompare dopo diversi secondi.
- Usa il pulsante Salta compatto
- Pulsante Salta riadattato per il migliore aspetto.
- Pulsante Salta riadattato per una lunghezza minima.
+ Il pulsante Salta è visibile per l\'intero segmento.
+ Il pulsante Salta è nascosto dopo alcuni secondi.
+ Attiva il pulsante Salta compatto
+ Riadattato per la migliore visualizzazione.
+ Riadattato per una larghezza minima.
Mostra il pulsante Crea Nuovo Segmento
Il pulsante Crea Nuovo Segmento è nascosto.
- Il pulsante Crea Nuovo Segmento è mostrato.
- Abilita SponsorBlock
+ Il pulsante Crea Nuovo Segmento è visibile.
+ Attiva SponsorBlock
SponsorBlock è un sistema di crowdsourcing per saltare parti fastidiose dei video di YouTube.
Mostra il pulsante Voto
Il pulsante Voto è nascosto.
- Il pulsante di voto del segmento è mostrato.
+ Il pulsante Voto è visibile.
Generale
Regola il nuovo passo del segmento
- Il valore deve essere un numero positivo.
- Numero di millisecondi i pulsanti di regolazione del tempo si muovono quando si creano nuovi segmenti.
- Modifica URL API
- L\'indirizzo SponsorBlock utilizza per effettuare chiamate al server.
+ Il valore deve essere un numero positivo
+ Il numero di millisecondi di cui si spostano i pulsanti del tempo quando si creano nuovi segmenti.
+ Modifica l\'URL API
+ L\'indirizzo SponsorBlock usato per contattare il server.
Durata minima del segmento
- Durata di tempo non valida.
+ Durata non valida
I segmenti più brevi di questo valore (in secondi) non verranno mostrati o saltati.
- Abilita il tracciamento del conteggio dei salti
- Il tracciamento del contatore dei salti non è abilitato.
- Consente alla leaderboard di SponsorBlock di sapere quanto tempo hai salvato. Viene inviato un messaggio alla leaderboard ogni volta che un segmento viene saltato.
+ Attiva il monitoraggio del conteggio dei salti
+ Il monitoraggio del contatore dei salti è disattivato.
+ Permette alla classifica di SponsorBlock di sapere quanto tempo è stato risparmiato. Viene inviato un messaggio alla classifica ogni volta che un segmento viene saltato.
Mostra una notifica toast quando un segmento è stato saltato automaticamente
- Il Toast non è nascosto. Tocca qui per vedere un esempio.
- Notifica toast mostrato quando un segmento è saltato automaticamente. Tocca qui per vedere un esempio.
- Mostra la lunghezza del video senza segmenti
- La lunghezza totale del video è mostrata.
- La lunghezza del video meno la lunghezza combinata del segmento è mostrata tra parentesi dopo alla lunghezza completa del video.
- Il tuo Id utente privato
- L\'id utente privato deve essere lungo almeno 30 caratteri.
- Questo dovrebbe essere tenuto privato. È come una password e non dovrebbe essere condiviso con nessuno. Se qualcuno dovesse ottenerlo, potrebbe impersonarti.
- Già letto
+ La notifica toast è nascosta.
+ La notifica toast è visibile quando un segmento è saltato automaticamente. Tocca qui per vedere un esempio.
+ Mostra la durata dei video senza segmenti
+ La durata completa del video è mostrata.
+ La durata del video senza la durata complessiva dei segmenti è mostrata tra parentesi accanto alla durata completa del video.
+ Il tuo ID utente privato
+ L\'ID utente privato deve essere lungo almeno 30 caratteri
+ Questo dovrebbe essere tenuto privato perchè come una password e non dovrebbe essere condiviso con nessuno. Se qualcuno dovesse ottenerlo, potrebbe impersonarti.
+ Già lette
Leggi le linee guida di SponsorBlock prima di creare nuovi segmenti.
Mostramelo
Segui le linee guida
- Le linee guida contengono regole e suggerimenti per creare nuovi segmenti.
+ Le linee guida contengono regole e suggerimenti per la creazione dei nuovi segmenti.
Visualizza le linee guida
Regolazione: Segna l\'ora di inizio e di fine del segmento.
Scegli la categoria del segmento
Verifica il Segmento
The segment lasts from %1$02d:%2$02d to %3$02d:%4$02d (%5$d minutes %6$02d seconds)\nIs it ready to submit?
Il segmento è da\n\n%1$s\na\n%2$s\n\n(%3$s)\n\nPronto per l\'invio?
- I minutaggi sono corretti?
+ I valori sono corretti?
La categoria è disattivata nelle impostazioni. Attiva la categoria da inviare.
Modifica il Segmento
- Vuoi modificare l\'intervallo temporale dell\'inizio o fine del segmento?
- L\'intervallo temporale fornito non è valido.
- Modifica l\'intervallo temporale del segmento manualmente
+ Vuoi modificare i tempi di inizio o fine del segmento?
+ I tempi forniti non sono validi
+ Modifica manualmente i tempi del segmento
Avanzamento in base al Tempo Specificato (Predefinito: 150 ms)
Impostare %s come inizio o fine di un nuovo segmento?
fine
- Segna prima due posizioni sulla barra di avanzamento.
+ Segna prima due posizioni sulla barra di avanzamento
inizio
adesso
- Anteprima del segmento, e assicurarti che lo salti senza problemi.
+ Guarda l\'anteprima del segmento e assicurati che lo salti senza problemi
Pubblica Segmento Creato
Riavvolgimento in base al Tempo Specificato (Predefinito: 150 ms)
- L\'inizio deve essere prima della fine.
- Minutaggio del segmento finisce a
- Minutaggio del segmento inizia a
+ L\'inizio deve essere prima della fine
+ Il segmento finisce a
+ Il segmento inizia a
Nuovo segmento SponsorBlock
Ripristina
Ripristina colore
- Tangente di riempimento / Jokes
- Scene tangenziali aggiunte solo a scopo riempitivo o per umorismo, non necessarie per comprendere il contenuto principale del video. Questo non dovrebbe includere segmenti che forniscono contesto o dettagli di sfondo.
- Momento Saliente
+ Tangente di riempimento e battute
+ Le scene tangenziali aggiunte solo a scopo riempitivo o per umorismo, non necessarie per comprendere il contenuto principale del video. Non dovrebbe includere sezioni con informazioni.
+ Momento saliente
La parte del video che la maggior parte delle persone sta guardando.
- Promemoria Interazione (Iscrizione)
- Un breve promemoria per mi piace, iscriversi, o seguirli nel mezzo del contenuto. Se è lungo o su qualcosa di specifico, dovrebbe invece essere sotto auto promozione.
- Intermezzo / Introduzione animata
- Un intervallo senza contenuto effettivo. Potrebbe essere una pausa, un fotogramma statico o un\'animazione ripetuta. Questo non dovrebbe includere transizioni che contengono informazioni.
- Musica: Sezione Non-Musicale
- Solo per video musicali. Sezioni di video musicali senza musica, che non sono già coperti da un\'altra categoria.
- Carte Finali / Crediti
- Crediti o quando appaiono le carte finali. Non dovrebbe includere le informazioni nelle conclusioni.
- Anteprima / Riepilogo / Gancio
- Raccolta di clip che mostrano ciò che sta arrivando o ciò che è successo nel video o in altri video di una serie, in cui tutte le informazioni sono ripetute altrove.
- Promozione Non Pagata / Auto promozione
- Simili agli \'Sponsor\' eccetto promozioni non pagate o auto promozioni. Include sezioni sul merchandising, donazioni o informazioni su con chi hanno collaborato.
+ Promemoria di interazione (Iscrizione)
+ Una breve promemoria per mettere mi piace, iscriversi o seguirli su altre piattaforme durante la visione. Se è lungo o riguarda qualcosa di specifico, dovrebbe essere considerato autopromozione.
+ Intermezzo e introduzione animata
+ Un intervallo senza contenuto effettivo. Potrebbe essere una pausa, un fotogramma statico o un\'animazione ripetuta. Non dovrebbe includere transizioni con informazioni.
+ Sezione non musicale
+ Le sezioni di video musicali senza musica che non sono già incluse in un\'altra categoria. Solo per i video musicali.
+ Schede finali e crediti
+ I crediti o quando appaiono le schede finali. Non dovrebbe includere le conclusioni con informazioni.
+ Anteprima, riepilogo e pretesto
+ Una breve raccolta di anteprime che mostrano ciò che è in programma o ciò che è successo nel video o in altri video di una serie, dove tutte le informazioni sono ripetute altrove.
+ Promozione non Pagata e autopromozione
+ Simili agli sponsor, ma sono promozioni non pagate o autopromozioni. Include sezioni sul merchandising, donazioni e informazioni dei collaboratori del video.
Sponsor
- Promozione a pagamento, rinvii a pagamento e pubblicità diretta. Non per auto-promozione o gridare gratis per causare / creatori / siti web / prodotti che piacciono.
+ Le promozioni a pagamento, referral a pagamento e pubblicità diretta. Non dovrebbe includere autopromozione e ringraziamenti gratis a cause, creatori, siti web e prodotti di loro gradimento.
Copia
- Fallita l\'esportazione: %s.
+ Esportazione non riuscita (%s)
Esporta / Importa impostazioni
- La tua configurazione JSON di SponsorBlock può essere importata / esportata su ReVanced Extended e su altre piattaforme SponsorBlock.
- La tua configurazione JSON di SponsorBlock che può essere importata / esportata su ReVanced Extended e su altre piattaforme SponsorBlock. Questo include il tuo ID utente privato. Quindi assicurati di condividerlo con saggezza.
- Importazione non riuscita: %s.
- Impostazioni importate con successo.
- Le tue impostazioni contengono un id utente SponsorBlock privato.\n\nIl tuo id utente è come una password e non dovrebbe mai essere condiviso.\n
- Non mostrare ancora
- Impostazioni copiate negli appunti.
+ La tua configurazione di SponsorBlock in JSON può essere esportata e importata su RVX e su altre piattaforme SponsorBlock.
+ La tua configurazione di SponsorBlock in JSON può essere esportata e importata su RVX e su altre piattaforme SponsorBlock. Questo include il tuo ID utente privato, quindi assicurati di condividerlo con cautela.
+ Importazione non riuscita (%s)
+ Impostazioni importate con successo
+ Le tue impostazioni contengono un ID utente privato di SponsorBlock.\n\nIl tuo ID utente è come una password e non dovrebbe mai essere condiviso.\n
+ Non mostrare di nuovo
+ Impostazioni copiate negli appunti
Salta automaticamente
Salta automaticamente una volta
Salta
- Momento Saliente
+ Momento saliente
Salta riempitivo
- Passa al Momento Saliente
- Salta interazione
+ Salta al momento saliente
+ Salta promemoria
Salta introduzione
- Salta l\'intermezzo
- Salta l\'intermezzo
- Salta non-musica
+ Salta intermezzo
+ Salta intermezzo
+ Salta sezione non musicale
Salta conclusione
- Salta Anteprima
+ Salta anteprima
Salta riepilogo
- Salta Anteprima
+ Salta anteprima
Salta promozione
- Salta Sponsor
+ Salta sponsor
Salta segmento
Disabilita
- Mostralo nella barra di avanzamento
+ Mostra nella barra di avanzamento
Mostra un pulsante salta
- Riempitivo saltato.
- Passato al momento saliente.
- Promemoria fastidioso saltato.
- Introduzione saltata.
- Intermezzo saltato.
- Intermezzo saltato.
- Segmenti multipli saltati.
- Sezione Non-Musicale saltata.
- Conclusione saltata.
- Anteprima saltata.
- Riepilogo saltato.
- Anteprima saltata.
- Auto promozione saltata.
- Sponsor saltato.
- Segmento non inviato saltato.
- SponsorBlock temporaneamente non disponibile.
- SponsorBlock temporaneamente non disponibile (stato %d).
- SponsorBlock temporaneamente non disponibile (API scaduta).
+ Riempitivo saltato
+ Saltato al momento saliente
+ Promemoria saltato
+ Introduzione saltata
+ Intermezzo saltato
+ Intermezzo saltato
+ Segmenti multipli saltati
+ Sezione non musicale saltata
+ Conclusione saltato
+ Anteprima saltata
+ Riepilogo saltato
+ Anteprima saltata
+ Autopromozione saltata
+ Sponsor saltato
+ Segmento non inviato saltato
+ SponsorBlock temporaneamente non disponibile
+ SponsorBlock temporaneamente non disponibile (Stato: %d)
+ SponsorBlock temporaneamente non disponibile (API scaduta)
Statistiche
- Statistiche temporaneamente non disponibili (API è disconnessa).
+ Statistiche temporaneamente non disponibili (API è inattiva)
Caricamento...
La tua reputazione è <b>%.2f</b>
Hai salvato le persone da <b>%s</b> segmenti
- %1$s ore e %2$s minuti
+ %1$s ore %2$s minuti
%1$s minuti %2$s secondi
%s secondi
È <b>%s</b> della loro vita.<br>Tocca qui per vedere la classifica.
Tocca qui per vedere le statistiche globali e i migliori contributori.
Classifica di SponsorBlock
- SponsorBlock è disabilitato.
+ SponsorBlock è disattivato.
Hai saltato <b>%s</b> segmenti
Ripristinare il contatore dei segmenti saltati?
È <b>%s</b>.
@@ -1530,23 +1542,23 @@ Limitazione: Non mi piace possono non apparire se l'utente non è registrato o i
Tocca qui per vedere i tuoi segmenti.
Il tuo nome utente: <b>%s</b>
Tocca qui per cambiare il tuo nome utente
- Impossibile modificare il nome utente: Stato: %1$d %2$s.
- Nome utente cambiato con successo.
- Impossibile inviare il segmento.\nEsiste già.
- Impossibile inviare il segmento: %s.
- Impossibile inviare il segmento: %s.
- Impossibile inviare il segmento.\nfrequenza limitata (troppi dello stesso utente o IP).
+ Modifica del nome utente non riuscita (Stato: %1$d %2$s)
+ Nome utente cambiato con successo
+ Invio del segmento non riuscito\nEsiste già
+ Invio del segmento non riuscito (%s)
+ Invio del segmento non riuscito (%s)
+ Invio del segmento non riuscito\nFrequenza limitata (troppi dello stesso utente o IP)
SponsorBlock è temporaneamente inattivo.
- Impossibile inviare il segmento (stato: %1$d %2$s).
+ Invio del segmento non riuscito (Stato: %1$d %2$s)
Segmento inviato con successo.
- Il toast non è mostrato se SponsorBlock non è disponibile.
- Il toast è mostrato se SponsorBlock non è disponibile.
+ La notifica toast non è visibile se SponsorBlock non è disponibile.
+ La notifica toast è visibile se SponsorBlock non è disponibile.
Mostra una notifica toast se l\'API non è disponibile
- Cambia categoria
+ Cambia la categoria
Voto negativo
- Impossibile votare per il segmento: %s.
- Impossibile votare per il segmento (API scaduto).
- Impossibile votare per il segmento (stato: %1$d %2$s).
+ Impossibile votare per il segmento (%s)
+ Impossibile votare per il segmento (API scaduto)
+ Impossibile votare per il segmento (Stato: %1$d %2$s)
Non ci sono segmenti per cui votare.
Voto positivo
Impostazioni copiate negli appunti
@@ -1557,17 +1569,17 @@ Limitazione: Non mi piace possono non apparire se l'utente non è registrato o i
Pollice in su
Pollice in su (Cairo)
Cuore
- Cuore (tinta)
- Nascosto
- Animazione doppio tocco
- Il margine inferiore del pannello Meta deve essere compreso tra 0-64. Reimposta ai valori predefiniti.
- Configura la spaziatura dalla barra di ricerca al pannello meta, tra 0-64.
+ Cuore (Tinta)
+ Nascosta
+ Animazione del doppio tocco
+ Il margine inferiore del pannello Meta deve essere tra 0 e 64
+ Configura lo spazio dalla barra di ricerca al pannello Meta tra 0 e 64.
Margine inferiore del pannello Meta
- La percentuale di altezza deve essere compresa tra 0 e 100 (%).
+ La percentuale di altezza deve essere tra 0 e 100 (%)
Configura la percentuale di altezza dello spazio vuoto rimasto quando la barra di navigazione è nascosta, tra 0 e 100 (%).
- Altezza percentuale di spazio vuoto
- Premi e tieni premuto il timestamp per cambiare lo stato di ripetizione degli Shorts.
- Azione pressione prolungata timestamp
+ Altezza in percentuale dello spazio vuoto
+ Tocca e tieni premuto il timestamp per cambiare lo stato di ripetizione degli Shorts.
+ Azione della pressione prolungata della barra di avanzamento
"Mostra la sezione del titolo del video a schermo intero.
Limitazione: il titolo del video scompare quando si fa clic."
@@ -1578,15 +1590,15 @@ Limitazione: il titolo del video scompare quando si fa clic."
"Salta il buffer precaricato all'avvio dei video per bypassare il ritardo della qualità video predefinita forzata.
Note:
-• Quando il video inizia, c'è un ritardo di circa 0.7 secondi, ma la qualità video predefinita viene applicata immediatamente
-• Non si applica ai video HDR, dal vivo e più brevi di 10 secondi"
+• Quando il video inizia, c'è un ritardo di circa 0.7 secondi, ma la qualità video predefinita viene applicata immediatamente.
+• Non si applica ai video HDR, dal vivo e più brevi di 10 secondi."
Salta il buffer precaricato
La notifica toast è nascosta.
La notifica toast è visibile.
Mostra una notifica toast quando un segmento è saltato
Attivare questa impostazione può causare problemi di riproduzione video.
Buffer precaricato saltato
- Il valore di sovrapposizione della velocità deve essere tra 0 e 8.0.
+ Il valore di sovrapposizione della velocità deve essere tra 0 e 8.0
Valore di sovrapposizione della velocità tra 0 e 8.0.
Valore di sovrapposizione della velocità
"Simula la versione del client a una versione precedente.
@@ -1594,33 +1606,35 @@ Note:
Note:
• Questo cambierà l'aspetto dell'app, ma potrebbero verificarsi degli effetti collaterali sconosciuti
• Se in seguito verrà disattivato, la vecchia interfaccia potrebbe rimanere fino a quando i dati dell'app non verranno cancellati"
- Versione non camuffata
- Versione camuffata
+ Il camuffamento della versione dell\'app è disattivato.
+ Il camuffamento della versione dell\'app è attivato.
17.33.42 - Ripristina la vecchia interfaccia
17.41.37 - Ripristina il vecchio scaffale delle playlist
- 18.05.40 - Ripristina la vecchia casella di input dei commenti
+ 18.05.40 - Ripristina la vecchia casella di inserimento dei commenti
18.17.43 - Ripristina il vecchio pannello a comparsa del riproduttore
- 18.33.40 - Ripristina la vecchia barra d\'azione degli Shorts
+ 18.33.40 - Ripristina la vecchia barra di azione degli Shorts
18.38.45 - Ripristina il comportamento della vecchia qualità video predefinita
- 18.48.39 - Disabilita l\'aggiornamento in tempo reale di visualizzazioni e dei Mi piace
- 19.13.37 - Ripristina le vecchie animazioni dei numeri in rotazione
- La versione dell\'app da simulare
- Digita la versione dell\'app da simulare
- Modifica la versione da camuffare dell\'app
- Camuffa la versione dell\'app
- "La versione dell'app sarà camuffata a una versione meno recente di YouTube.
+ 18.48.39 - Disattiva l\'aggiornamento in tempo reale delle visualizzazioni e dei mi piace
+ 19.13.37 - Ripristina il vecchio effetto contatore dei numeri
+ Versione dell\'app da camuffare
+ Digita la versione dell\'app da camuffare.
+ Modifica la versione dell\'app da camuffare
+ Attiva il camuffamento della versione dell\'app
+ "La versione dell'app sarà camuffata ad una versione precedente di YouTube.
-Questo cambierà l'aspetto e le caratteristiche dell'app, ma possono verificarsi effetti collaterali sconosciuti.
+Questo cambierà l'aspetto e le caratteristiche dell'app, ma potrebbero verificarsi effetti collaterali sconosciuti.
-Se disattivata in seguito, si consiglia di cancellare i dati dell'app per evitare errori grafici."
- "Simula le dimensioni del dispositivo per sbloccare qualità video superiori che potrebbero non essere disponibili sul tuo dispositivo"
- Simula le dimensioni del dispositivo
- Il codec video iOS è AVC (H.264), VP9 o AV1.
- il codec video iOS è AVC (H.264).
+Se in seguito questa impostazione verrà disattivata, si consiglia di cancellare i dati dell'app per evitare bug dell'interfaccia."
+ "Camuffa le dimensioni del dispositivo portandole al valore massimo.
+L'alta qualità potrebbe essere sbloccata per alcuni video che richiedono dimensioni del dispositivo elevate, ma non per tutti i video.
+"
+ Camuffa le dimensioni del dispositivo
+ Il codec video è AVC (H.264), VP9 o AV1.
+ Il codec video è AVC (H.264).
Forza iOS AVC (H.264)
- "Abilitando questo si potrebbe migliorare la durata della batteria e correggere i problemi di riproduzione.
+ "L'attivazione di questa impostazione potrebbe migliorare la durata della batteria e risolvere il problema della riproduzione a scatti.
-AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizzerà più dati internet rispetto a VP9 o AV1."
+Nota: AVC (H.264) ha una risoluzione massima di 1080p e la riproduzione utilizzerà più dati internet rispetto a VP9 o AV1."
"• Il menù Traccia Audio è mancante.
• Il menù Volume Stabile è mancante."
"• Il menù Traccia Audio è mancante.
@@ -1631,81 +1645,81 @@ AVC (H. 264) ha una risoluzione massima di 1080p e la riproduzione video utilizz
• Nessun codec audio Opus."
Effetti collaterali del camuffamento
• Il video potrebbe non essere riprodotto.
- Il client utilizzato per recuperare i dati di streaming è nascosto nelle statistiche per nerd.
- Il client utilizzato per recuperare i dati streaming è mostrato nelle statistiche per nerd.
+ Il client usato per recuperare i dati in streaming è nascosto nelle statistiche per nerd.
+ Il client usato per recuperare i dati in streaming è visibile nelle statistiche per nerd.
Mostra nelle statistiche per nerd
- "I dati di streaming non sono camuffati. La riproduzione video potrebbe non funzionare."
+ "I dati in streaming non sono camuffati. La riproduzione potrebbe non funzionare."
I dati in streaming sono camuffati.
- Camuffa data streaming
+ Camuffa i dati in streaming
Android
Android TV
Android VR
iOS
Client predefinito
- Disattivare questa impostazione potrebbe causare problemi di riproduzione video.
- La sensibilità dello scorrimento della luminosità deve essere compresa tra 1 e 1000 (%).
- Configura la distanza minima per scorrere la luminosità tra 1 e 1000 (%).\nPiù breve è la distanza minima, più velocemente cambia il livello di luminosità.
- Sensibilità dello scorrimento luminosità
- I gesti di trascinamento in modalità Blocca Schermo sono disattivati
- I gesti di trascinamento in modalità Blocca Schermo sono attivati
+ La disattivazione di questa impostazione potrebbe causare problemi di riproduzione.
+ La sensibilità del gesto della luminosità deve essere tra 1 e 1000 (%)
+ Configura la distanza minima per scorrere la luminosità tra 1 e 1000 (%).\nPiù breve è la distanza minima, più velocemente cambia la luminosità.
+ La sensibilità del gesto della luminosità
+ I gesti di trascinamento in modalità Blocca Schermo sono disattivati.
+ I gesti di trascinamento in modalità Blocca Schermo sono attivati.
Attiva i gesti di trascinamento in modalità Blocca Schermo
Automatico
- La quantità di interazioni prima che il trascinamento si verifichi
- L\'ampiezza del limite di trascinamento
+ Il limite di ampiezza entro cui deve avvenire il trascinamento.
+ Il limite di ampiezza del trascinamento
La visibilità dello sfondo in sovrapposizione durante il trascinamento.
- La visibilità dello sfondo durante il trascinamento
- La dimensione dell\'area trascinabile non può essere superiore a 50. Ripristina il valore predefinito.
- Percentuale dell\'area dello schermo scorrevole.\n\nNota: ciò modificherà anche la dimensione dell\'area dello schermo per il gesto doppio tocco.
- Dimensioni dello scorrimento dello schermo in sovrapposizione
- La dimensione del testo in sovrapposizione durante il trascinamento
+ La visibilità dello sfondo del trascinamento
+ La dimensione dell\'area trascinabile non può essere superiore a 50
+ La percentuale dell\'area trascinabile.\n\nNota: questo modificherà anche la dimensione dell\'area dello schermo del gesto Doppio Tocco.
+ La dimensione dello schermo in sovrapposizione del trascinamento
+ La dimensione del testo in sovrapposizione durante il trascinamento.
La dimensione del testo del trascinamento
- La visibilità in millisecondi della sovrapposizione.
+ Il tempo in millisecondi per cui la sovrapposizione del trascinamento è visibile.
La durata della sovrapposizione del trascinamento
- La sensibilità dello scorrimento del volume deve essere compresa tra 1-1000 (%).
- Configurare la distanza minima per scorrere il volume tra 1 e 1000 (%).\n\nPiù breve è la distanza minima, più il livello del volume cambia.\n\nLa sensibilità consigliata dello scorrimento del volume è 100% a livelli di 15 e 10% a livelli di 150 volumi.
- Sensibilità scorrimento del volume
+ La sensibilità del gesto del volume deve essere tra 1 e 1000 (%)
+ Configura la distanza minima per scorrere il volume tra 1 e 1000 (%).\n\nPiù breve è la distanza minima, più velocemente cambia il volume.\n\nLa sensibilità consigliata è del 100% a incrementi di 15 volumi e del 10% a incrementi di 150 volumi.
+ La sensibilità del gesto del volume
"Scambia le posizioni del pulsante Crea con il pulsante notifiche camuffando informazioni del dispositivo.
• Potrebbe essere necessario riavviare il dispositivo per rendere effettiva la modifica di questa impostazione.
• Disabilitare questa impostazione carica più annunci dal lato server.
• Dovresti disabilitare questa impostazione per rendere visibili gli annunci nei video."
- Il pulsante Crea non è scambiato con il pulsante Notifiche.
- "Il pulsante Crea è scambiato con il pulsante Notifiche.
+ Il pulsante Crea non è sostituito dal pulsante Notifiche.
+ "Il pulsante Crea è sostituito dal pulsante Notifiche.
-Nota: Abilitando questo nasconde forzatamente anche gli annunci video."
- Scambia il pulsante Crea con il pulsante notifiche
- "Disabilitare questo potrebbe caricare più annunci dal server.
+Nota: l'attivazione di questa impostazione nasconderà anche gli annunci video."
+ Sostituisci il pulsante Crea con il pulsante Notifiche
+ "La disattivazione di questa impostazione potrebbe caricare più annunci dal server.
-Inoltre, gli annunci non saranno più bloccati negli Shorts.
+Inoltre, gli annunci degli Shorts non saranno più bloccati.
-Se questa impostazione non ha effetto, prova a passare alla modalità Incognito."
+Se questa impostazione non ha effetto, prova a passare alla navigazione in incognito."
Inventario
RVX Music
- %s Non è installato. Per favore installalo.
- Nome del pacchetto di RVX Music installato.
- Nome pacchetto RVX Music
- • La cronologia non funziona.
+ %s non è installato. Per favore installalo.
+ Il nome del pacchetto dell\'app RVX Music installata.
+ Nome del pacchetto dell\'app RVX Music
+ La cronologia è bloccata.
"• Segue le impostazioni di cronologia dell'account Google.
• La cronologia potrebbe non funzionare a causa di DNS o VPN."
- • Segue le impostazioni di cronologia dell\'account Google.
- Informazioni sulla cronologia
- Clicca per aprire la gestione della cronologia di YouTube.
+ Segue le impostazioni di cronologia dell\'account Google.
+ Stato della cronologia
+ Tocca per aprire la gestione della cronologia di YouTube.
Gestisci tutta la cronologia
Originale
Sostituisci dominio
Blocca cronologia
- Tipo di cronologia
- Aggiunta del canale \'%1$s\' alla whitelist %2$s non riuscita.
- Canale \'%1$s\' è stato aggiunto alla whitelist %2$s.
- Non ci sono canali whitelisted.
- Non aggiunto alla whitelist.
- Impossibile caricare le informazioni del canale.
- Aggiunto alla whitelist.
+ Cambia il tipo di cronologia
+ Aggiunta del canale \"%1$s\" alla whitelist %2$s non riuscita
+ Il canale \"%1$s\" è stato aggiunto alla whitelist %2$s
+ Non ci sono canali nella whitelist
+ Non aggiunto alla whitelist
+ Caricamento delle informazioni del canale non riuscito
+ Aggiunto alla whitelist
Velocità di riproduzione
- Rimuovere il canale \'%1$s\' dalla whitelist %2$s?
- Rimozione del canale \'%1$s\' dalla whitelist %2$s non riuscita.
- Canale \'%1$s\' è stato rimosso dalla whitelist %2$s.
+ Rimuovere il canale \"%1$s\" dalla whitelist %2$s?
+ Rimozione del canale \"%1$s\" dalla whitelist %2$s non riuscita
+ Il canale \"%1$s\" è stato rimosso dalla whitelist %2$s
Controlla o rimuovi l\'elenco dei canali aggiunti alla whitelist.
- Whitelist canale
+ Whitelist dei canali
SponsorBlock
diff --git a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml
index d6ab0d33f..c5cd0e333 100644
--- a/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml
+++ b/src/main/resources/youtube/translations/ja-rJP/missing_strings.xml
@@ -1,19 +1,8 @@
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/ja-rJP/strings.xml b/src/main/resources/youtube/translations/ja-rJP/strings.xml
index ddd6c7cc5..308ba5edd 100644
--- a/src/main/resources/youtube/translations/ja-rJP/strings.xml
+++ b/src/main/resources/youtube/translations/ja-rJP/strings.xml
@@ -49,7 +49,7 @@ DeArrow の詳細については、ここをタップしてください。"取得する静止画のサムネイルの位置
[登録チャンネル]タブ
タイムスタンプの横に情報を表示します。
- タイムスタンプの横に情報を表示します。
+ "タイムスタンプの横に情報を表示します。"
タイムスタンプの横に情報を追加
現在の設定: 再生速度を表示します。
現在の設定: 画質を表示します。
@@ -271,6 +271,14 @@ DeArrow の詳細については、ここをタップしてください。"シークバーのタップを有効化します。
シークバーのタップを有効化します。
シークバーのタップを有効化
+ "この機能を有効化することにより、シークバーサムネイルがないライブのアーカイブにサムネイルが復元されます。
+
+注意:
+・通信量が増える可能性があります。
+・通信速度が遅いネットワークに接続している場合、シークバーサムネイルが表示されるまでに時間がかかることがあります。"
+ シークバーサムネイルを高画質化します。
+ シークバーサムネイルを高画質化します。
+ 高画質のサムネイルを有効化
プレーヤーの左下にタイムスタンプを表示します。\n\n注意: \n・プレーヤーの背景をタップすると UI が非表示 (画面クリアモード) になります。\n
・開発段階の機能であるため、レイアウトが崩れる可能性があります。
"プレーヤーの左下にタイムスタンプを表示します。
@@ -496,6 +504,9 @@ DeArrow の詳細については、ここをタップしてください。"シークバーを上スワイプで表示されるフィルムストリップを非表示にします。
シークバーを上スワイプで表示されるフィルムストリップを非表示にします。
フィルムストリップオーバーレイを非表示
+ ホームフィードの右下にある「フィードを調整する」ボタンを非表示にします。
+ ホームフィードの右下にある「フィードを調整する」ボタンを非表示にします。
+ フローティングボタンを非表示
動画を検索する際、右下に表示される音声入力のフローティングボタンを非表示にします。
動画を検索する際、右下に表示される音声入力のフローティングボタンを非表示にします。
音声入力のフローティングボタンを非表示
@@ -714,6 +725,9 @@ DeArrow の詳細については、ここをタップしてください。"「前の動画に戻る」「次の動画に進む」ボタンを非表示にします。
「前の動画に戻る」「次の動画に進む」ボタンを非表示にします。
前の動画に戻る/次の動画に進むボタンを非表示
+ 動画のタイトルの下部にある「○○ストア」欄を非表示にします。
+ 動画のタイトルの下部にある「○○ストア」欄を非表示にします。
+ ストア欄を非表示
「YouTube Music」ボタンを非表示にします。
「YouTube Music」ボタンを非表示にします。
YouTube Music ボタンを非表示
diff --git a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml b/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml
deleted file mode 100644
index 8b1378917..000000000
--- a/src/main/resources/youtube/translations/ko-rKR/missing_strings.xml
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/main/resources/youtube/translations/ko-rKR/strings.xml b/src/main/resources/youtube/translations/ko-rKR/strings.xml
index 186070d4c..1a29cf800 100644
--- a/src/main/resources/youtube/translations/ko-rKR/strings.xml
+++ b/src/main/resources/youtube/translations/ko-rKR/strings.xml
@@ -51,7 +51,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
스틸 컷 썸네일에서 표시되는 이미지
구독 탭
타임스탬프에서 정보를 표시하지 않습니다.\n• 정보: 동영상 화질, 동영상 재생 속도
- 타임스탬프에서 정보를 표시합니다.\n• 정보: 동영상 화질, 동영상 재생 속도
+ "타임스탬프에서 정보를 표시합니다.\n• 정보: 동영상 화질, 동영상 재생 속도"
타임스탬프에서 정보 표시하기
현재 동영상 재생 속도 값을 표시합니다.\n\n동영상을 재생하는 동안에 타임스탬프 정보를 길게 누르면 다른 정보로 빠르게 전환할 수 있습니다.
현재 동영상 화질 값을 표시합니다.\n\n동영상을 재생하는 동안에 타임스탬프 정보를 길게 누르면 다른 정보로 빠르게 전환할 수 있습니다.
@@ -361,9 +361,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
%s가 설치되지 않았습니다. 설치하세요.
YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
재생목록 외부 다운로더 앱 패키지명
- NewPipe 또는 YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
길게 눌러서 실행할 NewPipe 또는 YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
길게 눌러서 동영상 외부 다운로더 앱 패키지명
+ NewPipe 또는 YTDLnis와 같은 설치된 외부 다운로더 앱 패키지명을 설정하세요.
동영상 외부 다운로더 앱 패키지명
"
다음과 같은 상황에서 동영상이 전체 화면으로 전환됩니다:
@@ -379,6 +379,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
"계정 메뉴 및 내 페이지에서 구성요소가 숨겨집니다.
일부 구성요소는 숨겨지지 않을 수 있습니다."
계정 메뉴 숨기기
+ AI-generated video summary 섹션이 표시됩니다.
+ AI-generated video summary 섹션이 숨겨집니다.
+ AI-generated video summary 섹션 숨기기
검색 결과에서 음악 앨범 카드가 표시됩니다.
검색 결과에서 음악 앨범 카드가 숨겨집니다.
음악 앨범 카드 숨기기
@@ -745,8 +748,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
댓글 미리보기가 표시됩니다.
댓글 미리보기가 숨겨집니다.
댓글 미리보기 숨기기
- 댓글 섹션의 크기가 변경되므로 댓글 섹션에서 '실시간 채팅 다시보기' 및 'YouTube Music에서 감상하기'를 열 수 없습니다.
- 댓글 섹션의 크기가 변경되지 않으므로 댓글 섹션에서 '실시간 채팅 다시보기' 및 'YouTube Music에서 감상하기'를 열 수 있습니다.
+ 댓글 섹션의 크기가 변경되므로 댓글 섹션에서 \'실시간 채팅 다시보기\' 및 \'YouTube Music에서 감상하기\'를 사용할 수 없습니다.
+ 댓글 섹션의 크기가 변경되지 않으므로 댓글 섹션에서 \'실시간 채팅 다시보기\' 및 \'YouTube Music에서 감상하기\'를 사용할 수 있습니다.
댓글 미리보기 유형 숨기기
프로모션 알림 배너가 표시됩니다.
프로모션 알림 배너가 숨겨집니다.
@@ -1111,7 +1114,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요."
웹 검색 결과가 숨겨집니다.
웹 검색 결과 숨기기
YouTube Doodles가 표시됩니다.\n• Doodles: 기념일 로고 헤더
- YouTube Doodles가 숨겨집니다.\n• Doodes: 기념일 로고 헤더
+ YouTube Doodles가 숨겨집니다.\n• Doodles: 기념일 로고 헤더
YouTube Doodles 숨기기
"YouTube Doodles는 공휴일이나 기념일 등, 그날에 맞춘 디자인으로 변경되는 왼쪽 상단의 YouTube 헤더를 말합니다.
@@ -1641,7 +1644,7 @@ API Key를 발급받는 방법을 보려면 여기를 누르세요."
iOS 동영상 코덱을 AVC (H.264), VP9 또는 AV1으로 활성화합니다.\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들이 제거되어 360p와 1080p(Premium 기능)만 선택할 수 있거나 화질 메뉴를 선택할 수 없을 수 있습니다.
iOS 동영상 코덱을 AVC (H.264)로 활성화합니다.\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값들이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다
iOS AVC (H.264) 강제로 활성화하기
- "이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다.
+ "이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다.
AVC (H.264)의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 모바일 데이터가 사용되오니 주의하세요."
"• 오디오 트랙 메뉴가 표시되지 않습니다.\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다."
diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
new file mode 100644
index 000000000..ada29f025
--- /dev/null
+++ b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
@@ -0,0 +1,6 @@
+
+
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
+
diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml
index 43a6f4273..57699e8a5 100644
--- a/src/main/resources/youtube/translations/pl-rPL/strings.xml
+++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml
@@ -49,7 +49,7 @@ Stuknij tutaj, aby dowiedzieć się więcej o DeArrow."
Czas, z którego ma być przechwycona miniaturka z filmu
Na stronie subskrypcji
Niewidoczna
- Widoczna
+ "Widoczna"
Dodatkowa informacja obok czasu
Prędkość odtwarzania
Jakość filmu
@@ -268,6 +268,14 @@ Efekt uboczny: motyw Cairo powiązany m.in. z paskiem postępu filmu, nakłada s
Wyłączone
Włączone
Stukanie w pasek postępu filmu
+ "Przywróci to miniaturki w transmisjach na żywo, które ich nie mają.
+
+Zużycie danych internetowych może być większe, a miniaturki w pasku postępu filmu mogą mieć drobne opóźnienie przed wyświetleniem.
+
+Funkcja działa najlepiej przy bardzo szybkim połączeniu internetowym."
+ Średnia
+ Wysoka
+ Rozdzielczość miniaturek
Wyłączony
"Włączony
@@ -491,7 +499,10 @@ Sklep"
Ankiety na stronie głównej
Włączone
Wyłączone
- Przewijanie w trybie taśmy filmowej
+ Precyzyjne przewijanie
+ Widoczny
+ Ukryty
+ Pływający przycisk
Widoczny
Ukryty
Dolny przycisk od mikrofonu
@@ -711,6 +722,9 @@ Słowa z wielkimi literami w środku muszą być wpisane z odpowiednią wielkoś
Widoczne
Ukryte
Przyciski do poprzedniego i następnego filmu
+ Widoczne
+ Ukryte
+ Półki sklepowe w odtwarzaczu
Widoczny
Ukryty
Przycisk od odtwarzania w YouTube Music
@@ -1710,19 +1724,4 @@ Jeśli opcja nie przynosi skutku, spróbuj przełączyć się na tryb incognito.
Sprawdź lub usuń listę kanałów dodanych do białej listy
Biała lista kanałów
SponsorBlock
-
- "Przywróci to miniaturki w transmisjach na żywo, które ich nie mają.
-
-Zużycie danych internetowych może być większe, a miniaturki w pasku postępu filmu mogą mieć drobne opóźnienie przed wyświetleniem.
-
-Funkcja działa najlepiej przy bardzo szybkim połączeniu internetowym."
- Średnia
- Wysoka
- Rozdzielczość miniaturek
- Widoczny
- Ukryty
- Pływający przycisk
- Widoczne
- Ukryte
- Półki sklepowe
diff --git a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml
index 5fea28b1e..43788e232 100644
--- a/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/pt-rBR/missing_strings.xml
@@ -2,24 +2,13 @@
Don\'t show again
Courses / Learning
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/pt-rBR/strings.xml b/src/main/resources/youtube/translations/pt-rBR/strings.xml
index b76402247..b8731d662 100644
--- a/src/main/resources/youtube/translations/pt-rBR/strings.xml
+++ b/src/main/resources/youtube/translations/pt-rBR/strings.xml
@@ -50,7 +50,7 @@ Toque aqui para saber mais sobre o DeArrow."
Hora do vídeo para tirar a foto
Aba de inscrições
Adicionar informação de registro de tempo está desativado.
- Adicionar informação de registro de tempo está ativado.
+ "Adicionar informação de registro de tempo está ativado."
Adicionar informações de registro de tempo
Adicionar velocidade de reprodução.
Adicionar qualidade do vídeo.
@@ -268,6 +268,14 @@ Efeito colateral: o tema Cairo também é aplicado aos pontos de notificação."
O toque na barra de progresso desativado.
O toque na barra de progresso está ativado.
Ativar toque na barra de progresso
+ "Isso irá restaurar miniaturas para transmissões ao vivo que não têm miniaturas de barra de progresso.
+
+O uso de dados da Internet pode ser maior, e as miniaturas de barra de progresso terão um pequeno atraso antes de serem exibidas.
+
+Este recurso funciona melhor com uma conexão de Internet muito rápida."
+ As miniaturas na barra de progresso são de qualidade média.
+ As miniaturas na barra de progresso são de alta qualidade.
+ Ativar miniaturas de alta qualidade
A marcação de tempo está desativada.
"A marcação de tempo está ativada.
@@ -487,6 +495,9 @@ Loja"
A sobreposição da tira de filme será exibida.
A sobreposição da tira de filme está oculta.
Ocultar sobreposição de tira de filme
+ O botão flutuante será exibido.
+ O botão flutuante está oculto.
+ Ocultar botão flutuante
O botão do microfone flutuante será exibido.
O botão do microfone flutuante está oculto.
Ocultar botão de microfone flutuante
@@ -703,6 +714,9 @@ Palavras com letras maiúsculas no meio devem ser inseridas com maiúsculas (ou
Os botões serão exibidos.
Os botões estão ocultos.
Ocultar o botão anterior & próximo
+ O painel de compras do reprodutor será exibido.
+ O painel de compras do reprodutor está oculto.
+ Ocultar painel de compras do reprodutor
O botão YouTube Music será exibido.
O botão YouTube Music está oculto.
Ocultar botão do YouTube Music
diff --git a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml
index 08acb435e..a820effd6 100644
--- a/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml
+++ b/src/main/resources/youtube/translations/ru-rRU/missing_strings.xml
@@ -1,21 +1,10 @@
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/ru-rRU/strings.xml b/src/main/resources/youtube/translations/ru-rRU/strings.xml
index 01509582f..7d521ac00 100644
--- a/src/main/resources/youtube/translations/ru-rRU/strings.xml
+++ b/src/main/resources/youtube/translations/ru-rRU/strings.xml
@@ -51,7 +51,7 @@
Время захвата миниатюры
Подписки
Информация метки времени отключена.
- Информация метки времени включена.
+ "Информация метки времени включена."
Информация метки времени
Показывать скорость воспроизведения.
Добавить качество видео.
@@ -201,9 +201,9 @@
Анимация прокручивания чисел включена.
Анимация прокручивания чисел отключена.
Анимация прокручивания чисел
- Главы в шкале воспроизведения отображены.
- Главы в шкале воспроизведения скрыты.
- Главы в шкале воспроизведения
+ Главы в прогрессе отображены.
+ Главы в прогрессе скрыты.
+ Главы в прогрессе
Анимация кнопки \"Лайк\" включена.
Анимация кнопки \"Лайк\" отключена.
Анимация кнопки \"Лайк\"
@@ -228,12 +228,12 @@
• Воспроизведение видео будет использовать больше сетевых данных, чем с VP9.
• HDR воспроизведения нет, HDR видео все еще использует VP9 кодек."
VP9 кодек
- Тема Каир шкалы воспроизведения отключена.
- "Тема Каир шкалы воспроизведения включена.
+ Тема Каир прогресса отключена.
+ "Тема Каир прогресса включена.
Дополнительно:
Тема также применяется к точкам уведомлений."
- Тема Каир шкалы воспроизведения
+ Тема Каир прогресса
Наложение элементов управления полноэкранное.
Наложение элементов управления не полноэкранное.
Компактные элементы управления
@@ -272,6 +272,14 @@
Перемотка нажатием отключена.
Перемотка нажатием включена.
Перемотка нажатием
+ "Будут восстановлены эскизы прямых трансляций, у которых отсутствовали миниатюры в прогрессе.
+
+Поток данных повышается, и миниатюры будут подгружаться с задержкой.
+
+Рекомендуется интернет соединение с хорошей пропускной способностью."
+ Миниатюры высокого качества в прогрессе отключены.
+ Миниатюры высокого качества в прогрессе включены.
+ Миниатюры высокого качества
Метка времени отключена.
"Метка времени включена.
@@ -369,9 +377,9 @@
Карточки альбомов отображены.
Карточки альбомов скрыты.
Карточки альбомов
- Секция \"Атрибуты\" (Особенные места, Игры, Музыка) отображена.
- Секция \"Атрибуты\" (Особенные места, Игры, Музыка) скрыта.
- Секция \"Атрибуты\"
+ Секция атрибутов (Особенные места, Игры, Музыка) отображена.
+ Секция атрибутов (Особенные места, Игры, Музыка) скрыта.
+ Секция атрибутов
Превью автовоспроизведения отображено.
Превью автовоспроизведения скрыто.
Превью автовоспроизведения
@@ -398,9 +406,9 @@
Правила канала отображены.
Правила канала скрыты.
Правила канала
- Секция участников канала отображена.
- Секция участников канала скрыта.
- Секция участников канала
+ Полка участников канала отображена.
+ Полка участников канала скрыта.
+ Полка участников канала
Ссылки в верхней части профиля канала отображены.
Ссылки в верхней части профиля канала скрыты.
Ссылки в верхней части профиля канала
@@ -419,9 +427,9 @@ Shorts
Главы отображены.
Главы скрыты.
Главы
- Секция эпизодов отображена.
- Секция эпизодов скрыта.
- Секция эпизодов
+ Полка эпизодов отображена.
+ Полка эпизодов скрыта.
+ Полка эпизодов
Кнопка \"Клип\" отображена.
Кнопка \"Клип\" скрыта.
Кнопка \"Клип\"
@@ -445,7 +453,7 @@ Shorts
Секция комментариев в ленте
Секция комментариев отображена.
Секция комментариев скрыта.
- Секция \"Комментарии\"
+ Секция комментариев
В канале отображены.
В канале скрыты.
Посты сообщества в канале
@@ -473,9 +481,9 @@ Shorts
Расширенные эпизоды отображены.
Расширенные эпизоды скрыты.
Расширенные эпизоды под видео
- Расширяемые секции отображены.
- Расширяемые секции скрыты.
- Расширяемые секции
+ Расширяемые полки отображены.
+ Расширяемые полки скрыты.
+ Расширяемые полки
Кнопка \"Субтитры\" в ленте отображена.
Кнопка \"Субтитры\" в ленте скрыта.
Кнопка \"Субтитры\" в ленте
@@ -493,12 +501,15 @@ Shorts
Покадровая лента при перемотке отображена.
Покадровая лента при перемотке скрыта.
Покадровая лента при перемотке
+ Плавающая кнопка отображена.
+ Плавающая кнопка скрыта.
+ Плавающая кнопка
Плавающая кнопка микрофона отображена.
Плавающая кнопка микрофона скрыта.
Плавающая кнопка микрофона
- Секции \"Для вас\" отображены.
- Секции \"Для вас\" скрыты.
- Секция \"Для вас\"
+ Полка \"Для вас\" отображена.
+ Полка \"Для вас\" скрыта.
+ Полка \"Для вас\"
Полноэкранная реклама отображена.
Полноэкранная реклама скрыта.
Полноэкранная реклама
@@ -598,9 +609,9 @@ Shorts
Плейлист \"Джем\" отображен.
Плейлист \"Джем\" скрыт.
Плейлист \"Джем\"
- Секции фильмов отображены.
- Секции фильмов скрыты.
- Секции фильмов
+ Полки фильмов отображены.
+ Полки фильмов скрыты.
+ Полки фильмов
Панель навигации отображена.
Панель навигации скрыта.
Панель навигации
@@ -712,6 +723,9 @@ Shorts
Кнопки отображены.
Кнопки скрыты.
Кнопки предыдущего и следующего видео
+ Полка покупок в плеере отображена.
+ Полка покупок в плеере скрыта.
+ Полка покупок в плеере
Кнопка \"YouTube Music\" отображена.
Кнопка \"YouTube Music\" скрыта.
Кнопка YouTube Music
@@ -793,9 +807,9 @@ Shorts
Сообщение при отмотке назад отображено.
Сообщение при отмотке назад скрыто.
Сообщение при отмотке назад
- Метки глав в шкале воспроизведения отображены.
- Метки глав в шкале воспроизведения скрыты.
- Метки глав в шкале воспроизведения
+ Метки глав в прогрессе отображены.
+ Метки глав в прогрессе скрыты.
+ Метки глав в прогрессе
Шкала воспроизведения отображена.
Шкала воспроизведения скрыта.
Миниатюры шкалы воспроизведения отображены.
@@ -961,11 +975,11 @@ Shorts
В ленте подписок отображены.
В ленте подписок скрыты.
Shorts в ленте подписок
- "Скрывает секции Shorts.
+ "Скрывает полки Shorts.
Ограничения:
Официальные заголовки в результатах поиска будут скрыты."
- Секции Shorts
+ Полки Shorts
Кнопка \"Магазин\" отображена.
Кнопка \"Магазин\" скрыта.
Кнопка \"Магазин\"
@@ -1032,9 +1046,9 @@ Shorts
Кнопка \"Спасибо\" отображена.
Кнопка \"Спасибо\" скрыта.
Кнопка \"Спасибо\"
- Секция билетов отображена.
- Секция билетов скрыта.
- Секция билетов
+ Полки билетов отображены.
+ Полки билетов скрыты.
+ Полки билетов
Метка времени отображена.
Метка времени скрыта.
Метка времени
@@ -1258,7 +1272,7 @@ Shorts
Выдвижное меню плеера
Плеер
Имя пользователя YouTube - \"RYU\"
- Return YouTube Dislike
+ Вернуть YouTube Dislike
SponsorBlock
Настроить компоненты шкалы воспроизведения.
Шкала воспроизведения
@@ -1343,7 +1357,7 @@ Shorts
Ключ \"RYU\" Data API
1. Перейдите <a href=\"%1$s\">Новый проект</a>.<br>2. Нажмите <b>Создать</b>.<br>3. Перейдите <a href=\"%2$s\">YouTube Data API v3</a>.<br>4. Нажмите <b>Включить</b>.<br>5. Нажмите <b>Создать учетные данные</b>.<br>6. Выберите <b>Публичные данные</b>.<br>7. Нажмите <b>Далее</b>.<br>8. Скопируйте ключ API.<br><br>※ Ключом API нельзя поделиться, поэтому он не доступен в настройках Импорт/Экспорт.
Проблема с ключом разработчика \"RYU\" Data API v3
- О \"Return YouTube Dislike\"
+ О \"Вернуть YouTube Dislike\"
Данные об отметках \"Не нравится\" предоставлены Return YouTube Dislike API.\nНажмите здесь, чтобы узнать больше.
ReturnYouTubeDislike.com
Компактная кнопка \"Лайк\" отключена.
@@ -1571,7 +1585,7 @@ Shorts
Анимация двойного нажатия
Нижнее поле отступа \"мета\" панели может быть только в диапазоне от 0 до 64.
Сброс по умолчанию.
- Отступ от шкалы воспроизведения до \"мета\" панели.
+ Отступ от прогресса до \"мета\" панели.
Диапазон от 0 до 64.
Нижнее поле отступа \"мета\" панели
Высота должна быть от 0 до 100 (%).
diff --git a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml
index ac9f93534..fe4890375 100644
--- a/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml
+++ b/src/main/resources/youtube/translations/tr-rTR/missing_strings.xml
@@ -49,16 +49,14 @@ This feature works best with a very fast internet connection."
Seekbar thumbnails are medium quality.
Seekbar thumbnails are high quality.
Enable high quality thumbnails
- "There is a YouTube server-side bug that causes rolling number text such as likes, views, and upload dates to be hidden for some users.
-
-A temporary workaround for this issue is to spoof the app version to 19.13.37.
-
-Do you want to spoof the app version before restarting the app?"
Package name of your installed external downloader app, such as YTDLnis.
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
Highlighted search links are shown.
Highlighted search links are hidden.
Hide highlighted search links
@@ -80,7 +78,6 @@ Do you want to spoof the app version before restarting the app?"
Hide 1080p Premium menu
Shopping shelf is shown.
Shopping shelf is hidden.
- Hide player shopping shelf
Related videos are shown.
Related videos are hidden.
Hide related videos
diff --git a/src/main/resources/youtube/translations/tr-rTR/strings.xml b/src/main/resources/youtube/translations/tr-rTR/strings.xml
index f14493999..a0c06ea98 100644
--- a/src/main/resources/youtube/translations/tr-rTR/strings.xml
+++ b/src/main/resources/youtube/translations/tr-rTR/strings.xml
@@ -48,7 +48,7 @@ DeArrow hakkında daha fazla bilgi edinmek için buraya dokunun."
Fotoğrafın çekileceği video süresi
Abonelikler sekmesi
Süre sayacının yanına gösterge eklenmiyor.
- Süre sayacının yanına gösterge ekleniyor.
+ "Süre sayacının yanına gösterge ekleniyor."
Süre sayacının yanına gösterge ekle
Videonun mevcut oynatma hızı gösteriliyor.
Videonun mevcut kalitesi gösteriliyor.
@@ -276,6 +276,7 @@ Siz sekmesi→ Kanalı görüntüle→ Menü→ Ayarlar"
Devam etmek istiyor musunuz?
Varsayılan değerlere sıfırla.
Düzeni normal şekilde yüklemek için yeniden başlatın
+ "\?"
Yenile ve yeniden başlat
Ayarlar dışa aktarılamadı.
Ayarlar başarıyla dışa aktarıldı.
@@ -632,6 +633,7 @@ Ortasında büyük harf bulunan kelimeler büyük harfle birlikte girilmelidir (
Düğmeler görünür.
Düğmeler gizli.
Önceki & sonraki düğmelerini gizle
+ \?
YouTube Müzik butonu gösteriliyor.
YouTube Müzik butonu gizleniyor.
YouTube Music butonunu gizle
diff --git a/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml
index 4bce935b0..ada29f025 100644
--- a/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml
+++ b/src/main/resources/youtube/translations/uk-rUA/missing_strings.xml
@@ -1,17 +1,6 @@
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
diff --git a/src/main/resources/youtube/translations/uk-rUA/strings.xml b/src/main/resources/youtube/translations/uk-rUA/strings.xml
index e5ae1f451..714cf9963 100644
--- a/src/main/resources/youtube/translations/uk-rUA/strings.xml
+++ b/src/main/resources/youtube/translations/uk-rUA/strings.xml
@@ -43,7 +43,7 @@
Час відео з якого береться кадр
Вкладка Підписки
Додавання інформації біля мітки часу вимкнено.
- Додавання інформації біля мітки часу увімкнено.
+ "Додавання інформації біля мітки часу увімкнено."
Додавати інформацію біля мітки часу
Додається швидкість відтворення.
Додається якість відео.
@@ -262,6 +262,14 @@
Натискання на смугу прогресу вимкнено.
Натискання на смугу прогресу увімкнено.
Увімкнути натискання на смугу прогресу
+ "Це відновить мініатюри для прямих трансляцій, але не мініатюри панелі прогресу.
+
+Інтернет даних може використовуватися більше, та мініатюри панелі прогресу матимуть невелику затримку перед показом.
+
+Ця функція працює найкраще з дуже швидким інтернетом."
+ Мініатюри панелі прогресу середньої якості.
+ Мініатюри панелі прогресу високої якості.
+ Увімкнути високоякісні мініатюри
Мітку часу вимкнено.
"Мітку часу увімкнено.
@@ -487,6 +495,9 @@
Покадрову перемотку показується.
Покадрову перемотку приховано.
Приховати покадрову перемотку
+ Плавучу кнопку показується.
+ Плавучу кнопку приховано.
+ Приховати плавучу кнопку
Плавучу кнопку мікрофону показується.
Плавучу кнопку мікрофону приховано.
Приховати плавучу кнопку мікрофону
@@ -706,6 +717,9 @@
Кнопки показується.
Кнопки приховано.
Приховати кнопки Попереднє та Наступне
+ Полицю покупок показується.
+ Полицю покупок приховано.
+ Приховати полицю покупок в плеєрі
Кнопку YouTube Music показується.
Кнопку YouTube Music приховано.
Приховати кнопку Youtube Music
diff --git a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml
index 5fea28b1e..43788e232 100644
--- a/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml
+++ b/src/main/resources/youtube/translations/vi-rVN/missing_strings.xml
@@ -2,24 +2,13 @@
Don\'t show again
Courses / Learning
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
Displays the optimization dialog for GMSCore at each application startup.
Show optimization dialog for GMSCore
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Blue
MMT Green
MMT Orange
diff --git a/src/main/resources/youtube/translations/vi-rVN/strings.xml b/src/main/resources/youtube/translations/vi-rVN/strings.xml
index 781a6ab92..3fbffb04a 100644
--- a/src/main/resources/youtube/translations/vi-rVN/strings.xml
+++ b/src/main/resources/youtube/translations/vi-rVN/strings.xml
@@ -50,7 +50,7 @@ Nhấn vào đây để tìm hiểu thêm về DeArrow."
Thời điểm để lấy ảnh tĩnh từ video
Thẻ Kênh đăng ký
Thông tin không còn được thêm vào dấu thời gian.
- Thông tin được thêm vào dấu thời gian.
+ "Thông tin được thêm vào dấu thời gian."
Thêm thông tin vào dấu thời gian
Thêm Tốc độ phát.
Thêm Chất lượng video.
@@ -65,9 +65,11 @@ Nhấn vào đây để tìm hiểu thêm về DeArrow."
Vượt qua hạn chế
Gốc
Điện thoại
- Điện thoại (Tối đa 480 dpi)
+ Điện thoại
+(Tối đa 480 dpi)
Máy tính bảng
- Máy tính bảng (Tối thiểu 600 dpi)
+ Máy tính bảng
+(Tối thiểu 600 dpi)
Thay đổi giao diện
Đang sử dụng kiểu bật/tắt tuỳ chọn dạng công tắc.
Đang sử dụng kiểu bật/tắt tuỳ chọn dạng văn bản.
@@ -163,9 +165,9 @@ Hạn chế: Cài đặt này có thể sẽ không áp dụng cho các video kh
Bảng điều khiển tương tác đã được bật.
Bảng tương tác đã vô hiệu hóa.
Vô hiệu hóa bảng tương tác
- Phản hồi xúc giác được bật.
+ Phản hồi xúc giác đã bật.
Phản hồi xúc giác đã tắt.
- Tắt phản hồi xúc giác khi chuyển chương
+ Tắt phản hồi xúc giác khi vuốt phân cảnh
Phản hồi xúc giác được bật.
Phản hồi xúc giác đã tắt.
Tắt phản hồi xúc giác khi đăng ký kênh
@@ -198,18 +200,18 @@ Hạn chế: Cài đặt này có thể sẽ không áp dụng cho các video kh
Đã kích hoạt hoạt ảnh Số cuộn.
Đã vô hiệu hoá hoạt ảnh Số cuộn.
Vô hiệu hoá hoạt ảnh Số cuộn
- Các Chương đã được kích hoạt trên thanh tiến trình.
- Các Chương đã bị vô hiệu hoá trên thanh tiến trình.
- Vô hiệu hoá các Chương trong thanh tiến trình
+ Các phân cảnh đã được hiển thị trên thanh tiến trình.
+ Các phân cảnh đã bị ẩn trên thanh tiến trình.
+ Ẩn các phân cảnh trên thanh tiến trình
Đã kích hoạt hiệu ứng phun nước trên nút Thích.
Đã vô hiệu hoá hiệu ứng phun nước trên nút Thích.
Vô hiệu hoá hiệu ứng nút Thích
"Tắt tính năng nhấn và giữ để \"2x>>\".
Lưu ý:
-• Vô hiệu hoá lớp phủ tốc độ phát sẽ khôi phục lại thao tác trượt để tua giống bố cục cũ.
-• Tắt cài đặt này có thể không cưỡng ép bật lại lớp phủ tốc độ phát."
- Vô hiệu hoá nhấn giữ để phát 2x>>
+• Bật tùy chọn này sẽ khôi phục lại thao tác trượt để tua ở bố cục cũ.
+• Tắt tùy chọn này cũng không ép buộc tính năng nhấn và giữ để tua nhanh 2x được bật trở lại. Hãy xoá dữ liệu ứng dụng."
+ Tắt nhấn và giữ để phát 2x>>
Đã kích hoạt hoạt ảnh khởi động.
Đã vô hiệu hoá hoạt ảnh khởi động.
Vô hiệu hoá hoạt ảnh khởi động
@@ -229,7 +231,7 @@ Lưu ý:
"Thanh tiến trình kiểu Cairo đã được kích hoạt.
Hạn chế: Chủ đề Cairo cũng sẽ áp dụng cho dấu chấm thông báo của ứng dụng."
- Kích hoạt thanh tiến trình kiểu Cairo
+ Thanh tiến trình kiểu Cairo
Lớp phủ điều khiển trình phát thu gọn đã tắt.
Lớp phủ điều khiển trình phát thu gọn đã bật.
Lớp phủ điều khiển trình phát thu gọn
@@ -237,8 +239,8 @@ Hạn chế: Chủ đề Cairo cũng sẽ áp dụng cho dấu chấm thông bá
Đang áp dụng các giá trị tốc độ phát video tùy chỉnh.
Tốc độ phát tùy chỉnh
Đang sử dụng màu thanh tiến trình video mặc định.
- Đang sử dụng màu thanh tiến trình video tuỳ chỉnh.
- Màu thanh tiến trình tuỳ chỉnh
+ Đang sử dụng màu thanh tiến trình video tùy chỉnh.
+ Màu thanh tiến trình tùy chỉnh
Đang ghi nhật ký gỡ lỗi mà không có thông tin bộ đệm.
Đang ghi nhật ký gỡ lỗi bao gồm thông tin bộ đệm.
Nhật ký gỡ lỗi bộ đệm
@@ -256,25 +258,33 @@ Hạn chế: Chủ đề Cairo cũng sẽ áp dụng cho dấu chấm thông bá
Màn hình tải màu gradient
Khoảng cách giữa các nút trên thanh điều hướng về mặc định.
Khoảng cách giữa các nút trên thanh điều hướng sẽ hẹp hơn.
- Nút điều hướng thu gọn
+ Thanh điều hướng thu gọn
Đang chuyển hướng URL khi mở các liên kết xuất hiện trên YouTube.
Đang bỏ qua chuyển hướng URL khi mở các liên kết xuất hiện trên YouTube.
Mở liên kết trực tiếp
Kích hoạt codec OPUS nếu phản hồi của trình phát bao gồm codec OPUS.
- Kích hoạt codec OPUS
+ Kích hoạt Codec OPUS
Không lưu độ sáng khi thoát ra hoặc vào chế độ toàn màn hình.
Lưu độ sáng khi thoát ra hoặc vào chế độ toàn màn hình.
Lưu độ sáng
Chạm thanh tiến trình video để tua đã tắt.
Chạm thanh tiến trình video để tua đã bật.
Chạm thanh tiến trình để tua
- Đã vô hiệu hoá Dấu thời gian.
- "Đã kích hoạt Dấu thời gian.
+ "Tính năng này sẽ khôi phục hình thu nhỏ cho các video phát trực tiếp không có hình thu nhỏ trên thanh tiến trình.
+
+Nhưng điều này cũng sẽ làm tiêu tốn nhiều dữ liệu di động hơn, và hình thu nhỏ trên thanh tiến trình sẽ được hiển thị với một độ trễ nhất định.
+
+Vì vậy bạn nên bật tính năng này khi có kết nối mạng ổn định."
+ Hình thu nhỏ trên thanh tiến trình có chất lượng trung bình.
+ Hình thu nhỏ trên thanh tiến trình có chất lượng cao.
+ Hình thu nhỏ chất lượng cao
+ Dấu thời gian đã bị tắt.
+ "Dấu thời gian đã được bật.
Hạn chế:
-• Cài đặt này không chỉ kích hoạt Dấu thời gian mà còn cho phép ẩn giao diện người dùng bằng cách nhấn vào nền trình phát.
-• Vì đây là tính năng đang trong giai đoạn phát triển của Google nên bố cục có thể bị hỏng."
- Bật Dấu thời gian
+• Cài đặt này không chỉ bật Dấu thời gian mà còn cho phép ẩn giao diện người dùng bằng cách nhấn vào nền trình phát.
+• Vì đây là tính năng đang trong giai đoạn phát triển của Google nên bố cục có thể bị lỗi."
+ Dấu thời gian
Đã vô hiệu hoá cử chỉ vuốt điều chỉnh độ sáng.
Đã kích hoạt cử chỉ vuốt điều chỉnh độ sáng.
Vuốt điều chỉnh độ sáng
@@ -295,7 +305,7 @@ Hạn chế:
Vuốt điều chỉnh âm lượng
Thanh điều hướng đã được hiển thị.
Thanh điều hướng đã được làm trong suốt.
- Kích hoạt thanh điều hướng trong suốt
+ Thanh điều hướng trong suốt
Đã vô hiệu hoá cử chỉ vuốt xuống từ khu vực bên dưới trình phát để xem ở chế độ toàn màn hình dọc.
Đã kích hoạt cử chỉ vuốt xuống từ khu vực bên dưới trình phát để xem ở chế độ toàn màn hình dọc.
Cử chỉ bên dưới trình phát
@@ -342,7 +352,7 @@ Bạn có muốn giả mạo phiên bản ứng dụng trước khi khởi độ
Đặt lại
Tìm kiếm trong %s
ReVanced Extended
- Trình tải xuống bên thứ ba
+ Trình tải xuống bên ngoài
Chưa được cài đặt
"Có vẻ như %1$s chưa được cài đặt.
Vui lòng tải xuống %2$s từ trang web."
@@ -362,8 +372,8 @@ Bạn có muốn giả mạo phiên bản ứng dụng trước khi khởi độ
"Ẩn các thành phần của trình đơn Tài khoản và thẻ Bạn.
Một số thành phần có thể không bị ẩn."
Bộ lọc trình đơn Tài khoản
- Đã hiện thẻ album.
- Đã ẩn thẻ album.
+ Đĩa nhạc được hiển thị trong kết quả tìm kiếm.
+ Đĩa nhạc đã ẩn khỏi kết quả tìm kiếm.
Ẩn thẻ album
Phần Địa điểm nổi bật, Trò chơi và Âm nhạc được hiển thị.
Phần Địa điểm nổi bật, Trò chơi và Âm nhạc đã ẩn.
@@ -412,11 +422,11 @@ Cửa hàng"
Hình mờ kênh được hiển thị.
Hình mờ của kênh đã ẩn.
Ẩn hình mờ của kênh
- Phần Chương đã hiển thị.
- Phần Chương đã ẩn.
- Ẩn phần Chương
- Đã hiện kệ danh mục được đề xuất.
- Đã ẩn kệ danh mục được đề xuất.
+ Phần Phân cảnh đã hiển thị.
+ Phần Phân cảnh đã ẩn.
+ Ẩn phần Phân cảnh
+ Kệ danh mục đề xuất được hiển thị.
+ Kệ danh mục đề xuất đã ẩn.
Ẩn kệ danh mục được đề xuất
Nút Tạo đoạn video được hiển thị.
Nút Tạo đoạn video đã ẩn.
@@ -424,15 +434,15 @@ Cửa hàng"
Đã hiện nút Tạo video ngắn.
Đã ẩn nút Tạo video ngắn.
Ẩn nút Tạo video ngắn
- Bình luận chữ xanh đã được hiển thị.
- Bình luận chữ xanh đã bị ẩn.
- Ẩn bình luận chữ xanh
+ Các bình luận chữ xanh đã được hiển thị.
+ Các bình luận chữ xanh đã bị ẩn.
+ Ẩn các bình luận chữ xanh
Nút Cảm ơn được hiển thị.
Nút Cảm ơn đã ẩn.
Ẩn nút Cảm ơn
- Dấu thời gian và các nút Biểu tượng cảm xúc được hiển thị.
- Dấu thời gian và các nút Biểu tượng cảm xúc đã ẩn.
- Ẩn dấu thời gian và các nút Biểu tượng cảm xúc
+ Nút dấu thời gian và các Biểu tượng cảm xúc được hiển thị.
+ Nút dấu thời gian và các Biểu tượng cảm xúc đã ẩn.
+ Ẩn nút dấu thời gian và các Biểu tượng cảm xúc
Biểu ngữ Bình luận của hội viên được hiển thị.
Biểu ngữ Bình luận của hội viên đã ẩn.
Ẩn biểu ngữ Bình luận của hội viên
@@ -457,23 +467,23 @@ Cửa hàng"
Chiến dịch gây quỹ được hiển thị.
Chiến dịch gây quỹ đã ẩn.
Ẩn chiến dịch gây quỹ
- Bộ lọc lớp phủ nhấn đúp được hiển thị.
- Bộ lọc lớp phủ nhấn đúp bị ẩn.
- Ẩn bộ lọc lớp phủ nhấn đúp
+ Lớp phủ khi nhấn đúp để tua đã được hiển thị.
+ Lớp phủ khi nhấn đúp để tua đã bị ẩn.
+ Ẩn lớp phủ khi nhấn đúp để tua
Nút Tải xuống được hiển thị.
Nút Tải xuống đã ẩn.
Ẩn nút Tải xuống
Đã hiện các thẻ màn hình kết thúc.
Đã ẩn các thẻ màn hình kết thúc.
Ẩn các thẻ màn hình kết thúc
- Đã hiện bảng giới thiệu mở rộng bên dưới video.
- Đã ẩn bảng giới thiệu mở rộng bên dưới video.
+ Bảng giới thiệu mở rộng được hiển thị bên dưới video.
+ Bảng giới thiệu mở rộng đã ẩn bên dưới video.
Ẩn bảng giới thiệu mở rộng
- Đã hiện kệ Mở rộng.
- Đã ẩn kệ Mở rộng.
- Ẩn kệ Mở rộng
- Đã hiện nút Phụ đề.
- Đã ẩn nút Phụ đề.
+ Kệ mở rộng đã hiển thị.
+ Kệ mở rộng đã ẩn.
+ Ẩn kệ mở rộng
+ Nút Phụ đề được hiển thị.
+ Nút Phụ đề đã ẩn.
Ẩn nút Phụ đề
Nhập tên các mục thành phần của trình đơn tuỳ chọn mà bạn muốn lọc được phân cách bằng dòng.
Cài đặt bộ lọc
@@ -483,14 +493,17 @@ Cửa hàng"
Thanh tìm kiếm được hiển thị.
Thanh tìm kiếm đã bị ẩn.
Ẩn thanh tìm kiếm
- Đã hiện khảo sát.
- Đã ẩn khảo sát.
+ Khảo sát được hiển thị.
+ Khảo sát đã ẩn.
Ẩn khảo sát
Tua chính xác đã bật.
Tua chính xác đã tắt.
Tắt tua chính xác
+ Nút nổi như nút \"Điều chỉnh trang chủ của bạn\" đã được hiển thị.
+ Nút nổi như nút \"Điều chỉnh trang chủ của bạn\" đã bị ẩn.
+ Ẩn nút nổi
Đã ẩn nút Tìm kiếm bằng giọng nói.
- Đã ẩn nút Tìm kiếm bằng giọng nói.
+ Nút Tìm kiếm bằng giọng nói nổi đã ẩn khi tìm kiếm.
Ẩn nút Tìm kiếm bằng giọng nói
Kệ Dành cho bạn được hiển thị.
Kệ Dành cho bạn đã ẩn.
@@ -518,9 +531,9 @@ Hạn chế: Hình ảnh của bài đăng cộng đồng ở chế độ toàn
Nút tìm kiếm bằng hình ảnh được hiển thị.
Nút tìm kiếm bằng hình ảnh đã bị ẩn.
Ẩn nút tìm kiếm bằng hình ảnh
- Đã hiện kệ Hình ảnh.
- Đã ẩn kệ Hình ảnh.
- Ẩn kệ Hình ảnh
+ Kệ Hình ảnh từ web được hiển thị trong kết quả tìm kiếm.
+ Kệ Hình ảnh từ web đã ẩn khỏi kết quả tìm kiếm.
+ Ẩn kệ Hình ảnh từ web
Phần thẻ thông tin được hiển thị.
Phần thẻ thông tin đã ẩn.
Ẩn phần thẻ thông tin
@@ -568,11 +581,11 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh
Hãy thêm dấu ngoặc kép để sử dụng từ khoá: %s.
Từ khóa có các định nghĩa mâu thuẫn với nhau. %s.
Từ khóa quá ngắn và cần phải có dấu ngoặc kép: %s.
- Đã hiện bài đăng mới nhất.
- Đã ẩn bài đăng mới nhất.
+ Bài đăng mới nhất được hiển thị.
+ Bài đăng mới nhất đã ẩn.
Ẩn bài đăng mới nhất
- Đã hiện nút Video mới nhất.
- Đã ẩn nút Video mới nhất.
+ Nút Video mới nhất được hiển thị.
+ Nút Video mới nhất đã ẩn.
Ẩn nút Video mới nhất
Các nút Thích và Không thích được hiển thị.
Các nút Thích và Không thích đã ẩn.
@@ -591,11 +604,11 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh
Kệ Sản phẩm được hiển thị.
Kệ Sản phẩm đã ẩn.
Ẩn kệ Sản phẩm
- Đã hiện Danh sách kết hợp.
- Đã ẩn Danh sách kết hợp.
+ Danh sách kết hợp được hiển thị.
+ Danh sách kết hợp đã ẩn.
Ẩn Danh sách kết hợp
- Đã hiện kệ Phim và chương trình truyền hình.
- Đã ẩn kệ Phim và chương trình truyền hình.
+ Kệ phim và chương trình truyền hình được hiển thị.
+ Kệ phim và chương trình truyền hình đã ẩn.
Ẩn kệ Phim và chương trình truyền hình
Thanh điều hướng đã được hiển thị.
Thanh điều hướng đã bị ẩn.
@@ -603,14 +616,14 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh
Đã hiện nút Tạo.
Đã ẩn nút Tạo.
Ẩn nút Tạo
- Đã hiện nút Trang chủ.
- Đã ẩn nút Trang chủ.
+ Nút Trang chủ được hiển thị.
+ Nút Trang chủ đã ẩn.
Ẩn nút Trang chủ
Đã hiện tên các thẻ.
Đã ẩn tên các thẻ.
Ẩn tên các thẻ
- Đã hiện nút Bạn.
- Đã ẩn nút Bạn.
+ Nút Bạn được hiển thị.
+ Nút Bạn đã ẩn.
Ẩn nút Bạn
Đã hiện nút Thông báo.
Đã ẩn nút Thông báo.
@@ -618,17 +631,17 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh
Đã hiện nút Shorts.
Đã ẩn nút Shorts.
Ẩn nút Shorts
- Đã hiện nút Kênh đăng ký.
- Đã ẩn nút Kênh đăng ký.
+ Nút Kênh đăng ký được hiển thị.
+ Nút Kênh đăng ký đã ẩn.
Ẩn nút Kênh đăng ký
- Đã hiện nút \'Thông báo cho tôi\' bên dưới video sắp diễn ra.
- Đã ẩn nút \'Thông báo cho tôi\' bên dưới video sắp diễn ra.
+ Nút Thông báo cho tôi được hiển thị bên dưới video sắp diễn ra.
+ Nút Thông báo cho tôi đã ẩn bên dưới video sắp diễn ra.
Ẩn nút Thông báo cho tôi
Nhãn Nội dung được trả tiền để quảng cáo được hiển thị.
Nhãn Nội dung được trả tiền để quảng cáo đã ẩn.
Ẩn nhãn quảng cáo được tài trợ
- Đã hiện kệ Chơi game trên YouTube.
- Đã ẩn kệ Chơi game trên YouTube.
+ Kệ Chơi game trên YouTube được hiển thị.
+ Kệ Chơi game trên YouTube đã ẩn.
Ẩn kệ Chơi game trên YouTube
Nút Tự động phát được hiển thị.
Nút Tự động phát đã ẩn.
@@ -660,9 +673,9 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh
Mục Trợ giúp & phản hồi được hiển thị.
Mục Trợ giúp & phản hồi đã ẩn.
Ẩn mục Trợ giúp & phản hồi
- Mục \'Nghe nhạc trên YouTube Music\' được hiển thị.
- Mục \'Nghe nhạc trên YouTube Music\' đã bị ẩn.
- Ẩn mục \'Nghe nhạc trên YouTube Music\'
+ Mục Nghe trên YouTube Music được hiển thị.
+ Mục Nghe trên YouTube Music đã bị ẩn.
+ Ẩn mục Nghe trên YouTube Music
Mục Khoá màn hình được hiển thị.
Mục Khoá màn hình đã ẩn.
Ẩn mục Khoá màn hình
@@ -708,20 +721,23 @@ Bộ lọc có phân biệt chữ hoa chữ thường, vì vậy bạn cần nh
Các nút được hiển thị.
Các nút đã ẩn.
Ẩn các nút Chuyển đến video trước đó/tiếp theo
+ Đã hiện kệ cửa hàng.
+ Đã ẩn kệ cửa hàng.
+ Ẩn kệ cửa hàng bên dưới trình phát
Nút YouTube Music được hiển thị.
Nút YouTube Music đã ẩn.
Ẩn nút YouTube Music
Nút Lưu video vào danh sách phát được hiển thị.
Nút Lưu video vào danh sách phát đã ẩn.
Ẩn nút Lưu
- Phần Khám phá Podcast được hiển thị.
- Phần Khám phá Podcast đã ẩn.
- Ẩn phần Khám phá Podcast
+ Phần Khám phá podcast được hiển thị.
+ Phần Khám phá podcast đã ẩn.
+ Ẩn phần Khám phá podcast
Phần Xem trước bình luận được hiển thị.
Phần Xem trước bình luận đã ẩn.
Ẩn phần Xem trước bình luận
- Tuỳ chọn này thay đổi kích thước của phần bình luận, khiến bạn không thể mở Phát lại trò chuyện trực tiếp trong phần bình luận.
- Tuỳ chọn này không thay đổi kích thước của phần bình luận, vì vậy có thể mở Phát lại trò chuyện trực tiếp trong phần bình luận.
+ Tuỳ chọn này làm thay đổi kích thước của phần Bình luận, khiến bạn không thể mở Phát lại cuộc trò chuyện trực tiếp trong phần Bình luận.
+ Tuỳ chọn này không làm thay đổi kích thước của phần Bình luận, vì vậy có thể mở Phát lại cuộc trò chuyện trực tiếp trong phần Bình luận.
Ẩn nội dung bình luận
Biểu ngữ thông báo khuyến mãi đã hiển thị.
Biểu ngữ thông báo khuyến mãi đã ẩn.
@@ -788,9 +804,9 @@ Nếu bố cục của màn hình trình phát thay đổi do các thay đổi t
Thông báo \"Thả ra để huỷ\" được hiển thị.
Thông báo \"Thả ra để huỷ\" đã ẩn.
Ẩn thông báo khi huỷ tua
- Nhãn Chương kế bên dấu thời gian đã hiện.
- Nhãn Chương kế bên dấu thời gian đã ẩn.
- Ẩn nhãn Chương trên thanh tiến trình
+ Tên phân cảnh kế bên dấu thời gian đã hiển thị.
+ Tên phân cảnh kế bên dấu thời gian đã ẩn.
+ Ẩn tên phân cảnh trên thanh tiến trình
Thanh tiến trình video được hiển thị trong trình phát.
Thanh tiến trình video đã ẩn khỏi trình phát.
Thanh tiến trình được hiển thị trong trình phát thu nhỏ video.
@@ -883,8 +899,8 @@ Nếu bố cục của màn hình trình phát thay đổi do các thay đổi t
Đã hiện nút Không thích.
Đã ẩn nút Không thích.
Ẩn nút Không thích
- "Đã hiện các nút nổi như 'Dùng bản âm thanh này' trong thẻ kênh Shorts."
- "Đã ẩn các nút nổi như 'Dùng bản âm thanh này' trong thẻ kênh Shorts."
+ "Các nút nổi như 'Dùng âm thanh này' được hiển thị trong thẻ kênh Shorts."
+ "Các nút nổi như 'Dùng âm thanh này' đã ẩn trong thẻ kênh Shorts."
Ẩn nút nổi
Đã hiện nhãn Liên kết video.
Đã ẩn nhãn Liên kết video.
@@ -985,16 +1001,16 @@ Cụ thể:
Đã ẩn nút Thịnh hành.
Ẩn nút Thịnh hành
Đã hiện nút Sử dụng mẫu.
- Ẩn nút Sử dụng mẫu.
+ Đã ẩn nút Sử dụng mẫu.
Ẩn nút Sử dụng mẫu
- Đã hiện nút \'Dùng bản âm thanh này\'.
- Đã ẩn nút \'Dùng bản âm thanh này\'.
- Ẩn nút \'Dùng bản âm thanh này\'
+ Đã hiện nút Dùng âm thanh này.
+ Đã ẩn nút Dùng âm thanh này.
+ Ẩn nút Dùng âm thanh này
Đã hiện Tiêu đề.
Đã ẩn Tiêu đề.
Ẩn Tiêu đề video
- Đã ẩn nút Hiện thêm.
- Đã ẩn nút Hiện thêm.
+ Nút Hiện thêm được hiển thị.
+ Nút Hiện thêm đã ẩn.
Ẩn nút Hiện thêm
Thanh thông báo nhanh được hiển thị.
Thanh thông báo nhanh đã ẩn.
@@ -1002,8 +1018,8 @@ Cụ thể:
Nút mua Kênh Primetime (Bắt đầu dùng thử/Dùng thử miễn phí/Đăng ký/Mua Sunday Ticket,...) được hiển thị.
Nút mua Kênh Primetime (Bắt đầu dùng thử/Dùng thử miễn phí/Đăng ký/Mua Sunday Ticket,...) đã ẩn.
Ẩn nút mua Kênh Primetime
- Đã hiện danh sách cuộn Kênh đăng ký.
- Đã ẩn danh sách cuộn Kênh đăng ký.
+ Danh sách cuộn Kênh đăng ký đã hiển thị.
+ Danh sách cuộn Kênh đăng ký đã ẩn.
Ẩn danh sách cuộn Kênh đăng ký
Hành động đề xuất được hiển thị.
Hành động đề xuất đã ẩn.
@@ -1088,7 +1104,7 @@ Hạn chế:
Nếu YouTube Doodle đang hiển thị đồng thời tuỳ chọn ẩn này cũng đang bật, thì bộ lọc tìm kiếm cũng sẽ bị ẩn."
Lớp phủ khi chụm để thu phóng đã được hiển thị.
Lớp phủ khi chụm để thu phóng đã bị ẩn.
- Ẩn chụm để thu phóng
+ Ẩn lớp phủ khi chụm để thu phóng
AFN Blue
AFN Red
Tùy chỉnh
@@ -1222,7 +1238,7 @@ Nhấn giữ để mở hộp thoại cài đặt Danh sách trắng.
Thay đổi kiểu trình phát thu nhỏ trong ứng dụng.
Trình phát thu nhỏ
Cài đặt khác
- Ẩn hoặc hiển thị các thành phần trong phần thanh điều hướng.
+ Ẩn hoặc hiển thị các thành phần trên Thanh điều hướng.
Thanh điều hướng
Thông tin về các bản vá đã được áp dụng.
Thông tin bản vá
@@ -1256,9 +1272,9 @@ Nhấn giữ để mở hộp thoại cài đặt Danh sách trắng.
Lề trên bảng nút thao tác nhanh phải nằm trong khoảng 0 - 32.
Giá trị khoảng cách từ thanh tiến trình đến bảng nút thao tác nhanh trong khoảng từ 0 đến 32.
Lề trên bảng nút thao tác nhanh
- "Buộc từ chối phản hồi của codec phần mềm AV1.
+ "Buộc từ chối phản hồi codec AV1 phần mềm.
Một codec khác sẽ được áp dụng sau khoảng 20 giây tải bộ đệm."
- Từ chối phản hồi của codec phần mềm AV1
+ Từ chối phản hồi codec AV1 phần mềm
Quá trình dự phòng khiến cho việc tải bộ đệm mất khoảng 20 giây trước khi bắt đầu.
Độ lệch
Thay đổi tốc độ phát chỉ áp dụng cho video hiện tại.
@@ -1280,8 +1296,8 @@ Một codec khác sẽ được áp dụng sau khoảng 20 giây tải bộ đ
"Loại bỏ hộp thoại cảnh báo nội dung cần cân nhắc trước khi xem.
Tuỳ chọn này chỉ tự động chấp nhận hộp thoại cảnh báo, chứ không thể bỏ qua giới hạn về độ tuổi."
Loại bỏ hộp thoại cảnh báo trước khi xem
- Thay thế codec phần mềm AV1 bằng codec VP9.
- Thay thế codec phần mềm AV1
+ Thay thế codec AV1 phần mềm bằng codec VP9.
+ Thay thế codec AV1 phần mềm
Đang áp dụng tên hiển thị của kênh (@handle).
Đang áp dụng tên kênh.
Thay thế tên hiển thị của kênh
@@ -1308,15 +1324,15 @@ Nhấn và giữ để mở cài đặt YouTube."
Tên hiển thị (@handle) đã được áp dụng.
Tên người dùng đang được áp dụng.
Kích hoạt Return YouTube Username
- "Khoá nhà phát triển YouTube Data API v3 là một mã khoá cho phép các nhà phát triển thao tác lấy dữ liệu từ Youtube, và nó cũng cần thiết để thay thế tên hiển thị thành tên người dùng.
+ "Khoá nhà phát triển YouTube Data API v3 là một mã khoá cho phép các nhà phát triển truy cập lấy dữ liệu từ Youtube, và chúng cũng cần thiết để thay thế @tên hiển thị thành tên người dùng.
-Giới hạn truy cập hàng ngày cho các khoá API trên gói miễn phí là 10000 lần, với mỗi lượt truy cập chỉ thay thế được 1 bình luận.
+Giới hạn truy cập hàng ngày cho các khoá API trên gói miễn phí là 10000 lần, với mỗi lượt truy cập chỉ áp dụng cho 1 bình luận.
Nhấp vào đây để xem các bước phát hành khóa API."
Giới thiệu về khoá YouTube Data API
- Khoá phát triển để sử dụng YouTube Data API v3.
+ Khoá nhà phát triển để sử dụng YouTube Data API v3.
Khoá Youtube Data API
- 1. Tạo dự án mới <a href=%1$s>Nhấn vào đây</a>.<br>2. Nhấn vào nút <b>CREATE</b>.<br>3. Đi tới YouTube Data API v3 <a href=%2$s>Nhấn vào đây</a>.<br>4. Nhấn vào nút <b>ENABLE</b>.<br>5. Nhấn vào nút <b>CREATE CREDENTIALS</b>.<br>6. Chọn <b>Public data</b>.<br>7. Nhấn vào nút <b>NEXT</b>.<br>8. Sao chép mã khoá API.<br><br>※ Khoá API không nên được chia sẻ với người khác, vì vậy nó cũng không xuất hiện trong cài đặt Nhập/Xuất.
+ 1. <a href=%1$s>Tạo dự án mới</a>.<br>2. Ấn vào <b>CREATE</b>.<br>3. Đi tới <a href=%2$s>YouTube Data API v3</a>.<br>4. Ấn vào <b>ENABLE</b>.<br>5. Ấn vào <b>CREATE CREDENTIALS</b>.<br>6. Chọn <b>Public data</b>.<br>7. Ấn vào <b>NEXT</b>.<br>8. Sao chép mã API.<br><br>※ Không nên chia sẻ mã API với người khác, vì vậy chúng cũng không có mặt trong mục Nhập/Xuất cài đặt.
Phát hành mã khoá
Giới thiệu
Dữ liệu về lượt không thích được cung cấp bởi API Return YouTube Dislike. Nhấn vào đây để tìm hiểu thêm.
@@ -1350,8 +1366,8 @@ Hạn chế: Lượt không thích có thể không hiển thị nếu người
Đã ẩn
Loại bỏ các tham số truy vấn theo dõi khỏi URL khi chia sẻ liên kết.
Làm sạch liên kết chia sẻ
- "Các cụm từ như '#', 'Fundraiser', 'Shop' và 'products' đã được hiển thị trong phụ đề video."
- "Các cụm từ như '#', 'Fundraiser', 'Shop' và 'products' đã bị ẩn khỏi phụ đề video."
+ "Các cụm từ như '#', 'Fundraiser', 'Shop' and 'products' đã được hiển thị trong phụ đề video."
+ "Các cụm từ như '#', 'Fundraiser', 'Shop' and 'products' đã bị ẩn khỏi phụ đề video."
Làm sạch phụ đề video
Giới thiệu
sponsor.ajay.app
@@ -1435,14 +1451,14 @@ Hạn chế: Lượt không thích có thể không hiển thị nếu người
Một lời nhắc ngắn rằng bạn hãy ấn thích, đăng ký hoặc theo dõi họ ở giữa nội dung. Nếu nó dài hoặc về một cái gì đó cụ thể, thay vào đó nó nên được tự quảng cáo.
Đoạn tạm ngưng/Giới thiệu
Một khoảng thời gian không có nội dung thực tế. Có thể là tạm dừng, khung tĩnh hoặc hoạt ảnh lặp lại. Không bao gồm các chuyển tiếp chứa thông tin.
- Âm nhạc: Phần không phải âm nhạc
- Chỉ sử dụng trong video âm nhạc. Các phần của video nhạc mà không có nhạc cũng không thuộc danh mục nào.
+ Âm nhạc: Phần không chứa âm nhạc
+ Các phần của video âm nhạc mà không có âm nhạc, cũng không thuộc danh mục nào.
Đoạn kết thúc/Danh đề
Danh đề hoặc đoạn kết thúc của Youtube xuất hiện. Không dành cho phần kết chứa thông tin.
Đoạn xem trước/Tóm tắt/Gây chú ý
Tập hợp các đoạn cắt thể hiện những gì sẽ xảy ra trong video hoặc trong loạt video khác, nơi mà tất cả thông tin được lặp lại ở nơi khác.
Không trả tiền/Tự quảng cáo
- Tương tự như Nhà tài trợ, ngoại trừ không trả tiền hoặc tự quảng cáo. Bao gồm các phần về hàng hóa, quyên góp hoặc thông tin về người họ cộng tác.
+ Tương tự như Nhà tài trợ, ngoại trừ việc không được trả tiền hoặc tự quảng cáo. Bao gồm các phần về hàng hóa, quyên góp hoặc thông tin về người họ cộng tác.
Nhà Tài Trợ
Quảng cáo, giới thiệu được trả tiền và quảng cáo trực tiếp. Không phải tự quảng cáo hoặc lời cảm ơn miễn phí đến các tác nhân/nhà sáng tạo/trang web/sản phẩm mà họ yêu thích.
Sao chép
@@ -1452,7 +1468,7 @@ Hạn chế: Lượt không thích có thể không hiển thị nếu người
Cấu hình tệp JSON SponsorBlock của bạn có thể được nhập/xuất tới ReVanced Extended và các nền tảng SponsorBlock khác. Điều này bao gồm cả ID riêng tư của bạn. Vì vậy hãy thật cẩn thận khi chia sẻ nó.
Nhập cài đặt thất bại: %s.
Nhập cài đặt thành công.
- Cài đặt của bạn chứa Id SponsorBlock riêng tư.\n\nID của bạn giống như mật khẩu vậy, nên đừng bao giờ chia sẻ nó.\n
+ Cài đặt của bạn chứa ID SponsorBlock cá nhân.\n\nID của bạn cũng giống như mật khẩu vậy, nên đừng bao giờ chia sẻ nó.\n
Không hiển thị lại
Đã sao chép cài đặt vào bảng nhớ tạm.
Tự động bỏ qua
@@ -1483,7 +1499,7 @@ Hạn chế: Lượt không thích có thể không hiển thị nếu người
Đã bỏ qua Đoạn Tạm Ngưng.
Đã bỏ qua Đoạn Tạm Ngưng.
Đã bỏ qua nhiều phân đoạn.
- Đã bỏ qua Phần Không Nhạc.
+ Đã bỏ qua Phần không chứa âm nhạc.
Đã bỏ qua Phần Kết.
Đã bỏ qua Phần Xem Trước.
Đã bỏ qua Phần Tóm Tắt.
@@ -1550,7 +1566,7 @@ Hạn chế: Lượt không thích có thể không hiển thị nếu người
Cấu hình chiều cao của khoảng trống còn lại khi thanh điều hướng bị ẩn, nằm trong khoảng từ 0 đến 100 (%).
Chiều cao của khoảng trống
Nhấn và giữ vào Dấu thời gian để thay đổi trạng thái phát lặp lại trên trình phát Shorts.
- Thao tác nhấn giữ Dấu thời gian
+ Nhấn và giữ Dấu thời gian
"Hiển thị phần tiêu đề video ở chế độ toàn màn hình.
Hạn chế: Tiêu đề video sẽ biến mất khi nhấn vào."
@@ -1582,7 +1598,7 @@ Lưu ý:\n- Tuỳ chọn này sẽ thay đổi giao diện ứng dụng, tuy nhi
17.41.37 - Khôi phục kệ Danh sách phát kiểu cũ
18.05.40 - Khôi phục hộp nhập bình luận kiểu cũ
18.17.43 - Khôi phục bảng điều khiển trình phát cũ
- 18.33.40 - Khôi phục bảng nút thao tác trình Shorts kiểu cũ
+ 18.33.40 - Khôi phục thanh thao tác trình Shorts kiểu cũ
18.38.45 - Khôi phục phương thức áp dụng chất lượng video mặc định kiểu cũ
18.48.39 - Vô hiệu hoá cập nhật số \"lượt xem\" và \"lượt thích\" theo thời gian thực
19.13.37 - Khôi phục hoạt ảnh Số cuộn kiểu cũ
diff --git a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml
index dcd7145e9..8956daf6e 100644
--- a/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml
+++ b/src/main/resources/youtube/translations/zh-rCN/missing_strings.xml
@@ -1,21 +1,10 @@
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/zh-rCN/strings.xml b/src/main/resources/youtube/translations/zh-rCN/strings.xml
index bbe982053..d95cdc7ce 100644
--- a/src/main/resources/youtube/translations/zh-rCN/strings.xml
+++ b/src/main/resources/youtube/translations/zh-rCN/strings.xml
@@ -51,7 +51,7 @@
拍摄静态捕捉的时间
订阅标签
添加时间戳信息已关闭
- 添加时间戳信息已显示
+ "添加时间戳信息已显示"
添加时间戳信息
添加播放速度。播放视频时,长按时间戳可更改类型
添加视频分辨率。播放视频时,长按时间戳可更改类型
@@ -270,6 +270,14 @@
进度条点击已禁用
进度条点击已启用
启用进度条点击
+ "这将恢复没有进度条缩略图的直播的缩略图
+
+互联网数据使用量可能会增加,进度条缩略图会在轻微延迟后显示
+
+此功能在非常快速的互联网连接下效果最佳"
+ 进度条缩略图将会以中质量显示
+ 进度条缩略图将会以高质量显示
+ 启用高质量缩略图
时间戳已禁用
"时间戳已启用
@@ -490,6 +498,9 @@
影片条叠加层已显示
影片条叠加层已隐藏
隐藏影片条叠加层
+ 悬浮按钮已显示
+ 悬浮按钮已隐藏
+ 隐藏悬浮按钮
弹出麦克风按钮已显示
弹出麦克风按钮已隐藏
隐藏弹出麦克风按钮
@@ -706,6 +717,9 @@
上一个和下一个按钮已显示
上一个和下一个按钮已隐藏
隐藏上一个 & 下一个按钮
+ 商店栏已显示
+ 商店栏已隐藏
+ 隐藏播放器商店栏
YouTube Music 按钮已显示
YouTube Music 按钮已隐藏
隐藏 YouTube Music 按钮
diff --git a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml
index 08acb435e..a820effd6 100644
--- a/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml
+++ b/src/main/resources/youtube/translations/zh-rTW/missing_strings.xml
@@ -1,21 +1,10 @@
- "This will restore thumbnails to livestreams that do not have seekbar thumbnails.
-
-Internet data usage may be higher, and seekbar thumbnails will have a slight delay before showing.
-
-This feature works best with a very fast internet connection."
- Seekbar thumbnails are medium quality.
- Seekbar thumbnails are high quality.
- Enable high quality thumbnails
Package name of your installed external downloader app, such as NewPipe or YTDLnis, on long press.
Long press video downloader package name
- Floating button is shown.
- Floating button is hidden.
- Hide floating button
- Shopping shelf is shown.
- Shopping shelf is hidden.
- Hide player shopping shelf
+ AI-generated video summary section is shown.
+ AI-generated video summary section is hidden.
+ Hide AI-generated video summary section
MMT Orange
MMT Pink
MMT Turquoise
diff --git a/src/main/resources/youtube/translations/zh-rTW/strings.xml b/src/main/resources/youtube/translations/zh-rTW/strings.xml
index f53b8ae42..6e36fbbde 100644
--- a/src/main/resources/youtube/translations/zh-rTW/strings.xml
+++ b/src/main/resources/youtube/translations/zh-rTW/strings.xml
@@ -51,7 +51,7 @@
拍攝靜態捕捉的時間
訂閱標籤
添加時間戳訊息已關閉
- 添加時間戳訊息已顯示
+ "添加時間戳訊息已顯示"
添加時間戳訊息
附加播放速度。
附加影片品質。
@@ -270,6 +270,14 @@
進度條點擊已停用
進度條點擊已啟用
啟用進度條點擊
+ "這會將縮圖恢復到沒有搜尋欄縮圖的直播。
+
+網路資料使用量可能會更高,搜尋欄縮圖在顯示之前會稍微延遲。
+
+此功能在網路連線速度非常快的情況下效果最佳。"
+ 搜尋欄縮圖品質中等。
+ 搜尋欄縮圖品質很高。
+ 啟用高品質縮圖
時間戳已停用。
"已知問題:由於這是 Google 開發階段的功能,因此佈局可能會被破壞。"
啟用時間戳
@@ -488,6 +496,9 @@
影片條覆蓋層已顯示
影片條覆蓋層已隱藏
隱藏影片條覆蓋層
+ 浮動按鈕已顯示。
+ 浮動按鈕已隱藏。
+ 隱藏浮動按鈕
語音辨識按鈕已顯示
語音辨識按鈕已隱藏
隱藏語音辨識按鈕
@@ -704,6 +715,9 @@
上一個和下一個按鈕已顯示
上一個和下一個按鈕已隱藏
隱藏上一個和下一個按鈕
+ 購物架已顯示。
+ 購物架已隱藏。
+ 隱藏玩家購物架
YouTube Music 按鈕已顯示
YouTube Music 按鈕已隱藏
隱藏 YouTube Music 按鈕
From af25371dabd82d1228b96b34ea3a1b68914719a4 Mon Sep 17 00:00:00 2001
From: semantic-release-bot
Date: Wed, 6 Nov 2024 11:50:46 +0000
Subject: [PATCH 17/18] chore(release): 2.231.0-dev.2 [skip ci]
# [2.231.0-dev.2](https://github.com/anddea/revanced-patches/compare/v2.231.0-dev.1...v2.231.0-dev.2) (2024-11-06)
### Bug Fixes
* **YouTube - Overlay buttons:** Support A/B player layout ([a58c3df](https://github.com/anddea/revanced-patches/commit/a58c3dfbc6573adc56d7ea600bf66f5cb885ac73))
* **YouTube - Spoof app version:** Remove obsolete `17.33.42` spoof target ([1220449](https://github.com/anddea/revanced-patches/commit/1220449f2ac46f2dd5319441f82cc7de56e1efb6))
### Features
* **YouTube - Description components:** Add `Hide AI-generated video summary section` setting ([fef16e8](https://github.com/anddea/revanced-patches/commit/fef16e84d05be391b301e09d7958d685d4d9df38))
---
CHANGELOG.md | 13 +++++++++++++
gradle.properties | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index edb8ecec9..39ded4746 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+# [2.231.0-dev.2](https://github.com/anddea/revanced-patches/compare/v2.231.0-dev.1...v2.231.0-dev.2) (2024-11-06)
+
+
+### Bug Fixes
+
+* **YouTube - Overlay buttons:** Support A/B player layout ([a58c3df](https://github.com/anddea/revanced-patches/commit/a58c3dfbc6573adc56d7ea600bf66f5cb885ac73))
+* **YouTube - Spoof app version:** Remove obsolete `17.33.42` spoof target ([1220449](https://github.com/anddea/revanced-patches/commit/1220449f2ac46f2dd5319441f82cc7de56e1efb6))
+
+
+### Features
+
+* **YouTube - Description components:** Add `Hide AI-generated video summary section` setting ([fef16e8](https://github.com/anddea/revanced-patches/commit/fef16e84d05be391b301e09d7958d685d4d9df38))
+
# [2.231.0-dev.1](https://github.com/anddea/revanced-patches/compare/v2.230.0...v2.231.0-dev.1) (2024-10-29)
diff --git a/gradle.properties b/gradle.properties
index 92ef78a5c..6a81bf390 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.parallel = true
org.gradle.caching = true
kotlin.code.style = official
-version = 2.231.0-dev.1
+version = 2.231.0-dev.2
From 1fd91ca4b7df2c373381f1e4907ab9a16e413f07 Mon Sep 17 00:00:00 2001
From: Patriot99 <31535921+Patriot99@users.noreply.github.com>
Date: Wed, 6 Nov 2024 15:06:38 +0100
Subject: [PATCH 18/18] chore(YouTube - Translations): Update `Polish` (#868)
---
.../youtube/translations/pl-rPL/missing_strings.xml | 6 ------
src/main/resources/youtube/translations/pl-rPL/strings.xml | 3 +++
2 files changed, 3 insertions(+), 6 deletions(-)
delete mode 100644 src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
diff --git a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml b/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
deleted file mode 100644
index ada29f025..000000000
--- a/src/main/resources/youtube/translations/pl-rPL/missing_strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- AI-generated video summary section is shown.
- AI-generated video summary section is hidden.
- Hide AI-generated video summary section
-
diff --git a/src/main/resources/youtube/translations/pl-rPL/strings.xml b/src/main/resources/youtube/translations/pl-rPL/strings.xml
index 57699e8a5..e68b32d5d 100644
--- a/src/main/resources/youtube/translations/pl-rPL/strings.xml
+++ b/src/main/resources/youtube/translations/pl-rPL/strings.xml
@@ -1724,4 +1724,7 @@ Jeśli opcja nie przynosi skutku, spróbuj przełączyć się na tryb incognito.
Sprawdź lub usuń listę kanałów dodanych do białej listy
Biała lista kanałów
SponsorBlock
+ Widoczne
+ Ukryte
+ Podsumowanie filmów wygenerowane przez AI