mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-12-16 06:02:27 +01:00
Compare commits
19 Commits
v5.13.0-de
...
v5.13.0-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fdb946a2cc | ||
|
|
7cc939ab03 | ||
|
|
228d72428d | ||
|
|
4db7ab4207 | ||
|
|
329f993024 | ||
|
|
7cd1fb22d8 | ||
|
|
ae111bc0b9 | ||
|
|
79f1dfd3e8 | ||
|
|
f5dd902915 | ||
|
|
10e2b08eb2 | ||
|
|
4ae1155e51 | ||
|
|
69fbfaea19 | ||
|
|
f44fede67c | ||
|
|
3c52ab8017 | ||
|
|
d1641a6e3d | ||
|
|
09773e8934 | ||
|
|
d77d5bfbdd | ||
|
|
a84bded9e7 | ||
|
|
e664a24f73 |
49
CHANGELOG.md
49
CHANGELOG.md
@@ -1,3 +1,52 @@
|
|||||||
|
# [5.13.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.14...v5.13.0-dev.15) (2025-02-25)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube - Hide player components:** Show correct end video thumbnail if `Hide end screen suggested video` is enabled ([#4502](https://github.com/ReVanced/revanced-patches/issues/4502)) ([6c4885a](https://github.com/ReVanced/revanced-patches/commit/6c4885a1d5dfff50100b01840b5552d92e83ee4a))
|
||||||
|
|
||||||
|
# [5.13.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.13...v5.13.0-dev.14) (2025-02-25)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube - Swipe controls:** Adjust the overlay text size ([#4503](https://github.com/ReVanced/revanced-patches/issues/4503)) ([6dc4bf7](https://github.com/ReVanced/revanced-patches/commit/6dc4bf75e09ed6f05534919d7b769b720043abce))
|
||||||
|
|
||||||
|
# [5.13.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.12...v5.13.0-dev.13) (2025-02-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube:** Resolve button flickering when taping seekbar ([#4500](https://github.com/ReVanced/revanced-patches/issues/4500)) ([1f08047](https://github.com/ReVanced/revanced-patches/commit/1f08047b48cc9555a4887d16ec7219a55a77251f))
|
||||||
|
|
||||||
|
# [5.13.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.11...v5.13.0-dev.12) (2025-02-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube - Return YouTube Dislike:** Use correct number formatting if using a different ReVanced language ([edf66f4](https://github.com/ReVanced/revanced-patches/commit/edf66f4e16d46156cb8b8e31d18cb8dbcb87737e))
|
||||||
|
|
||||||
|
# [5.13.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.10...v5.13.0-dev.11) (2025-02-23)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **TikTok:** Resolve startup app crash ([18c0fc2](https://github.com/ReVanced/revanced-patches/commit/18c0fc2a7f186f50a904fd25dbaa739abdd24993))
|
||||||
|
|
||||||
|
# [5.13.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.9...v5.13.0-dev.10) (2025-02-22)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube - Copy video URL:** Use correct button ordering ([5e622cc](https://github.com/ReVanced/revanced-patches/commit/5e622ccf66d34af31c6026fa7f4d332460c6ecb0))
|
||||||
|
|
||||||
|
# [5.13.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.8...v5.13.0-dev.9) (2025-02-22)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube:** Do not hide player controls when using double tap to skip forward ([#4487](https://github.com/ReVanced/revanced-patches/issues/4487)) ([63fe870](https://github.com/ReVanced/revanced-patches/commit/63fe870d48ca2217327b952bde241b7f16ced850))
|
||||||
|
|
||||||
# [5.13.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.7...v5.13.0-dev.8) (2025-02-22)
|
# [5.13.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.7...v5.13.0-dev.8) (2025-02-22)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -356,7 +356,7 @@ public class Utils {
|
|||||||
|
|
||||||
public static Context getContext() {
|
public static Context getContext() {
|
||||||
if (context == null) {
|
if (context == null) {
|
||||||
Logger.initializationException(Utils.class, "Context is null, returning null!", null);
|
Logger.initializationException(Utils.class, "Context is not set by extension hook, returning null", null);
|
||||||
}
|
}
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,60 @@
|
|||||||
package app.revanced.extension.tiktok.spoof.sim;
|
package app.revanced.extension.tiktok.spoof.sim;
|
||||||
|
|
||||||
import app.revanced.extension.shared.Logger;
|
import app.revanced.extension.shared.Logger;
|
||||||
|
import app.revanced.extension.shared.Utils;
|
||||||
import app.revanced.extension.tiktok.settings.Settings;
|
import app.revanced.extension.tiktok.settings.Settings;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class SpoofSimPatch {
|
public class SpoofSimPatch {
|
||||||
|
|
||||||
private static final boolean ENABLED = Settings.SIM_SPOOF.get();
|
/**
|
||||||
|
* During app startup native code can be called with no obvious way to set the context.
|
||||||
|
* Cannot check if sim spoofing is enabled or the app will crash since no context is set.
|
||||||
|
*/
|
||||||
|
private static boolean isContextNotSet(String fieldSpoofed) {
|
||||||
|
if (Utils.getContext() != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.initializationException(SpoofSimPatch.class,
|
||||||
|
"Context is not yet set, cannot spoof: " + fieldSpoofed, null);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static String getCountryIso(String value) {
|
public static String getCountryIso(String value) {
|
||||||
if (ENABLED) {
|
if (isContextNotSet("countryIso")) return value;
|
||||||
|
|
||||||
|
if (Settings.SIM_SPOOF.get()) {
|
||||||
String iso = Settings.SIM_SPOOF_ISO.get();
|
String iso = Settings.SIM_SPOOF_ISO.get();
|
||||||
Logger.printDebug(() -> "Spoofing sim ISO from: " + value + " to: " + iso);
|
Logger.printDebug(() -> "Spoofing countryIso from: " + value + " to: " + iso);
|
||||||
return iso;
|
return iso;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getOperator(String value) {
|
public static String getOperator(String value) {
|
||||||
if (ENABLED) {
|
if (isContextNotSet("MCC-MNC")) return value;
|
||||||
|
|
||||||
|
if (Settings.SIM_SPOOF.get()) {
|
||||||
String mcc_mnc = Settings.SIMSPOOF_MCCMNC.get();
|
String mcc_mnc = Settings.SIMSPOOF_MCCMNC.get();
|
||||||
Logger.printDebug(() -> "Spoofing sim MCC-MNC from: " + value + " to: " + mcc_mnc);
|
Logger.printDebug(() -> "Spoofing sim MCC-MNC from: " + value + " to: " + mcc_mnc);
|
||||||
return mcc_mnc;
|
return mcc_mnc;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getOperatorName(String value) {
|
public static String getOperatorName(String value) {
|
||||||
if (ENABLED) {
|
if (isContextNotSet("operatorName")) return value;
|
||||||
|
|
||||||
|
if (Settings.SIM_SPOOF.get()) {
|
||||||
String operator = Settings.SIMSPOOF_OP_NAME.get();
|
String operator = Settings.SIMSPOOF_OP_NAME.get();
|
||||||
Logger.printDebug(() -> "Spoofing sim operator from: " + value + " to: " + operator);
|
Logger.printDebug(() -> "Spoofing sim operatorName from: " + value + " to: " + operator);
|
||||||
return operator;
|
return operator;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
package app.revanced.extension.youtube.patches;
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import app.revanced.extension.youtube.settings.Settings;
|
|
||||||
|
|
||||||
/** @noinspection unused*/
|
|
||||||
public final class DisableSuggestedVideoEndScreenPatch {
|
|
||||||
@SuppressLint("StaticFieldLeak")
|
|
||||||
private static ImageView lastView;
|
|
||||||
|
|
||||||
public static void closeEndScreen(final ImageView imageView) {
|
|
||||||
if (!Settings.DISABLE_SUGGESTED_VIDEO_END_SCREEN.get()) return;
|
|
||||||
|
|
||||||
// Prevent adding the listener multiple times.
|
|
||||||
if (lastView == imageView) return;
|
|
||||||
lastView = imageView;
|
|
||||||
|
|
||||||
imageView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
|
|
||||||
if (imageView.isShown()) imageView.callOnClick();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package app.revanced.extension.youtube.patches;
|
||||||
|
|
||||||
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public final class HideEndScreenSuggestedVideoPatch {
|
||||||
|
/**
|
||||||
|
* Injection point.
|
||||||
|
*/
|
||||||
|
public static boolean hideEndScreenSuggestedVideo() {
|
||||||
|
return Settings.HIDE_END_SCREEN_SUGGESTED_VIDEO.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -352,13 +352,16 @@ public class ReturnYouTubeDislike {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String formatDislikeCount(long dislikeCount) {
|
private static String formatDislikeCount(long dislikeCount) {
|
||||||
synchronized (ReturnYouTubeDislike.class) { // number formatter is not thread safe, must synchronize
|
synchronized (ReturnYouTubeDislike.class) { // Number formatter is not thread safe.
|
||||||
if (dislikeCountFormatter == null) {
|
if (dislikeCountFormatter == null) {
|
||||||
Locale locale = Objects.requireNonNull(Utils.getContext()).getResources().getConfiguration().locale;
|
// Must use default locale and not Utils context locale,
|
||||||
|
// otherwise if using a different settings language then the
|
||||||
|
// formatting will use that of the different language.
|
||||||
|
Locale locale = Locale.getDefault();
|
||||||
dislikeCountFormatter = CompactDecimalFormat.getInstance(locale, CompactDecimalFormat.CompactStyle.SHORT);
|
dislikeCountFormatter = CompactDecimalFormat.getInstance(locale, CompactDecimalFormat.CompactStyle.SHORT);
|
||||||
|
|
||||||
// YouTube disregards locale specific number characters
|
// YouTube disregards locale specific number characters
|
||||||
// and instead shows english number characters everywhere.
|
// and instead shows English number characters everywhere.
|
||||||
// To use the same behavior, override the digit characters to use English
|
// To use the same behavior, override the digit characters to use English
|
||||||
// so languages such as Arabic will show "1.234" instead of the native "۱,۲۳٤"
|
// so languages such as Arabic will show "1.234" instead of the native "۱,۲۳٤"
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
@@ -375,15 +378,15 @@ public class ReturnYouTubeDislike {
|
|||||||
private static String formatDislikePercentage(float dislikePercentage) {
|
private static String formatDislikePercentage(float dislikePercentage) {
|
||||||
synchronized (ReturnYouTubeDislike.class) { // Number formatter is not thread safe, must synchronize.
|
synchronized (ReturnYouTubeDislike.class) { // Number formatter is not thread safe, must synchronize.
|
||||||
if (dislikePercentageFormatter == null) {
|
if (dislikePercentageFormatter == null) {
|
||||||
Locale locale = Objects.requireNonNull(Utils.getContext()).getResources().getConfiguration().locale;
|
Locale locale = Locale.getDefault();
|
||||||
dislikePercentageFormatter = NumberFormat.getPercentInstance(locale);
|
dislikePercentageFormatter = NumberFormat.getPercentInstance(locale);
|
||||||
|
|
||||||
// Want to set the digit strings, and the simplest way is to cast to the implementation NumberFormat returns.
|
// Want to set the digit strings, and the simplest way is to cast to the implementation NumberFormat returns.
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P
|
||||||
&& dislikePercentageFormatter instanceof DecimalFormat) {
|
&& dislikePercentageFormatter instanceof DecimalFormat decimalFormatter) {
|
||||||
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(locale);
|
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(locale);
|
||||||
symbols.setDigitStrings(DecimalFormatSymbols.getInstance(Locale.ENGLISH).getDigitStrings());
|
symbols.setDigitStrings(DecimalFormatSymbols.getInstance(Locale.ENGLISH).getDigitStrings());
|
||||||
((DecimalFormat) dislikePercentageFormatter).setDecimalFormatSymbols(symbols);
|
decimalFormatter.setDecimalFormatSymbols(symbols);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -126,8 +126,7 @@ public class LicenseActivityHook {
|
|||||||
// This is required to fix submenu title alignment issue with Android ASOP 15+
|
// This is required to fix submenu title alignment issue with Android ASOP 15+
|
||||||
ViewGroup toolBarParent = activity.findViewById(
|
ViewGroup toolBarParent = activity.findViewById(
|
||||||
getResourceIdentifier("revanced_toolbar_parent", "id"));
|
getResourceIdentifier("revanced_toolbar_parent", "id"));
|
||||||
ViewGroup dummyToolbar = toolBarParent.findViewById(getResourceIdentifier(
|
ViewGroup dummyToolbar = Utils.getChildViewByResourceName(toolBarParent,"revanced_toolbar");
|
||||||
"revanced_toolbar", "id"));
|
|
||||||
toolbarLayoutParams = dummyToolbar.getLayoutParams();
|
toolbarLayoutParams = dummyToolbar.getLayoutParams();
|
||||||
toolBarParent.removeView(dummyToolbar);
|
toolBarParent.removeView(dummyToolbar);
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,6 @@ public class Settings extends BaseSettings {
|
|||||||
public static final BooleanSetting COPY_VIDEO_URL_TIMESTAMP = new BooleanSetting("revanced_copy_video_url_timestamp", TRUE);
|
public static final BooleanSetting COPY_VIDEO_URL_TIMESTAMP = new BooleanSetting("revanced_copy_video_url_timestamp", TRUE);
|
||||||
public static final BooleanSetting DISABLE_FULLSCREEN_AMBIENT_MODE = new BooleanSetting("revanced_disable_fullscreen_ambient_mode", TRUE, true);
|
public static final BooleanSetting DISABLE_FULLSCREEN_AMBIENT_MODE = new BooleanSetting("revanced_disable_fullscreen_ambient_mode", TRUE, true);
|
||||||
public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE);
|
public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE);
|
||||||
public static final BooleanSetting DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE, true);
|
|
||||||
public static final EnumSetting<FullscreenMode> EXIT_FULLSCREEN = new EnumSetting<>("revanced_exit_fullscreen", FullscreenMode.DISABLED);
|
public static final EnumSetting<FullscreenMode> EXIT_FULLSCREEN = new EnumSetting<>("revanced_exit_fullscreen", FullscreenMode.DISABLED);
|
||||||
public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true);
|
public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true);
|
||||||
public static final BooleanSetting HIDE_CAPTIONS_BUTTON = new BooleanSetting("revanced_hide_captions_button", FALSE);
|
public static final BooleanSetting HIDE_CAPTIONS_BUTTON = new BooleanSetting("revanced_hide_captions_button", FALSE);
|
||||||
@@ -135,6 +134,7 @@ public class Settings extends BaseSettings {
|
|||||||
public static final BooleanSetting HIDE_COMMUNITY_GUIDELINES = new BooleanSetting("revanced_hide_community_guidelines", TRUE);
|
public static final BooleanSetting HIDE_COMMUNITY_GUIDELINES = new BooleanSetting("revanced_hide_community_guidelines", TRUE);
|
||||||
public static final BooleanSetting HIDE_EMERGENCY_BOX = new BooleanSetting("revanced_hide_emergency_box", TRUE);
|
public static final BooleanSetting HIDE_EMERGENCY_BOX = new BooleanSetting("revanced_hide_emergency_box", TRUE);
|
||||||
public static final BooleanSetting HIDE_ENDSCREEN_CARDS = new BooleanSetting("revanced_hide_endscreen_cards", FALSE);
|
public static final BooleanSetting HIDE_ENDSCREEN_CARDS = new BooleanSetting("revanced_hide_endscreen_cards", FALSE);
|
||||||
|
public static final BooleanSetting HIDE_END_SCREEN_SUGGESTED_VIDEO = new BooleanSetting("revanced_end_screen_suggested_video", FALSE, true);
|
||||||
public static final BooleanSetting HIDE_HIDE_CHANNEL_GUIDELINES = new BooleanSetting("revanced_hide_channel_guidelines", TRUE);
|
public static final BooleanSetting HIDE_HIDE_CHANNEL_GUIDELINES = new BooleanSetting("revanced_hide_channel_guidelines", TRUE);
|
||||||
public static final BooleanSetting HIDE_INFO_PANELS = new BooleanSetting("revanced_hide_info_panels", TRUE);
|
public static final BooleanSetting HIDE_INFO_PANELS = new BooleanSetting("revanced_hide_info_panels", TRUE);
|
||||||
public static final BooleanSetting HIDE_INFO_CARDS = new BooleanSetting("revanced_hide_info_cards", FALSE);
|
public static final BooleanSetting HIDE_INFO_CARDS = new BooleanSetting("revanced_hide_info_cards", FALSE);
|
||||||
@@ -284,7 +284,6 @@ public class Settings extends BaseSettings {
|
|||||||
"revanced_seekbar_thumbnails_high_quality_dialog_message", new SeekbarThumbnailsHighQualityAvailability());
|
"revanced_seekbar_thumbnails_high_quality_dialog_message", new SeekbarThumbnailsHighQualityAvailability());
|
||||||
public static final BooleanSetting SLIDE_TO_SEEK = new BooleanSetting("revanced_slide_to_seek", FALSE, true);
|
public static final BooleanSetting SLIDE_TO_SEEK = new BooleanSetting("revanced_slide_to_seek", FALSE, true);
|
||||||
public static final BooleanSetting SEEKBAR_CUSTOM_COLOR = new BooleanSetting("revanced_seekbar_custom_color", FALSE, true);
|
public static final BooleanSetting SEEKBAR_CUSTOM_COLOR = new BooleanSetting("revanced_seekbar_custom_color", FALSE, true);
|
||||||
private static final StringSetting DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_value", "#FF0033");
|
|
||||||
public static final StringSetting SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_primary", "#FF0033", true, parent(SEEKBAR_CUSTOM_COLOR));
|
public static final StringSetting SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_primary", "#FF0033", true, parent(SEEKBAR_CUSTOM_COLOR));
|
||||||
public static final StringSetting SEEKBAR_CUSTOM_COLOR_ACCENT = new StringSetting("revanced_seekbar_custom_color_accent", "#FF2791", true, parent(SEEKBAR_CUSTOM_COLOR));
|
public static final StringSetting SEEKBAR_CUSTOM_COLOR_ACCENT = new StringSetting("revanced_seekbar_custom_color_accent", "#FF2791", true, parent(SEEKBAR_CUSTOM_COLOR));
|
||||||
|
|
||||||
@@ -322,7 +321,6 @@ public class Settings extends BaseSettings {
|
|||||||
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
||||||
public static final IntegerSetting SWIPE_OVERLAY_OPACITY = new IntegerSetting("revanced_swipe_overlay_background_opacity", 60, true,
|
public static final IntegerSetting SWIPE_OVERLAY_OPACITY = new IntegerSetting("revanced_swipe_overlay_background_opacity", 60, true,
|
||||||
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
||||||
private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127);
|
|
||||||
public static final LongSetting SWIPE_OVERLAY_TIMEOUT = new LongSetting("revanced_swipe_overlay_timeout", 500L, true,
|
public static final LongSetting SWIPE_OVERLAY_TIMEOUT = new LongSetting("revanced_swipe_overlay_timeout", 500L, true,
|
||||||
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
|
||||||
public static final BooleanSetting SWIPE_SAVE_AND_RESTORE_BRIGHTNESS = new BooleanSetting("revanced_swipe_save_and_restore_brightness", TRUE, true, parent(SWIPE_BRIGHTNESS));
|
public static final BooleanSetting SWIPE_SAVE_AND_RESTORE_BRIGHTNESS = new BooleanSetting("revanced_swipe_save_and_restore_brightness", TRUE, true, parent(SWIPE_BRIGHTNESS));
|
||||||
@@ -384,9 +382,12 @@ public class Settings extends BaseSettings {
|
|||||||
public static final StringSetting SB_CATEGORY_UNSUBMITTED_COLOR = new StringSetting("sb_unsubmitted_color", "#FFFFFF");
|
public static final StringSetting SB_CATEGORY_UNSUBMITTED_COLOR = new StringSetting("sb_unsubmitted_color", "#FFFFFF");
|
||||||
|
|
||||||
// Deprecated migrations
|
// Deprecated migrations
|
||||||
public static final StringSetting DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING = new StringSetting("uuid", ""); // Delete sometime in 2024
|
private static final StringSetting DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING = new StringSetting("uuid", ""); // Delete sometime in 2024
|
||||||
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true);
|
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true);
|
||||||
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE);
|
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE);
|
||||||
|
private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127);
|
||||||
|
private static final StringSetting DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_value", "#FF0033");
|
||||||
|
private static final BooleanSetting DEPRECATED_DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// region Migration
|
// region Migration
|
||||||
@@ -405,6 +406,8 @@ public class Settings extends BaseSettings {
|
|||||||
|
|
||||||
migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER);
|
migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER);
|
||||||
|
|
||||||
|
migrateOldSettingToNew(DEPRECATED_DISABLE_SUGGESTED_VIDEO_END_SCREEN, HIDE_END_SCREEN_SUGGESTED_VIDEO);
|
||||||
|
|
||||||
// Migrate renamed enum.
|
// Migrate renamed enum.
|
||||||
//noinspection deprecation
|
//noinspection deprecation
|
||||||
if (MINIPLAYER_TYPE.get() == MiniplayerType.PHONE) {
|
if (MINIPLAYER_TYPE.get() == MiniplayerType.PHONE) {
|
||||||
|
|||||||
@@ -21,9 +21,6 @@ enum class PlayerType {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* A regular video is minimized.
|
* A regular video is minimized.
|
||||||
*
|
|
||||||
* When spoofing to 16.x YouTube and watching a short with a regular video in the background,
|
|
||||||
* the type can be this (and not [HIDDEN]).
|
|
||||||
*/
|
*/
|
||||||
WATCH_WHILE_MINIMIZED,
|
WATCH_WHILE_MINIMIZED,
|
||||||
WATCH_WHILE_MAXIMIZED,
|
WATCH_WHILE_MAXIMIZED,
|
||||||
@@ -56,8 +53,7 @@ enum class PlayerType {
|
|||||||
val newType = nameToPlayerType[enumName]
|
val newType = nameToPlayerType[enumName]
|
||||||
if (newType == null) {
|
if (newType == null) {
|
||||||
Logger.printException { "Unknown PlayerType encountered: $enumName" }
|
Logger.printException { "Unknown PlayerType encountered: $enumName" }
|
||||||
} else if (current != newType) {
|
} else {
|
||||||
Logger.printDebug { "PlayerType changed to: $newType" }
|
|
||||||
current = newType
|
current = newType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -68,9 +64,13 @@ enum class PlayerType {
|
|||||||
@JvmStatic
|
@JvmStatic
|
||||||
var current
|
var current
|
||||||
get() = currentPlayerType
|
get() = currentPlayerType
|
||||||
private set(value) {
|
private set(type) {
|
||||||
currentPlayerType = value
|
if (currentPlayerType != type) {
|
||||||
onChange(currentPlayerType)
|
Logger.printDebug { "Changed to: $type" }
|
||||||
|
|
||||||
|
currentPlayerType = type
|
||||||
|
onChange(type)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Volatile // Read/write from different threads.
|
@Volatile // Read/write from different threads.
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package app.revanced.extension.youtube.sponsorblock.ui;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import app.revanced.extension.shared.Logger;
|
||||||
|
import app.revanced.extension.youtube.patches.VideoInformation;
|
||||||
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
|
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
|
||||||
|
|
||||||
|
public class CreateSegmentButton {
|
||||||
|
@Nullable
|
||||||
|
private static PlayerControlButton instance;
|
||||||
|
|
||||||
|
public static void hideControls() {
|
||||||
|
if (instance != null) instance.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* injection point
|
||||||
|
*/
|
||||||
|
public static void initialize(View controlsView) {
|
||||||
|
try {
|
||||||
|
instance = new PlayerControlButton(
|
||||||
|
controlsView,
|
||||||
|
"revanced_sb_create_segment_button",
|
||||||
|
null,
|
||||||
|
CreateSegmentButton::shouldBeShown,
|
||||||
|
v -> SponsorBlockViewController.toggleNewSegmentLayoutVisibility(),
|
||||||
|
null
|
||||||
|
);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Logger.printException(() -> "initialize failure", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Injection point
|
||||||
|
*/
|
||||||
|
public static void setVisibilityImmediate(boolean visible) {
|
||||||
|
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Injection point
|
||||||
|
*/
|
||||||
|
public static void setVisibility(boolean visible, boolean animated) {
|
||||||
|
if (instance != null) instance.setVisibility(visible, animated);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean shouldBeShown() {
|
||||||
|
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get()
|
||||||
|
&& !VideoInformation.isAtEndOfVideo();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
package app.revanced.extension.youtube.sponsorblock.ui;
|
|
||||||
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import app.revanced.extension.shared.Logger;
|
|
||||||
import app.revanced.extension.shared.Utils;
|
|
||||||
import app.revanced.extension.youtube.patches.VideoInformation;
|
|
||||||
import app.revanced.extension.youtube.settings.Settings;
|
|
||||||
import app.revanced.extension.youtube.videoplayer.PlayerControlTopButton;
|
|
||||||
|
|
||||||
public class CreateSegmentButtonController extends PlayerControlTopButton {
|
|
||||||
@Nullable
|
|
||||||
private static CreateSegmentButtonController instance;
|
|
||||||
|
|
||||||
public static void hideControls() {
|
|
||||||
if (instance != null) instance.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* injection point
|
|
||||||
*/
|
|
||||||
public static void initialize(View youtubeControlsLayout) {
|
|
||||||
try {
|
|
||||||
Logger.printDebug(() -> "initializing new segment button");
|
|
||||||
ImageView imageView = Objects.requireNonNull(Utils.getChildViewByResourceName(
|
|
||||||
youtubeControlsLayout, "revanced_sb_create_segment_button"));
|
|
||||||
instance = new CreateSegmentButtonController(imageView);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
Logger.printException(() -> "initialize failure", ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* injection point
|
|
||||||
*/
|
|
||||||
public static void changeVisibilityImmediate(boolean visible) {
|
|
||||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* injection point
|
|
||||||
*/
|
|
||||||
public static void changeVisibility(boolean visible, boolean animated) {
|
|
||||||
if (instance != null) instance.setVisibility(visible, animated);
|
|
||||||
}
|
|
||||||
|
|
||||||
private CreateSegmentButtonController(ImageView imageView) {
|
|
||||||
super(imageView, v -> SponsorBlockViewController.toggleNewSegmentLayoutVisibility());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean shouldBeShown() {
|
|
||||||
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get()
|
|
||||||
&& !VideoInformation.isAtEndOfVideo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -19,7 +19,6 @@ import app.revanced.extension.shared.Utils;
|
|||||||
import app.revanced.extension.youtube.settings.Settings;
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
import app.revanced.extension.youtube.shared.PlayerType;
|
import app.revanced.extension.youtube.shared.PlayerType;
|
||||||
import app.revanced.extension.youtube.sponsorblock.objects.SponsorSegment;
|
import app.revanced.extension.youtube.sponsorblock.objects.SponsorSegment;
|
||||||
import app.revanced.extension.youtube.videoplayer.PlayerControlTopButton;
|
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
|
|
||||||
public class SponsorBlockViewController {
|
public class SponsorBlockViewController {
|
||||||
@@ -239,8 +238,8 @@ public class SponsorBlockViewController {
|
|||||||
// but if buttons are showing when the end of the video is reached then they need
|
// but if buttons are showing when the end of the video is reached then they need
|
||||||
// to be forcefully hidden
|
// to be forcefully hidden
|
||||||
if (!Settings.AUTO_REPEAT.get()) {
|
if (!Settings.AUTO_REPEAT.get()) {
|
||||||
CreateSegmentButtonController.hideControls();
|
CreateSegmentButton.hideControls();
|
||||||
VotingButtonController.hideControls();
|
VotingButton.hideControls();
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.printException(() -> "endOfVideoReached failure", ex);
|
Logger.printException(() -> "endOfVideoReached failure", ex);
|
||||||
|
|||||||
@@ -1,23 +1,19 @@
|
|||||||
package app.revanced.extension.youtube.sponsorblock.ui;
|
package app.revanced.extension.youtube.sponsorblock.ui;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import app.revanced.extension.shared.Logger;
|
import app.revanced.extension.shared.Logger;
|
||||||
import app.revanced.extension.shared.Utils;
|
|
||||||
import app.revanced.extension.youtube.patches.VideoInformation;
|
import app.revanced.extension.youtube.patches.VideoInformation;
|
||||||
import app.revanced.extension.youtube.settings.Settings;
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
|
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
|
||||||
import app.revanced.extension.youtube.sponsorblock.SponsorBlockUtils;
|
import app.revanced.extension.youtube.sponsorblock.SponsorBlockUtils;
|
||||||
import app.revanced.extension.youtube.videoplayer.PlayerControlTopButton;
|
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
|
||||||
|
|
||||||
public class VotingButtonController extends PlayerControlTopButton {
|
public class VotingButton {
|
||||||
@Nullable
|
@Nullable
|
||||||
private static VotingButtonController instance;
|
private static PlayerControlButton instance;
|
||||||
|
|
||||||
public static void hideControls() {
|
public static void hideControls() {
|
||||||
if (instance != null) instance.hide();
|
if (instance != null) instance.hide();
|
||||||
@@ -26,36 +22,36 @@ public class VotingButtonController extends PlayerControlTopButton {
|
|||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void initialize(View youtubeControlsLayout) {
|
public static void initialize(View controlsView) {
|
||||||
try {
|
try {
|
||||||
Logger.printDebug(() -> "initializing voting button");
|
instance = new PlayerControlButton(
|
||||||
ImageView imageView = Objects.requireNonNull(Utils.getChildViewByResourceName(
|
controlsView,
|
||||||
youtubeControlsLayout, "revanced_sb_voting_button"));
|
"revanced_sb_voting_button",
|
||||||
instance = new VotingButtonController(imageView);
|
null,
|
||||||
|
VotingButton::shouldBeShown,
|
||||||
|
v -> SponsorBlockUtils.onVotingClicked(v.getContext()),
|
||||||
|
null
|
||||||
|
);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.printException(() -> "initialize failure", ex);
|
Logger.printException(() -> "initialize failure", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* injection point
|
* Injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibilityImmediate(boolean visible) {
|
public static void setVisibilityImmediate(boolean visible) {
|
||||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* injection point
|
* Injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibility(boolean visible, boolean animated) {
|
public static void setVisibility(boolean visible, boolean animated) {
|
||||||
if (instance != null) instance.setVisibility(visible, animated);
|
if (instance != null) instance.setVisibility(visible, animated);
|
||||||
}
|
}
|
||||||
|
|
||||||
private VotingButtonController(ImageView imageView) {
|
private static boolean shouldBeShown() {
|
||||||
super(imageView, v -> SponsorBlockUtils.onVotingClicked(v.getContext()));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean shouldBeShown() {
|
|
||||||
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
|
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
|
||||||
&& SegmentPlaybackController.videoHasSegments() && !VideoInformation.isAtEndOfVideo();
|
&& SegmentPlaybackController.videoHasSegments() && !VideoInformation.isAtEndOfVideo();
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ import kotlin.math.min
|
|||||||
import kotlin.math.round
|
import kotlin.math.round
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main overlay layout for displaying volume and brightness level with both circular and rectangular progress bars.
|
* Main overlay layout for displaying volume and brightness level with both circular and horizontal progress bars.
|
||||||
*/
|
*/
|
||||||
class SwipeControlsOverlayLayout(
|
class SwipeControlsOverlayLayout(
|
||||||
context: Context,
|
context: Context,
|
||||||
@@ -69,7 +69,7 @@ class SwipeControlsOverlayLayout(
|
|||||||
}
|
}
|
||||||
addView(circularProgressView)
|
addView(circularProgressView)
|
||||||
|
|
||||||
// Initialize rectangular progress bar
|
// Initialize horizontal progress bar
|
||||||
val screenWidth = resources.displayMetrics.widthPixels
|
val screenWidth = resources.displayMetrics.widthPixels
|
||||||
val layoutWidth = (screenWidth * 2 / 3).toInt() // 2/3 of screen width
|
val layoutWidth = (screenWidth * 2 / 3).toInt() // 2/3 of screen width
|
||||||
horizontalProgressView = HorizontalProgressView(
|
horizontalProgressView = HorizontalProgressView(
|
||||||
@@ -152,10 +152,7 @@ class SwipeControlsOverlayLayout(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract base class for progress views to reduce code duplication.
|
* Abstract base class for progress views.
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Abstract base class for progress views to reduce code duplication.
|
|
||||||
*/
|
*/
|
||||||
abstract class AbstractProgressView(
|
abstract class AbstractProgressView(
|
||||||
context: Context,
|
context: Context,
|
||||||
@@ -183,10 +180,9 @@ abstract class AbstractProgressView(
|
|||||||
public val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
public val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
||||||
color = overlayTextColor
|
color = overlayTextColor
|
||||||
textAlign = Paint.Align.CENTER
|
textAlign = Paint.Align.CENTER
|
||||||
textSize = 30f // Can adjust based on need
|
textSize = 40f // Can adjust based on need
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected var progress = 0
|
protected var progress = 0
|
||||||
protected var maxProgress = 100
|
protected var maxProgress = 100
|
||||||
protected var displayText: String = "0"
|
protected var displayText: String = "0"
|
||||||
@@ -211,7 +207,7 @@ abstract class AbstractProgressView(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom view for rendering a circular progress indicator with text and icon.
|
* Custom view for rendering a circular progress indicator with icons and text.
|
||||||
*/
|
*/
|
||||||
class CircularProgressView(
|
class CircularProgressView(
|
||||||
context: Context,
|
context: Context,
|
||||||
@@ -235,7 +231,7 @@ class CircularProgressView(
|
|||||||
private val rectF = RectF()
|
private val rectF = RectF()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
textPaint.textSize = 40f // Override default text size for horizontal view
|
textPaint.textSize = 40f // Override default text size for circular view
|
||||||
progressPaint.strokeWidth = 20f
|
progressPaint.strokeWidth = 20f
|
||||||
fillBackgroundPaint.strokeWidth = 20f
|
fillBackgroundPaint.strokeWidth = 20f
|
||||||
progressPaint.strokeCap = Paint.Cap.ROUND
|
progressPaint.strokeCap = Paint.Cap.ROUND
|
||||||
@@ -266,7 +262,7 @@ class CircularProgressView(
|
|||||||
it.draw(canvas)
|
it.draw(canvas)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not in icon-only mode, draw the text inside the ring.
|
// If not a minimal style mode, draw the text inside the ring.
|
||||||
if (!overlayShowOverlayMinimalStyle) {
|
if (!overlayShowOverlayMinimalStyle) {
|
||||||
canvas.drawText(displayText, width / 2f, height / 2f + 60f, textPaint)
|
canvas.drawText(displayText, width / 2f, height / 2f + 60f, textPaint)
|
||||||
}
|
}
|
||||||
@@ -300,7 +296,7 @@ class HorizontalProgressView(
|
|||||||
private val padding = 40f
|
private val padding = 40f
|
||||||
|
|
||||||
init {
|
init {
|
||||||
textPaint.textSize = 30f // Override default text size for horizontal view
|
textPaint.textSize = 36f // Override default text size for horizontal view
|
||||||
progressPaint.strokeWidth = 0f
|
progressPaint.strokeWidth = 0f
|
||||||
progressPaint.strokeCap = Paint.Cap.BUTT
|
progressPaint.strokeCap = Paint.Cap.BUTT
|
||||||
progressPaint.style = Paint.Style.FILL
|
progressPaint.style = Paint.Style.FILL
|
||||||
|
|||||||
@@ -1,38 +1,35 @@
|
|||||||
package app.revanced.extension.youtube.videoplayer;
|
package app.revanced.extension.youtube.videoplayer;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import app.revanced.extension.shared.Logger;
|
||||||
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
|
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
|
||||||
import app.revanced.extension.youtube.settings.Settings;
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
import app.revanced.extension.shared.Logger;
|
import app.revanced.extension.youtube.shared.PlayerType;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class CopyVideoUrlButton extends PlayerControlBottomButton {
|
public class CopyVideoUrlButton {
|
||||||
@Nullable
|
@Nullable
|
||||||
private static CopyVideoUrlButton instance;
|
private static PlayerControlButton instance;
|
||||||
|
|
||||||
public CopyVideoUrlButton(ViewGroup viewGroup) {
|
|
||||||
super(
|
|
||||||
viewGroup,
|
|
||||||
"revanced_copy_video_url_button",
|
|
||||||
Settings.COPY_VIDEO_URL,
|
|
||||||
view -> CopyVideoUrlPatch.copyUrl(false),
|
|
||||||
view -> {
|
|
||||||
CopyVideoUrlPatch.copyUrl(true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injection point.
|
* Injection point.
|
||||||
*/
|
*/
|
||||||
public static void initializeButton(View view) {
|
public static void initializeButton(View controlsView) {
|
||||||
try {
|
try {
|
||||||
instance = new CopyVideoUrlButton((ViewGroup) view);
|
instance = new PlayerControlButton(
|
||||||
|
controlsView,
|
||||||
|
"revanced_copy_video_url_button",
|
||||||
|
"revanced_copy_video_url_button_placeholder",
|
||||||
|
Settings.COPY_VIDEO_URL::get,
|
||||||
|
view -> CopyVideoUrlPatch.copyUrl(false),
|
||||||
|
view -> {
|
||||||
|
CopyVideoUrlPatch.copyUrl(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.printException(() -> "initializeButton failure", ex);
|
Logger.printException(() -> "initializeButton failure", ex);
|
||||||
}
|
}
|
||||||
@@ -41,14 +38,14 @@ public class CopyVideoUrlButton extends PlayerControlBottomButton {
|
|||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibilityImmediate(boolean visible) {
|
public static void setVisibilityImmediate(boolean visible) {
|
||||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibility(boolean visible, boolean animated) {
|
public static void setVisibility(boolean visible, boolean animated) {
|
||||||
if (instance != null) instance.setVisibility(visible, animated);
|
if (instance != null) instance.setVisibility(visible, animated);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,38 +1,35 @@
|
|||||||
package app.revanced.extension.youtube.videoplayer;
|
package app.revanced.extension.youtube.videoplayer;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import app.revanced.extension.shared.Logger;
|
||||||
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
|
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
|
||||||
import app.revanced.extension.youtube.settings.Settings;
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
import app.revanced.extension.shared.Logger;
|
import app.revanced.extension.youtube.shared.PlayerType;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class CopyVideoUrlTimestampButton extends PlayerControlBottomButton {
|
public class CopyVideoUrlTimestampButton {
|
||||||
@Nullable
|
@Nullable
|
||||||
private static CopyVideoUrlTimestampButton instance;
|
private static PlayerControlButton instance;
|
||||||
|
|
||||||
public CopyVideoUrlTimestampButton(ViewGroup bottomControlsViewGroup) {
|
|
||||||
super(
|
|
||||||
bottomControlsViewGroup,
|
|
||||||
"revanced_copy_video_url_timestamp_button",
|
|
||||||
Settings.COPY_VIDEO_URL_TIMESTAMP,
|
|
||||||
view -> CopyVideoUrlPatch.copyUrl(true),
|
|
||||||
view -> {
|
|
||||||
CopyVideoUrlPatch.copyUrl(false);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injection point.
|
* Injection point.
|
||||||
*/
|
*/
|
||||||
public static void initializeButton(View bottomControlsViewGroup) {
|
public static void initializeButton(View controlsView) {
|
||||||
try {
|
try {
|
||||||
instance = new CopyVideoUrlTimestampButton((ViewGroup) bottomControlsViewGroup);
|
instance = new PlayerControlButton(
|
||||||
|
controlsView,
|
||||||
|
"revanced_copy_video_url_timestamp_button",
|
||||||
|
"revanced_copy_video_url_timestamp_button_placeholder",
|
||||||
|
Settings.COPY_VIDEO_URL_TIMESTAMP::get,
|
||||||
|
view -> CopyVideoUrlPatch.copyUrl(true),
|
||||||
|
view -> {
|
||||||
|
CopyVideoUrlPatch.copyUrl(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.printException(() -> "initializeButton failure", ex);
|
Logger.printException(() -> "initializeButton failure", ex);
|
||||||
}
|
}
|
||||||
@@ -41,14 +38,14 @@ public class CopyVideoUrlTimestampButton extends PlayerControlBottomButton {
|
|||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibilityImmediate(boolean visible) {
|
public static void setVisibilityImmediate(boolean visible) {
|
||||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibility(boolean visible, boolean animated) {
|
public static void setVisibility(boolean visible, boolean animated) {
|
||||||
if (instance != null) instance.setVisibility(visible, animated);
|
if (instance != null) instance.setVisibility(visible, animated);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package app.revanced.extension.youtube.videoplayer;
|
package app.revanced.extension.youtube.videoplayer;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
@@ -11,26 +10,23 @@ import app.revanced.extension.youtube.patches.VideoInformation;
|
|||||||
import app.revanced.extension.youtube.settings.Settings;
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class ExternalDownloadButton extends PlayerControlBottomButton {
|
public class ExternalDownloadButton {
|
||||||
@Nullable
|
@Nullable
|
||||||
private static ExternalDownloadButton instance;
|
private static PlayerControlButton instance;
|
||||||
|
|
||||||
public ExternalDownloadButton(ViewGroup viewGroup) {
|
|
||||||
super(
|
|
||||||
viewGroup,
|
|
||||||
"revanced_external_download_button",
|
|
||||||
Settings.EXTERNAL_DOWNLOADER,
|
|
||||||
ExternalDownloadButton::onDownloadClick,
|
|
||||||
null
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injection point.
|
* Injection point.
|
||||||
*/
|
*/
|
||||||
public static void initializeButton(View view) {
|
public static void initializeButton(View controlsView) {
|
||||||
try {
|
try {
|
||||||
instance = new ExternalDownloadButton((ViewGroup) view);
|
instance = new PlayerControlButton(
|
||||||
|
controlsView,
|
||||||
|
"revanced_external_download_button",
|
||||||
|
"revanced_external_download_button_placeholder",
|
||||||
|
Settings.EXTERNAL_DOWNLOADER::get,
|
||||||
|
ExternalDownloadButton::onDownloadClick,
|
||||||
|
null
|
||||||
|
);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.printException(() -> "initializeButton failure", ex);
|
Logger.printException(() -> "initializeButton failure", ex);
|
||||||
}
|
}
|
||||||
@@ -39,14 +35,14 @@ public class ExternalDownloadButton extends PlayerControlBottomButton {
|
|||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibilityImmediate(boolean visible) {
|
public static void setVisibilityImmediate(boolean visible) {
|
||||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* injection point
|
* Injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibility(boolean visible, boolean animated) {
|
public static void setVisibility(boolean visible, boolean animated) {
|
||||||
if (instance != null) instance.setVisibility(visible, animated);
|
if (instance != null) instance.setVisibility(visible, animated);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,31 @@
|
|||||||
package app.revanced.extension.youtube.videoplayer;
|
package app.revanced.extension.youtube.videoplayer;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import app.revanced.extension.shared.Logger;
|
||||||
import app.revanced.extension.youtube.patches.playback.speed.CustomPlaybackSpeedPatch;
|
import app.revanced.extension.youtube.patches.playback.speed.CustomPlaybackSpeedPatch;
|
||||||
import app.revanced.extension.youtube.settings.Settings;
|
import app.revanced.extension.youtube.settings.Settings;
|
||||||
import app.revanced.extension.shared.Logger;
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class PlaybackSpeedDialogButton extends PlayerControlBottomButton {
|
public class PlaybackSpeedDialogButton {
|
||||||
@Nullable
|
@Nullable
|
||||||
private static PlaybackSpeedDialogButton instance;
|
private static PlayerControlButton instance;
|
||||||
|
|
||||||
public PlaybackSpeedDialogButton(ViewGroup viewGroup) {
|
|
||||||
super(
|
|
||||||
viewGroup,
|
|
||||||
"revanced_playback_speed_dialog_button",
|
|
||||||
Settings.PLAYBACK_SPEED_DIALOG_BUTTON,
|
|
||||||
view -> CustomPlaybackSpeedPatch.showOldPlaybackSpeedMenu(),
|
|
||||||
null
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injection point.
|
* Injection point.
|
||||||
*/
|
*/
|
||||||
public static void initializeButton(View view) {
|
public static void initializeButton(View controlsView) {
|
||||||
try {
|
try {
|
||||||
instance = new PlaybackSpeedDialogButton((ViewGroup) view);
|
instance = new PlayerControlButton(
|
||||||
|
controlsView,
|
||||||
|
"revanced_playback_speed_dialog_button",
|
||||||
|
"revanced_playback_speed_dialog_button_placeholder",
|
||||||
|
Settings.PLAYBACK_SPEED_DIALOG_BUTTON::get,
|
||||||
|
view -> CustomPlaybackSpeedPatch.showOldPlaybackSpeedMenu(),
|
||||||
|
null
|
||||||
|
);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Logger.printException(() -> "initializeButton failure", ex);
|
Logger.printException(() -> "initializeButton failure", ex);
|
||||||
}
|
}
|
||||||
@@ -38,14 +34,14 @@ public class PlaybackSpeedDialogButton extends PlayerControlBottomButton {
|
|||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibilityImmediate(boolean visible) {
|
public static void setVisibilityImmediate(boolean visible) {
|
||||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* injection point
|
* injection point
|
||||||
*/
|
*/
|
||||||
public static void changeVisibility(boolean visible, boolean animated) {
|
public static void setVisibility(boolean visible, boolean animated) {
|
||||||
if (instance != null) instance.setVisibility(visible, animated);
|
if (instance != null) instance.setVisibility(visible, animated);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
package app.revanced.extension.youtube.videoplayer;
|
|
||||||
|
|
||||||
import static app.revanced.extension.youtube.videoplayer.PlayerControlTopButton.fadeOutDuration;
|
|
||||||
|
|
||||||
import android.transition.Fade;
|
|
||||||
import android.transition.TransitionManager;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import app.revanced.extension.shared.Logger;
|
|
||||||
import app.revanced.extension.shared.Utils;
|
|
||||||
import app.revanced.extension.shared.settings.BooleanSetting;
|
|
||||||
|
|
||||||
public abstract class PlayerControlBottomButton {
|
|
||||||
private final WeakReference<ImageView> buttonRef;
|
|
||||||
private final BooleanSetting setting;
|
|
||||||
private boolean isVisible;
|
|
||||||
|
|
||||||
protected PlayerControlBottomButton(ViewGroup bottomControlsViewGroup, String imageViewButtonId,
|
|
||||||
BooleanSetting booleanSetting, View.OnClickListener onClickListener,
|
|
||||||
@Nullable View.OnLongClickListener longClickListener) {
|
|
||||||
Logger.printDebug(() -> "Initializing button: " + imageViewButtonId);
|
|
||||||
|
|
||||||
ImageView imageView = Objects.requireNonNull(bottomControlsViewGroup.findViewById(
|
|
||||||
Utils.getResourceIdentifier(imageViewButtonId, "id")
|
|
||||||
));
|
|
||||||
imageView.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
imageView.setOnClickListener(onClickListener);
|
|
||||||
if (longClickListener != null) {
|
|
||||||
imageView.setOnLongClickListener(longClickListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
setting = booleanSetting;
|
|
||||||
buttonRef = new WeakReference<>(imageView);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setVisibilityImmediate(boolean visible) {
|
|
||||||
private_setVisibility(visible, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setVisibility(boolean visible, boolean animated) {
|
|
||||||
// Ignore this call, otherwise with full screen thumbnails the buttons are visible while seeking.
|
|
||||||
if (visible && !animated) return;
|
|
||||||
|
|
||||||
private_setVisibility(visible, animated);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void private_setVisibility(boolean visible, boolean animated) {
|
|
||||||
try {
|
|
||||||
// If the visibility state hasn't changed, return early.
|
|
||||||
if (isVisible == visible) return;
|
|
||||||
isVisible = visible;
|
|
||||||
|
|
||||||
ImageView iView = buttonRef.get();
|
|
||||||
if (iView == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewGroup parent = (ViewGroup) iView.getParent();
|
|
||||||
if (parent == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply transition if animation is enabled.
|
|
||||||
if (animated) {
|
|
||||||
Fade fade = visible
|
|
||||||
? PlayerControlTopButton.fadeInTransition
|
|
||||||
: PlayerControlTopButton.fadeOutTransition;
|
|
||||||
TransitionManager.beginDelayedTransition(parent, fade);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the view should be visible and the setting allows it.
|
|
||||||
if (visible && setting.get()) {
|
|
||||||
// Set the view to VISIBLE.
|
|
||||||
iView.setVisibility(View.VISIBLE);
|
|
||||||
} else if (iView.getVisibility() == View.VISIBLE) {
|
|
||||||
// First, set visibility to INVISIBLE for animation.
|
|
||||||
iView.setVisibility(View.INVISIBLE);
|
|
||||||
|
|
||||||
if (animated) {
|
|
||||||
// Set the view to GONE after the fade animation ends.
|
|
||||||
Utils.runOnMainThreadDelayed(() -> {
|
|
||||||
if (!isVisible) {
|
|
||||||
iView.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}, fadeOutDuration);
|
|
||||||
} else {
|
|
||||||
// If no animation, immediately set the view to GONE.
|
|
||||||
iView.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
Logger.printException(() -> "private_setVisibility failure", ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,190 @@
|
|||||||
|
package app.revanced.extension.youtube.videoplayer;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.animation.Animation;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
import app.revanced.extension.shared.Logger;
|
||||||
|
import app.revanced.extension.shared.Utils;
|
||||||
|
import app.revanced.extension.youtube.shared.PlayerType;
|
||||||
|
import kotlin.Unit;
|
||||||
|
|
||||||
|
public class PlayerControlButton {
|
||||||
|
public interface PlayerControlButtonVisibility {
|
||||||
|
/**
|
||||||
|
* @return If the button should be shown when the player overlay is visible.
|
||||||
|
*/
|
||||||
|
boolean shouldBeShown();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final int fadeInDuration;
|
||||||
|
private static final int fadeOutDuration;
|
||||||
|
|
||||||
|
private static final Animation fadeInAnimation;
|
||||||
|
private static final Animation fadeOutAnimation;
|
||||||
|
private static final Animation fadeOutImmediate;
|
||||||
|
|
||||||
|
static {
|
||||||
|
fadeInDuration = Utils.getResourceInteger("fade_duration_fast");
|
||||||
|
fadeOutDuration = Utils.getResourceInteger("fade_duration_scheduled");
|
||||||
|
|
||||||
|
fadeInAnimation = Utils.getResourceAnimation("fade_in");
|
||||||
|
fadeInAnimation.setDuration(fadeInDuration);
|
||||||
|
|
||||||
|
fadeOutAnimation = Utils.getResourceAnimation("fade_out");
|
||||||
|
fadeOutAnimation.setDuration(fadeOutDuration);
|
||||||
|
|
||||||
|
// Animation for the fast fade out after tapping the overlay.
|
||||||
|
// Currently not used but should be.
|
||||||
|
fadeOutImmediate = Utils.getResourceAnimation("abc_fade_out");
|
||||||
|
fadeOutImmediate.setDuration(Utils.getResourceInteger("fade_duration_fast"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private final WeakReference<View> buttonRef;
|
||||||
|
/**
|
||||||
|
* Empty view with the same layout size as the button. Used to fill empty space while the
|
||||||
|
* fade out animation runs. Without this the chapter titles overlapping the button when fading out.
|
||||||
|
*/
|
||||||
|
private final WeakReference<View> placeHolderRef;
|
||||||
|
private final PlayerControlButtonVisibility visibilityCheck;
|
||||||
|
private boolean isVisible;
|
||||||
|
|
||||||
|
public PlayerControlButton(View controlsViewGroup,
|
||||||
|
String imageViewButtonId,
|
||||||
|
@Nullable String placeholderId,
|
||||||
|
PlayerControlButtonVisibility buttonVisibility,
|
||||||
|
View.OnClickListener onClickListener,
|
||||||
|
@Nullable View.OnLongClickListener longClickListener) {
|
||||||
|
ImageView imageView = Utils.getChildViewByResourceName(controlsViewGroup, imageViewButtonId);
|
||||||
|
imageView.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
View tempPlaceholder = null;
|
||||||
|
if (placeholderId != null) {
|
||||||
|
tempPlaceholder = Utils.getChildViewByResourceName(controlsViewGroup, placeholderId);
|
||||||
|
tempPlaceholder.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
placeHolderRef = new WeakReference<>(tempPlaceholder);
|
||||||
|
|
||||||
|
imageView.setOnClickListener(onClickListener);
|
||||||
|
if (longClickListener != null) {
|
||||||
|
imageView.setOnLongClickListener(longClickListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
visibilityCheck = buttonVisibility;
|
||||||
|
buttonRef = new WeakReference<>(imageView);
|
||||||
|
isVisible = false;
|
||||||
|
|
||||||
|
// Update the visibility after the player type changes.
|
||||||
|
// This ensures that button animations are cleared and their states are updated correctly
|
||||||
|
// when switching between states like minimized, maximized, or fullscreen, preventing
|
||||||
|
// "stuck" animations or incorrect visibility. Without this fix the issue is most noticable
|
||||||
|
// when maximizing type 3 miniplayer.
|
||||||
|
PlayerType.getOnChange().addObserver((PlayerType type) -> {
|
||||||
|
playerTypeChanged(type);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVisibilityImmediate(boolean visible) {
|
||||||
|
if (visible) {
|
||||||
|
// Fix button flickering, by pushing this call to the back of
|
||||||
|
// the main thread and letting other layout code run first.
|
||||||
|
Utils.runOnMainThread(() -> private_setVisibility(true, false));
|
||||||
|
} else {
|
||||||
|
private_setVisibility(false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVisibility(boolean visible, boolean animated) {
|
||||||
|
// Ignore this call, otherwise with full screen thumbnails the buttons are visible while seeking.
|
||||||
|
if (visible && !animated) return;
|
||||||
|
|
||||||
|
private_setVisibility(visible, animated);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void private_setVisibility(boolean visible, boolean animated) {
|
||||||
|
try {
|
||||||
|
if (isVisible == visible) return;
|
||||||
|
isVisible = visible;
|
||||||
|
|
||||||
|
View button = buttonRef.get();
|
||||||
|
if (button == null) return;
|
||||||
|
|
||||||
|
View placeholder = placeHolderRef.get();
|
||||||
|
final boolean shouldBeShown = visibilityCheck.shouldBeShown();
|
||||||
|
|
||||||
|
if (visible && shouldBeShown) {
|
||||||
|
button.clearAnimation();
|
||||||
|
if (animated) {
|
||||||
|
button.startAnimation(PlayerControlButton.fadeInAnimation);
|
||||||
|
}
|
||||||
|
button.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
if (placeholder != null) {
|
||||||
|
placeholder.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (button.getVisibility() == View.VISIBLE) {
|
||||||
|
button.clearAnimation();
|
||||||
|
if (animated) {
|
||||||
|
button.startAnimation(PlayerControlButton.fadeOutAnimation);
|
||||||
|
}
|
||||||
|
button.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (placeholder != null) {
|
||||||
|
placeholder.setVisibility(shouldBeShown
|
||||||
|
? View.VISIBLE
|
||||||
|
: View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Logger.printException(() -> "private_setVisibility failure", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Synchronizes the button state after the player state changes.
|
||||||
|
*/
|
||||||
|
private void playerTypeChanged(PlayerType newType) {
|
||||||
|
if (newType != PlayerType.WATCH_WHILE_MINIMIZED && !newType.isMaximizedOrFullscreen()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
View button = buttonRef.get();
|
||||||
|
if (button == null) return;
|
||||||
|
|
||||||
|
button.clearAnimation();
|
||||||
|
View placeholder = placeHolderRef.get();
|
||||||
|
|
||||||
|
if (visibilityCheck.shouldBeShown()) {
|
||||||
|
if (isVisible) {
|
||||||
|
button.setVisibility(View.VISIBLE);
|
||||||
|
if (placeholder != null) placeholder.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
button.setVisibility(View.GONE);
|
||||||
|
if (placeholder != null) placeholder.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
button.setVisibility(View.GONE);
|
||||||
|
if (placeholder != null) placeholder.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hide() {
|
||||||
|
if (!isVisible) return;
|
||||||
|
|
||||||
|
Utils.verifyOnMainThread();
|
||||||
|
View view = buttonRef.get();
|
||||||
|
if (view == null) return;
|
||||||
|
view.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
view = placeHolderRef.get();
|
||||||
|
if (view != null) view.setVisibility(View.GONE);
|
||||||
|
isVisible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
package app.revanced.extension.youtube.videoplayer;
|
|
||||||
|
|
||||||
import android.transition.Fade;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.animation.Animation;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
|
|
||||||
import app.revanced.extension.shared.Logger;
|
|
||||||
import app.revanced.extension.shared.Utils;
|
|
||||||
|
|
||||||
// Ideally this should be refactored into PlayerControlBottomButton,
|
|
||||||
// but the show/hide logic is not the same so keeping this as two classes might be simpler.
|
|
||||||
public abstract class PlayerControlTopButton {
|
|
||||||
static final int fadeInDuration;
|
|
||||||
static final int fadeOutDuration;
|
|
||||||
|
|
||||||
private static final Animation fadeInAnimation;
|
|
||||||
private static final Animation fadeOutAnimation;
|
|
||||||
|
|
||||||
static final Fade fadeInTransition;
|
|
||||||
static final Fade fadeOutTransition;
|
|
||||||
|
|
||||||
private final WeakReference<ImageView> buttonReference;
|
|
||||||
private boolean isShowing;
|
|
||||||
|
|
||||||
static {
|
|
||||||
fadeInDuration = Utils.getResourceInteger("fade_duration_fast");
|
|
||||||
fadeOutDuration = Utils.getResourceInteger("fade_duration_scheduled");
|
|
||||||
|
|
||||||
fadeInAnimation = Utils.getResourceAnimation("fade_in");
|
|
||||||
fadeInAnimation.setDuration(fadeInDuration);
|
|
||||||
|
|
||||||
fadeOutAnimation = Utils.getResourceAnimation("fade_out");
|
|
||||||
fadeOutAnimation.setDuration(fadeOutDuration);
|
|
||||||
|
|
||||||
fadeInTransition = new Fade();
|
|
||||||
fadeInTransition.setDuration(fadeInDuration);
|
|
||||||
|
|
||||||
fadeOutTransition = new Fade();
|
|
||||||
fadeOutTransition.setDuration(fadeOutDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected PlayerControlTopButton(ImageView imageView, View.OnClickListener onClickListener) {
|
|
||||||
imageView.setVisibility(View.GONE);
|
|
||||||
imageView.setOnClickListener(onClickListener);
|
|
||||||
|
|
||||||
buttonReference = new WeakReference<>(imageView);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setVisibilityImmediate(boolean visible) {
|
|
||||||
private_setVisibility(visible, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setVisibility(boolean visible, boolean animated) {
|
|
||||||
// Ignore this call, otherwise with full screen thumbnails the buttons are visible while seeking.
|
|
||||||
if (visible && !animated) return;
|
|
||||||
|
|
||||||
private_setVisibility(visible, animated);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void private_setVisibility(boolean visible, boolean animated) {
|
|
||||||
try {
|
|
||||||
if (isShowing == visible) return;
|
|
||||||
isShowing = visible;
|
|
||||||
|
|
||||||
ImageView iView = buttonReference.get();
|
|
||||||
if (iView == null) return;
|
|
||||||
|
|
||||||
if (visible) {
|
|
||||||
iView.clearAnimation();
|
|
||||||
if (!shouldBeShown()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (animated) {
|
|
||||||
iView.startAnimation(fadeInAnimation);
|
|
||||||
}
|
|
||||||
iView.setVisibility(View.VISIBLE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iView.getVisibility() == View.VISIBLE) {
|
|
||||||
iView.clearAnimation();
|
|
||||||
if (animated) {
|
|
||||||
iView.startAnimation(fadeOutAnimation);
|
|
||||||
}
|
|
||||||
iView.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
Logger.printException(() -> "private_setVisibility failure", ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract boolean shouldBeShown();
|
|
||||||
|
|
||||||
public void hide() {
|
|
||||||
if (!isShowing) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Utils.verifyOnMainThread();
|
|
||||||
View v = buttonReference.get();
|
|
||||||
if (v == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
v.setVisibility(View.GONE);
|
|
||||||
isShowing = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
|
|||||||
org.gradle.parallel = true
|
org.gradle.parallel = true
|
||||||
android.useAndroidX = true
|
android.useAndroidX = true
|
||||||
kotlin.code.style = official
|
kotlin.code.style = official
|
||||||
version = 5.13.0-dev.8
|
version = 5.13.0-dev.15
|
||||||
|
|||||||
@@ -1116,6 +1116,10 @@ public final class app/revanced/patches/youtube/layout/hide/endscreencards/HideE
|
|||||||
public static final fun getHideEndscreenCardsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
public static final fun getHideEndscreenCardsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final class app/revanced/patches/youtube/layout/hide/endscreensuggestion/HideEndScreenSuggestedVideoPatchKt {
|
||||||
|
public static final fun getHideEndScreenSuggestedVideoPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||||
|
}
|
||||||
|
|
||||||
public final class app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatchKt {
|
public final class app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatchKt {
|
||||||
public static final fun getDisableFullscreenAmbientModePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
public static final fun getDisableFullscreenAmbientModePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ private val hideEndscreenCardsResourcePatch = resourcePatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||||
|
"Lapp/revanced/extension/youtube/patches/HideEndscreenCardsPatch;"
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
val hideEndscreenCardsPatch = bytecodePatch(
|
val hideEndscreenCardsPatch = bytecodePatch(
|
||||||
name = "Hide endscreen cards",
|
name = "Hide endscreen cards",
|
||||||
@@ -78,9 +81,7 @@ val hideEndscreenCardsPatch = bytecodePatch(
|
|||||||
|
|
||||||
addInstruction(
|
addInstruction(
|
||||||
insertIndex,
|
insertIndex,
|
||||||
"invoke-static { v$viewRegister }, " +
|
"invoke-static { v$viewRegister }, $EXTENSION_CLASS_DESCRIPTOR->hideEndscreen(Landroid/view/View;)V",
|
||||||
"Lapp/revanced/extension/youtube/patches/HideEndscreenCardsPatch;->" +
|
|
||||||
"hideEndscreen(Landroid/view/View;)V",
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package app.revanced.patches.youtube.layout.hide.endscreensuggestion
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint
|
||||||
|
import app.revanced.util.getReference
|
||||||
|
import app.revanced.util.indexOfFirstInstruction
|
||||||
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||||
|
|
||||||
|
internal val autoNavConstructorFingerprint = fingerprint {
|
||||||
|
returns("V")
|
||||||
|
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||||
|
strings("main_app_autonav")
|
||||||
|
}
|
||||||
|
|
||||||
|
internal val autoNavStatusFingerprint = fingerprint {
|
||||||
|
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||||
|
returns("Z")
|
||||||
|
parameters()
|
||||||
|
}
|
||||||
|
|
||||||
|
internal val removeOnLayoutChangeListenerFingerprint = fingerprint {
|
||||||
|
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||||
|
returns("V")
|
||||||
|
parameters()
|
||||||
|
opcodes(
|
||||||
|
Opcode.IPUT,
|
||||||
|
Opcode.INVOKE_VIRTUAL
|
||||||
|
)
|
||||||
|
// This is the only reference present in the entire smali.
|
||||||
|
custom { method, _ ->
|
||||||
|
method.indexOfFirstInstruction {
|
||||||
|
val reference = getReference<MethodReference>()
|
||||||
|
reference?.name == "removeOnLayoutChangeListener" &&
|
||||||
|
reference.definingClass.endsWith("/YouTubePlayerOverlaysLayout;")
|
||||||
|
} >= 0
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
package app.revanced.patches.youtube.layout.hide.endscreensuggestion
|
||||||
|
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||||
|
import app.revanced.patcher.patch.bytecodePatch
|
||||||
|
import app.revanced.patcher.util.smali.ExternalLabel
|
||||||
|
import app.revanced.patches.all.misc.resources.addResources
|
||||||
|
import app.revanced.patches.all.misc.resources.addResourcesPatch
|
||||||
|
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
|
||||||
|
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||||
|
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
||||||
|
import app.revanced.util.getReference
|
||||||
|
import app.revanced.util.indexOfFirstInstructionOrThrow
|
||||||
|
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
||||||
|
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||||
|
|
||||||
|
private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||||
|
"Lapp/revanced/extension/youtube/patches/HideEndScreenSuggestedVideoPatch;"
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
|
val hideEndScreenSuggestedVideoPatch = bytecodePatch(
|
||||||
|
name = "Hide end screen suggested video",
|
||||||
|
description = "Adds an option to hide the recommended video at the end of each video.",
|
||||||
|
) {
|
||||||
|
dependsOn(
|
||||||
|
sharedExtensionPatch,
|
||||||
|
addResourcesPatch,
|
||||||
|
)
|
||||||
|
|
||||||
|
compatibleWith(
|
||||||
|
"com.google.android.youtube"(
|
||||||
|
"19.16.39",
|
||||||
|
"19.25.37",
|
||||||
|
"19.34.42",
|
||||||
|
"19.43.41",
|
||||||
|
"19.45.38",
|
||||||
|
"19.46.42",
|
||||||
|
"19.47.53",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
execute {
|
||||||
|
addResources("youtube", "layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch")
|
||||||
|
|
||||||
|
PreferenceScreen.PLAYER.addPreferences(
|
||||||
|
SwitchPreference("revanced_end_screen_suggested_video"),
|
||||||
|
)
|
||||||
|
|
||||||
|
removeOnLayoutChangeListenerFingerprint.let {
|
||||||
|
val endScreenMethod = navigate(it.originalMethod).to(it.patternMatch!!.endIndex).stop()
|
||||||
|
|
||||||
|
endScreenMethod.apply {
|
||||||
|
val autoNavStatusMethodName = autoNavStatusFingerprint.match(
|
||||||
|
autoNavConstructorFingerprint.classDef
|
||||||
|
).originalMethod.name
|
||||||
|
|
||||||
|
val invokeIndex = indexOfFirstInstructionOrThrow {
|
||||||
|
val reference = getReference<MethodReference>()
|
||||||
|
reference?.name == autoNavStatusMethodName &&
|
||||||
|
reference.returnType == "Z" &&
|
||||||
|
reference.parameterTypes.isEmpty()
|
||||||
|
}
|
||||||
|
val iGetObjectIndex = indexOfFirstInstructionReversedOrThrow(invokeIndex, Opcode.IGET_OBJECT)
|
||||||
|
val invokeReference = getInstruction<ReferenceInstruction>(invokeIndex).reference
|
||||||
|
val iGetObjectReference = getInstruction<ReferenceInstruction>(iGetObjectIndex).reference
|
||||||
|
val opcodeName = getInstruction(invokeIndex).opcode.name
|
||||||
|
|
||||||
|
addInstructionsWithLabels(
|
||||||
|
0,
|
||||||
|
"""
|
||||||
|
invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->hideEndScreenSuggestedVideo()Z
|
||||||
|
move-result v0
|
||||||
|
if-eqz v0, :show_end_screen_recommendation
|
||||||
|
|
||||||
|
iget-object v0, p0, $iGetObjectReference
|
||||||
|
|
||||||
|
# This reference checks whether autoplay is turned on.
|
||||||
|
$opcodeName { v0 }, $invokeReference
|
||||||
|
move-result v0
|
||||||
|
|
||||||
|
# Hide suggested video end screen only when autoplay is turned off.
|
||||||
|
if-nez v0, :show_end_screen_recommendation
|
||||||
|
return-void
|
||||||
|
""",
|
||||||
|
ExternalLabel("show_end_screen_recommendation", getInstruction(0))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,79 +1,9 @@
|
|||||||
package app.revanced.patches.youtube.layout.hide.suggestedvideoendscreen
|
package app.revanced.patches.youtube.layout.hide.suggestedvideoendscreen
|
||||||
|
|
||||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
|
||||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
|
||||||
import app.revanced.patcher.patch.bytecodePatch
|
import app.revanced.patcher.patch.bytecodePatch
|
||||||
import app.revanced.patcher.patch.resourcePatch
|
import app.revanced.patches.youtube.layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch
|
||||||
import app.revanced.patches.all.misc.resources.addResources
|
|
||||||
import app.revanced.patches.all.misc.resources.addResourcesPatch
|
|
||||||
import app.revanced.patches.shared.misc.mapping.get
|
|
||||||
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
|
|
||||||
import app.revanced.patches.shared.misc.mapping.resourceMappings
|
|
||||||
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
|
|
||||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
|
||||||
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
|
||||||
import app.revanced.patches.youtube.misc.settings.settingsPatch
|
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
|
||||||
|
|
||||||
internal var sizeAdjustableLiteAutoNavOverlay = -1L
|
@Deprecated("Use 'Hide suggested video end screen' instead.")
|
||||||
private set
|
val disableSuggestedVideoEndScreenPatch = bytecodePatch {
|
||||||
|
dependsOn(hideEndScreenSuggestedVideoPatch)
|
||||||
internal val disableSuggestedVideoEndScreenResourcePatch = resourcePatch {
|
}
|
||||||
dependsOn(
|
|
||||||
settingsPatch,
|
|
||||||
resourceMappingPatch,
|
|
||||||
addResourcesPatch,
|
|
||||||
)
|
|
||||||
|
|
||||||
execute {
|
|
||||||
addResources("youtube", "layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch")
|
|
||||||
|
|
||||||
PreferenceScreen.PLAYER.addPreferences(
|
|
||||||
SwitchPreference("revanced_disable_suggested_video_end_screen"),
|
|
||||||
)
|
|
||||||
|
|
||||||
sizeAdjustableLiteAutoNavOverlay = resourceMappings[
|
|
||||||
"layout",
|
|
||||||
"size_adjustable_lite_autonav_overlay",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private const val EXTENSION_CLASS_DESCRIPTOR =
|
|
||||||
"Lapp/revanced/extension/youtube/patches/DisableSuggestedVideoEndScreenPatch;"
|
|
||||||
|
|
||||||
@Suppress("unused")
|
|
||||||
val disableSuggestedVideoEndScreenPatch = bytecodePatch(
|
|
||||||
name = "Disable suggested video end screen",
|
|
||||||
description = "Adds an option to disable the suggested video end screen at the end of videos.",
|
|
||||||
) {
|
|
||||||
dependsOn(
|
|
||||||
sharedExtensionPatch,
|
|
||||||
disableSuggestedVideoEndScreenResourcePatch,
|
|
||||||
)
|
|
||||||
|
|
||||||
compatibleWith(
|
|
||||||
"com.google.android.youtube"(
|
|
||||||
"19.16.39",
|
|
||||||
"19.25.37",
|
|
||||||
"19.34.42",
|
|
||||||
"19.43.41",
|
|
||||||
"19.45.38",
|
|
||||||
"19.46.42",
|
|
||||||
"19.47.53",
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
execute {
|
|
||||||
createEndScreenViewFingerprint.method.apply {
|
|
||||||
val addOnClickEventListenerIndex = createEndScreenViewFingerprint.patternMatch!!.endIndex - 1
|
|
||||||
val viewRegister = getInstruction<FiveRegisterInstruction>(addOnClickEventListenerIndex).registerC
|
|
||||||
|
|
||||||
addInstruction(
|
|
||||||
addOnClickEventListenerIndex + 1,
|
|
||||||
"invoke-static {v$viewRegister}, " +
|
|
||||||
"$EXTENSION_CLASS_DESCRIPTOR->closeEndScreen(Landroid/widget/ImageView;)V",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package app.revanced.patches.youtube.layout.hide.suggestedvideoendscreen
|
|
||||||
|
|
||||||
import app.revanced.patcher.fingerprint
|
|
||||||
import app.revanced.util.literal
|
|
||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
|
||||||
import com.android.tools.smali.dexlib2.Opcode
|
|
||||||
|
|
||||||
internal val createEndScreenViewFingerprint = fingerprint {
|
|
||||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
|
||||||
returns("Landroid/view/View;")
|
|
||||||
parameters("Landroid/content/Context;")
|
|
||||||
opcodes(
|
|
||||||
Opcode.INVOKE_DIRECT,
|
|
||||||
Opcode.INVOKE_VIRTUAL,
|
|
||||||
Opcode.CONST,
|
|
||||||
)
|
|
||||||
literal { sizeAdjustableLiteAutoNavOverlay }
|
|
||||||
}
|
|
||||||
@@ -82,9 +82,9 @@ private val sponsorBlockResourcePatch = resourcePatch {
|
|||||||
private const val EXTENSION_SEGMENT_PLAYBACK_CONTROLLER_CLASS_DESCRIPTOR =
|
private const val EXTENSION_SEGMENT_PLAYBACK_CONTROLLER_CLASS_DESCRIPTOR =
|
||||||
"Lapp/revanced/extension/youtube/sponsorblock/SegmentPlaybackController;"
|
"Lapp/revanced/extension/youtube/sponsorblock/SegmentPlaybackController;"
|
||||||
private const val EXTENSION_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR =
|
private const val EXTENSION_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR =
|
||||||
"Lapp/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController;"
|
"Lapp/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButton;"
|
||||||
private const val EXTENSION_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR =
|
private const val EXTENSION_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR =
|
||||||
"Lapp/revanced/extension/youtube/sponsorblock/ui/VotingButtonController;"
|
"Lapp/revanced/extension/youtube/sponsorblock/ui/VotingButton;"
|
||||||
private const val EXTENSION_SPONSORBLOCK_VIEW_CONTROLLER_CLASS_DESCRIPTOR =
|
private const val EXTENSION_SPONSORBLOCK_VIEW_CONTROLLER_CLASS_DESCRIPTOR =
|
||||||
"Lapp/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController;"
|
"Lapp/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController;"
|
||||||
|
|
||||||
|
|||||||
@@ -77,12 +77,9 @@ val playerControlsResourcePatch = resourcePatch {
|
|||||||
).item(0)
|
).item(0)
|
||||||
|
|
||||||
val bottomTargetDocumentChildNodes = bottomTargetDocument.childNodes
|
val bottomTargetDocumentChildNodes = bottomTargetDocument.childNodes
|
||||||
var bottomInsertBeforeNode: Node = bottomTargetDocumentChildNodes.findElementByAttributeValue(
|
var bottomInsertBeforeNode: Node = bottomTargetDocumentChildNodes.findElementByAttributeValueOrThrow(
|
||||||
"android:inflatedId",
|
"android:inflatedId",
|
||||||
bottomLastLeftOf,
|
bottomLastLeftOf,
|
||||||
) ?: bottomTargetDocumentChildNodes.findElementByAttributeValueOrThrow(
|
|
||||||
"android:id", // Older targets use non-inflated id.
|
|
||||||
bottomLastLeftOf,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
addTopControl = { resourceDirectoryName ->
|
addTopControl = { resourceDirectoryName ->
|
||||||
@@ -123,7 +120,7 @@ val playerControlsResourcePatch = resourcePatch {
|
|||||||
).item(0).childNodes
|
).item(0).childNodes
|
||||||
|
|
||||||
// Copy the patch layout xml into the target layout file.
|
// Copy the patch layout xml into the target layout file.
|
||||||
for (index in 1 until sourceElements.length) {
|
for (index in sourceElements.length - 1 downTo 1) {
|
||||||
val element = sourceElements.item(index).cloneNode(true)
|
val element = sourceElements.item(index).cloneNode(true)
|
||||||
|
|
||||||
// If the element has no attributes there's no point adding it to the destination.
|
// If the element has no attributes there's no point adding it to the destination.
|
||||||
@@ -189,7 +186,7 @@ fun initializeBottomControl(descriptor: String) {
|
|||||||
fun injectVisibilityCheckCall(descriptor: String) {
|
fun injectVisibilityCheckCall(descriptor: String) {
|
||||||
visibilityMethod.addInstruction(
|
visibilityMethod.addInstruction(
|
||||||
visibilityInsertIndex++,
|
visibilityInsertIndex++,
|
||||||
"invoke-static { p1 , p2 }, $descriptor->changeVisibility(ZZ)V",
|
"invoke-static { p1 , p2 }, $descriptor->setVisibility(ZZ)V",
|
||||||
)
|
)
|
||||||
|
|
||||||
if (!visibilityImmediateCallbacksExistModified) {
|
if (!visibilityImmediateCallbacksExistModified) {
|
||||||
@@ -199,7 +196,7 @@ fun injectVisibilityCheckCall(descriptor: String) {
|
|||||||
|
|
||||||
visibilityImmediateMethod.addInstruction(
|
visibilityImmediateMethod.addInstruction(
|
||||||
visibilityImmediateInsertIndex++,
|
visibilityImmediateInsertIndex++,
|
||||||
"invoke-static { p0 }, $descriptor->changeVisibilityImmediate(Z)V",
|
"invoke-static { p0 }, $descriptor->setVisibilityImmediate(Z)V",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_share_copy_url_success">تم نسخ URL إلى الحافظة</string>
|
<string name="revanced_share_copy_url_success">تم نسخ URL إلى الحافظة</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">تم نسخ عنوان URL مع الطابع الزمني</string>
|
<string name="revanced_share_copy_url_timestamp_success">تم نسخ عنوان URL مع الطابع الزمني</string>
|
||||||
<string name="revanced_copy_video_url_title">عرض زر نسخ عنوان URL للفيديو</string>
|
<string name="revanced_copy_video_url_title">عرض زر نسخ عنوان URL للفيديو</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">يتم عرض الزر. انقر لنسخ رابط الفيديو. انقر مع الاستمرار لنسخ URL الفيديو مع الطابع الزمني</string>
|
<string name="revanced_copy_video_url_summary_on">يتم عرض الزر. انقر لنسخ عنوان URL للفيديو. انقر مع الاستمرار للنسخ مع الطابع الزمني</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">لا يتم عرض الزر</string>
|
<string name="revanced_copy_video_url_summary_off">لا يتم عرض الزر</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">عرض زر نسخ URL مع الطابع الزمني</string>
|
<string name="revanced_copy_video_url_timestamp_title">عرض زر نسخ URL مع الطابع الزمني</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">يتم عرض الزر. انقر لنسخ عنوان URL للفيديو مع الطابع الزمني. انقر مع الاستمرار لنسخ الفيديو بدون الطابع الزمني</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">يتم عرض الزر. انقر لنسخ عنوان URL للفيديو مع الطابع الزمني. انقر مع الاستمرار للنسخ بدون الطابع الزمني</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">لا يتم عرض الزر</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">لا يتم عرض الزر</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">تم تمكين الاهتزاز</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">تم تمكين الاهتزاز</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">فرض الصوت الأصلي</string>
|
<string name="revanced_force_original_audio_summary_on">استخدام لغة الصوت الأصلية</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">استخدام الصوت الأصلي</string>
|
|
||||||
<string name="revanced_force_original_audio_summary_off">استخدام الصوت الافتراضي</string>
|
<string name="revanced_force_original_audio_summary_off">استخدام الصوت الافتراضي</string>
|
||||||
<string name="revanced_force_original_audio_not_available">لاستخدام هذه الميزة، قم بتغيير محاكاة بث المحتوى إلى نوع العميل iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">لاستخدام هذه الميزة، غيّر \"انتحال دفقات الفيديو\" إلى iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -208,6 +208,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL buferə köçürüldü</string>
|
<string name="revanced_share_copy_url_success">URL buferə köçürüldü</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Vaxt möhürlü URL köçürüldü</string>
|
<string name="revanced_share_copy_url_timestamp_success">Vaxt möhürlü URL köçürüldü</string>
|
||||||
<string name="revanced_copy_video_url_title">Video URL-i köçürmə düyməsin göstər</string>
|
<string name="revanced_copy_video_url_title">Video URL-i köçürmə düyməsin göstər</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Düymə göstərilir. Video URL-sini köçürmək üçün toxun. Vaxt möhürlü video URL-sini köçürmək üçün basılı saxla</string>
|
<string name="revanced_copy_video_url_summary_on">Düymə göstərilir. Video URL-ni köçürmək üçün toxun. Vaxt möhürü ilə köçürmək üçün basıb saxlayın</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Düymə göstərilmir</string>
|
<string name="revanced_copy_video_url_summary_off">Düymə göstərilmir</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Vaxt möhürü URL köçür düyməsi göstər</string>
|
<string name="revanced_copy_video_url_timestamp_title">Vaxt möhürü URL köçür düyməsi göstər</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Düymə göstərilir. Vaxt möhürlü video URL-sini köçürmək üçün toxun. Vaxt möhürü olmadan köçürmək üçün basılı saxla</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Düymə göstərilir. Video URL-ni vaxt möhürü ilə köçürmək üçün toxun. Vaxt möhürü olmadan köçürmək üçün basıb saxlayın</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Düymə göstərilmir</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Düymə göstərilmir</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,8 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Reaksiya aktivdir</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Reaksiya aktivdir</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Orijinal səsi tələb et</string>
|
|
||||||
<string name="revanced_force_original_audio_summary_on">Orijinal səs istifadəsi</string>
|
|
||||||
<string name="revanced_force_original_audio_summary_off">İlkin səs istifadəsi</string>
|
<string name="revanced_force_original_audio_summary_off">İlkin səs istifadəsi</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Bu xüsusiyyəti işlətmək üçün yayım saxtalaşdırmanı iOS ötürücü növünə dəyiş</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL скапіраваны ў буфер абмену</string>
|
<string name="revanced_share_copy_url_success">URL скапіраваны ў буфер абмену</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL-адрас з пазнакай часу скапіраваны</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL-адрас з пазнакай часу скапіраваны</string>
|
||||||
<string name="revanced_copy_video_url_title">Паказаць кнопку скапіравання URL відэа</string>
|
<string name="revanced_copy_video_url_title">Паказаць кнопку скапіравання URL відэа</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Паказана кнопка. Націсніце, каб скапіяваць URL відэа. Націсніце і ўтрымлівайце, каб скапіяваць URL відэа з пазнакай часу</string>
|
<string name="revanced_copy_video_url_summary_on">Кнопка паказана. Націсніце, каб скапіяваць URL відэа. Націсніце і ўтрымлівайце, каб скапіяваць з пазнакай часу</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Кнопка не паказваецца</string>
|
<string name="revanced_copy_video_url_summary_off">Кнопка не паказваецца</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Паказаць кнопку URL-адрас з часовай пазнакай</string>
|
<string name="revanced_copy_video_url_timestamp_title">Паказаць кнопку URL-адрас з часовай пазнакай</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Паказана кнопка. Націсніце, каб скапіяваць URL відэа з пазнакай часу. Націсніце і ўтрымлівайце, каб скапіяваць відэа без пазнакі часу</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Кнопка паказана. Націсніце, каб скапіяваць URL відэа з пазнакай часу. Націсніце і ўтрымлівайце, каб скапіяваць без пазнакі часу</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Кнопка не паказваецца</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Кнопка не паказваецца</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1353,10 +1353,11 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Тактыльныя сігналы ўключаны</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Тактыльныя сігналы ўключаны</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Вымушанае арыгінальнае аўдыё</string>
|
<string name="revanced_force_original_audio_title">Вымушаная арыгінальная мова аўдыё</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Выкарыстанне арыгінальнага аўдыё</string>
|
<string name="revanced_force_original_audio_summary_on">Выкарыстоўваць арыгінальную мову аўдыя</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Выкарыстанне аўдыё па змаўчанні</string>
|
<string name="revanced_force_original_audio_summary_off">Выкарыстанне аўдыё па змаўчанні</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Каб выкарыстоўваць гэтую функцыю, зменіце спафінг патоку на тып кліента iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Каб выкарыстоўваць гэту функцыю, змяніце параметр \"Падрабляць відэаструмені\" на iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Връзката е копирана в клипборда.</string>
|
<string name="revanced_share_copy_url_success">Връзката е копирана в клипборда.</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL адрес с отметка за време, копиран в клипборда.</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL адрес с отметка за време, копиран в клипборда.</string>
|
||||||
<string name="revanced_copy_video_url_title">Показване на бутона за копиране на URL адреса на видеоклипа</string>
|
<string name="revanced_copy_video_url_title">Показване на бутона за копиране на URL адреса на видеоклипа</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Показан е бутон. Докоснете, за да копирате URL на видеото. Докоснете и задръжте, за да копирате URL адреса на видеоклипа с клеймо за време</string>
|
<string name="revanced_copy_video_url_summary_on">Бутонът е показан. Докоснете, за да копирате URL адреса на видеоклипа. Докоснете и задръжте, за да копирате с времеви печат</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Бутонът не е показан</string>
|
<string name="revanced_copy_video_url_summary_off">Бутонът не е показан</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Показване на бутона за копиране на URL адреса на времевия отпечатък на видеоклипа</string>
|
<string name="revanced_copy_video_url_timestamp_title">Показване на бутона за копиране на URL адреса на времевия отпечатък на видеоклипа</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Показан е бутон. Докоснете, за да копирате URL адреса на видеоклипа с клеймо за време. Докоснете и задръжте, за да копирате видеоклип без клеймо за време</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Бутонът е показан. Докоснете, за да копирате URL адреса на видеоклипа с времеви печат. Докоснете и задръжте, за да копирате без времеви печат</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Бутонът не е показан</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Бутонът не е показан</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Вибрациите са активирани</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Вибрациите са активирани</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Принудително оригинално аудио</string>
|
<string name="revanced_force_original_audio_title">Принудително оригинално аудио език</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Използване на оригинално аудио</string>
|
<string name="revanced_force_original_audio_summary_on">Използване на оригиналния език на аудиото</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Използване на аудио по подразбиране</string>
|
<string name="revanced_force_original_audio_summary_off">Използване на аудио по подразбиране</string>
|
||||||
<string name="revanced_force_original_audio_not_available">За да използвате тази функция, променете имитацията на поточно предаване на тип клиент на iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">За да използвате тази функция, сменете „Фалшифициране на видео потоци“ на iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
|
|||||||
<string name="revanced_share_copy_url_success">ক্লিপবোর্ডে URL অনুলিপি করা হয়েছে</string>
|
<string name="revanced_share_copy_url_success">ক্লিপবোর্ডে URL অনুলিপি করা হয়েছে</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">টাইমস্ট্যাম্প সহ URL অনুলিপি করা হয়েছে</string>
|
<string name="revanced_share_copy_url_timestamp_success">টাইমস্ট্যাম্প সহ URL অনুলিপি করা হয়েছে</string>
|
||||||
<string name="revanced_copy_video_url_title">ভিডিও URL অনুলিপি বোতাম দেখান</string>
|
<string name="revanced_copy_video_url_title">ভিডিও URL অনুলিপি বোতাম দেখান</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">বোতাম প্রদর্শিত হয়েছে। URL অনুলিপি করতে ট্যাপ করুন। টাইমস্ট্যাম্প সহ URL অনুলিপি করতে ট্যাপ করে ধরে রাখুন।</string>
|
<string name="revanced_copy_video_url_summary_on">বোতামটি দেখানো হয়েছে। ভিডিও URL কপি করতে আলতো চাপুন। টাইমস্ট্যাম্প সহ কপি করতে টিপুন এবং ধরে রাখুন।</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">বোতাম প্রদর্শিত হয়নি</string>
|
<string name="revanced_copy_video_url_summary_off">বোতাম প্রদর্শিত হয়নি</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">টাইমস্ট্যাম্প URL অনুলিপি বোতাম দেখান</string>
|
<string name="revanced_copy_video_url_timestamp_title">টাইমস্ট্যাম্প URL অনুলিপি বোতাম দেখান</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">বোতাম প্রদর্শিত হয়েছে। টাইমস্ট্যাম্প সহ URL অনুলিপি করতে ট্যাপ করুন। টাইমস্ট্যাম্প ছাড়া URL অনুলিপি করতে ট্যাপ করে ধরে রাখুন।</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">বোতামটি দেখানো হয়েছে। টাইমস্ট্যাম্প সহ ভিডিও URL কপি করতে আলতো চাপুন। টাইমস্ট্যাম্প ছাড়া কপি করতে টিপুন এবং ধরে রাখুন।</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">বোতাম প্রদর্শিত হয়নি</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">বোতাম প্রদর্শিত হয়নি</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1349,10 +1349,11 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">কম্পন সক্রিয় করা হয়েছে</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">কম্পন সক্রিয় করা হয়েছে</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">মূল অডিও বলপূর্বক চালু করুন</string>
|
<string name="revanced_force_original_audio_title">মূল অডিও ভাষা বলপূর্বক চালু করুন</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">মূল অডিও ব্যবহার করছে</string>
|
<string name="revanced_force_original_audio_summary_on">মূল অডিও ভাষা ব্যবহার করা হচ্ছে</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">ডিফল্ট অডিও ব্যবহার করছে</string>
|
<string name="revanced_force_original_audio_summary_off">ডিফল্ট অডিও ব্যবহার করছে</string>
|
||||||
<string name="revanced_force_original_audio_not_available">এই বৈশিষ্ট্যটি ব্যবহার করার জন্য, iOS ক্লায়েন্ট প্রকারে স্ট্রিম স্পুফিং পরিবর্তন করুন</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">এই বৈশিষ্ট্যটি ব্যবহার করতে, \'স্পুফ ভিডিও স্ট্রীম\' কে iOS TV-তে পরিবর্তন করুন</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Aquesta funció només està disponible per a dispositius antics"</string>
|
|||||||
<string name="revanced_share_copy_url_success">S\'ha copiat l\'URL al porta-retalls</string>
|
<string name="revanced_share_copy_url_success">S\'ha copiat l\'URL al porta-retalls</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">S\'ha copiat l\'URL amb data i hora</string>
|
<string name="revanced_share_copy_url_timestamp_success">S\'ha copiat l\'URL amb data i hora</string>
|
||||||
<string name="revanced_copy_video_url_title">Mostra el botó de l\'URL</string>
|
<string name="revanced_copy_video_url_title">Mostra el botó de l\'URL</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">El botó es mostra. Toca per copiar l\'URL del vídeo. Mantén premut per copiar l\'URL del vídeo amb marca de temps</string>
|
<string name="revanced_copy_video_url_summary_on">Es mostra el botó. Toqueu per copiar l\'URL del vídeo. Toqueu i manteniu premut per copiar-lo amb la marca de temps</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">El botó no es mostra</string>
|
<string name="revanced_copy_video_url_summary_off">El botó no es mostra</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Mostra el botó per copiar l\'URL amb marca de temps</string>
|
<string name="revanced_copy_video_url_timestamp_title">Mostra el botó per copiar l\'URL amb marca de temps</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Es mostra el botó. Toqueu per copiar l\'URL del vídeo amb segell de temps. Toqueu i manteniu premut per copiar el vídeo sense segell de temps</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Es mostra el botó. Toqueu per copiar l\'URL del vídeo amb la marca de temps. Toqueu i manteniu premut per copiar-lo sense la marca de temps</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">No es mostra el botó</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">No es mostra el botó</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Els hàptics estan habilitats</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Els hàptics estan habilitats</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forçar àudio original</string>
|
<string name="revanced_force_original_audio_title">Forçar l\'idioma d\'àudio original</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Utilitzant àudio original</string>
|
<string name="revanced_force_original_audio_summary_on">S\'utilitza l\'idioma d\'àudio original</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Utilitzant àudio predeterminat</string>
|
<string name="revanced_force_original_audio_summary_off">Utilitzant àudio predeterminat</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Per utilitzar aquesta funció, canvia la suplantació de flux al tipus de client iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Per utilitzar aquesta funció, canvieu \"Suplantació de fluxos de vídeo\" a iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL zkopírováno do schránky</string>
|
<string name="revanced_share_copy_url_success">URL zkopírováno do schránky</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Adresa URL s časovým razítkem zkopírována</string>
|
<string name="revanced_share_copy_url_timestamp_success">Adresa URL s časovým razítkem zkopírována</string>
|
||||||
<string name="revanced_copy_video_url_title">Zobrazit tlačítko pro kopírování adresy URL videa</string>
|
<string name="revanced_copy_video_url_title">Zobrazit tlačítko pro kopírování adresy URL videa</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Tlačítko je zobrazeno. Klepnutím zkopírujete adresu URL videa. Klepnutím a podržením zkopírujete adresu URL videa s časovým razítkem</string>
|
<string name="revanced_copy_video_url_summary_on">Zobrazí se tlačítko. Klepnutím zkopírujete URL videa. Klepnutím a podržením zkopírujete s časovou značkou</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Tlačítko se nezobrazuje</string>
|
<string name="revanced_copy_video_url_summary_off">Tlačítko se nezobrazuje</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Zobrazit tlačítko pro kopírování adresy URL videa s časovým razítkem</string>
|
<string name="revanced_copy_video_url_timestamp_title">Zobrazit tlačítko pro kopírování adresy URL videa s časovým razítkem</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Tlačítko je zobrazeno. Klepnutím zkopírujete adresu URL videa s časovým razítkem. Klepnutím a podržením zkopírujete adresu URL videa bez časového razítka</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Zobrazí se tlačítko. Klepnutím zkopírujete URL videa s časovou značkou. Klepnutím a podržením zkopírujete bez časové značky</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Tlačítko se nezobrazuje</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Tlačítko se nezobrazuje</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je povolena</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je povolena</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Vynutit původní zvuk</string>
|
<string name="revanced_force_original_audio_title">Vynutit původní jazyk zvuku</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Používání původního zvuku</string>
|
<string name="revanced_force_original_audio_summary_on">Použít původní jazyk zvuku</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Používání výchozího zvuku</string>
|
<string name="revanced_force_original_audio_summary_off">Používání výchozího zvuku</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Pro použití této funkce změňte typ klienta streamu na iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Chcete-li používat tuto funkci, změňte možnost „Zfalšovat datové proudy videa“ na iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -407,10 +407,10 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL kopieret til udklipsholder</string>
|
<string name="revanced_share_copy_url_success">URL kopieret til udklipsholder</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL med tidsstempel kopieret</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL med tidsstempel kopieret</string>
|
||||||
<string name="revanced_copy_video_url_title">Vis kopiér video URL knap</string>
|
<string name="revanced_copy_video_url_title">Vis kopiér video URL knap</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Knap vises. Tryk for at kopiere video URL. Tryk og hold for at kopiere video URL med tidsstempel</string>
|
<string name="revanced_copy_video_url_summary_on">Knappen vises. Tryk for at kopiere videoens URL. Tryk og hold for at kopiere med tidsstempel</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Knap vises ikke</string>
|
<string name="revanced_copy_video_url_summary_off">Knap vises ikke</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Vis kopi tidsstempel URL knap</string>
|
<string name="revanced_copy_video_url_timestamp_title">Vis kopi tidsstempel URL knap</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Knap vises. Tryk for at kopiere video URL med tidsstempel. Tryk og hold for at kopiere video uden tidsstempel</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Knappen vises. Tryk for at kopiere videoens URL med tidsstempel. Tryk og hold for at kopiere uden tidsstempel</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Knap vises ikke</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Knap vises ikke</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1291,10 +1291,11 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptics er aktiveret</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptics er aktiveret</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Tving original lyd</string>
|
<string name="revanced_force_original_audio_title">Tving originalt lydsprog</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Brug original lyd</string>
|
<string name="revanced_force_original_audio_summary_on">Bruger originalt lydsprog</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Brug standard lyd</string>
|
<string name="revanced_force_original_audio_summary_off">Brug standard lyd</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Tilføj musik til denne historie</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">For at bruge denne funktion skal du ændre \"Spoof videostreams\" til iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -438,10 +438,10 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL in Zwischenablage kopiert</string>
|
<string name="revanced_share_copy_url_success">URL in Zwischenablage kopiert</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL mit Zeitstempel kopiert</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL mit Zeitstempel kopiert</string>
|
||||||
<string name="revanced_copy_video_url_title">Video-URL-Schaltfläche kopieren anzeigen</string>
|
<string name="revanced_copy_video_url_title">Video-URL-Schaltfläche kopieren anzeigen</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Schaltfläche wird angezeigt. Tippen, um Video-URL zu kopieren. Tippen und halten um Video-URL mit Zeitstempel zu kopieren</string>
|
<string name="revanced_copy_video_url_summary_on">Schaltfläche wird angezeigt. Tippen, um die Video-URL zu kopieren. Zum Kopieren mit Zeitstempel tippen und halten</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Button wird nicht angezeigt</string>
|
<string name="revanced_copy_video_url_summary_off">Button wird nicht angezeigt</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Kopiere Zeitstempel URL-Schaltfläche anzeigen</string>
|
<string name="revanced_copy_video_url_timestamp_title">Kopiere Zeitstempel URL-Schaltfläche anzeigen</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Schaltfläche wird angezeigt. Tippen, um Video-URL mit Zeitstempel zu kopieren. Tippen und halten um Video ohne Zeitstempel zu kopieren</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Schaltfläche wird angezeigt. Tippen, um die Video-URL mit Zeitstempel zu kopieren. Zum Kopieren ohne Zeitstempel tippen und halten</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Button wird nicht angezeigt</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Button wird nicht angezeigt</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1346,9 +1346,10 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
|
|||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Original Audio erzwingen</string>
|
<string name="revanced_force_original_audio_title">Original Audio erzwingen</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Originales Audio verwenden</string>
|
<string name="revanced_force_original_audio_summary_on">Original-Audiosprache verwenden</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Standardaudio verwenden</string>
|
<string name="revanced_force_original_audio_summary_off">Standardaudio verwenden</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Um diese Funktion zu nutzen, ändern Sie das Stream-Spoofing auf den iOS-Clienttyp.</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Um diese Funktion zu nutzen, ändere \"Video-Streams fälschen\" zu iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -445,10 +445,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Η διεύθυνση URL αντιγράφηκε στο πρόχειρο</string>
|
<string name="revanced_share_copy_url_success">Η διεύθυνση URL αντιγράφηκε στο πρόχειρο</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Η διεύθυνση URL αντιγράφηκε με χρονική σήμανση</string>
|
<string name="revanced_share_copy_url_timestamp_success">Η διεύθυνση URL αντιγράφηκε με χρονική σήμανση</string>
|
||||||
<string name="revanced_copy_video_url_title">Εμφάνιση κουμπιού αντιγραφής URL του βίντεο</string>
|
<string name="revanced_copy_video_url_title">Εμφάνιση κουμπιού αντιγραφής URL του βίντεο</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Το κουμπί εμφανίζεται. Πατήστε για αντιγραφή του συνδέσμου βίντεο ή πατήστε παρατεταμένα για αντιγραφή του συνδέσμου βίντεο με χρονική σήμανση</string>
|
<string name="revanced_copy_video_url_summary_on">Το κουμπί εμφανίζεται. Πατήστε για να αντιγράψετε τη διεύθυνση URL του βίντεο. Πατήστε παρατεταμένα για να αντιγράψετε τη διεύθυνση URL με χρονική σήμανση</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Το κουμπί δεν εμφανίζεται</string>
|
<string name="revanced_copy_video_url_summary_off">Το κουμπί δεν εμφανίζεται</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Εμφάνιση κουμπιού αντιγραφής URL με χρονική σήμανση</string>
|
<string name="revanced_copy_video_url_timestamp_title">Εμφάνιση κουμπιού αντιγραφής URL με χρονική σήμανση</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Το κουμπί εμφανίζεται. Πατήστε για αντιγραφή του συνδέσμου βίντεο με χρονική σήμανση ή πατήστε παρατεταμένα για αντιγραφή του συνδέσμου βίντεο χωρίς χρονική σήμανση</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Το κουμπί εμφανίζεται. Πατήστε για να αντιγράψετε τη διεύθυνση URL του βίντεο με χρονική σήμανση. Πατήστε παρατεταμένα για να αντιγράψετε τη διεύθυνση URL χωρίς χρονική σήμανση</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Το κουμπί δεν εμφανίζεται</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Το κουμπί δεν εμφανίζεται</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1199,9 +1199,9 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_miniplayer_type_entry_1">Προεπιλογή</string>
|
<string name="revanced_miniplayer_type_entry_1">Προεπιλογή</string>
|
||||||
<string name="revanced_miniplayer_type_entry_2">Ελάχιστη</string>
|
<string name="revanced_miniplayer_type_entry_2">Ελάχιστη</string>
|
||||||
<string name="revanced_miniplayer_type_entry_3">Ταμπλετ</string>
|
<string name="revanced_miniplayer_type_entry_3">Ταμπλετ</string>
|
||||||
<string name="revanced_miniplayer_type_entry_4">Μοντέρνα 1</string>
|
<string name="revanced_miniplayer_type_entry_4">Μοντέρνος 1</string>
|
||||||
<string name="revanced_miniplayer_type_entry_5">Μοντέρνα 2</string>
|
<string name="revanced_miniplayer_type_entry_5">Μοντέρνος 2</string>
|
||||||
<string name="revanced_miniplayer_type_entry_6">Μοντέρνα 3</string>
|
<string name="revanced_miniplayer_type_entry_6">Μοντέρνος 3</string>
|
||||||
<string name="revanced_miniplayer_rounded_corners_title">Στρογγυλεμένες γωνίες</string>
|
<string name="revanced_miniplayer_rounded_corners_title">Στρογγυλεμένες γωνίες</string>
|
||||||
<string name="revanced_miniplayer_rounded_corners_summary_on">Οι γωνίες είναι στρογγυλεμένες</string>
|
<string name="revanced_miniplayer_rounded_corners_summary_on">Οι γωνίες είναι στρογγυλεμένες</string>
|
||||||
<string name="revanced_miniplayer_rounded_corners_summary_off">Οι γωνίες είναι τετράγωνες</string>
|
<string name="revanced_miniplayer_rounded_corners_summary_off">Οι γωνίες είναι τετράγωνες</string>
|
||||||
@@ -1351,10 +1351,11 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Η απόκριση δόνησης είναι ενεργοποιημένη</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Η απόκριση δόνησης είναι ενεργοποιημένη</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Εξαναγκασμός αρχικού ήχου</string>
|
<string name="revanced_force_original_audio_title">Εξαναγκασμός αρχικής γλώσσας ήχου</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Χρησιμοποιείται ο αρχικός ήχος</string>
|
<string name="revanced_force_original_audio_summary_on">Χρήση της αρχικής γλώσσας ήχου</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Χρησιμοποιείται ο προεπιλεγμένος ήχος</string>
|
<string name="revanced_force_original_audio_summary_off">Χρησιμοποιείται ο προεπιλεγμένος ήχος</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Για να χρησιμοποιήσετε αυτήν τη δυνατότητα, αλλάξτε τον τύπο παραποίησης ροών βίντεο σε iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Για να χρησιμοποιήσετε αυτήν τη λειτουργία, αλλάξτε την επιλογή \"Απομίμηση ροών βίντεο\" σε iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -433,10 +433,10 @@ Esta función solo está disponible para dispositivos antiguos"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL copiada al portapapeles</string>
|
<string name="revanced_share_copy_url_success">URL copiada al portapapeles</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL con marca de tiempo copiada</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL con marca de tiempo copiada</string>
|
||||||
<string name="revanced_copy_video_url_title">Mostrar botón URL de copia de vídeo</string>
|
<string name="revanced_copy_video_url_title">Mostrar botón URL de copia de vídeo</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">El botón se muestra. Toque para copiar la URL del vídeo. Mantenga pulsado para copiar la URL del vídeo con la marca de tiempo</string>
|
<string name="revanced_copy_video_url_summary_on">El botón se muestra. Toca para copiar la URL del vídeo. Toca y mantén pulsado para copiar con la marca de tiempo</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">El botón no se muestra</string>
|
<string name="revanced_copy_video_url_summary_off">El botón no se muestra</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Mostrar botón URL de la marca de tiempo</string>
|
<string name="revanced_copy_video_url_timestamp_title">Mostrar botón URL de la marca de tiempo</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">El botón se muestra. Toque para copiar la URL del vídeo con la marca de tiempo. Toque y mantenga pulsado para copiar el vídeo sin marca de tiempo</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">El botón se muestra. Toca para copiar la URL del vídeo con la marca de tiempo. Toca y mantén pulsado para copiar sin la marca de tiempo</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">El botón no se muestra</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">El botón no se muestra</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1333,10 +1333,11 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptics están habilitados</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptics están habilitados</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forzar audio original</string>
|
<string name="revanced_force_original_audio_title">Forzar idioma de audio original</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Utilizando audio original</string>
|
<string name="revanced_force_original_audio_summary_on">Usar el idioma de audio original</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Utilizando audio predeterminado</string>
|
<string name="revanced_force_original_audio_summary_off">Utilizando audio predeterminado</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Para usar esta función, cambia la suplantación de stream al tipo de cliente iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Para usar esta función, cambia \"Suplantar transmisiones de video\" a iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL kopeeritud clipboardi</string>
|
<string name="revanced_share_copy_url_success">URL kopeeritud clipboardi</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Aadres URL ajaga kopeeritud</string>
|
<string name="revanced_share_copy_url_timestamp_success">Aadres URL ajaga kopeeritud</string>
|
||||||
<string name="revanced_copy_video_url_title">Kuva video URL kopeerimise nupp</string>
|
<string name="revanced_copy_video_url_title">Kuva video URL kopeerimise nupp</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Nupud on näha. Koputage video URL-i kopeerimiseks. Koputage ja hoidke video URL-i ajatempliga kopeerimiseks</string>
|
<string name="revanced_copy_video_url_summary_on">Nupp on nähtav. Video URL-i kopeerimiseks puuduta. Ajakoodiga kopeerimiseks puuduta pikalt</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Nupud ei ole näha</string>
|
<string name="revanced_copy_video_url_summary_off">Nupud ei ole näha</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Näita video URL-i ajatempliga kopeerimise nuppu</string>
|
<string name="revanced_copy_video_url_timestamp_title">Näita video URL-i ajatempliga kopeerimise nuppu</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Nupud on näha. Koputage video URL-i ajatempliga kopeerimiseks. Koputage ja hoidke video kopeerimiseks ilma ajatempli</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Nupp on nähtav. Ajakoodiga video URL-i kopeerimiseks puuduta. Ilma ajakoodita kopeerimiseks puuduta pikalt</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Nupud ei ole näha</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Nupud ei ole näha</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Hääled on lubatud</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Hääled on lubatud</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Sunni originaalheli</string>
|
<string name="revanced_force_original_audio_title">Sunni originaalheli keel</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Kasutatakse originaalheli</string>
|
<string name="revanced_force_original_audio_summary_on">Algse helikeele kasutamine</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Kasutan vaikeheli</string>
|
<string name="revanced_force_original_audio_summary_off">Kasutan vaikeheli</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Selle funktsiooni kasutamiseks muutke voo esindamine iOS-i kliendi tüübiks</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Selle funktsiooni kasutamiseks muuda valik „Pettemanööver videovoogudele” iOS TV peale</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -438,10 +438,8 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL-osoite kopioitiin leikepöydälle</string>
|
<string name="revanced_share_copy_url_success">URL-osoite kopioitiin leikepöydälle</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Aikaleimattu URL-osoite kopioitiin</string>
|
<string name="revanced_share_copy_url_timestamp_success">Aikaleimattu URL-osoite kopioitiin</string>
|
||||||
<string name="revanced_copy_video_url_title">Näytä videon URL-osoitteen kopiointipainike</string>
|
<string name="revanced_copy_video_url_title">Näytä videon URL-osoitteen kopiointipainike</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Painike näytetään. Napauta kopioidaksesi videon URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi aikaleimatun URL-osoitteen</string>
|
|
||||||
<string name="revanced_copy_video_url_summary_off">Painiketta ei näytetä</string>
|
<string name="revanced_copy_video_url_summary_off">Painiketta ei näytetä</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Näytä videon aikaleimatun URL-osoitteen kopiointipainike</string>
|
<string name="revanced_copy_video_url_timestamp_title">Näytä videon aikaleimatun URL-osoitteen kopiointipainike</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Painike näytetään. Napauta kopioidaksesi videon aikaleimatun URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi URL-osoitteen ilman aikaleimaa</string>
|
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Painiketta ei näytetä</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Painiketta ei näytetä</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1341,10 +1339,8 @@ Tämä voi avata korkealaatuisemmat videot"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptiikka on käytössä</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptiikka on käytössä</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Pakota alkuperäinen ääni</string>
|
|
||||||
<string name="revanced_force_original_audio_summary_on">Käytetään alkuperäistä ääntä</string>
|
|
||||||
<string name="revanced_force_original_audio_summary_off">Käytetään oletusääntä</string>
|
<string name="revanced_force_original_audio_summary_off">Käytetään oletusääntä</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Käytä tätä ominaisuutta vaihtamalla virran naamiointi iOS-asiakastyyppiiin</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Ang tampok na ito ay magagamit lamang para sa mga mas lumang device"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Nakopya ang URL sa clipboard</string>
|
<string name="revanced_share_copy_url_success">Nakopya ang URL sa clipboard</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL na may timestamp na kinopya</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL na may timestamp na kinopya</string>
|
||||||
<string name="revanced_copy_video_url_title">Ipakita ang pindutan ng URL ng kopya ng video</string>
|
<string name="revanced_copy_video_url_title">Ipakita ang pindutan ng URL ng kopya ng video</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Ang pindutan ay ipinapakita. I-tap para kopyahin ang URL ng video. I-tap nang matagal para kopyahin ang URL ng video gamit ang timestamp</string>
|
<string name="revanced_copy_video_url_summary_on">Ipinapakita ang button. I-tap para kopyahin ang URL ng video. I-tap nang matagal para kopyahin kasama ang timestamp</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Hindi ipinapakita ang button</string>
|
<string name="revanced_copy_video_url_summary_off">Hindi ipinapakita ang button</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Ipakita ang pindutan ng URL ng kopya ng timestamp</string>
|
<string name="revanced_copy_video_url_timestamp_title">Ipakita ang pindutan ng URL ng kopya ng timestamp</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Ang pindutan ay ipinapakita. I-tap para kopyahin ang URL ng video gamit ang timestamp. I-tap nang matagal upang kopyahin ang video nang walang timestamp</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Ipinapakita ang button. I-tap para kopyahin ang URL ng video kasama ang timestamp. I-tap nang matagal para kopyahin nang walang timestamp</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Hindi ipinapakita ang button</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Hindi ipinapakita ang button</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1350,10 +1350,11 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Pinagana ang Haptics</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Pinagana ang Haptics</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Pilitin ang original audio</string>
|
<string name="revanced_force_original_audio_title">Pilitin ang orihinal na wika ng audio</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Gumagamit ng original audio</string>
|
<string name="revanced_force_original_audio_summary_on">Ginagamit ang orihinal na wika ng audio</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Gumagamit ng default audio</string>
|
<string name="revanced_force_original_audio_summary_off">Gumagamit ng default audio</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Upang magamit ang tampok na ito, baguhin ang stream spoofing sa uri ng kliyente ng iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Para magamit ang feature na ito, palitan ang \'Magpanggap na video stream\' sa iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Cette fonctionnalité est disponible uniquement pour les appareils anciens"</str
|
|||||||
<string name="revanced_share_copy_url_success">URL copiée dans le presse-papiers</string>
|
<string name="revanced_share_copy_url_success">URL copiée dans le presse-papiers</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL avec horodatage copiée</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL avec horodatage copiée</string>
|
||||||
<string name="revanced_copy_video_url_title">Afficher le bouton \"Copier l\'URL de la vidéo\"</string>
|
<string name="revanced_copy_video_url_title">Afficher le bouton \"Copier l\'URL de la vidéo\"</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Le bouton est affiché. Appuyez pour copier l\'URL de la vidéo. Appuyez longuement pour copier l\'URL de la vidéo avec l\'horodatage.</string>
|
<string name="revanced_copy_video_url_summary_on">Le bouton est affiché. Appuyez pour copier l\'URL de la vidéo. Appuyez longuement pour copier avec l\'horodatage.</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Le bouton n\'est pas affiché</string>
|
<string name="revanced_copy_video_url_summary_off">Le bouton n\'est pas affiché</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Afficher un bouton \"Copier URL avec horodatage\"</string>
|
<string name="revanced_copy_video_url_timestamp_title">Afficher un bouton \"Copier URL avec horodatage\"</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Le bouton est affiché. Appuyez pour copier l\'URL de la vidéo avec horodatage. Appuyez longuement pour copier l\'URL de la vidéo sans horodatage.</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Le bouton est affiché. Appuyez pour copier l\'URL de la vidéo avec l\'horodatage. Appuyez longuement pour copier sans horodatage.</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Le bouton n\'est pas affiché</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Le bouton n\'est pas affiché</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Activer cette option peut déverrouiller des qualités vidéo supérieures"</str
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Le retour haptique est activé</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Le retour haptique est activé</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forcer l\'audio d\'origine</string>
|
<string name="revanced_force_original_audio_title">Forcer la langue audio d\'origine</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Utilisation de l\'audio d\'origine</string>
|
<string name="revanced_force_original_audio_summary_on">Utilisation de la langue audio d\'origine</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Utilisation de l\'audio par défaut</string>
|
<string name="revanced_force_original_audio_summary_off">Utilisation de l\'audio par défaut</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Pour utiliser cette fonctionnalité, falsifiez les flux vidéo à l\'aide d\'un client iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Pour utiliser cette fonctionnalité, définissez \"Falsifier les flux vidéo\" sur iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,8 @@ Níl an ghné seo ar fáil ach do ghléasanna níos sine"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL cóipeáilte chuig gearr</string>
|
<string name="revanced_share_copy_url_success">URL cóipeáilte chuig gearr</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL le stampa ama cóipeáilte</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL le stampa ama cóipeáilte</string>
|
||||||
<string name="revanced_copy_video_url_title">Taispeáin cnaipe URL físe cóipeáil</string>
|
<string name="revanced_copy_video_url_title">Taispeáin cnaipe URL físe cóipeáil</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Taispeántar an cnaipe. Tapáil chun URL físe a chóipeáil. Tapáil agus coinnigh chun URL físe a chóipeáil le stampa ama</string>
|
|
||||||
<string name="revanced_copy_video_url_summary_off">Ní thaispeántar an cnaipe</string>
|
<string name="revanced_copy_video_url_summary_off">Ní thaispeántar an cnaipe</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Taispeáin cnaipe URL stampa ama cóipeáil</string>
|
<string name="revanced_copy_video_url_timestamp_title">Taispeáin cnaipe URL stampa ama cóipeáil</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Taispeántar an cnaipe. Tapáil chun URL físe a chóipeáil le stampa ama. Tapáil agus coinnigh chun físeán a chóipeáil gan stampa ama</string>
|
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Ní thaispeántar an cnaipe</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Ní thaispeántar an cnaipe</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1339,10 +1337,11 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Tá Haptics cumasaithe</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Tá Haptics cumasaithe</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Fórsaigh fuaim bunaidh</string>
|
<string name="revanced_force_original_audio_title">Fórsaigh teanga bhunaidh na fuaime</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Ag úsáid fuaim bunaidh</string>
|
<string name="revanced_force_original_audio_summary_on">Ag úsáid teanga bhunaidh na fuaime</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Ag úsáid fuaim réamhshocraithe</string>
|
<string name="revanced_force_original_audio_summary_off">Ag úsáid fuaim réamhshocraithe</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Chun an ghné seo a úsáid, athraigh spoofing srutha chuig cineál cliant iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Chun an ghné seo a úsáid, athraigh \'Sruthanna físeáin bhréige\' go iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Ez a funkció csak régebbi eszközökön érhető el"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Az URL a vágólapra másolva</string>
|
<string name="revanced_share_copy_url_success">Az URL a vágólapra másolva</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Az URL időbélyeggel a vágólapra másolva</string>
|
<string name="revanced_share_copy_url_timestamp_success">Az URL időbélyeggel a vágólapra másolva</string>
|
||||||
<string name="revanced_copy_video_url_title">A videó URL másolása gomb megjelenítése</string>
|
<string name="revanced_copy_video_url_title">A videó URL másolása gomb megjelenítése</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">A gomb megjelenik. Koppintson a video URL másolásához. Koppintson és tartsa lenyomva az időbélyeggel másoláshoz</string>
|
<string name="revanced_copy_video_url_summary_on">A gomb látható. Koppintson a videó URL-jének másolásához. Tartsa nyomva az időbélyeggel való másoláshoz</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">A gomb nem látható</string>
|
<string name="revanced_copy_video_url_summary_off">A gomb nem látható</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">A videó URL másolása időbélyeggel gomb megjelenítése</string>
|
<string name="revanced_copy_video_url_timestamp_title">A videó URL másolása időbélyeggel gomb megjelenítése</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">A gomb megjelenik. Koppintson a videó URL másolásához időbélyeggel. Koppintson és tartsa lenyomva az időbélyeg nélküli másoláshoz</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">A gomb látható. Koppintson a videó URL-jének másolásához időbélyeggel. Tartsa nyomva az időbélyeg nélküli másoláshoz</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">A gomb nem látható</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">A gomb nem látható</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,9 +1352,10 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"</s
|
|||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Eredeti hang kikényszerítése</string>
|
<string name="revanced_force_original_audio_title">Eredeti hang kikényszerítése</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Eredeti hang használata</string>
|
<string name="revanced_force_original_audio_summary_on">Eredeti hang használata a hang nyelvén</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Alapértelmezett hang használata</string>
|
<string name="revanced_force_original_audio_summary_off">Alapértelmezett hang használata</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Ezt a funkciót iOS klienstípusra állított adatfolyam-hamisítással használhatja</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">A funkció használatához módosítsa a „Videófolyamok hamisítása” beállítást iOS TV-re</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
|
|||||||
<string name="revanced_share_copy_url_success">URL-ը կրկնօրինակվել է բացման տախտակին</string>
|
<string name="revanced_share_copy_url_success">URL-ը կրկնօրինակվել է բացման տախտակին</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL-ը ժամանակի կնիքով կրկնօրինակվել է</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL-ը ժամանակի կնիքով կրկնօրինակվել է</string>
|
||||||
<string name="revanced_copy_video_url_title">Ցույց տալ տեսանյութի URL-ի կրկնօրինակման կոճակը</string>
|
<string name="revanced_copy_video_url_title">Ցույց տալ տեսանյութի URL-ի կրկնօրինակման կոճակը</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Կոճակը երևում է։ Սեղմել՝ տեսանյութի URL-ը կրկնօրինակելու համար։ Սեղմել և պահել՝ տեսանյութի URL-ը ժամանակի կնիքով կրկնօրինակելու համար</string>
|
<string name="revanced_copy_video_url_summary_on">Կոճակը ցուցադրվում է: Հպեք վիդեոյի URL-ը պատճենելու համար: Հպեք և պահեք ժամանակային նշումով պատճենելու համար</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Կոճակը չի երևում</string>
|
<string name="revanced_copy_video_url_summary_off">Կոճակը չի երևում</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Ցույց տալ ժամանակի կնիքով URL-ի կրկնօրինակման կոճակը</string>
|
<string name="revanced_copy_video_url_timestamp_title">Ցույց տալ ժամանակի կնիքով URL-ի կրկնօրինակման կոճակը</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Կոճակը երևում է։ Սեղմել՝ տեսանյութի URL-ը ժամանակի կնիքով կրկնօրինակելու համար։ Սեղմել և պահել՝ տեսանյութը ժամանակի կնիքի առանց կրկնօրինակելու համար</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Կոճակը ցուցադրվում է: Հպեք ժամանակային նշումով վիդեոյի URL-ը պատճենելու համար: Հպեք և պահեք առանց ժամանակային նշման պատճենելու համար</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Կոճակը չի երևում</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Կոճակը չի երևում</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Հպումները ակտիվացված են</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Հպումները ակտիվացված են</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Բնօրինակ ձայն օգտագործել</string>
|
<string name="revanced_force_original_audio_title">Բնօրինակ ձայն օգտագործել լեզուն</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Բնօրինակ ձայն օգտագործվում է</string>
|
<string name="revanced_force_original_audio_summary_on">Օգտագործելով ձայնային օրիգինալ լեզուն</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Վերջնական ձայն օգտագործվում է</string>
|
<string name="revanced_force_original_audio_summary_off">Վերջնական ձայն օգտագործվում է</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Անեի սյօւյր դա ժյրդեք ռասրունաքն ամ Java զեմե, սիուի կյադ եյ չոն մաiOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Այս գործառույթն օգտագործելու համար փոխեք «Կեղծել տեսահոսքերը» iOS TV-ի</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -283,9 +283,9 @@ Anda tidak akan diberi tahu tentang kejadian yang tidak terduga."</string>
|
|||||||
<string name="revanced_hide_chapters_section_title">Sembunyikan Bab</string>
|
<string name="revanced_hide_chapters_section_title">Sembunyikan Bab</string>
|
||||||
<string name="revanced_hide_chapters_section_summary_on">Bagian Bab disembunyikan</string>
|
<string name="revanced_hide_chapters_section_summary_on">Bagian Bab disembunyikan</string>
|
||||||
<string name="revanced_hide_chapters_section_summary_off">Bagian Bab ditampilkan</string>
|
<string name="revanced_hide_chapters_section_summary_off">Bagian Bab ditampilkan</string>
|
||||||
<string name="revanced_hide_how_this_was_made_section_title">Sembunyikan \'Bagaimana konten ini dibuat\'</string>
|
<string name="revanced_hide_how_this_was_made_section_title">Sembunyikan \'Cara konten ini dibuat\'</string>
|
||||||
<string name="revanced_hide_how_this_was_made_section_summary_on">Bagian Bagaimana konten ini dibuat disembunyikan</string>
|
<string name="revanced_hide_how_this_was_made_section_summary_on">Bagian Cara konten ini dibuat disembunyikan</string>
|
||||||
<string name="revanced_hide_how_this_was_made_section_summary_off">Bagian Bagaimana konten ini dibuat ditampilkan</string>
|
<string name="revanced_hide_how_this_was_made_section_summary_off">Bagian Cara konten ini dibuat ditampilkan</string>
|
||||||
<string name="revanced_hide_podcast_section_title">Sembunyikan \'Jelajahi podcast\'</string>
|
<string name="revanced_hide_podcast_section_title">Sembunyikan \'Jelajahi podcast\'</string>
|
||||||
<string name="revanced_hide_podcast_section_summary_on">Bagian Jelajahi podcast disembunyikan</string>
|
<string name="revanced_hide_podcast_section_summary_on">Bagian Jelajahi podcast disembunyikan</string>
|
||||||
<string name="revanced_hide_podcast_section_summary_off">Bagian Jelajahi podcast ditampilkan</string>
|
<string name="revanced_hide_podcast_section_summary_off">Bagian Jelajahi podcast ditampilkan</string>
|
||||||
@@ -443,10 +443,10 @@ Fitur ini hanya tersedia untuk perangkat yang lebih lama"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL disalin ke papan klip</string>
|
<string name="revanced_share_copy_url_success">URL disalin ke papan klip</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL dengan timestamp telah disalin</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL dengan timestamp telah disalin</string>
|
||||||
<string name="revanced_copy_video_url_title">Tampilkan tombol salin URL video</string>
|
<string name="revanced_copy_video_url_title">Tampilkan tombol salin URL video</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video. Ketuk dan tahan untuk menyalin URL video dengan timestamp</string>
|
<string name="revanced_copy_video_url_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video. Ketuk dan tahan untuk menyalin dengan stempel waktu</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Tombol tidak ditampilkan</string>
|
<string name="revanced_copy_video_url_summary_off">Tombol tidak ditampilkan</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Tampilkan tombol salin timestamp URL</string>
|
<string name="revanced_copy_video_url_timestamp_title">Tampilkan tombol salin timestamp URL</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video dengan timestamp. Ketuk dan tahan untuk menyalin video tanpa timestamp</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video dengan stempel waktu. Ketuk dan tahan untuk menyalin tanpa stempel waktu</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Tombol tidak ditampilkan</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Tombol tidak ditampilkan</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Sentuh getar diaktifkan</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Sentuh getar diaktifkan</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Paksa audio asli</string>
|
<string name="revanced_force_original_audio_title">Paksa bahasa audio asli</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Menggunakan audio asli</string>
|
<string name="revanced_force_original_audio_summary_on">Menggunakan bahasa audio asli</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Menggunakan audio bawaan</string>
|
<string name="revanced_force_original_audio_summary_off">Menggunakan audio bawaan</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Untuk menggunakan fitur ini, ubah pemalsuan aliran ke jenis klien iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Untuk menggunakan fitur ini, ubah \'Palsukan aliran video\' ke iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Questa funzione è disponibile solo per i dispositivi più vecchi"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL copiato negli appunti</string>
|
<string name="revanced_share_copy_url_success">URL copiato negli appunti</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL con timestamp copiato</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL con timestamp copiato</string>
|
||||||
<string name="revanced_copy_video_url_title">Mostra il pulsante Copia URL Video</string>
|
<string name="revanced_copy_video_url_title">Mostra il pulsante Copia URL Video</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Il pulsante è visualizzato. Tocca per copiare l\'URL del video. Tocca e tieni premuto per copiare l\'URL del video con timestamp</string>
|
<string name="revanced_copy_video_url_summary_on">Il pulsante viene mostrato. Tocca per copiare l\'URL del video. Tieni premuto per copiare con il timestamp</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Il pulsante non è visibile</string>
|
<string name="revanced_copy_video_url_summary_off">Il pulsante non è visibile</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Mostra il pulsante Copia URL Video con Timestamp</string>
|
<string name="revanced_copy_video_url_timestamp_title">Mostra il pulsante Copia URL Video con Timestamp</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Il pulsante è visualizzato. Tocca per copiare l\'URL del video con timestamp. Tocca e tieni premuto per copiare il video senza timestamp</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Il pulsante viene mostrato. Tocca per copiare l\'URL del video con il timestamp. Tieni premuto per copiare senza il timestamp</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Il pulsante non è visibile</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Il pulsante non è visibile</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Abilitare questa opzione può sbloccare qualità video più elevate"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Il feedback aptico è abilitato</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Il feedback aptico è abilitato</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forza l\'audio originale</string>
|
<string name="revanced_force_original_audio_title">Forza la lingua audio originale</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Utilizzo audio originale</string>
|
<string name="revanced_force_original_audio_summary_on">Utilizza la lingua audio originale</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Utilizzo audio predefinito</string>
|
<string name="revanced_force_original_audio_summary_off">Utilizzo audio predefinito</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Per utilizzare questa funzione, cambia la simulazione dello stream nel tipo di client iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Per utilizzare questa funzionalità, cambia \'Spoof video streams\' in iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -445,7 +445,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
|
|||||||
<string name="revanced_share_copy_url_success">URL をクリップボードにコピーしました</string>
|
<string name="revanced_share_copy_url_success">URL をクリップボードにコピーしました</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">タイムスタンプ付きの URL がコピーされました</string>
|
<string name="revanced_share_copy_url_timestamp_success">タイムスタンプ付きの URL がコピーされました</string>
|
||||||
<string name="revanced_copy_video_url_title">「動画の URL をコピー」ボタンを表示</string>
|
<string name="revanced_copy_video_url_title">「動画の URL をコピー」ボタンを表示</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">オーバーレイ上にボタンが表示されます。タップするとタイムスタンプなしの URL を、長押しするとタイムスタンプ付きの URL をそれぞれコピーできます</string>
|
<string name="revanced_copy_video_url_summary_on">オーバーレイ上にボタンが表示されます。タップすると動画の URL を、長押しするとタイムスタンプ付きの URL をそれぞれコピーできます</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">オーバーレイ上にボタンは表示されません</string>
|
<string name="revanced_copy_video_url_summary_off">オーバーレイ上にボタンは表示されません</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">「動画のタイムスタンプ付き URL をコピー」ボタンを表示</string>
|
<string name="revanced_copy_video_url_timestamp_title">「動画のタイムスタンプ付き URL をコピー」ボタンを表示</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">オーバーレイ上にボタンが表示されます。タップするとタイムスタンプ付きの URL を、長押しするとタイムスタンプなしの URL をそれぞれコピーできます</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">オーバーレイ上にボタンが表示されます。タップするとタイムスタンプ付きの URL を、長押しするとタイムスタンプなしの URL をそれぞれコピーできます</string>
|
||||||
@@ -569,33 +569,33 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
|
|||||||
<string name="revanced_navigation_buttons_screen_title">ナビゲーション ボタン</string>
|
<string name="revanced_navigation_buttons_screen_title">ナビゲーション ボタン</string>
|
||||||
<string name="revanced_navigation_buttons_screen_summary">画面下部のナビゲーション バー上のボタンを編集します</string>
|
<string name="revanced_navigation_buttons_screen_summary">画面下部のナビゲーション バー上のボタンを編集します</string>
|
||||||
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
|
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
|
||||||
<string name="revanced_hide_home_button_title">ホーム ボタンを非表示</string>
|
<string name="revanced_hide_home_button_title">「ホーム」を非表示</string>
|
||||||
<string name="revanced_hide_home_button_summary_on">ホーム ボタンは表示されません</string>
|
<string name="revanced_hide_home_button_summary_on">ホーム ボタンは表示されません</string>
|
||||||
<string name="revanced_hide_home_button_summary_off">ホーム ボタンは表示されます</string>
|
<string name="revanced_hide_home_button_summary_off">ホーム ボタンは表示されます</string>
|
||||||
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
|
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
|
||||||
<string name="revanced_hide_shorts_button_title">ショート ボタンを非表示</string>
|
<string name="revanced_hide_shorts_button_title">「ショート」を非表示</string>
|
||||||
<string name="revanced_hide_shorts_button_summary_on">ショート ボタンは表示されません</string>
|
<string name="revanced_hide_shorts_button_summary_on">ショート ボタンは表示されません</string>
|
||||||
<string name="revanced_hide_shorts_button_summary_off">ショート ボタンは表示されます</string>
|
<string name="revanced_hide_shorts_button_summary_off">ショート ボタンは表示されます</string>
|
||||||
<!-- The Create button has no display name. Translate normally. -->
|
<!-- The Create button has no display name. Translate normally. -->
|
||||||
<string name="revanced_hide_create_button_title">作成ボタンを非表示</string>
|
<string name="revanced_hide_create_button_title">「作成」を非表示</string>
|
||||||
<string name="revanced_hide_create_button_summary_on">作成ボタンは非表示です</string>
|
<string name="revanced_hide_create_button_summary_on">作成ボタンは非表示です</string>
|
||||||
<string name="revanced_hide_create_button_summary_off">作成ボタンは表示されます</string>
|
<string name="revanced_hide_create_button_summary_off">作成ボタンは表示されます</string>
|
||||||
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
|
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
|
||||||
<string name="revanced_hide_subscriptions_button_title">登録チャンネル ボタンを非表示</string>
|
<string name="revanced_hide_subscriptions_button_title">「登録チャンネル」を非表示</string>
|
||||||
<string name="revanced_hide_subscriptions_button_summary_on">登録チャンネル ボタンは表示されません</string>
|
<string name="revanced_hide_subscriptions_button_summary_on">登録チャンネル ボタンは表示されません</string>
|
||||||
<string name="revanced_hide_subscriptions_button_summary_off">登録チャンネル ボタンは表示されます</string>
|
<string name="revanced_hide_subscriptions_button_summary_off">登録チャンネル ボタンは表示されます</string>
|
||||||
<string name="revanced_hide_notifications_button_title">通知を非表示</string>
|
<string name="revanced_hide_notifications_button_title">通知を非表示</string>
|
||||||
<string name="revanced_hide_notifications_button_summary_on">通知ボタンは非表示</string>
|
<string name="revanced_hide_notifications_button_summary_on">通知ボタンは表示されません</string>
|
||||||
<string name="revanced_hide_notifications_button_summary_off">通知ボタンが表示されます</string>
|
<string name="revanced_hide_notifications_button_summary_off">通知ボタンは表示されます</string>
|
||||||
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
|
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
|
||||||
<string name="revanced_switch_create_with_notifications_button_title">作成ボタンと通知ボタンを入れ替える</string>
|
<string name="revanced_switch_create_with_notifications_button_title">「作成」と「通知」を入れ替える</string>
|
||||||
<string name="revanced_switch_create_with_notifications_button_summary_on">"作成ボタンと通知ボタンが入れ替わります
|
<string name="revanced_switch_create_with_notifications_button_summary_on">"作成ボタンと通知ボタンが入れ替わります
|
||||||
|
|
||||||
注: これにより、動画広告も強制的に非表示になります"</string>
|
注: これにより、動画広告も強制的に非表示になります"</string>
|
||||||
<string name="revanced_switch_create_with_notifications_button_summary_off">作成ボタンと通知ボタンは入れ替わりません</string>
|
<string name="revanced_switch_create_with_notifications_button_summary_off">作成ボタンと通知ボタンは入れ替わりません</string>
|
||||||
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"この設定を無効にすると、Shortsの広告ブロックも無効になります。
|
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"この設定を無効にすると、ショート動画の広告ブロックも無効になります。
|
||||||
|
|
||||||
この設定を変更しても有効にならない場合は、シークレットモードに切り替えてみてください。"</string>
|
この設定を変更しても効果がない場合は、シークレット モードに切り替えてみてください。"</string>
|
||||||
<string name="revanced_hide_navigation_button_labels_title">ナビゲーション ボタンをアイコンのみで表示する</string>
|
<string name="revanced_hide_navigation_button_labels_title">ナビゲーション ボタンをアイコンのみで表示する</string>
|
||||||
<string name="revanced_hide_navigation_button_labels_summary_on">ナビゲーション ボタンはアイコンのみで表示されます</string>
|
<string name="revanced_hide_navigation_button_labels_summary_on">ナビゲーション ボタンはアイコンのみで表示されます</string>
|
||||||
<string name="revanced_hide_navigation_button_labels_summary_off">ナビゲーション ボタンはアイコンと文字で表示されます</string>
|
<string name="revanced_hide_navigation_button_labels_summary_off">ナビゲーション ボタンはアイコンと文字で表示されます</string>
|
||||||
@@ -867,10 +867,10 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
|
|||||||
<string name="revanced_ryd_compact_layout_title">コンパクト 高評価ボタン</string>
|
<string name="revanced_ryd_compact_layout_title">コンパクト 高評価ボタン</string>
|
||||||
<string name="revanced_ryd_compact_layout_summary_on">ボタンはコンパクトに表示されます</string>
|
<string name="revanced_ryd_compact_layout_summary_on">ボタンはコンパクトに表示されます</string>
|
||||||
<string name="revanced_ryd_compact_layout_summary_off">ボタンは最適なサイズで表示されます</string>
|
<string name="revanced_ryd_compact_layout_summary_off">ボタンは最適なサイズで表示されます</string>
|
||||||
<string name="revanced_ryd_estimated_like_title">推定「いいね!」を表示</string>
|
<string name="revanced_ryd_estimated_like_title">高評価の推定値を表示</string>
|
||||||
<string name="revanced_ryd_estimated_like_summary_on">推定「いいね!」が表示されます</string>
|
<string name="revanced_ryd_estimated_like_summary_on">高評価が非公開の動画で推定値が表示されます</string>
|
||||||
<string name="revanced_ryd_estimated_like_summary_off">推定「いいね!」は非表示になります</string>
|
<string name="revanced_ryd_estimated_like_summary_off">高評価が非公開の動画では数値は表示されません</string>
|
||||||
<string name="revanced_ryd_toast_on_connection_error_title">API が利用できない場合はトーストを表示</string>
|
<string name="revanced_ryd_toast_on_connection_error_title">API 利用不可時にトーストを表示</string>
|
||||||
<string name="revanced_ryd_toast_on_connection_error_summary_on">Return YouTube Dislike が利用できない場合、トースト ポップアップが表示されます</string>
|
<string name="revanced_ryd_toast_on_connection_error_summary_on">Return YouTube Dislike が利用できない場合、トースト ポップアップが表示されます</string>
|
||||||
<string name="revanced_ryd_toast_on_connection_error_summary_off">Return YouTube Dislike が利用できない場合でもトースト ポップアップは表示されません</string>
|
<string name="revanced_ryd_toast_on_connection_error_summary_off">Return YouTube Dislike が利用できない場合でもトースト ポップアップは表示されません</string>
|
||||||
<string name="revanced_ryd_about">このアプリについて</string>
|
<string name="revanced_ryd_about">このアプリについて</string>
|
||||||
@@ -933,11 +933,11 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
|
|||||||
<string name="revanced_sb_general_skiptoast">スキップ時にトーストを表示</string>
|
<string name="revanced_sb_general_skiptoast">スキップ時にトーストを表示</string>
|
||||||
<string name="revanced_sb_general_skiptoast_sum_on">セグメントが自動的にスキップされたときにトースト ポップアップが表示されます。例を見るにはここをタップしてください</string>
|
<string name="revanced_sb_general_skiptoast_sum_on">セグメントが自動的にスキップされたときにトースト ポップアップが表示されます。例を見るにはここをタップしてください</string>
|
||||||
<string name="revanced_sb_general_skiptoast_sum_off">トースト ポップアップは表示されません。例を見るにはここをタップしてください</string>
|
<string name="revanced_sb_general_skiptoast_sum_off">トースト ポップアップは表示されません。例を見るにはここをタップしてください</string>
|
||||||
<string name="revanced_sb_general_time_without">セグメントを除いた動画の時間を表示</string>
|
<string name="revanced_sb_general_time_without">セグメントを除いた時間を表示</string>
|
||||||
<string name="revanced_sb_general_time_without_sum_on">動画からセグメントを除いた時間が、動画全体の長さの横に括弧で表示されます。</string>
|
<string name="revanced_sb_general_time_without_sum_on">動画からセグメントを除いた時間が、動画全体の再生時間の横に括弧で表示されます</string>
|
||||||
<string name="revanced_sb_general_time_without_sum_off">動画のすべての再生時間を表示</string>
|
<string name="revanced_sb_general_time_without_sum_off">動画全体の再生時間のみが表示されます</string>
|
||||||
<string name="revanced_sb_create_segment_category">新しいセグメントを作成する</string>
|
<string name="revanced_sb_create_segment_category">新しいセグメントを作成する</string>
|
||||||
<string name="revanced_sb_enable_create_segment">新しいセグメントの作成ボタンを表示</string>
|
<string name="revanced_sb_enable_create_segment">新しいセグメント作成ボタンを表示</string>
|
||||||
<string name="revanced_sb_enable_create_segment_sum_on">新しいセグメントを作成するボタンが表示されます</string>
|
<string name="revanced_sb_enable_create_segment_sum_on">新しいセグメントを作成するボタンが表示されます</string>
|
||||||
<string name="revanced_sb_enable_create_segment_sum_off">新しいセグメントを作成するボタンは表示されません</string>
|
<string name="revanced_sb_enable_create_segment_sum_off">新しいセグメントを作成するボタンは表示されません</string>
|
||||||
<string name="revanced_sb_general_adjusting">新しいセグメントステップを調整する</string>
|
<string name="revanced_sb_general_adjusting">新しいセグメントステップを調整する</string>
|
||||||
@@ -950,7 +950,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
|
|||||||
<string name="revanced_sb_guidelines_popup_already_read">既に読んでいます</string>
|
<string name="revanced_sb_guidelines_popup_already_read">既に読んでいます</string>
|
||||||
<string name="revanced_sb_guidelines_popup_open">見る</string>
|
<string name="revanced_sb_guidelines_popup_open">見る</string>
|
||||||
<string name="revanced_sb_general">一般設定</string>
|
<string name="revanced_sb_general">一般設定</string>
|
||||||
<string name="revanced_sb_toast_on_connection_error_title">API が利用できない場合はトーストを表示する</string>
|
<string name="revanced_sb_toast_on_connection_error_title">API 利用不可時にトーストを表示</string>
|
||||||
<string name="revanced_sb_toast_on_connection_error_summary_on">SponsorBlock が利用できない場合はトースト ポップアップが表示されます</string>
|
<string name="revanced_sb_toast_on_connection_error_summary_on">SponsorBlock が利用できない場合はトースト ポップアップが表示されます</string>
|
||||||
<string name="revanced_sb_toast_on_connection_error_summary_off">SponsorBlock が利用できない場合でもトースト ポップアップは表示されません</string>
|
<string name="revanced_sb_toast_on_connection_error_summary_off">SponsorBlock が利用できない場合でもトースト ポップアップは表示されません</string>
|
||||||
<string name="revanced_sb_general_skipcount">スキップ数の追跡を有効にする</string>
|
<string name="revanced_sb_general_skipcount">スキップ数の追跡を有効にする</string>
|
||||||
@@ -1282,7 +1282,7 @@ Automotive レイアウト
|
|||||||
<string name="revanced_alt_thumbnail_dearrow_about_summary">"DeArrow は、YouTube 動画のサムネイルをクラウドソーシングで提供する機能です。DeArrow のサムネイルは、YouTube が提供するサムネイルよりも適切なことが多いです。これを有効にすると、動画の URL が API サーバーに送信されますが、他のデータは送信されません。動画に DeArrow サムネイルがない場合は、オリジナルのサムネイルまたは静止画サムネイルが表示されます
|
<string name="revanced_alt_thumbnail_dearrow_about_summary">"DeArrow は、YouTube 動画のサムネイルをクラウドソーシングで提供する機能です。DeArrow のサムネイルは、YouTube が提供するサムネイルよりも適切なことが多いです。これを有効にすると、動画の URL が API サーバーに送信されますが、他のデータは送信されません。動画に DeArrow サムネイルがない場合は、オリジナルのサムネイルまたは静止画サムネイルが表示されます
|
||||||
|
|
||||||
DeArrow の詳細については、ここをタップしてください"</string>
|
DeArrow の詳細については、ここをタップしてください"</string>
|
||||||
<string name="revanced_alt_thumbnail_dearrow_connection_toast_title">API が利用できない場合はトーストを表示</string>
|
<string name="revanced_alt_thumbnail_dearrow_connection_toast_title">API が利用できない場合はトーストを表示する</string>
|
||||||
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_on">DeArrow が利用できない場合はトースト ポップアップが表示されます</string>
|
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_on">DeArrow が利用できない場合はトースト ポップアップが表示されます</string>
|
||||||
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_off">DeArrow が利用できない場合でもトースト ポップアップは表示されません</string>
|
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_off">DeArrow が利用できない場合でもトースト ポップアップは表示されません</string>
|
||||||
<string name="revanced_alt_thumbnail_dearrow_api_url_title">DeArrow API のエンドポイント</string>
|
<string name="revanced_alt_thumbnail_dearrow_api_url_title">DeArrow API のエンドポイント</string>
|
||||||
@@ -1354,10 +1354,11 @@ DeArrow の詳細については、ここをタップしてください"</string
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">ズームの触覚フィードバックは有効です</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">ズームの触覚フィードバックは有効です</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">オリジナルの音声を強制的に使用する</string>
|
<string name="revanced_force_original_audio_title">オリジナルの音声言語を強制的に使用する</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">オリジナルの音声トラックが再生されます</string>
|
<string name="revanced_force_original_audio_summary_on">オリジナルのオーディオ言語を使用する</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">デフォルトの音声トラックが再生されます</string>
|
<string name="revanced_force_original_audio_summary_off">デフォルトの音声トラックが再生されます</string>
|
||||||
<string name="revanced_force_original_audio_not_available">この機能を使用するには、動画ストリーム偽装を iOS に変更してください</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">この機能を使用するには、「ビデオストリームのスプーフィング」を「iOS TV」に変更してください</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -444,13 +444,13 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
|||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
|
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
|
||||||
<string name="revanced_share_copy_url_success">URL을 클립보드에 복사하였습니다</string>
|
<string name="revanced_share_copy_url_success">URL을 클립보드에 복사하였습니다</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">타임스탬프를 표기한 URL을 클립보드에 복사하였습니다</string>
|
<string name="revanced_share_copy_url_timestamp_success">타임스탬프가 표기된 URL을 클립보드에 복사하였습니다</string>
|
||||||
<string name="revanced_copy_video_url_title">동영상 URL 복사 버튼 표시하기</string>
|
<string name="revanced_copy_video_url_title">동영상 URL 복사 버튼 표시하기</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기한 동영상 URL이 복사됩니다</string>
|
<string name="revanced_copy_video_url_summary_on">버튼을 표시합니다\n버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬스가 표기된 동영상 URL이 복사됩니다</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기한 동영상 URL이 복사됩니다</string>
|
<string name="revanced_copy_video_url_summary_off">버튼을 표시하지 않습니다</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">타임스탬프를 표기한 URL 복사 버튼 표시하기</string>
|
<string name="revanced_copy_video_url_timestamp_title">타임스탬프가 표기된 URL 복사 버튼 표시하기</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">버튼을 눌러서 타임스탬프를 표기한 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기하지 않은 동영상 URL이 복사됩니다</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">버튼을 표시합니다\n버튼을 눌러서 타임스탬프가 표기된 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프가 표기되지 않은 동영상 URL이 복사됩니다</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">버튼을 눌러서 타임스탬프를 표기한 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기하지 않은 동영상 URL이 복사됩니다</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">버튼을 표시하지 않습니다</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
<string name="revanced_remove_viewer_discretion_dialog_title">시청자 재량 다이얼로그 제거하기</string>
|
<string name="revanced_remove_viewer_discretion_dialog_title">시청자 재량 다이얼로그 제거하기</string>
|
||||||
@@ -1358,10 +1358,11 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">진동 피드백을 활성화합니다</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">진동 피드백을 활성화합니다</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">원본 오디오 트랙 강제로 활성화하기</string>
|
<string name="revanced_force_original_audio_title">원본 오디오 스트림 언어 강제로 활성화하기</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">원본 오디오 트랙을 사용 중입니다</string>
|
<string name="revanced_force_original_audio_summary_on">원본 오디오 스트림 언어를 사용 중입니다</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">기본 오디오 트랙을 사용 중입니다</string>
|
<string name="revanced_force_original_audio_summary_off">기본 오디오 스트림 언어를 사용 중입니다</string>
|
||||||
<string name="revanced_force_original_audio_not_available">이 기능을 사용하려면, \'스트리밍 데이터 변경하기\' 설정에서 기본 클라이언트를 iOS TV로 변경하세요</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">이 설정을 사용하려면, \'스트리밍 데이터 변경하기\' 설정에서 기본 클라이언트를 iOS TV로 변경하세요</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Apribojimai
|
|||||||
<string name="revanced_share_copy_url_success">URL nukopijuotas į iškarpinę</string>
|
<string name="revanced_share_copy_url_success">URL nukopijuotas į iškarpinę</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL su laiko žyma nukopijuotas</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL su laiko žyma nukopijuotas</string>
|
||||||
<string name="revanced_copy_video_url_title">Rodyti kopijuoti vaizdo įrašo URL mygtuką</string>
|
<string name="revanced_copy_video_url_title">Rodyti kopijuoti vaizdo įrašo URL mygtuką</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Mygtukas yra rodomas. Bakstelėkite, kad nukopijuotumėte vaizdo įrašo URL. Bakstelėkite ir palaikykite, kad nukopijuotumėte vaizdo įrašo URL su laiko žyma</string>
|
<string name="revanced_copy_video_url_summary_on">Mygtukas rodomas. Palieskite, kad nukopijuotumėte vaizdo įrašo URL. Palieskite ir palaikykite, kad nukopijuotumėte su laiko žyma</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Mygtukas nerodomas</string>
|
<string name="revanced_copy_video_url_summary_off">Mygtukas nerodomas</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Rodyti mygtuką kopijuoti laikrodžio URL</string>
|
<string name="revanced_copy_video_url_timestamp_title">Rodyti mygtuką kopijuoti laikrodžio URL</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Mygtukas rodomas. Bakstelėkite, norėdami kopijuoti vaizdo įrašo URL su laikrodžio žyma. Bakstelėkite ir palaikykite, kad kopijuotumėte vaizdo įrašą be laikrodžio žymos</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Mygtukas rodomas. Palieskite, kad nukopijuotumėte vaizdo įrašo URL su laiko žyma. Palieskite ir palaikykite, kad nukopijuotumėte be laiko žymos</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Mygtukas nerodomas</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Mygtukas nerodomas</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1353,10 +1353,11 @@ Gali būti atrakinta aukštesnės vaizdo įrašų kokybės, bet galite patirti v
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Vibracija įjungta</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Vibracija įjungta</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Priversti originalų garsą</string>
|
<string name="revanced_force_original_audio_title">Priversti originalią garso kalbą</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Naudojamas originalus garsas</string>
|
<string name="revanced_force_original_audio_summary_on">Naudojama originali garso kalba</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Naudojamas numatytasis garsas</string>
|
<string name="revanced_force_original_audio_summary_off">Naudojamas numatytasis garsas</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Norėdami naudoti šią funkciją, pakeiskite srauto imitavimą į „iOS“ kliento tipą</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Norėdami naudoti šią funkciją, pakeiskite „Klastoti vaizdo srautus“ į iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Ierobežojumi
|
|||||||
<string name="revanced_share_copy_url_success">URL kopēts starpliktuvē</string>
|
<string name="revanced_share_copy_url_success">URL kopēts starpliktuvē</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL ar laika zīmi kopēts</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL ar laika zīmi kopēts</string>
|
||||||
<string name="revanced_copy_video_url_title">Rādīt video URL kopēšanas pogu</string>
|
<string name="revanced_copy_video_url_title">Rādīt video URL kopēšanas pogu</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Poga ir redzama. Pieskarieties, lai kopētu video URL. Nospiediet un turiet, lai kopētu video URL ar laika zīmi</string>
|
<string name="revanced_copy_video_url_summary_on">Poga ir redzama. Pieskarieties, lai kopētu video URL. Pieskarieties un turiet, lai kopētu ar laika zīmogu</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Pogas nav redzamas</string>
|
<string name="revanced_copy_video_url_summary_off">Pogas nav redzamas</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Rādīt pogu \"Kopēt saiti ar laika zīmi\"</string>
|
<string name="revanced_copy_video_url_timestamp_title">Rādīt pogu \"Kopēt saiti ar laika zīmi\"</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Poga ir redzama. Pieskarieties, lai kopētu video saiti ar laika zīmi. Pieskarieties un turiet nospiestu, lai kopētu video bez laika zīmes</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Poga ir redzama. Pieskarieties, lai kopētu video URL ar laika zīmogu. Pieskarieties un turiet, lai kopētu bez laika zīmoga</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Pogas nav redzamas</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Pogas nav redzamas</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Var tikt atbloķētas augstākas video kvalitātes, taču var rasties video atsk
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptiskā atgriezeniskā saite ir iespējota</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptiskā atgriezeniskā saite ir iespējota</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Piespiest oriģinālo audio</string>
|
<string name="revanced_force_original_audio_title">Piespiest oriģinālo audio valodu</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Tiek izmantots oriģinālais audio</string>
|
<string name="revanced_force_original_audio_summary_on">Izmantot oriģinālo audio valodu</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Tiek izmantots noklusējuma audio</string>
|
<string name="revanced_force_original_audio_summary_off">Tiek izmantots noklusējuma audio</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Lai izmantotu šo funkciju, mainiet straumes viltošanu uz iOS klienta tipu</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Lai izmantotu šo funkciju, nomainiet \"Video straumju viltošana\" uz iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Deze functie is alleen beschikbaar voor oudere apparaten"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL gekopieerd naar klembord</string>
|
<string name="revanced_share_copy_url_success">URL gekopieerd naar klembord</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL met tijdstempel gekopieerd</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL met tijdstempel gekopieerd</string>
|
||||||
<string name="revanced_copy_video_url_title">Knop \"Video-URL kopiëren\" weergeven</string>
|
<string name="revanced_copy_video_url_title">Knop \"Video-URL kopiëren\" weergeven</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Knop wordt getoond. Tik om de video-URL te kopiëren. Tik en houd vast om de video-URL met tijdstempel te kopiëren</string>
|
<string name="revanced_copy_video_url_summary_on">Knop wordt weergegeven. Tik om de video-URL te kopiëren. Tik en houd vast om met tijdstempel te kopiëren</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Knop wordt niet getoond</string>
|
<string name="revanced_copy_video_url_summary_off">Knop wordt niet getoond</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Knop \"Tijdstempel URL kopiëren\" weergeven</string>
|
<string name="revanced_copy_video_url_timestamp_title">Knop \"Tijdstempel URL kopiëren\" weergeven</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Knop wordt getoond. Tik om de video-URL met tijdstempel te kopiëren. Tik en houd vast om de video zonder tijdstempel te kopiëren</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Knop wordt weergegeven. Tik om de video-URL met tijdstempel te kopiëren. Tik en houd vast om zonder tijdstempel te kopiëren</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Knop wordt niet getoond</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Knop wordt niet getoond</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Het inschakelen hiervan kan hogere videokwaliteiten ontgrendelen"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptics zijn ingeschakeld</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptics zijn ingeschakeld</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forceer originele audio</string>
|
<string name="revanced_force_original_audio_title">Forceer de originele audiotaal</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Originele audio gebruiken</string>
|
<string name="revanced_force_original_audio_summary_on">De oorspronkelijke audiotaal gebruiken</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Standaard audio gebruiken</string>
|
<string name="revanced_force_original_audio_summary_off">Standaard audio gebruiken</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Als je deze functie wilt gebruiken, zet stream-spoofing op iOS-clienttype</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Om deze functie te gebruiken, wijzig je \'Videostreams vervalsen\' in iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Ta funkcja jest dostępna tylko dla starszych urządzeń"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Adres URL skopiowany do schowka</string>
|
<string name="revanced_share_copy_url_success">Adres URL skopiowany do schowka</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL ze znacznikiem czasu skopiowany</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL ze znacznikiem czasu skopiowany</string>
|
||||||
<string name="revanced_copy_video_url_title">Przycisk od kopiowania URL filmu</string>
|
<string name="revanced_copy_video_url_title">Przycisk od kopiowania URL filmu</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Przycisk jest widoczny. Dotknij, aby skopiować adres URL wideo. Dotknij i przytrzymaj aby skopiować adres wideo ze znacznikiem czasu</string>
|
<string name="revanced_copy_video_url_summary_on">Przycisk jest wyświetlany. Dotknij, aby skopiować adres URL filmu. Dotknij i przytrzymaj, aby skopiować ze znacznikiem czasu</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Przycisk nie jest widoczny</string>
|
<string name="revanced_copy_video_url_summary_off">Przycisk nie jest widoczny</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Przycisk od kopiowania URL filmu z czasem</string>
|
<string name="revanced_copy_video_url_timestamp_title">Przycisk od kopiowania URL filmu z czasem</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Przycisk jest widoczny. Dotknij, aby skopiować URL filmu ze znacznikiem czasu. Dotknij i przytrzymaj, aby skopiować film bez znacznika czasu</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Przycisk jest wyświetlany. Dotknij, aby skopiować adres URL filmu ze znacznikiem czasu. Dotknij i przytrzymaj, aby skopiować bez znacznika czasu</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Przycisk nie jest widoczny</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Przycisk nie jest widoczny</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Włączenie tego może odblokować wyższe jakości wideo"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptyka jest włączona</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptyka jest włączona</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Wymuś oryginalny dźwięk</string>
|
<string name="revanced_force_original_audio_title">Wymuś język oryginalnego dźwięku</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Używanie oryginalnego dźwięku</string>
|
<string name="revanced_force_original_audio_summary_on">Używanie oryginalnego języka audio</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Używanie domyślnego dźwięku</string>
|
<string name="revanced_force_original_audio_summary_off">Używanie domyślnego dźwięku</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Aby użyć tej funkcji, zmień podszywanie strumienia na typ klienta iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Aby użyć tej funkcji, zmień opcję \"Fałszuj strumienie wideo\" na iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -441,10 +441,10 @@ Este recurso está disponível apenas para dispositivos mais antigos"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL copiada para a área de transferência</string>
|
<string name="revanced_share_copy_url_success">URL copiada para a área de transferência</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL com tempo copiado</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL com tempo copiado</string>
|
||||||
<string name="revanced_copy_video_url_title">Mostrar botão copiar URL no vídeo</string>
|
<string name="revanced_copy_video_url_title">Mostrar botão copiar URL no vídeo</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">O botão é mostrado. Toque para copiar a URL do vídeo. Toque e segure para copiar a URL do vídeo com tempo</string>
|
<string name="revanced_copy_video_url_summary_on">O botão é mostrado. Toque para copiar a URL do vídeo. Toque e segure para copiar com carimbo de data/hora</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">O botão não está visível</string>
|
<string name="revanced_copy_video_url_summary_off">O botão não está visível</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Mostrar botão copiar URL com tempo</string>
|
<string name="revanced_copy_video_url_timestamp_title">Mostrar botão copiar URL com tempo</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">O botão é mostrado. Toque para copiar a URL do vídeo com temo. Toque e segure para copiar vídeos sem tempo</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">O botão é mostrado. Toque para copiar a URL do vídeo com carimbo de data/hora. Toque e segure para copiar sem carimbo de data/hora</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">O botão não está visível</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">O botão não está visível</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1349,10 +1349,11 @@ Habilitar isso pode desbloquear qualidades de vídeo mais altas"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Zoom tátil está desativado</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Zoom tátil está desativado</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forçar áudio original</string>
|
<string name="revanced_force_original_audio_title">Forçar idioma do áudio original</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Usando áudio original</string>
|
<string name="revanced_force_original_audio_summary_on">Usar o idioma original do áudio</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Usando áudio padrão</string>
|
<string name="revanced_force_original_audio_summary_off">Usando áudio padrão</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Para usar este recurso, altere a falsificação de fluxo para o tipo de cliente iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Para usar este recurso, altere \"Spoof video streams\" para iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_check_environment_dialog_open_official_source_button">Abrir site oficial</string>
|
<string name="revanced_check_environment_dialog_open_official_source_button">Abrir site oficial</string>
|
||||||
<string name="revanced_check_environment_dialog_ignore_button">Ignorar</string>
|
<string name="revanced_check_environment_dialog_ignore_button">Ignorar</string>
|
||||||
<string name="revanced_check_environment_failed_message"><h5>Esta aplicação não parece ter sido modificada por ti.</h5><br>Esta aplicação pode não funcionar corretamente, <b>pode ser maliciosa ou até perigosa de usar</b>.<br><br>Estas verificações implicam que esta aplicação é pré-modificada ou obtida de outros:<br><br><small>%1$s</small><br>É extremamente recomendado <b>desinstalar esta aplicação e modificá-la tu mesmo</b> para garantir que estás a usar uma aplicação segura e validada.<p><br>Se ignorado, este aviso apenas será mostrado duas vezes.</string>
|
<string name="revanced_check_environment_failed_message"><h5>Esta aplicação não parece ter sido modificada por ti.</h5><br>Esta aplicação pode não funcionar corretamente, <b>pode ser maliciosa ou até perigosa de usar</b>.<br><br>Estas verificações implicam que esta aplicação é pré-modificada ou obtida de outros:<br><br><small>%1$s</small><br>É extremamente recomendado <b>desinstalar esta aplicação e modificá-la tu mesmo</b> para garantir que estás a usar uma aplicação segura e validada.<p><br>Se ignorado, este aviso apenas será mostrado duas vezes.</string>
|
||||||
<string name="revanced_check_environment_not_same_patching_device">Corrigido num dispositivo diferente</string>
|
<string name="revanced_check_environment_not_same_patching_device">Modificado num dispositivo diferente</string>
|
||||||
<string name="revanced_check_environment_manager_not_expected_installer">Não instalado pelo ReVanced Manager</string>
|
<string name="revanced_check_environment_manager_not_expected_installer">Não instalado pelo ReVanced Manager</string>
|
||||||
<string name="revanced_check_environment_not_near_patch_time">Modificado há mais de 10 minutos atrás</string>
|
<string name="revanced_check_environment_not_near_patch_time">Modificado há mais de 10 minutos atrás</string>
|
||||||
<string name="revanced_check_environment_not_near_patch_time_days">Corrigida há %s dias</string>
|
<string name="revanced_check_environment_not_near_patch_time_days">Modificada há %s dias atrás</string>
|
||||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Data de compilação do APK está corrompida</string>
|
<string name="revanced_check_environment_not_near_patch_time_invalid">A data da compilação da APK está corrompida</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="misc.settings.settingsResourcePatch">
|
<patch id="misc.settings.settingsResourcePatch">
|
||||||
<string name="revanced_settings_submenu_title">Configurações</string>
|
<string name="revanced_settings_submenu_title">Configurações</string>
|
||||||
@@ -443,10 +443,10 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL copiado</string>
|
<string name="revanced_share_copy_url_success">URL copiado</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL com timestamp copiado</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL com timestamp copiado</string>
|
||||||
<string name="revanced_copy_video_url_title">Mostrar botão de URL de vídeo copiado</string>
|
<string name="revanced_copy_video_url_title">Mostrar botão de URL de vídeo copiado</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Botão é visível. Toque para copiar a URL do vídeo. Toque e segure para copiar a URL do vídeo com timestamp</string>
|
<string name="revanced_copy_video_url_summary_on">O botão é mostrado. Toque para copiar o URL do vídeo. Toque e segure para copiar com o carimbo de data/hora</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">O botão NÃO está visível</string>
|
<string name="revanced_copy_video_url_summary_off">O botão NÃO está visível</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Mostrar botão de copiar timestamp URL</string>
|
<string name="revanced_copy_video_url_timestamp_title">Mostrar botão de copiar timestamp URL</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Botão é visível. Toque para copiar a URL do vídeo com timestamp. Toque e segure para copiar vídeos sem timestamp</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">O botão é mostrado. Toque para copiar o URL do vídeo com o carimbo de data/hora. Toque e segure para copiar sem o carimbo de data/hora</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">O botão não está visível</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">O botão não está visível</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Hábitos estão ativados</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Hábitos estão ativados</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forçar áudio original</string>
|
<string name="revanced_force_original_audio_title">Forçar idioma original do áudio</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Usando áudio original</string>
|
<string name="revanced_force_original_audio_summary_on">Usando o idioma de áudio original</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Usando áudio padrão</string>
|
<string name="revanced_force_original_audio_summary_off">Usando áudio padrão</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Para usar este recurso, altere a falsificação de fluxo para o tipo de cliente iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Para usar este recurso, altere \"Spoof video streams\" para iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Această funcție este disponibilă numai pentru dispozitivele mai vechi"</strin
|
|||||||
<string name="revanced_share_copy_url_success">URL copiat în clipboard</string>
|
<string name="revanced_share_copy_url_success">URL copiat în clipboard</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL cu marcaj de timp copiat</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL cu marcaj de timp copiat</string>
|
||||||
<string name="revanced_copy_video_url_title">Afișare buton copie URL</string>
|
<string name="revanced_copy_video_url_title">Afișare buton copie URL</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Butonul este afișat. Atingeți pentru a copia URL-ul video. Atingeți și țineți apăsat pentru a copia URL-ul video cu marcajul de timp</string>
|
<string name="revanced_copy_video_url_summary_on">Butonul este afișat. Atingeți pentru a copia adresa URL a videoclipului. Atingeți și mențineți apăsat pentru a copia cu marcaj temporal</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Butonul nu este afișat</string>
|
<string name="revanced_copy_video_url_summary_off">Butonul nu este afișat</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Afișare buton copie marcaj URL</string>
|
<string name="revanced_copy_video_url_timestamp_title">Afișare buton copie marcaj URL</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Butonul este afișat. Atingeți pentru a copia URL-ul video cu marcajul de timp. Atingeți și țineți apăsat pentru a copia videoclipul fără marcaj de timp</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Butonul este afișat. Atingeți pentru a copia adresa URL a videoclipului cu marcaj temporal. Atingeți și mențineți apăsat pentru a copia fără marcaj temporal</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Butonul nu este afișat</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Butonul nu este afișat</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Activarea acestei opțiuni poate debloca calități video mai mari"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptic-urile sunt activate</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptic-urile sunt activate</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forțați sunetul original</string>
|
<string name="revanced_force_original_audio_title">Forțează limba audio originală</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Utilizează audio original</string>
|
<string name="revanced_force_original_audio_summary_on">Folosind limba audio originală</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Utilizează audio implicit</string>
|
<string name="revanced_force_original_audio_summary_off">Utilizează audio implicit</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Pentru a utiliza această funcție, schimbați opțiunea de streaming în modul client iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Pentru a utiliza această funcție, schimbați „Spoof video streams” în iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -513,8 +513,8 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_swipe_show_circular_overlay_summary_on">Круговой индикатор показан</string>
|
<string name="revanced_swipe_show_circular_overlay_summary_on">Круговой индикатор показан</string>
|
||||||
<string name="revanced_swipe_show_circular_overlay_summary_off">Горизонтальный индикатор показан</string>
|
<string name="revanced_swipe_show_circular_overlay_summary_off">Горизонтальный индикатор показан</string>
|
||||||
<string name="revanced_swipe_overlay_minimal_style_title">Включить минимальный стиль</string>
|
<string name="revanced_swipe_overlay_minimal_style_title">Включить минимальный стиль</string>
|
||||||
<string name="revanced_swipe_overlay_minimal_style_summary_on">Включен минимальный стиль наложения</string>
|
<string name="revanced_swipe_overlay_minimal_style_summary_on">Минимальный стиль индикатора включен</string>
|
||||||
<string name="revanced_swipe_overlay_minimal_style_summary_off">Минимальный стиль наложения отключен</string>
|
<string name="revanced_swipe_overlay_minimal_style_summary_off">Минимальный стиль индикатора отключен</string>
|
||||||
<string name="revanced_swipe_change_video_title">Включить переключение видео жестом</string>
|
<string name="revanced_swipe_change_video_title">Включить переключение видео жестом</string>
|
||||||
<string name="revanced_swipe_change_video_summary_on">Жест в полноэкранном режиме переключает на следующее/предыдущее видео</string>
|
<string name="revanced_swipe_change_video_summary_on">Жест в полноэкранном режиме переключает на следующее/предыдущее видео</string>
|
||||||
<string name="revanced_swipe_change_video_summary_off">Жест в полноэкранном режиме не переключает на следующее/предыдущее видео</string>
|
<string name="revanced_swipe_change_video_summary_off">Жест в полноэкранном режиме не переключает на следующее/предыдущее видео</string>
|
||||||
@@ -582,18 +582,18 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_hide_subscriptions_button_title">Скрыть кнопку \"Подписки\"</string>
|
<string name="revanced_hide_subscriptions_button_title">Скрыть кнопку \"Подписки\"</string>
|
||||||
<string name="revanced_hide_subscriptions_button_summary_on">Кнопка \"Подписки\" в панели навигации скрыта</string>
|
<string name="revanced_hide_subscriptions_button_summary_on">Кнопка \"Подписки\" в панели навигации скрыта</string>
|
||||||
<string name="revanced_hide_subscriptions_button_summary_off">Кнопка \"Подписки\" в панели навигации показана</string>
|
<string name="revanced_hide_subscriptions_button_summary_off">Кнопка \"Подписки\" в панели навигации показана</string>
|
||||||
<string name="revanced_hide_notifications_button_title">Скрыть уведомления</string>
|
<string name="revanced_hide_notifications_button_title">Скрыть кнопку \"Уведомления\"</string>
|
||||||
<string name="revanced_hide_notifications_button_summary_on">Кнопка уведомлений скрыта</string>
|
<string name="revanced_hide_notifications_button_summary_on">Кнопка \"Уведомления\" в панели навигации скрыта</string>
|
||||||
<string name="revanced_hide_notifications_button_summary_off">Кнопка уведомлений показана</string>
|
<string name="revanced_hide_notifications_button_summary_off">Кнопка \"Уведомления\" в панели навигации показана</string>
|
||||||
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
|
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
|
||||||
<string name="revanced_switch_create_with_notifications_button_title">Поменять местами кнопки \"Создать\" и \"Уведомления\"</string>
|
<string name="revanced_switch_create_with_notifications_button_title">Поменять местами кнопки \"Создать\" и \"Уведомления\"</string>
|
||||||
<string name="revanced_switch_create_with_notifications_button_summary_on">"Кнопка \"Создать\" поменяна местами с кнопкой \"Уведомления\"
|
<string name="revanced_switch_create_with_notifications_button_summary_on">"Кнопка \"Создать\" поменяна местами с кнопкой \"Уведомления\"
|
||||||
|
|
||||||
Примечание: активация данной опции также принудительно скроет видеорекламу"</string>
|
Примечание: активация данной опции также принудительно скроет видеорекламу"</string>
|
||||||
<string name="revanced_switch_create_with_notifications_button_summary_off">Кнопка \"Создать\" не поменяна местами с кнопкой \"Уведомления\"</string>
|
<string name="revanced_switch_create_with_notifications_button_summary_off">Кнопка \"Создать\" не поменяна местами с кнопкой \"Уведомления\"</string>
|
||||||
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Отключение этой настройки также отключит блокировку рекламы Shorts.
|
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Отключение этого параметра также отключит блокировку рекламы в Shorts.
|
||||||
|
|
||||||
Если изменение этого параметра не вступит в силу, попробуйте переключиться в режим инкогнито."</string>
|
Если изменение этого параметра не вступило в силу, попробуйте перейти в режим инкогнито."</string>
|
||||||
<string name="revanced_hide_navigation_button_labels_title">Скрыть подписи кнопок навигации</string>
|
<string name="revanced_hide_navigation_button_labels_title">Скрыть подписи кнопок навигации</string>
|
||||||
<string name="revanced_hide_navigation_button_labels_summary_on">Подписи кнопок навигации скрыты</string>
|
<string name="revanced_hide_navigation_button_labels_summary_on">Подписи кнопок навигации скрыты</string>
|
||||||
<string name="revanced_hide_navigation_button_labels_summary_off">Подписи кнопок навигации показаны</string>
|
<string name="revanced_hide_navigation_button_labels_summary_off">Подписи кнопок навигации показаны</string>
|
||||||
@@ -922,20 +922,20 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_sb_square_layout_sum_on">Кнопки и элементы управления квадратные</string>
|
<string name="revanced_sb_square_layout_sum_on">Кнопки и элементы управления квадратные</string>
|
||||||
<string name="revanced_sb_square_layout_sum_off">Кнопки и элементы управления закругленные</string>
|
<string name="revanced_sb_square_layout_sum_off">Кнопки и элементы управления закругленные</string>
|
||||||
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
|
||||||
<string name="revanced_sb_enable_compact_skip_button">Использовать компактную кнопку \"Пропустить\"</string>
|
<string name="revanced_sb_enable_compact_skip_button">Компактная кнопка пропуска</string>
|
||||||
<string name="revanced_sb_enable_compact_skip_button_sum_on">Кнопка пропуска стилизована для минимальной ширины</string>
|
<string name="revanced_sb_enable_compact_skip_button_sum_on">Кнопка пропуска стилизована для минимальной ширины</string>
|
||||||
<string name="revanced_sb_enable_compact_skip_button_sum_off">Кнопка пропуска стилизована для лучшего внешнего вида</string>
|
<string name="revanced_sb_enable_compact_skip_button_sum_off">Кнопка пропуска стилизована для лучшего внешнего вида</string>
|
||||||
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Автоматически скрыть кнопку \"Пропустить\"</string>
|
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Автоскрытие кнопки пропуска</string>
|
||||||
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Кнопка пропуска автоматически скрывается через несколько секунд</string>
|
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Кнопка пропуска автоматически скрывается через несколько секунд</string>
|
||||||
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Кнопка \"Пропустить\" отображается для всего сегмента</string>
|
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Кнопка пропуска показывается для всего сегмента</string>
|
||||||
<string name="revanced_sb_general_skiptoast">Показывать уведомление при пропуске сегмента</string>
|
<string name="revanced_sb_general_skiptoast">Уведомление при пропуске сегмента</string>
|
||||||
<string name="revanced_sb_general_skiptoast_sum_on">Всплывающее уведомление при автоматическом пропуске сегмента показано. Нажмите для просмотра примера</string>
|
<string name="revanced_sb_general_skiptoast_sum_on">Всплывающее уведомление при автоматическом пропуске сегмента показано. Нажмите для просмотра примера</string>
|
||||||
<string name="revanced_sb_general_skiptoast_sum_off">Всплывающее уведомление при автоматическом пропуске сегмента скрыто. Нажмите для просмотра примера</string>
|
<string name="revanced_sb_general_skiptoast_sum_off">Всплывающее уведомление при автоматическом пропуске сегмента скрыто. Нажмите для просмотра примера</string>
|
||||||
<string name="revanced_sb_general_time_without">Длительность видео без сегментов</string>
|
<string name="revanced_sb_general_time_without">Длительность видео без сегментов</string>
|
||||||
<string name="revanced_sb_general_time_without_sum_on">Длительность видео за исключением всех сегментов показана в скобках рядом с полной длительностью видео</string>
|
<string name="revanced_sb_general_time_without_sum_on">Длительность видео за исключением всех сегментов показана в скобках рядом с полной длительностью видео</string>
|
||||||
<string name="revanced_sb_general_time_without_sum_off">Полная длительность видео показана</string>
|
<string name="revanced_sb_general_time_without_sum_off">Полная длительность видео показана</string>
|
||||||
<string name="revanced_sb_create_segment_category">Создание новых сегментов</string>
|
<string name="revanced_sb_create_segment_category">Создание новых сегментов</string>
|
||||||
<string name="revanced_sb_enable_create_segment">Показать кнопку \"Создать сегмент\"</string>
|
<string name="revanced_sb_enable_create_segment">Кнопка создания сегмента</string>
|
||||||
<string name="revanced_sb_enable_create_segment_sum_on">Кнопка создания нового сегмента показана</string>
|
<string name="revanced_sb_enable_create_segment_sum_on">Кнопка создания нового сегмента показана</string>
|
||||||
<string name="revanced_sb_enable_create_segment_sum_off">Кнопка создания нового сегмента скрыта</string>
|
<string name="revanced_sb_enable_create_segment_sum_off">Кнопка создания нового сегмента скрыта</string>
|
||||||
<string name="revanced_sb_general_adjusting">Настроить шаг нового сегмента</string>
|
<string name="revanced_sb_general_adjusting">Настроить шаг нового сегмента</string>
|
||||||
@@ -1029,7 +1029,7 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_sb_skipped_multiple_segments">Несколько сегментов пропущены</string>
|
<string name="revanced_sb_skipped_multiple_segments">Несколько сегментов пропущены</string>
|
||||||
<string name="revanced_sb_skip_automatically">Пропускать автоматически</string>
|
<string name="revanced_sb_skip_automatically">Пропускать автоматически</string>
|
||||||
<string name="revanced_sb_skip_automatically_once">Пропускать автоматически один раз</string>
|
<string name="revanced_sb_skip_automatically_once">Пропускать автоматически один раз</string>
|
||||||
<string name="revanced_sb_skip_showbutton">Показать кнопку \"Пропустить\"</string>
|
<string name="revanced_sb_skip_showbutton">Показать кнопку пропуска</string>
|
||||||
<string name="revanced_sb_skip_seekbaronly">Показать в полосе прогресса</string>
|
<string name="revanced_sb_skip_seekbaronly">Показать в полосе прогресса</string>
|
||||||
<string name="revanced_sb_skip_ignore">Отключить</string>
|
<string name="revanced_sb_skip_ignore">Отключить</string>
|
||||||
<string name="revanced_sb_submit_failed_invalid">Невозможно отправить сегмент: %s</string>
|
<string name="revanced_sb_submit_failed_invalid">Невозможно отправить сегмент: %s</string>
|
||||||
@@ -1301,8 +1301,8 @@ Second \"item\" text"</string>
|
|||||||
</patch>
|
</patch>
|
||||||
<patch id="misc.announcements.announcementsPatch">
|
<patch id="misc.announcements.announcementsPatch">
|
||||||
<string name="revanced_announcements_title">Показать объявления ReVanced</string>
|
<string name="revanced_announcements_title">Показать объявления ReVanced</string>
|
||||||
<string name="revanced_announcements_summary_on">Объявления при запуске показаны</string>
|
<string name="revanced_announcements_summary_on">Объявления ReVanced при запуске приложения показаны</string>
|
||||||
<string name="revanced_announcements_summary_off">Объявления при запуске не показаны</string>
|
<string name="revanced_announcements_summary_off">Объявления ReVanced при запуске приложения скрыты</string>
|
||||||
<string name="revanced_announcements_enabled_summary">Показать объявления ReVanced при запуске приложения</string>
|
<string name="revanced_announcements_enabled_summary">Показать объявления ReVanced при запуске приложения</string>
|
||||||
<string name="revanced_announcements_connection_failed">Не удалось подключиться к поставщику объявлений</string>
|
<string name="revanced_announcements_connection_failed">Не удалось подключиться к поставщику объявлений</string>
|
||||||
<string name="revanced_announcements_dialog_dismiss">Закрыть</string>
|
<string name="revanced_announcements_dialog_dismiss">Закрыть</string>
|
||||||
@@ -1352,10 +1352,11 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Виброотклик при масштабировании включен</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Виброотклик при масштабировании включен</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Принудительно оригинальная звуковая дорожка</string>
|
<string name="revanced_force_original_audio_title">Принудительно выбирать язык оригинала аудиодорожки</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Используется оригинальная звуковая дорожка</string>
|
<string name="revanced_force_original_audio_summary_on">Используется оригинальный язык звуковой дорожки</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Используется звуковая дорожка по умолчанию</string>
|
<string name="revanced_force_original_audio_summary_off">Используется звуковая дорожка по умолчанию</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Для использования данной опции измените подмену видеопотока на тип клиента iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Чтобы использовать эту функцию, измените параметр \"Подмена видеопотоков\" на iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -436,10 +436,10 @@ Táto funkcia je dostupná len pre staršie zariadenia"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Adresa URL bola skopírovaná do schránky</string>
|
<string name="revanced_share_copy_url_success">Adresa URL bola skopírovaná do schránky</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Adresa URL s časovou pečiatkou bola skopírovaná</string>
|
<string name="revanced_share_copy_url_timestamp_success">Adresa URL s časovou pečiatkou bola skopírovaná</string>
|
||||||
<string name="revanced_copy_video_url_title">Zobraziť tlačidlo skopírovať adresu URL videa</string>
|
<string name="revanced_copy_video_url_title">Zobraziť tlačidlo skopírovať adresu URL videa</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Tlačidlo je zobrazené. Klepnutím skopírujete adresu URL videa. Klepnutím a podržaním skopírujete adresu URL videa s časovou pečiatkou</string>
|
<string name="revanced_copy_video_url_summary_on">Tlačidlo sa zobrazuje. Klepnutím skopírujete URL videa. Klepnutím a podržaním skopírujete s časovou pečiatkou</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Tlačidlo nie je zobrazené</string>
|
<string name="revanced_copy_video_url_summary_off">Tlačidlo nie je zobrazené</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Zobraziť tlačidlo webovej adresy kopírovania časovej pečiatky</string>
|
<string name="revanced_copy_video_url_timestamp_title">Zobraziť tlačidlo webovej adresy kopírovania časovej pečiatky</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Tlačidlo je zobrazené. Klepnutím skopírujete webovú adresu videa s časovou pečiatkou. Klepnutím a podržaním skopírujete video bez časovej pečiatky</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Tlačidlo sa zobrazuje. Klepnutím skopírujete URL videa s časovou pečiatkou. Klepnutím a podržaním skopírujete bez časovej pečiatky</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Tlačidlo nie je zobrazené</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Tlačidlo nie je zobrazené</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1340,10 +1340,11 @@ Povolením tejto možnosti môžete odomknúť vyššie kvality videa"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je povolená</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je povolená</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Vynútiť pôvodný zvuk</string>
|
<string name="revanced_force_original_audio_title">Vynútiť pôvodný jazyk zvuku</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Používanie pôvodného zvuku</string>
|
<string name="revanced_force_original_audio_summary_on">Používa sa pôvodný jazyk zvuku</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Používanie predvoleného zvuku</string>
|
<string name="revanced_force_original_audio_summary_off">Používanie predvoleného zvuku</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Ak chcete použiť túto funkciu, zmeňte stream spoofing na typ klienta iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Ak chcete používať túto funkciu, zmeňte možnosť „Zosmiešniť streamy videa“ na iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Ta funkcija je na voljo samo za starejše naprave"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL je kopiran v odložišče</string>
|
<string name="revanced_share_copy_url_success">URL je kopiran v odložišče</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL s časovnim žigom je kopiran</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL s časovnim žigom je kopiran</string>
|
||||||
<string name="revanced_copy_video_url_title">Pokaži gumb za kopiranje URL-ja videoposnetka</string>
|
<string name="revanced_copy_video_url_title">Pokaži gumb za kopiranje URL-ja videoposnetka</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Gumb je prikazan. Tapnite za kopiranje URL-ja videoposnetka. Pritisnite in držite za kopiranje URL-ja videoposnetka s časovnim žigom</string>
|
<string name="revanced_copy_video_url_summary_on">Gumb je prikazan. Dotaknite se, da kopirate URL videoposnetka. Dotaknite se in pridržite, da kopirate s časovnim žigom</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Gumb ni prikazan</string>
|
<string name="revanced_copy_video_url_summary_off">Gumb ni prikazan</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Prikaži gumb za kopiranje URL-ja s časovnim žigom</string>
|
<string name="revanced_copy_video_url_timestamp_title">Prikaži gumb za kopiranje URL-ja s časovnim žigom</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Gumb je prikazan. Tapnite, da kopirate URL videoposnetka s časovnim žigom. Tapnite in pridržite, da kopirate videoposnetek brez časovnega žiga</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Gumb je prikazan. Dotaknite se, da kopirate URL videoposnetka s časovnim žigom. Dotaknite se in pridržite, da kopirate brez časovnega žiga</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Gumb ni prikazan</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Gumb ni prikazan</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Omogočanje tega lahko odklene višje kakovosti videa"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je omogočena</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je omogočena</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Izsili izvirni zvok</string>
|
<string name="revanced_force_original_audio_title">Izsili izvirni jezik zvoka</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Uporaba izvirnega zvoka</string>
|
<string name="revanced_force_original_audio_summary_on">Uporabi izvirni jezik zvoka</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Uporaba privzetega zvoka</string>
|
<string name="revanced_force_original_audio_summary_off">Uporaba privzetega zvoka</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Za uporabo te funkcije spremenite odjemalce pretakanja na vrsto odjemalca iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Če želite uporabiti to funkcijo, spremenite »Spoof video streams« v iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Kjo veçori është e disponueshme vetëm për pajisje më të vjetra"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL u kopjua në shkëmbim</string>
|
<string name="revanced_share_copy_url_success">URL u kopjua në shkëmbim</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">URL me kohëzgjatje u kopjua</string>
|
<string name="revanced_share_copy_url_timestamp_success">URL me kohëzgjatje u kopjua</string>
|
||||||
<string name="revanced_copy_video_url_title">Shfaq butonin e kopjimit të URL-së së videos</string>
|
<string name="revanced_copy_video_url_title">Shfaq butonin e kopjimit të URL-së së videos</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Butoni është i dukshëm. Prekni për të kopjuar URL-në e videos. Prekni dhe mbani për të kopjuar URL-në e videos me kohëzgjatje</string>
|
<string name="revanced_copy_video_url_summary_on">Butoni shfaqet. Trokitni për të kopjuar URL-në e videos. Trokitni dhe mbani për të kopjuar me vulë kohore</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Butoni nuk shfaqet</string>
|
<string name="revanced_copy_video_url_summary_off">Butoni nuk shfaqet</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Shfaq butonin \"Kopjo URL-në me vulë kohe\"</string>
|
<string name="revanced_copy_video_url_timestamp_title">Shfaq butonin \"Kopjo URL-në me vulë kohe\"</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Butoni shfaqet. Prekni për të kopjuar URL-në e videos me vulë kohe. Prekni dhe mbajeni për të kopjuar videon pa vulë kohe</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Butoni shfaqet. Trokitni për të kopjuar URL-në e videos me vulë kohore. Trokitni dhe mbani për të kopjuar pa vulë kohore</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Butoni nuk shfaqet</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Butoni nuk shfaqet</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1350,10 +1350,11 @@ Aktivizimi i kësaj mund të zhbllokojë cilësi më të larta video"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptikët janë të aktivizuar</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptikët janë të aktivizuar</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forco Zërin Origjinal</string>
|
<string name="revanced_force_original_audio_title">Forco gjuhën origjinale të audios</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Përdorimi i Zërit Origjinal</string>
|
<string name="revanced_force_original_audio_summary_on">Duke përdorur gjuhën origjinale audio</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Përdorimi i Zërit Parazgjedhur</string>
|
<string name="revanced_force_original_audio_summary_off">Përdorimi i Zërit Parazgjedhur</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Për të përdorur këtë funksion, ndrysho rrymën spoofing në llojin e klientit iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Për ta përdorur këtë veçori, ndryshoni \'Rrjedhat e videos tallëse\' në iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Ova funkcija je dostupna samo za starije uređaje"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Link je kopiran u privremenu memoriju</string>
|
<string name="revanced_share_copy_url_success">Link je kopiran u privremenu memoriju</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Link s vremenskom oznakom je kopiran</string>
|
<string name="revanced_share_copy_url_timestamp_success">Link s vremenskom oznakom je kopiran</string>
|
||||||
<string name="revanced_copy_video_url_title">Prikaži dugme za kopiranje linka videa</string>
|
<string name="revanced_copy_video_url_title">Prikaži dugme za kopiranje linka videa</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Dugme je prikazano. Dodirnite da biste kopirali link videa. Dodirnite i zadržite da biste kopirali link videa s vremenskom oznakom</string>
|
<string name="revanced_copy_video_url_summary_on">Dugme je prikazano. Dodirnite da biste kopirali link videa. Dodirnite i zadržite da biste kopirali link s vremenskom oznakom</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Dugme za kopiranje linka videa nije prikazano</string>
|
<string name="revanced_copy_video_url_summary_off">Dugme za kopiranje linka videa nije prikazano</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Prikaži dugme za kopiranje linka videa s vremenskom oznakom</string>
|
<string name="revanced_copy_video_url_timestamp_title">Prikaži dugme za kopiranje linka videa s vremenskom oznakom</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Dugme je prikazano. Dodirnite da biste kopirali link videa s vremenskom oznakom. Dodirnite i zadržite da biste kopirali link videa bez vremenske oznake</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Dugme je prikazano. Dodirnite da biste kopirali link videa s vremenskom oznakom. Dodirnite i zadržite da biste kopirali link bez vremenske oznake</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Dugme za kopiranje linka videa s vremenskom oznakom nije prikazano</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Dugme za kopiranje linka videa s vremenskom oznakom nije prikazano</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,10 @@ Ako ovo omogućite, mogu biti otključani viši kvaliteti videa"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Vibracija pri uveličavanju je omogućena</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Vibracija pri uveličavanju je omogućena</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Prisili originalni zvuk</string>
|
<string name="revanced_force_original_audio_summary_on">Korišćenje originalnog audio jezika</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Korišćenje originalnog zvuka</string>
|
|
||||||
<string name="revanced_force_original_audio_summary_off">Korišćenje podrazumevanog zvuka</string>
|
<string name="revanced_force_original_audio_summary_off">Korišćenje podrazumevanog zvuka</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Da biste koristili ovu funkciju, promenite lažiranje strima na tip klijenta iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Da biste koristili ovu funkciju, promenite opciju „Lažni video strimovi“ u iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Линк је копиран у привремену меморију</string>
|
<string name="revanced_share_copy_url_success">Линк је копиран у привремену меморију</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Линк с временском ознаком је копиран</string>
|
<string name="revanced_share_copy_url_timestamp_success">Линк с временском ознаком је копиран</string>
|
||||||
<string name="revanced_copy_video_url_title">Прикажи дугме за копирање линка видеа</string>
|
<string name="revanced_copy_video_url_title">Прикажи дугме за копирање линка видеа</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Дугме је приказано. Додирните да бисте копирали линк видеа. Додирните и задржите да бисте копирали линк видеа с временском ознаком</string>
|
<string name="revanced_copy_video_url_summary_on">Дугме је приказано. Додирните да бисте копирали линк видеа. Додирните и задржите да бисте копирали линк с временском ознаком</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Дугме за копирање линка видеа није приказано</string>
|
<string name="revanced_copy_video_url_summary_off">Дугме за копирање линка видеа није приказано</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Прикажи дугме за копирање линка видеа с временском ознаком</string>
|
<string name="revanced_copy_video_url_timestamp_title">Прикажи дугме за копирање линка видеа с временском ознаком</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Дугме је приказано. Додирните да бисте копирали линк видеа с временском ознаком. Додирните и задржите да бисте копирали линк видеа без временске ознаке</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Дугме је приказано. Додирните да бисте копирали линк видеа с временском ознаком. Додирните и задржите да бисте копирали линк без временске ознаке</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Дугме за копирање линка видеа с временском ознаком није приказано</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Дугме за копирање линка видеа с временском ознаком није приказано</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Вибрација при увеличавању је омогућена</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Вибрација при увеличавању је омогућена</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Присили оригинални звук</string>
|
<string name="revanced_force_original_audio_title">Присили оригинални језик звука</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Коришћење оригиналног звука</string>
|
<string name="revanced_force_original_audio_summary_on">Коришћење оригиналног језика звука</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Коришћење подразумеваног звука</string>
|
<string name="revanced_force_original_audio_summary_off">Коришћење подразумеваног звука</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Да бисте користили ову функцију, промените лажирање стрима на тип клијента iOS</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Да бисте користили ову функцију, промените „Лажирај видео стримове“ у iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Den här funktionen är endast tillgänglig för äldre enheter"</string>
|
|||||||
<string name="revanced_share_copy_url_success">Webbadress kopierad till urklipp</string>
|
<string name="revanced_share_copy_url_success">Webbadress kopierad till urklipp</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Webbadress med tidsstämpel kopierad</string>
|
<string name="revanced_share_copy_url_timestamp_success">Webbadress med tidsstämpel kopierad</string>
|
||||||
<string name="revanced_copy_video_url_title">Visa knappen för kopiering av video-URL</string>
|
<string name="revanced_copy_video_url_title">Visa knappen för kopiering av video-URL</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Knappen är synlig. Tryck för att kopiera videowebbadressen. Tryck och håll ner för att kopiera videowebbadressen med tidsstämpel</string>
|
<string name="revanced_copy_video_url_summary_on">Knappen visas. Tryck för att kopiera videons URL. Tryck och håll ned för att kopiera med tidsstämpel</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Knappen är dold</string>
|
<string name="revanced_copy_video_url_summary_off">Knappen är dold</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Visa knappen för kopiering av tidsstämpel</string>
|
<string name="revanced_copy_video_url_timestamp_title">Visa knappen för kopiering av tidsstämpel</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Knappen är synlig. Tryck för att kopiera videowebbadressen med tidsstämpel. Tryck och håll ner för att kopiera videon utan tidsstämpel</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Knappen visas. Tryck för att kopiera videons URL med tidsstämpel. Tryck och håll ned för att kopiera utan tidsstämpel</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Knappen är dold</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Knappen är dold</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1351,10 +1351,11 @@ Att aktivera detta kan låsa upp högre videokvalitet"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Haptikerna är aktiverade</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Haptikerna är aktiverade</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Forcera originalljud</string>
|
<string name="revanced_force_original_audio_title">Forcera originalljudspråk</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Använder original ljudeffekter</string>
|
<string name="revanced_force_original_audio_summary_on">Använder originalljudspråk</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Använder standardljud</string>
|
<string name="revanced_force_original_audio_summary_off">Använder standardljud</string>
|
||||||
<string name="revanced_force_original_audio_not_available">För att använda den här funktionen, ändra strömningsförfalskning till iOS-klienttyp</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">För att använda den här funktionen, ändra \"Förfalska videoströmmar\" till iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
|
|||||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
|||||||
<string name="revanced_share_copy_url_success">คัดลอก URL ไปยังคลิปบอร์ด</string>
|
<string name="revanced_share_copy_url_success">คัดลอก URL ไปยังคลิปบอร์ด</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">คัดลอก URL พร้อมเวลาไปยังคลิปบอร์ด</string>
|
<string name="revanced_share_copy_url_timestamp_success">คัดลอก URL พร้อมเวลาไปยังคลิปบอร์ด</string>
|
||||||
<string name="revanced_copy_video_url_title">แสดงปุ่มคัดลอก URL วิดีโอ</string>
|
<string name="revanced_copy_video_url_title">แสดงปุ่มคัดลอก URL วิดีโอ</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">ปุ่มจะแสดง แตะเพื่อคัดลอก URL วิดีโอ แตะค้างไว้เพื่อคัดลอก URL วิดีโอพร้อมเวลา</string>
|
<string name="revanced_copy_video_url_summary_on">ปุ่มแสดงอยู่ แตะเพื่อคัดลอก URL วิดีโอ แตะค้างไว้เพื่อคัดลอกพร้อมการประทับเวลา</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">ปุ่มไม่แสดง</string>
|
<string name="revanced_copy_video_url_summary_off">ปุ่มไม่แสดง</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">แสดงปุ่มคัดลอก URL เวลา</string>
|
<string name="revanced_copy_video_url_timestamp_title">แสดงปุ่มคัดลอก URL เวลา</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">ปุ่มจะแสดง แตะเพื่อคัดลอก URL วิดีโอพร้อมเวลา แตะค้างไว้เพื่อคัดลอกวิดีโอโดยไม่ใช้เวลา</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">ปุ่มแสดงอยู่ แตะเพื่อคัดลอก URL วิดีโอพร้อมการประทับเวลา แตะค้างไว้เพื่อคัดลอกโดยไม่มีการประทับเวลา</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">ปุ่มไม่แสดง</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">ปุ่มไม่แสดง</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1350,10 +1350,11 @@ User id ของคุณเหมือนกับรหัสผ่าน
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">แฮปติกเปิดใช้งาน</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">แฮปติกเปิดใช้งาน</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">บังคับเสียงต้นฉบับ</string>
|
<string name="revanced_force_original_audio_title">บังคับใช้ภาษาเสียงต้นฉบับ</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">กำลังใช้ออดิโอดั้งเดิม</string>
|
<string name="revanced_force_original_audio_summary_on">กำลังใช้ภาษาเสียงต้นฉบับ</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">กำลังใช้ออดิโอเริ่มต้น</string>
|
<string name="revanced_force_original_audio_summary_off">กำลังใช้ออดิโอเริ่มต้น</string>
|
||||||
<string name="revanced_force_original_audio_not_available">เลียที่ยงให้ฟังเพิ่มันที่ หมดการ์ที่สามาชียงานiOS กับ</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">หากต้องการใช้คุณสมบัตินี้ ให้เปลี่ยน \'ปลอมแปลงสตรีมวิดีโอ\' เป็น iOS TV</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ Yeni dilleri çevirmek için translate.revanced.app adresini ziyaret edin"</stri
|
|||||||
<string name="revanced_language_UR">Urduca</string>
|
<string name="revanced_language_UR">Urduca</string>
|
||||||
<string name="revanced_language_VI">Vietnamca</string>
|
<string name="revanced_language_VI">Vietnamca</string>
|
||||||
<string name="revanced_language_ZH">Çince</string>
|
<string name="revanced_language_ZH">Çince</string>
|
||||||
<string name="revanced_pref_import_export_title">İçe / Dışa aktar</string>
|
<string name="revanced_pref_import_export_title">İçe / Dışa Aktar</string>
|
||||||
<string name="revanced_pref_import_export_summary">ReVanced ayarlarını içe / dışa aktar</string>
|
<string name="revanced_pref_import_export_summary">ReVanced ayarlarını içe / dışa aktar</string>
|
||||||
<!-- Settings about dialog. -->
|
<!-- Settings about dialog. -->
|
||||||
<string name="revanced_settings_about_links_body">ReVanced Patches <i>%s</i> sürümünü kullanıyorsunuz</string>
|
<string name="revanced_settings_about_links_body">ReVanced Patches <i>%s</i> sürümünü kullanıyorsunuz</string>
|
||||||
@@ -443,10 +443,10 @@ Bu özellik yalnızca eski cihazlarda kullanılabilir"</string>
|
|||||||
<string name="revanced_share_copy_url_success">URL panoya kopyalandı</string>
|
<string name="revanced_share_copy_url_success">URL panoya kopyalandı</string>
|
||||||
<string name="revanced_share_copy_url_timestamp_success">Zaman damgalı URL kopyalandı</string>
|
<string name="revanced_share_copy_url_timestamp_success">Zaman damgalı URL kopyalandı</string>
|
||||||
<string name="revanced_copy_video_url_title">Video URL\'sini kopyalama düğmesini göster</string>
|
<string name="revanced_copy_video_url_title">Video URL\'sini kopyalama düğmesini göster</string>
|
||||||
<string name="revanced_copy_video_url_summary_on">Düğme görünür. Video URL\'sini kopyalamak için dokunun. Zaman damgalı URL\'yi kopyalamak için basılı tutun</string>
|
<string name="revanced_copy_video_url_summary_on">Düğme gösteriliyor. Video URL\'sini kopyalamak için dokunun. Zaman damgasıyla kopyalamak için dokunup basılı tutun</string>
|
||||||
<string name="revanced_copy_video_url_summary_off">Düğme gösterilmez</string>
|
<string name="revanced_copy_video_url_summary_off">Düğme gösterilmez</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_title">Zaman damgalı URL\'yi kopyalama düğmesini göster</string>
|
<string name="revanced_copy_video_url_timestamp_title">Zaman damgalı URL\'yi kopyalama düğmesini göster</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_on">Düğme görünür. Zaman damgalı video URLsini kopyalamak için dokunun. Zaman damgası olmadan kopyalamak için basılı tutun</string>
|
<string name="revanced_copy_video_url_timestamp_summary_on">Düğme gösteriliyor. Zaman damgalı video URL\'sini kopyalamak için dokunun. Zaman damgası olmadan kopyalamak için dokunup basılı tutun</string>
|
||||||
<string name="revanced_copy_video_url_timestamp_summary_off">Düğme gösterilmez</string>
|
<string name="revanced_copy_video_url_timestamp_summary_off">Düğme gösterilmez</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||||
@@ -1352,10 +1352,11 @@ Bunu etkinleştirmek daha yüksek video kalitelerini açabilir"</string>
|
|||||||
<string name="revanced_disable_zoom_haptics_summary_off">Titreşim etkin</string>
|
<string name="revanced_disable_zoom_haptics_summary_off">Titreşim etkin</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.audio.forceOriginalAudioPatch">
|
<patch id="video.audio.forceOriginalAudioPatch">
|
||||||
<string name="revanced_force_original_audio_title">Orijinal sesi zorla</string>
|
<string name="revanced_force_original_audio_title">Orijinal ses dilini zorla</string>
|
||||||
<string name="revanced_force_original_audio_summary_on">Orijinal ses kullanılıyor</string>
|
<string name="revanced_force_original_audio_summary_on">Orijinal ses dili kullanılıyor</string>
|
||||||
<string name="revanced_force_original_audio_summary_off">Varsayılan ses kullanılıyor</string>
|
<string name="revanced_force_original_audio_summary_off">Varsayılan ses kullanılıyor</string>
|
||||||
<string name="revanced_force_original_audio_not_available">Bu özelliği kullanmak için, video akışı taklidi özelliğini iOS istemci türüne değiştirin</string>
|
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
|
||||||
|
<string name="revanced_force_original_audio_not_available">Bu özelliği kullanmak için \"Video akışlarını taklit et\" ayarını iOS TV olarak değiştirin</string>
|
||||||
</patch>
|
</patch>
|
||||||
<patch id="video.quality.rememberVideoQualityPatch">
|
<patch id="video.quality.rememberVideoQualityPatch">
|
||||||
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user