mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-16 15:53:58 +00:00
Compare commits
7 Commits
v5.13.0-de
...
v5.13.0-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f44fede67c | ||
|
|
3c52ab8017 | ||
|
|
d1641a6e3d | ||
|
|
09773e8934 | ||
|
|
d77d5bfbdd | ||
|
|
a84bded9e7 | ||
|
|
e664a24f73 |
21
CHANGELOG.md
21
CHANGELOG.md
@@ -1,3 +1,24 @@
|
||||
# [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)
|
||||
|
||||
|
||||
|
||||
@@ -356,7 +356,7 @@ public class Utils {
|
||||
|
||||
public static Context getContext() {
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1,37 +1,60 @@
|
||||
package app.revanced.extension.tiktok.spoof.sim;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.tiktok.settings.Settings;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
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) {
|
||||
if (ENABLED) {
|
||||
if (isContextNotSet("countryIso")) return value;
|
||||
|
||||
if (Settings.SIM_SPOOF.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 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();
|
||||
Logger.printDebug(() -> "Spoofing sim MCC-MNC from: " + value + " to: " + mcc_mnc);
|
||||
return mcc_mnc;
|
||||
}
|
||||
|
||||
return 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();
|
||||
Logger.printDebug(() -> "Spoofing sim operator from: " + value + " to: " + operator);
|
||||
Logger.printDebug(() -> "Spoofing sim operatorName from: " + value + " to: " + operator);
|
||||
return operator;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,8 +126,7 @@ public class LicenseActivityHook {
|
||||
// This is required to fix submenu title alignment issue with Android ASOP 15+
|
||||
ViewGroup toolBarParent = activity.findViewById(
|
||||
getResourceIdentifier("revanced_toolbar_parent", "id"));
|
||||
ViewGroup dummyToolbar = toolBarParent.findViewById(getResourceIdentifier(
|
||||
"revanced_toolbar", "id"));
|
||||
ViewGroup dummyToolbar = Utils.getChildViewByResourceName(toolBarParent,"revanced_toolbar");
|
||||
toolbarLayoutParams = dummyToolbar.getLayoutParams();
|
||||
toolBarParent.removeView(dummyToolbar);
|
||||
|
||||
|
||||
@@ -21,9 +21,6 @@ enum class PlayerType {
|
||||
|
||||
/**
|
||||
* 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_MAXIMIZED,
|
||||
@@ -56,8 +53,7 @@ enum class PlayerType {
|
||||
val newType = nameToPlayerType[enumName]
|
||||
if (newType == null) {
|
||||
Logger.printException { "Unknown PlayerType encountered: $enumName" }
|
||||
} else if (current != newType) {
|
||||
Logger.printDebug { "PlayerType changed to: $newType" }
|
||||
} else {
|
||||
current = newType
|
||||
}
|
||||
}
|
||||
@@ -68,9 +64,13 @@ enum class PlayerType {
|
||||
@JvmStatic
|
||||
var current
|
||||
get() = currentPlayerType
|
||||
private set(value) {
|
||||
currentPlayerType = value
|
||||
onChange(currentPlayerType)
|
||||
private set(type) {
|
||||
if (currentPlayerType != type) {
|
||||
Logger.printDebug { "Changed to: $type" }
|
||||
|
||||
currentPlayerType = type
|
||||
onChange(type)
|
||||
}
|
||||
}
|
||||
|
||||
@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.shared.PlayerType;
|
||||
import app.revanced.extension.youtube.sponsorblock.objects.SponsorSegment;
|
||||
import app.revanced.extension.youtube.videoplayer.PlayerControlTopButton;
|
||||
import kotlin.Unit;
|
||||
|
||||
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
|
||||
// to be forcefully hidden
|
||||
if (!Settings.AUTO_REPEAT.get()) {
|
||||
CreateSegmentButtonController.hideControls();
|
||||
VotingButtonController.hideControls();
|
||||
CreateSegmentButton.hideControls();
|
||||
VotingButton.hideControls();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Logger.printException(() -> "endOfVideoReached failure", ex);
|
||||
|
||||
@@ -1,23 +1,19 @@
|
||||
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.sponsorblock.SegmentPlaybackController;
|
||||
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
|
||||
private static VotingButtonController instance;
|
||||
private static PlayerControlButton instance;
|
||||
|
||||
public static void hideControls() {
|
||||
if (instance != null) instance.hide();
|
||||
@@ -26,36 +22,36 @@ public class VotingButtonController extends PlayerControlTopButton {
|
||||
/**
|
||||
* injection point
|
||||
*/
|
||||
public static void initialize(View youtubeControlsLayout) {
|
||||
public static void initialize(View controlsView) {
|
||||
try {
|
||||
Logger.printDebug(() -> "initializing voting button");
|
||||
ImageView imageView = Objects.requireNonNull(Utils.getChildViewByResourceName(
|
||||
youtubeControlsLayout, "revanced_sb_voting_button"));
|
||||
instance = new VotingButtonController(imageView);
|
||||
instance = new PlayerControlButton(
|
||||
controlsView,
|
||||
"revanced_sb_voting_button",
|
||||
null,
|
||||
VotingButton::shouldBeShown,
|
||||
v -> SponsorBlockUtils.onVotingClicked(v.getContext()),
|
||||
null
|
||||
);
|
||||
} catch (Exception 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
|
||||
private VotingButtonController(ImageView imageView) {
|
||||
super(imageView, v -> SponsorBlockUtils.onVotingClicked(v.getContext()));
|
||||
}
|
||||
|
||||
protected boolean shouldBeShown() {
|
||||
private static boolean shouldBeShown() {
|
||||
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
|
||||
&& SegmentPlaybackController.videoHasSegments() && !VideoInformation.isAtEndOfVideo();
|
||||
}
|
||||
@@ -1,38 +1,35 @@
|
||||
package app.revanced.extension.youtube.videoplayer;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.youtube.shared.PlayerType;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class CopyVideoUrlButton extends PlayerControlBottomButton {
|
||||
public class CopyVideoUrlButton {
|
||||
@Nullable
|
||||
private static CopyVideoUrlButton 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;
|
||||
}
|
||||
);
|
||||
}
|
||||
private static PlayerControlButton instance;
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void initializeButton(View view) {
|
||||
public static void initializeButton(View controlsView) {
|
||||
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) {
|
||||
Logger.printException(() -> "initializeButton failure", ex);
|
||||
}
|
||||
@@ -41,14 +38,14 @@ public class CopyVideoUrlButton extends PlayerControlBottomButton {
|
||||
/**
|
||||
* injection point
|
||||
*/
|
||||
public static void changeVisibilityImmediate(boolean visible) {
|
||||
public static void setVisibilityImmediate(boolean visible) {
|
||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
@@ -1,38 +1,35 @@
|
||||
package app.revanced.extension.youtube.videoplayer;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.youtube.shared.PlayerType;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class CopyVideoUrlTimestampButton extends PlayerControlBottomButton {
|
||||
public class CopyVideoUrlTimestampButton {
|
||||
@Nullable
|
||||
private static CopyVideoUrlTimestampButton 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;
|
||||
}
|
||||
);
|
||||
}
|
||||
private static PlayerControlButton instance;
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void initializeButton(View bottomControlsViewGroup) {
|
||||
public static void initializeButton(View controlsView) {
|
||||
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) {
|
||||
Logger.printException(() -> "initializeButton failure", ex);
|
||||
}
|
||||
@@ -41,14 +38,14 @@ public class CopyVideoUrlTimestampButton extends PlayerControlBottomButton {
|
||||
/**
|
||||
* injection point
|
||||
*/
|
||||
public static void changeVisibilityImmediate(boolean visible) {
|
||||
public static void setVisibilityImmediate(boolean visible) {
|
||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.youtube.videoplayer;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
@@ -11,26 +10,23 @@ import app.revanced.extension.youtube.patches.VideoInformation;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class ExternalDownloadButton extends PlayerControlBottomButton {
|
||||
public class ExternalDownloadButton {
|
||||
@Nullable
|
||||
private static ExternalDownloadButton instance;
|
||||
|
||||
public ExternalDownloadButton(ViewGroup viewGroup) {
|
||||
super(
|
||||
viewGroup,
|
||||
"revanced_external_download_button",
|
||||
Settings.EXTERNAL_DOWNLOADER,
|
||||
ExternalDownloadButton::onDownloadClick,
|
||||
null
|
||||
);
|
||||
}
|
||||
private static PlayerControlButton instance;
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void initializeButton(View view) {
|
||||
public static void initializeButton(View controlsView) {
|
||||
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) {
|
||||
Logger.printException(() -> "initializeButton failure", ex);
|
||||
}
|
||||
@@ -39,14 +35,14 @@ public class ExternalDownloadButton extends PlayerControlBottomButton {
|
||||
/**
|
||||
* injection point
|
||||
*/
|
||||
public static void changeVisibilityImmediate(boolean visible) {
|
||||
public static void setVisibilityImmediate(boolean 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,35 +1,31 @@
|
||||
package app.revanced.extension.youtube.videoplayer;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.youtube.patches.playback.speed.CustomPlaybackSpeedPatch;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.shared.Logger;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class PlaybackSpeedDialogButton extends PlayerControlBottomButton {
|
||||
public class PlaybackSpeedDialogButton {
|
||||
@Nullable
|
||||
private static PlaybackSpeedDialogButton instance;
|
||||
|
||||
public PlaybackSpeedDialogButton(ViewGroup viewGroup) {
|
||||
super(
|
||||
viewGroup,
|
||||
"revanced_playback_speed_dialog_button",
|
||||
Settings.PLAYBACK_SPEED_DIALOG_BUTTON,
|
||||
view -> CustomPlaybackSpeedPatch.showOldPlaybackSpeedMenu(),
|
||||
null
|
||||
);
|
||||
}
|
||||
private static PlayerControlButton instance;
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static void initializeButton(View view) {
|
||||
public static void initializeButton(View controlsView) {
|
||||
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) {
|
||||
Logger.printException(() -> "initializeButton failure", ex);
|
||||
}
|
||||
@@ -38,14 +34,14 @@ public class PlaybackSpeedDialogButton extends PlayerControlBottomButton {
|
||||
/**
|
||||
* injection point
|
||||
*/
|
||||
public static void changeVisibilityImmediate(boolean visible) {
|
||||
public static void setVisibilityImmediate(boolean visible) {
|
||||
if (instance != null) instance.setVisibilityImmediate(visible);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
@@ -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,184 @@
|
||||
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) {
|
||||
private_setVisibility(visible, 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
|
||||
android.useAndroidX = true
|
||||
kotlin.code.style = official
|
||||
version = 5.13.0-dev.8
|
||||
version = 5.13.0-dev.11
|
||||
|
||||
@@ -82,9 +82,9 @@ private val sponsorBlockResourcePatch = resourcePatch {
|
||||
private const val EXTENSION_SEGMENT_PLAYBACK_CONTROLLER_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/youtube/sponsorblock/SegmentPlaybackController;"
|
||||
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 =
|
||||
"Lapp/revanced/extension/youtube/sponsorblock/ui/VotingButtonController;"
|
||||
"Lapp/revanced/extension/youtube/sponsorblock/ui/VotingButton;"
|
||||
private const val EXTENSION_SPONSORBLOCK_VIEW_CONTROLLER_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController;"
|
||||
|
||||
|
||||
@@ -77,12 +77,9 @@ val playerControlsResourcePatch = resourcePatch {
|
||||
).item(0)
|
||||
|
||||
val bottomTargetDocumentChildNodes = bottomTargetDocument.childNodes
|
||||
var bottomInsertBeforeNode: Node = bottomTargetDocumentChildNodes.findElementByAttributeValue(
|
||||
var bottomInsertBeforeNode: Node = bottomTargetDocumentChildNodes.findElementByAttributeValueOrThrow(
|
||||
"android:inflatedId",
|
||||
bottomLastLeftOf,
|
||||
) ?: bottomTargetDocumentChildNodes.findElementByAttributeValueOrThrow(
|
||||
"android:id", // Older targets use non-inflated id.
|
||||
bottomLastLeftOf,
|
||||
)
|
||||
|
||||
addTopControl = { resourceDirectoryName ->
|
||||
@@ -123,7 +120,7 @@ val playerControlsResourcePatch = resourcePatch {
|
||||
).item(0).childNodes
|
||||
|
||||
// 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)
|
||||
|
||||
// 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) {
|
||||
visibilityMethod.addInstruction(
|
||||
visibilityInsertIndex++,
|
||||
"invoke-static { p1 , p2 }, $descriptor->changeVisibility(ZZ)V",
|
||||
"invoke-static { p1 , p2 }, $descriptor->setVisibility(ZZ)V",
|
||||
)
|
||||
|
||||
if (!visibilityImmediateCallbacksExistModified) {
|
||||
@@ -199,7 +196,7 @@ fun injectVisibilityCheckCall(descriptor: String) {
|
||||
|
||||
visibilityImmediateMethod.addInstruction(
|
||||
visibilityImmediateInsertIndex++,
|
||||
"invoke-static { p0 }, $descriptor->changeVisibilityImmediate(Z)V",
|
||||
"invoke-static { p0 }, $descriptor->setVisibilityImmediate(Z)V",
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_success">Връзката е копирана в клипборда.</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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -445,10 +445,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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 horodatage. Appuyez longuement pour copier sans horodatage</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_off">Le bouton n\'est pas affiché</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_summary_on">Bagian Bab disembunyikan</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_summary_on">Bagian Bagaimana 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_title">Sembunyikan \'Cara konten ini dibuat\'</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 Cara konten ini dibuat ditampilkan</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_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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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 l\'indicatore temporale</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_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 l\'indicatore temporale. Tieni premuto per copiare senza l\'indicatore temporale</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_off">Il pulsante non è visibile</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -445,7 +445,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
|
||||
<string name="revanced_share_copy_url_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_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_timestamp_title">「動画のタイムスタンプ付き 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_summary">画面下部のナビゲーション バー上のボタンを編集します</string>
|
||||
<!-- '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_off">ホーム ボタンは表示されます</string>
|
||||
<!-- '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_off">ショート ボタンは表示されます</string>
|
||||
<!-- 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_off">作成ボタンは表示されます</string>
|
||||
<!-- '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_off">登録チャンネル ボタンは表示されます</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_off">通知ボタンが表示されます</string>
|
||||
<string name="revanced_hide_notifications_button_summary_on">通知ボタンは表示されません</string>
|
||||
<string name="revanced_hide_notifications_button_summary_off">通知ボタンは表示されます</string>
|
||||
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
|
||||
<string name="revanced_switch_create_with_notifications_button_title">作成ボタンと通知ボタンを入れ替える</string>
|
||||
<string name="revanced_switch_create_with_notifications_button_title">「作成」と「通知」を入れ替える</string>
|
||||
<string name="revanced_switch_create_with_notifications_button_summary_on">"作成ボタンと通知ボタンが入れ替わります
|
||||
|
||||
注: これにより、動画広告も強制的に非表示になります"</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_summary_on">ナビゲーション ボタンはアイコンのみで表示されます</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_summary_on">ボタンはコンパクトに表示されます</string>
|
||||
<string name="revanced_ryd_compact_layout_summary_off">ボタンは最適なサイズで表示されます</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_off">推定「いいね!」は非表示になります</string>
|
||||
<string name="revanced_ryd_toast_on_connection_error_title">API が利用できない場合はトーストを表示</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_off">高評価が非公開の動画では数値は表示されません</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_off">Return YouTube Dislike が利用できない場合でもトースト ポップアップは表示されません</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_sum_on">セグメントが自動的にスキップされたときにトースト ポップアップが表示されます。例を見るにはここをタップしてください</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_sum_on">動画からセグメントを除いた時間が、動画全体の長さの横に括弧で表示されます。</string>
|
||||
<string name="revanced_sb_general_time_without_sum_off">動画のすべての再生時間を表示</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_off">動画全体の再生時間のみが表示されます</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_off">新しいセグメントを作成するボタンは表示されません</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_open">見る</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_off">SponsorBlock が利用できない場合でもトースト ポップアップは表示されません</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 サムネイルがない場合は、オリジナルのサムネイルまたは静止画サムネイルが表示されます
|
||||
|
||||
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_off">DeArrow が利用できない場合でもトースト ポップアップは表示されません</string>
|
||||
<string name="revanced_alt_thumbnail_dearrow_api_url_title">DeArrow API のエンドポイント</string>
|
||||
|
||||
@@ -444,13 +444,13 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
</patch>
|
||||
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
|
||||
<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_summary_on">버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기한 동영상 URL이 복사됩니다</string>
|
||||
<string name="revanced_copy_video_url_summary_off">버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기한 동영상 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_off">버튼을 눌러서 타임스탬프를 표기한 동영상 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">버튼을 표시하지 않습니다</string>
|
||||
<string name="revanced_copy_video_url_timestamp_title">타임스탬프가 표기된 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">버튼을 표시하지 않습니다</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
<string name="revanced_remove_viewer_discretion_dialog_title">시청자 재량 다이얼로그 제거하기</string>
|
||||
|
||||
@@ -443,10 +443,10 @@ Apribojimai
|
||||
<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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Ierobežojumi
|
||||
<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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,7 +443,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_summary_on">Кнопка показана. Нажмите для копирования URL-адреса видео. Нажмите и удерживайте для копирования URL-адреса видео с меткой времени</string>
|
||||
<string name="revanced_copy_video_url_summary_on">Кнопка показана. Нажмите для копирования URL-адреса видео. Нажмите и удерживайте для копирования с меткой времени</string>
|
||||
<string name="revanced_copy_video_url_summary_off">Кнопка копирования URL-адреса видео скрыта</string>
|
||||
<string name="revanced_copy_video_url_timestamp_title">Показать кнопку копирования URL видео с меткой времени</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_on">Кнопка показана. Нажмите для копирования URL-адреса видео с меткой времени. Нажмите и удерживайте для копирования URL-адреса видео без метки времени</string>
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -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_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_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_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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_summary_on">Кнопка показується. Натисніть, щоб скопіювати URL-адресу відео. Натисніть і утримуйте, щоб скопіювати URL-адресу відео з міткою часу</string>
|
||||
<string name="revanced_copy_video_url_summary_on">Кнопка показується. Натисніть, щоб скопіювати URL-адресу відео. Натисніть і утримуйте, щоб скопіювати з міткою часу</string>
|
||||
<string name="revanced_copy_video_url_summary_off">Кнопка копіювання 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">Кнопка копіювання URL-адреси відео із міткою часу не показується</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
|
||||
<string name="revanced_share_copy_url_success">Đã chép URL vào bảng nhớ tạm</string>
|
||||
<string name="revanced_share_copy_url_timestamp_success">Đã chép URL với dấu thời gian</string>
|
||||
<string name="revanced_copy_video_url_title">Hiện nút sao chép url video</string>
|
||||
<string name="revanced_copy_video_url_summary_on">Nút được hiển thị. Chạm để sao chép video URL. Chạm và giữ để sao chép video URL với dấu thời gian</string>
|
||||
<string name="revanced_copy_video_url_summary_on">Nút được hiển thị. Chạm để sao chép video URL. Chạm và giữ để sao chép với dấu thời gian</string>
|
||||
<string name="revanced_copy_video_url_summary_off">Nút không được hiện</string>
|
||||
<string name="revanced_copy_video_url_timestamp_title">Hiện nút sao chép URL với dấu thời gian</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_on">Nút được hiển thị. Chạm để sao chép video URL với dấu thời gian. Chạm và giữ để sao chép video URL không dấu thời gian</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_on">Nút được hiển thị. Chạm để sao chép video URL với dấu thời gian. Chạm và giữ để sao chép video không dấu thời gian</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_off">Nút không được hiện</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -443,10 +443,10 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_summary_on">按钮已显示。点击复制视频 URL。点击并按住复制带时间戳的视频 URL</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_timestamp_title">显示复制带有时间戳的 URL 按钮</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>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -438,10 +438,8 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_share_copy_url_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_summary_on">已顯示按鈕。輕觸以複製影片網址。按住以複製包含時間戳記的影片網址。</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_summary_on">已顯示按鈕。輕觸以複製包含時間戳記的影片網址。按住以複製不包含時間戳記的影片網址。</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_off">不顯示按鈕</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -448,10 +448,10 @@ This feature is only available for older devices"</string>
|
||||
<string name="revanced_share_copy_url_success">URL copied to clipboard</string>
|
||||
<string name="revanced_share_copy_url_timestamp_success">URL with timestamp copied</string>
|
||||
<string name="revanced_copy_video_url_title">Show copy video URL button</string>
|
||||
<string name="revanced_copy_video_url_summary_on">Button is shown. Tap to copy video URL. Tap and hold to copy video URL with timestamp</string>
|
||||
<string name="revanced_copy_video_url_summary_on">Button is shown. Tap to copy video URL. Tap and hold to copy with timestamp</string>
|
||||
<string name="revanced_copy_video_url_summary_off">Button is not shown</string>
|
||||
<string name="revanced_copy_video_url_timestamp_title">Show copy timestamp URL button</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_on">Button is shown. Tap to copy video URL with timestamp. Tap and hold to copy video without timestamp</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_on">Button is shown. Tap to copy video URL with timestamp. Tap and hold to copy without timestamp</string>
|
||||
<string name="revanced_copy_video_url_timestamp_summary_off">Button is not shown</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
|
||||
@@ -6,19 +6,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layoutDirection="ltr">
|
||||
|
||||
<com.google.android.libraries.youtube.common.ui.TouchImageView
|
||||
android:id="@+id/revanced_copy_video_url_timestamp_button"
|
||||
style="@style/YouTubePlayerButton"
|
||||
android:layout_width="48.0dip"
|
||||
android:layout_height="60.0dip"
|
||||
android:paddingTop="6.0dp"
|
||||
android:paddingBottom="0dp"
|
||||
android:longClickable="false"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/revanced_yt_copy_timestamp"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
|
||||
<com.google.android.libraries.youtube.common.ui.TouchImageView
|
||||
android:id="@+id/revanced_copy_video_url_button"
|
||||
style="@style/YouTubePlayerButton"
|
||||
@@ -26,9 +13,36 @@
|
||||
android:layout_height="60.0dip"
|
||||
android:paddingTop="6.0dp"
|
||||
android:paddingBottom="0dp"
|
||||
android:longClickable="false"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/revanced_yt_copy"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
|
||||
<View
|
||||
android:id="@+id/revanced_copy_video_url_button_placeholder"
|
||||
android:layout_width="48.0dip"
|
||||
android:layout_height="60.0dip"
|
||||
android:visibility="gone"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
|
||||
<com.google.android.libraries.youtube.common.ui.TouchImageView
|
||||
android:id="@+id/revanced_copy_video_url_timestamp_button"
|
||||
style="@style/YouTubePlayerButton"
|
||||
android:layout_width="48.0dip"
|
||||
android:layout_height="60.0dip"
|
||||
android:paddingTop="6.0dp"
|
||||
android:paddingBottom="0dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/revanced_yt_copy_timestamp"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
|
||||
<View
|
||||
android:id="@+id/revanced_copy_video_url_timestamp_button_placeholder"
|
||||
android:layout_width="48.0dip"
|
||||
android:layout_height="60.0dip"
|
||||
android:visibility="gone"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
@@ -18,4 +18,12 @@
|
||||
android:src="@drawable/revanced_yt_download_button"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
|
||||
<View
|
||||
android:id="@+id/revanced_external_download_button_placeholder"
|
||||
android:layout_width="48.0dip"
|
||||
android:layout_height="60.0dip"
|
||||
android:visibility="gone"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
@@ -18,4 +18,12 @@
|
||||
android:src="@drawable/revanced_playback_speed_dialog_button"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
|
||||
<View
|
||||
android:id="@+id/revanced_playback_speed_dialog_button_placeholder"
|
||||
android:layout_width="48.0dip"
|
||||
android:layout_height="60.0dip"
|
||||
android:visibility="gone"
|
||||
yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container"
|
||||
yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
Reference in New Issue
Block a user