Merge branch dev

This commit is contained in:
oSumAtrIX 2026-02-18 19:06:04 +01:00
commit 5d57acff64
No known key found for this signature in database
GPG key ID: A9B3094ACDB604B4
104 changed files with 79081 additions and 81080 deletions

View file

@ -2,6 +2,10 @@ name: Build pull request
on:
workflow_dispatch:
inputs:
pr:
description: "PR to build"
required: true
pull_request:
branches:
- dev
@ -10,9 +14,14 @@ jobs:
release:
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v5
with:
ref: ${{ inputs.pr && format('refs/pull/{0}/merge', inputs.pr) || github.ref }}
- name: Setup Java
uses: actions/setup-java@v5

View file

@ -32,7 +32,7 @@ jobs:
- name: Process strings
run: |
gradlew processStringsFromCrowdin
./gradlew processStringsFromCrowdin
env:
ORG_GRADLE_PROJECT_githubPackagesUsername: ${{ github.actor }}
ORG_GRADLE_PROJECT_githubPackagesPassword: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,3 +1,100 @@
## [5.50.3-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.50.3-dev.1...v5.50.3-dev.2) (2026-02-16)
### Bug Fixes
* **GmsCore support:** Handle GmsCore flavors when checking for updates ([2aa19f5](https://github.com/ReVanced/revanced-patches/commit/2aa19f5995fd050c40b15331a77d58144a5a1f69))
* Use positional substitutes in strings where multiple are present ([aa8c87f](https://github.com/ReVanced/revanced-patches/commit/aa8c87f8650bd5def5f726f02be5d62d72a3007b))
## [5.50.3-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.50.2...v5.50.3-dev.1) (2026-02-16)
### Bug Fixes
* **GmsCore support:** Rename MicroG GmsCore specific strings as well and rename app specific strings correctly ([c2ac1f0](https://github.com/ReVanced/revanced-patches/commit/c2ac1f04a0ac180555a9d19e7ff41525487fbc6d))
## [5.50.2](https://github.com/ReVanced/revanced-patches/compare/v5.50.1...v5.50.2) (2026-02-15)
### Bug Fixes
* Add missing patch option descriptions ([16e42a7](https://github.com/ReVanced/revanced-patches/commit/16e42a75ecbf51e06432f1f6c96758f8d9bdb771))
## [5.50.1](https://github.com/ReVanced/revanced-patches/compare/v5.50.0...v5.50.1) (2026-02-15)
### Bug Fixes
* Fix broken release by bumping to v5.50.1 ([d416609](https://github.com/ReVanced/revanced-patches/commit/d4166092571b542925a59328d3d59fbc42eb29e3))
## [5.50.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.50.0...v5.50.1-dev.1) (2026-02-15)
### Bug Fixes
* Fix broken release by bumping to v5.50.1 ([d416609](https://github.com/ReVanced/revanced-patches/commit/d4166092571b542925a59328d3d59fbc42eb29e3))
# [5.49.0](https://github.com/ReVanced/revanced-patches/compare/v5.48.0...v5.49.0) (2026-02-15)
### Bug Fixes
* Disable `Prevent screenshot detection` by default ([#6511](https://github.com/ReVanced/revanced-patches/issues/6511)) ([5b5c502](https://github.com/ReVanced/revanced-patches/commit/5b5c50254d533faa0e04d542f4859cbef610713e))
* **Instagram - Open links externally:** Fix patch by handling >4-bit register ([#6538](https://github.com/ReVanced/revanced-patches/issues/6538)) ([f681a6f](https://github.com/ReVanced/revanced-patches/commit/f681a6ffd45f05a61743e7d272cd68c4b743be42))
* **Instagram:** Make `Change link sharing domain` and `Sanitize sharing links` work with latest versions again ([#6518](https://github.com/ReVanced/revanced-patches/issues/6518)) ([85a9079](https://github.com/ReVanced/revanced-patches/commit/85a9079c25760d0329e518e379eeefe3beeea143))
* **Letterboxd - Hide ads:** Fix patch by returning the correct return type ([#6527](https://github.com/ReVanced/revanced-patches/issues/6527)) ([80c34b9](https://github.com/ReVanced/revanced-patches/commit/80c34b9d74a42018a0cd52b4a584ee71206bf963))
* Process strings from Crowdin to strip the app/patch prefixes again ([e566efc](https://github.com/ReVanced/revanced-patches/commit/e566efc51fca45c6284406245a360685a8e90d74))
* **Strava:** Fix `Add media download` patch ([#6526](https://github.com/ReVanced/revanced-patches/issues/6526)) ([dc9e68b](https://github.com/ReVanced/revanced-patches/commit/dc9e68ba574dd9f35cd742cb63193c5d875addde))
### Features
* **FotMob:** Add `Hide ads` patch ([#6566](https://github.com/ReVanced/revanced-patches/issues/6566)) ([4b0b737](https://github.com/ReVanced/revanced-patches/commit/4b0b7374f21d13599ef2f1e2f5880e7589b0874e))
* **GmsCore support:** Reduce amount of necessary changes and add update check ([#6582](https://github.com/ReVanced/revanced-patches/issues/6582)) ([650e6a2](https://github.com/ReVanced/revanced-patches/commit/650e6a271075b57368432cd9d4294fd1ce26cceb))
* **Instagram:** Add `Disable analytics` patch ([#6531](https://github.com/ReVanced/revanced-patches/issues/6531)) ([ad92864](https://github.com/ReVanced/revanced-patches/commit/ad92864483a21d7eae7952c8f8429cde3d44e848))
* **Kleinanzeigen:** Add `Hide ads` patch ([#6533](https://github.com/ReVanced/revanced-patches/issues/6533)) ([bd6e544](https://github.com/ReVanced/revanced-patches/commit/bd6e544007d539ac2eb890d9bdcb6850435f96cb))
* **Kleinanzeigen:** Add `Hide PUR` patch ([#6558](https://github.com/ReVanced/revanced-patches/issues/6558)) ([4958ecf](https://github.com/ReVanced/revanced-patches/commit/4958ecf10c880e9e7f15dd2e58ebaefbf49e417a))
* **Microsoft Lens:** Remove migration to OneDrive ([#6551](https://github.com/ReVanced/revanced-patches/issues/6551)) ([e389632](https://github.com/ReVanced/revanced-patches/commit/e389632afd52403aba26b6981d098b93cea45e00))
* **Nothing X:** Add `Show K1 token(s)` patch ([#6490](https://github.com/ReVanced/revanced-patches/issues/6490)) ([421cb28](https://github.com/ReVanced/revanced-patches/commit/421cb2899ef5c0f100fb8007bae8b89137d0e41c))
* **Strava:** Add `Hide distractions` patch ([#6479](https://github.com/ReVanced/revanced-patches/issues/6479)) ([66b0852](https://github.com/ReVanced/revanced-patches/commit/66b0852f8fa57c82b09997337a304374883d8ba5))
* **YouTube Music:** Add `Hide layout components` patch ([#6365](https://github.com/ReVanced/revanced-patches/issues/6365)) ([71ce823](https://github.com/ReVanced/revanced-patches/commit/71ce8230a959dcaf2d8cd5dad1a4f21b88819aa0))
* **YouTube Music:** Add `Unlock Android Auto Media Browser` patch ([#6477](https://github.com/ReVanced/revanced-patches/issues/6477)) ([5edd9dc](https://github.com/ReVanced/revanced-patches/commit/5edd9dccae3b1ab4edf19771a771812e3c9ccf80))
# [5.50.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.50.0-dev.7...v5.50.0-dev.8) (2026-02-15)
### Features
* **GmsCore support:** Reduce amount of necessary changes and add update check ([#6582](https://github.com/ReVanced/revanced-patches/issues/6582)) ([650e6a2](https://github.com/ReVanced/revanced-patches/commit/650e6a271075b57368432cd9d4294fd1ce26cceb))
# [5.50.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.50.0-dev.6...v5.50.0-dev.7) (2026-02-12)
### Bug Fixes
* **Instagram:** Make `Change link sharing domain` and `Sanitize sharing links` work with latest versions again ([#6518](https://github.com/ReVanced/revanced-patches/issues/6518)) ([85a9079](https://github.com/ReVanced/revanced-patches/commit/85a9079c25760d0329e518e379eeefe3beeea143))
### Features
* **Instagram:** Add `Disable analytics` patch ([#6531](https://github.com/ReVanced/revanced-patches/issues/6531)) ([ad92864](https://github.com/ReVanced/revanced-patches/commit/ad92864483a21d7eae7952c8f8429cde3d44e848))
* **Kleinanzeigen:** Add `Hide PUR` patch ([#6558](https://github.com/ReVanced/revanced-patches/issues/6558)) ([4958ecf](https://github.com/ReVanced/revanced-patches/commit/4958ecf10c880e9e7f15dd2e58ebaefbf49e417a))
* **Microsoft Lens:** Remove migration to OneDrive ([#6551](https://github.com/ReVanced/revanced-patches/issues/6551)) ([e389632](https://github.com/ReVanced/revanced-patches/commit/e389632afd52403aba26b6981d098b93cea45e00))
# [5.50.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.50.0-dev.5...v5.50.0-dev.6) (2026-02-06)
### Features
* **FotMob:** Add `Hide ads` patch ([#6566](https://github.com/ReVanced/revanced-patches/issues/6566)) ([4b0b737](https://github.com/ReVanced/revanced-patches/commit/4b0b7374f21d13599ef2f1e2f5880e7589b0874e))
# [5.50.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.50.0-dev.4...v5.50.0-dev.5) (2026-02-01)
### Bug Fixes
* Process strings from Crowdin to strip the app/patch prefixes again ([e566efc](https://github.com/ReVanced/revanced-patches/commit/e566efc51fca45c6284406245a360685a8e90d74))
# [5.50.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.50.0-dev.3...v5.50.0-dev.4) (2026-01-27)

View file

@ -1,8 +1,5 @@
package app.revanced.extension.shared;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.requests.Route.Method.GET;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
@ -20,43 +17,53 @@ import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.requests.Requester;
import app.revanced.extension.shared.requests.Route;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.ui.CustomDialog;
import org.json.JSONObject;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Locale;
import app.revanced.extension.shared.requests.Requester;
import app.revanced.extension.shared.requests.Route;
import app.revanced.extension.shared.ui.CustomDialog;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.requests.Route.Method.GET;
@SuppressWarnings("unused")
public class GmsCoreSupport {
private static final String GMS_CORE_PACKAGE_NAME
= getGmsCoreVendorGroupId() + ".android.gms";
private static final Uri GMS_CORE_PROVIDER
= Uri.parse("content://" + getGmsCoreVendorGroupId() + ".android.gsf.gservices/prefix");
private static final String DONT_KILL_MY_APP_URL
= "https://dontkillmyapp.com/";
private static final Route DONT_KILL_MY_APP_MANUFACTURER_API
= new Route(GET, "/api/v2/{manufacturer}.json");
private static final String DONT_KILL_MY_APP_NAME_PARAMETER
= "?app=MicroG";
private static final String BUILD_MANUFACTURER
= Build.MANUFACTURER.toLowerCase(Locale.ROOT).replace(" ", "-");
private static GmsCore gmsCore = GmsCore.UNKNOWN;
/**
* If a manufacturer specific page exists on DontKillMyApp.
*/
@Nullable
private static volatile Boolean DONT_KILL_MY_APP_MANUFACTURER_SUPPORTED;
private static String getOriginalPackageName() {
return null; // Modified during patching.
static {
for (GmsCore core : GmsCore.values()) {
if (core.getGroupId().equals(getGmsCoreVendorGroupId())) {
GmsCoreSupport.gmsCore = core;
break;
}
}
}
/**
* Injection point.
*/
public static void checkGmsCore(Activity context) {
gmsCore.check(context);
}
private static String getOriginalPackageName() {
return null; // Modified during patching.
}
private static String getGmsCoreVendorGroupId() {
return "app.revanced"; // Modified during patching.
}
/**
* @return If the current package name is the same as the original unpatched app.
* If `GmsCore support` was not included during patching, this returns true;
* If `GmsCore support` was not included during patching, this returns true;
*/
public static boolean isPackageNameOriginal() {
String originalPackageName = getOriginalPackageName();
@ -64,203 +71,342 @@ public class GmsCoreSupport {
|| originalPackageName.equals(Utils.getContext().getPackageName());
}
private static void open(String queryOrLink) {
Logger.printInfo(() -> "Opening link: " + queryOrLink);
Intent intent;
try {
// Check if queryOrLink is a valid URL.
new URL(queryOrLink);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(queryOrLink));
} catch (MalformedURLException e) {
intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, queryOrLink);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Utils.getContext().startActivity(intent);
// Gracefully exit, otherwise the broken app will continue to run.
System.exit(0);
}
private static void showBatteryOptimizationDialog(Activity context,
String dialogMessageRef,
String positiveButtonTextRef,
DialogInterface.OnClickListener onPositiveClickListener) {
// Use a delay to allow the activity to finish initializing.
// Otherwise, if device is in dark mode the dialog is shown with wrong color scheme.
Utils.runOnMainThreadDelayed(() -> {
// Create the custom dialog.
Pair<Dialog, LinearLayout> dialogPair = CustomDialog.create(
context,
str("gms_core_dialog_title"), // Title.
str(dialogMessageRef), // Message.
null, // No EditText.
str(positiveButtonTextRef), // OK button text.
() -> onPositiveClickListener.onClick(null, 0), // Convert DialogInterface.OnClickListener to Runnable.
null, // No Cancel button action.
null, // No Neutral button text.
null, // No Neutral button action.
true // Dismiss dialog when onNeutralClick.
);
Dialog dialog = dialogPair.first;
// Do not set cancelable to false, to allow using back button to skip the action,
// just in case the battery change can never be satisfied.
dialog.setCancelable(true);
// Show the dialog
Utils.showDialog(context, dialog);
}, 100);
}
/**
* Injection point.
*/
public static void checkGmsCore(Activity context) {
try {
// Verify the user has not included GmsCore for a root installation.
// GmsCore Support changes the package name, but with a mounted installation
// all manifest changes are ignored and the original package name is used.
if (isPackageNameOriginal()) {
Logger.printInfo(() -> "App is mounted with root, but GmsCore patch was included");
// Cannot use localize text here, since the app will load resources
// from the unpatched app and all patch strings are missing.
Utils.showToastLong("The 'GmsCore support' patch breaks mount installations");
// Do not exit. If the app exits before launch completes (and without
// opening another activity), then on some devices such as Pixel phone Android 10
// no toast will be shown and the app will continually relaunch
// with the appearance of a hung app.
}
// Verify GmsCore is installed.
private enum GmsCore {
REVANCED("app.revanced", "https://github.com/revanced/gmscore/releases/latest", () -> {
try {
PackageManager manager = context.getPackageManager();
manager.getPackageInfo(GMS_CORE_PACKAGE_NAME, PackageManager.GET_ACTIVITIES);
} catch (PackageManager.NameNotFoundException exception) {
Logger.printInfo(() -> "GmsCore was not found");
// Cannot show a dialog and must show a toast,
// because on some installations the app crashes before a dialog can be displayed.
Utils.showToastLong(str("gms_core_toast_not_installed_message"));
open(getGmsCoreDownload());
return;
}
// Check if GmsCore is whitelisted from battery optimizations.
if (isAndroidAutomotive(context)) {
// Ignore Android Automotive devices (Google built-in),
// as there is no way to disable battery optimizations.
Logger.printDebug(() -> "Device is Android Automotive");
} else if (batteryOptimizationsEnabled(context)) {
Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations");
showBatteryOptimizationDialog(context,
"gms_core_dialog_not_whitelisted_using_battery_optimizations_message",
"gms_core_dialog_continue_text",
(dialog, id) -> openGmsCoreDisableBatteryOptimizationsIntent(context));
return;
}
// Check if GmsCore is currently running in the background.
var client = context.getContentResolver().acquireContentProviderClient(GMS_CORE_PROVIDER);
//noinspection TryFinallyCanBeTryWithResources
try {
if (client == null) {
Logger.printInfo(() -> "GmsCore is not running in the background");
checkIfDontKillMyAppSupportsManufacturer();
showBatteryOptimizationDialog(context,
"gms_core_dialog_not_whitelisted_not_allowed_in_background_message",
"gms_core_dialog_open_website_text",
(dialog, id) -> openDontKillMyApp());
}
} finally {
if (client != null) client.close();
}
} catch (Exception ex) {
Logger.printException(() -> "checkGmsCore failure", ex);
}
}
@SuppressLint("BatteryLife") // Permission is part of GmsCore
private static void openGmsCoreDisableBatteryOptimizationsIntent(Activity activity) {
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.fromParts("package", GMS_CORE_PACKAGE_NAME, null));
activity.startActivityForResult(intent, 0);
}
private static void checkIfDontKillMyAppSupportsManufacturer() {
Utils.runOnBackgroundThread(() -> {
try {
final long start = System.currentTimeMillis();
HttpURLConnection connection = Requester.getConnectionFromRoute(
DONT_KILL_MY_APP_URL, DONT_KILL_MY_APP_MANUFACTURER_API, BUILD_MANUFACTURER);
"https://api.github.com",
new Route(GET, "/repos/revanced/gmscore/releases/latest")
);
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
final boolean supported = connection.getResponseCode() == 200;
Logger.printInfo(() -> "Manufacturer is " + (supported ? "" : "NOT ")
+ "listed on DontKillMyApp: " + BUILD_MANUFACTURER
+ " fetch took: " + (System.currentTimeMillis() - start) + "ms");
DONT_KILL_MY_APP_MANUFACTURER_SUPPORTED = supported;
int responseCode = connection.getResponseCode();
if (responseCode != 200) {
Logger.printDebug(() -> "GitHub API returned status code: " + responseCode);
return null;
}
// Parse the response
JSONObject releaseData = Requester.parseJSONObject(connection);
String tagName = releaseData.optString("tag_name", "");
connection.disconnect();
if (tagName.isEmpty()) {
Logger.printDebug(() -> "No tag_name found in GitHub release data");
return null;
}
if (tagName.startsWith("v")) tagName = tagName.substring(1);
return tagName;
} catch (Exception ex) {
Logger.printInfo(() -> "Could not check if manufacturer is listed on DontKillMyApp: "
+ BUILD_MANUFACTURER, ex);
DONT_KILL_MY_APP_MANUFACTURER_SUPPORTED = null;
Logger.printInfo(() -> "Failed to fetch latest GmsCore version from GitHub", ex);
return null;
}
});
}
}),
UNKNOWN(getGmsCoreVendorGroupId(), getGmsCoreVendorGroupId() + "android.gms", () -> null);
private static void openDontKillMyApp() {
final Boolean manufacturerSupported = DONT_KILL_MY_APP_MANUFACTURER_SUPPORTED;
private static final String DONT_KILL_MY_APP_URL
= "https://dontkillmyapp.com/";
private static final Route DONT_KILL_MY_APP_MANUFACTURER_API
= new Route(GET, "/api/v2/{manufacturer}.json");
private static final String DONT_KILL_MY_APP_NAME_PARAMETER
= "?app=MicroG";
private static final String BUILD_MANUFACTURER
= Build.MANUFACTURER.toLowerCase(Locale.ROOT).replace(" ", "-");
String manufacturerPageToOpen;
if (manufacturerSupported == null) {
// Fetch has not completed yet. Only happens on extremely slow internet connections
// and the user spends less than 1 second reading what's on screen.
// Instead of waiting for the fetch (which may timeout),
// open the website without a vendor.
manufacturerPageToOpen = "";
} else if (manufacturerSupported) {
manufacturerPageToOpen = BUILD_MANUFACTURER;
} else {
// No manufacturer specific page exists. Open the general page.
manufacturerPageToOpen = "general";
/**
* If a manufacturer specific page exists on DontKillMyApp.
*/
@Nullable
private volatile Boolean dontKillMyAppManufacturerSupported;
private final String groupId;
private final String packageName;
private final String downloadQuery;
private final GetLatestVersion getLatestVersion;
private final Uri gmsCoreProvider;
GmsCore(String groupId, String downloadQuery, GetLatestVersion getLatestVersion) {
this.groupId = groupId;
this.packageName = groupId + ".android.gms";
this.gmsCoreProvider = Uri.parse("content://" + groupId + ".android.gsf.gservices/prefix");
this.downloadQuery = downloadQuery;
this.getLatestVersion = getLatestVersion;
}
open(DONT_KILL_MY_APP_URL + manufacturerPageToOpen + DONT_KILL_MY_APP_NAME_PARAMETER);
}
/**
* @return If GmsCore is not whitelisted from battery optimizations.
*/
private static boolean batteryOptimizationsEnabled(Context context) {
//noinspection ObsoleteSdkInt
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
// Android 5.0 does not have battery optimization settings.
return false;
String getGroupId() {
return groupId;
}
void check(Activity context) {
checkInstallation(context);
checkUpdates(context);
}
private void checkInstallation(Activity context) {
try {
// Verify the user has not included GmsCore for a root installation.
// GmsCore Support changes the package name, but with a mounted installation
// all manifest changes are ignored and the original package name is used.
if (isPackageNameOriginal()) {
Logger.printInfo(() -> "App is mounted with root, but GmsCore patch was included");
// Cannot use localize text here, since the app will load resources
// from the unpatched app and all patch strings are missing.
Utils.showToastLong("The 'GmsCore support' patch breaks mount installations");
// Do not exit. If the app exits before launch completes (and without
// opening another activity), then on some devices such as Pixel phone Android 10
// no toast will be shown and the app will continually relaunch
// with the appearance of a hung app.
}
// Verify GmsCore is installed.
try {
PackageManager manager = context.getPackageManager();
manager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
} catch (PackageManager.NameNotFoundException exception) {
Logger.printInfo(() -> "GmsCore was not found");
// Cannot show a dialog and must show a toast,
// because on some installations the app crashes before a dialog can be displayed.
Utils.showToastLong(str("revanced_gms_core_toast_not_installed_message"));
open(downloadQuery);
return;
}
// Check if GmsCore is whitelisted from battery optimizations.
if (isAndroidAutomotive(context)) {
// Ignore Android Automotive devices (Google built-in),
// as there is no way to disable battery optimizations.
Logger.printDebug(() -> "Device is Android Automotive");
} else if (batteryOptimizationsEnabled(context)) {
Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations");
showBatteryOptimizationDialog(context,
"revanced_gms_core_dialog_not_whitelisted_using_battery_optimizations_message",
"revanced_gms_core_dialog_continue_text",
(dialog, id) -> openGmsCoreDisableBatteryOptimizationsIntent(context));
return;
}
// Check if GmsCore is currently running in the background.
var client = context.getContentResolver().acquireContentProviderClient(gmsCoreProvider);
//noinspection TryFinallyCanBeTryWithResources
try {
if (client == null) {
Logger.printInfo(() -> "GmsCore is not running in the background");
checkIfDontKillMyAppSupportsManufacturer();
showBatteryOptimizationDialog(context,
"revanced_gms_core_dialog_not_whitelisted_not_allowed_in_background_message",
"gmsrevanced_gms_core_log_open_website_text",
(dialog, id) -> openDontKillMyApp());
}
} finally {
if (client != null) client.close();
}
} catch (Exception ex) {
Logger.printException(() -> "checkGmsCore failure", ex);
}
}
private void checkUpdates(Activity context) {
if (!BaseSettings.GMS_CORE_CHECK_UPDATES.get()) {
Logger.printDebug(() -> "GmsCore update check is disabled in settings");
return;
}
Utils.runOnBackgroundThread(() -> {
try {
PackageManager manager = context.getPackageManager();
var installedVersion = manager.getPackageInfo(packageName, 0).versionName;
// GmsCore adds suffixes for flavor builds. Remove the suffix for version comparison.
int suffixIndex = installedVersion.indexOf('-');
if (suffixIndex != -1)
installedVersion = installedVersion.substring(0, suffixIndex);
String finalInstalledVersion = installedVersion;
Logger.printDebug(() -> "Installed GmsCore version: " + finalInstalledVersion);
var latestVersion = getLatestVersion.get();
if (latestVersion == null || latestVersion.isEmpty()) {
Logger.printDebug(() -> "Could not get latest GmsCore version");
Utils.showToastLong(str("revanced_gms_core_toast_update_check_failed_message"));
return;
}
Logger.printDebug(() -> "Latest GmsCore version on GitHub: " + latestVersion);
// Compare versions
if (!installedVersion.equals(latestVersion)) {
Logger.printInfo(() -> "GmsCore update available. Installed: " + finalInstalledVersion
+ ", Latest: " + latestVersion);
showUpdateDialog(context, installedVersion, latestVersion);
} else {
Logger.printDebug(() -> "GmsCore is up to date");
}
} catch (Exception ex) {
Logger.printInfo(() -> "Could not check GmsCore updates", ex);
Utils.showToastLong(str("revanced_gms_core_toast_update_check_failed_message"));
}
});
}
private void open(String queryOrLink) {
Logger.printInfo(() -> "Opening link: " + queryOrLink);
Intent intent;
try {
// Check if queryOrLink is a valid URL.
new URL(queryOrLink);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(queryOrLink));
} catch (MalformedURLException e) {
intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, queryOrLink);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Utils.getContext().startActivity(intent);
// Gracefully exit, otherwise the broken app will continue to run.
System.exit(0);
}
private void showUpdateDialog(Activity context, String installedVersion, String latestVersion) {
// Use a delay to allow the activity to finish initializing.
// Otherwise, if device is in dark mode the dialog is shown with wrong color scheme.
Utils.runOnMainThreadDelayed(() -> {
try {
Pair<Dialog, LinearLayout> dialogPair = CustomDialog.create(
context,
str("revanced_gms_core_dialog_title"),
String.format(str("revanced_gms_core_update_available_message"), latestVersion, installedVersion),
null,
str("revanced_gms_core_dialog_open_website_text"),
() -> open(downloadQuery),
() -> {
},
str("revanced_gms_core_dialog_cancel_text"),
null,
true
);
Dialog dialog = dialogPair.first;
dialog.setCancelable(true);
Utils.showDialog(context, dialog);
} catch (Exception ex) {
Logger.printException(() -> "Failed to show GmsCore update dialog", ex);
}
}, 100);
}
private static void showBatteryOptimizationDialog(Activity context,
String dialogMessageRef,
String positiveButtonTextRef,
DialogInterface.OnClickListener onPositiveClickListener) {
// Use a delay to allow the activity to finish initializing.
// Otherwise, if device is in dark mode the dialog is shown with wrong color scheme.
Utils.runOnMainThreadDelayed(() -> {
// Create the custom dialog.
Pair<Dialog, LinearLayout> dialogPair = CustomDialog.create(
context,
str("revanced_gms_core_dialog_title"), // Title.
str(dialogMessageRef), // Message.
null, // No EditText.
str(positiveButtonTextRef), // OK button text.
() -> onPositiveClickListener.onClick(null, 0), // Convert DialogInterface.OnClickListener to Runnable.
null, // No Cancel button action.
null, // No Neutral button text.
null, // No Neutral button action.
true // Dismiss dialog when onNeutralClick.
);
Dialog dialog = dialogPair.first;
// Do not set cancelable to false to allow using back button to skip the action,
// just in case the battery change can never be satisfied.
dialog.setCancelable(true);
// Show the dialog
Utils.showDialog(context, dialog);
}, 100);
}
@SuppressLint("BatteryLife") // Permission is part of GmsCore
private void openGmsCoreDisableBatteryOptimizationsIntent(Activity activity) {
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.fromParts("package", packageName, null));
activity.startActivityForResult(intent, 0);
}
private void checkIfDontKillMyAppSupportsManufacturer() {
Utils.runOnBackgroundThread(() -> {
try {
final long start = System.currentTimeMillis();
HttpURLConnection connection = Requester.getConnectionFromRoute(
DONT_KILL_MY_APP_URL, DONT_KILL_MY_APP_MANUFACTURER_API, BUILD_MANUFACTURER);
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
final boolean supported = connection.getResponseCode() == 200;
Logger.printInfo(() -> "Manufacturer is " + (supported ? "" : "NOT ")
+ "listed on DontKillMyApp: " + BUILD_MANUFACTURER
+ " fetch took: " + (System.currentTimeMillis() - start) + "ms");
dontKillMyAppManufacturerSupported = supported;
} catch (Exception ex) {
Logger.printInfo(() -> "Could not check if manufacturer is listed on DontKillMyApp: "
+ BUILD_MANUFACTURER, ex);
dontKillMyAppManufacturerSupported = null;
}
});
}
private void openDontKillMyApp() {
final Boolean manufacturerSupported = dontKillMyAppManufacturerSupported;
String manufacturerPageToOpen;
if (manufacturerSupported == null) {
// Fetch has not completed yet. Only happens on extremely slow internet connections
// and the user spends less than 1 second reading what's on screen.
// Instead of waiting for the fetch (which may timeout),
// open the website without a vendor.
manufacturerPageToOpen = "";
} else if (manufacturerSupported) {
manufacturerPageToOpen = BUILD_MANUFACTURER;
} else {
// No manufacturer specific page exists. Open the general page.
manufacturerPageToOpen = "general";
}
open(DONT_KILL_MY_APP_URL + manufacturerPageToOpen + DONT_KILL_MY_APP_NAME_PARAMETER);
}
/**
* @return If GmsCore is not whitelisted from battery optimizations.
*/
private boolean batteryOptimizationsEnabled(Context context) {
//noinspection ObsoleteSdkInt
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
// Android 5.0 does not have battery optimization settings.
return false;
}
var powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
return !powerManager.isIgnoringBatteryOptimizations(packageName);
}
private boolean isAndroidAutomotive(Context context) {
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
}
var powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
return !powerManager.isIgnoringBatteryOptimizations(GMS_CORE_PACKAGE_NAME);
}
private static boolean isAndroidAutomotive(Context context) {
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
}
private static String getGmsCoreDownload() {
final var vendorGroupId = getGmsCoreVendorGroupId();
//noinspection SwitchStatementWithTooFewBranches
return switch (vendorGroupId) {
case "app.revanced" -> "https://github.com/revanced/gmscore/releases/latest";
default -> vendorGroupId + ".android.gms";
};
}
private static String getGmsCoreVendorGroupId() {
return "app.revanced"; // Modified during patching.
@FunctionalInterface
private interface GetLatestVersion {
String get();
}
}

View file

@ -39,6 +39,8 @@ public class BaseSettings {
*/
public static final LongSetting FIRST_TIME_APP_LAUNCHED = new LongSetting("revanced_last_time_app_was_launched", -1L, false, false);
public static final BooleanSetting GMS_CORE_CHECK_UPDATES = new BooleanSetting("revanced_gms_core_check_updates", true, true);
//
// Settings shared by YouTube and YouTube Music.
//

View file

@ -6,6 +6,6 @@ dependencies {
android {
defaultConfig {
minSdk = 26
minSdk = 23
}
}

View file

@ -4,4 +4,4 @@ org.gradle.parallel = true
android.useAndroidX = true
android.uniquePackageNames=false
kotlin.code.style = official
version = 5.50.0-dev.4
version = 5.50.3-dev.2

View file

@ -3,15 +3,13 @@ revanced-patcher = "22.0.0-local"
# Tracking https://github.com/google/smali/issues/64.
#noinspection GradleDependency
smali = "3.0.8"
# 8.3.0 causes java verifier error: https://github.com/ReVanced/revanced-patches/issues/2818.
#noinspection GradleDependency
agp = "8.2.2"
annotation = "1.9.1"
appcompat = "1.7.1"
okhttp = "5.3.2"
retrofit = "3.0.0"
guava = "33.5.0-jre"
apksig = "8.12.3"
apksig = "9.0.1"
[libraries]
annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" }

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,17 @@
package app.revanced.patches.fotmob.ads
import app.revanced.patcher.accessFlags
import app.revanced.patcher.definingClass
import com.android.tools.smali.dexlib2.AccessFlags
import app.revanced.patcher.fingerprint
import app.revanced.patcher.gettingFirstMethodDeclaratively
import app.revanced.patcher.name
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.returnType
internal val BytecodePatchContext.shouldDisplayAdsMethod by gettingFirstMethodDeclaratively {
name("shouldDisplayAds")
definingClass("AdsService;")
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returnType("Z")
}

View file

@ -0,0 +1,15 @@
package app.revanced.patches.fotmob.ads
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.returnEarly
@Suppress("unused")
val hideAdsPatch = bytecodePatch(
name = "Hide ads",
) {
compatibleWith("com.mobilefootie.wc2010")
apply {
shouldDisplayAdsMethod.returnEarly(false)
}
}

View file

@ -28,5 +28,4 @@ private fun gmsCoreSupportResourcePatch(
toPackageName = REVANCED_MAGAZINES_PACKAGE_NAME,
spoofedPackageSignature = "24bb24c05e47e0aefa68a58a766179d9b613a666",
gmsCoreVendorGroupIdOption = gmsCoreVendorGroupIdOption,
addStringResources = false,
)

View file

@ -23,7 +23,6 @@ private fun gmsCoreSupportResourcePatch(
) = app.revanced.patches.shared.misc.gms.gmsCoreSupportResourcePatch(
fromPackageName = PHOTOS_PACKAGE_NAME,
toPackageName = REVANCED_PHOTOS_PACKAGE_NAME,
addStringResources = false,
spoofedPackageSignature = "24bb24c05e47e0aefa68a58a766179d9b613a600",
gmsCoreVendorGroupIdOption = gmsCoreVendorGroupIdOption,
)

View file

@ -0,0 +1,33 @@
package app.revanced.patches.instagram.misc.disableAnalytics
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
@Suppress("unused")
val disableAnalyticsPatch = bytecodePatch(
name = "Disable analytics",
description = "Disables analytics that are sent periodically.",
) {
compatibleWith("com.instagram.android")
apply {
// Returns BOGUS as analytics url.
instagramAnalyticsUrlBuilderMethod.addInstructions(
0,
"""
const-string v0, "BOGUS"
return-object v0
"""
)
// Replaces analytics url as BOGUS.
facebookAnalyticsUrlInitMethod.addInstructions(
0,
"""
const-string v0, "BOGUS"
return-object v0
"""
)
}
}

View file

@ -0,0 +1,14 @@
package app.revanced.patches.instagram.misc.disableAnalytics
import app.revanced.patcher.gettingFirstMethodDeclaratively
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.strings
internal val BytecodePatchContext.instagramAnalyticsUrlBuilderMethod by gettingFirstMethodDeclaratively {
strings("/logging_client_events")
}
internal const val TARGET_URL = "https://graph.facebook.com/logging_client_events"
internal val BytecodePatchContext.facebookAnalyticsUrlInitMethod by gettingFirstMethodDeclaratively {
strings("analytics_endpoint", TARGET_URL)
}

View file

@ -15,15 +15,13 @@ internal fun BytecodePatchContext.editShareLinksPatch(block: MutableMethod.(inde
liveUrlResponseJsonParserMethodMatch,
)
for (match in methodsToPatch) {
methodsToPatch.forEachIndexed { index, match ->
match.method.apply {
val putSharingUrlIndex = indexOfFirstInstruction(
match[0],
Opcode.IPUT_OBJECT,
index,
Opcode.IPUT_OBJECT
)
val sharingUrlRegister = getInstruction<TwoRegisterInstruction>(putSharingUrlIndex).registerA
block(putSharingUrlIndex, sharingUrlRegister)
}
}

View file

@ -4,30 +4,35 @@ import app.revanced.patcher.composingFirstMethod
import app.revanced.patcher.instructions
import app.revanced.patcher.invoke
import app.revanced.patcher.name
import app.revanced.patcher.opcodes
import app.revanced.patcher.patch.BytecodePatchContext
import com.android.tools.smali.dexlib2.Opcode
internal val BytecodePatchContext.permalinkResponseJsonParserMethodMatch by composingFirstMethod(
"PermalinkResponse",
"permalink",
) {
name("parseFromJson")
instructions("permalink"())
opcodes(
Opcode.NEW_INSTANCE,
Opcode.INVOKE_DIRECT,
Opcode.INVOKE_VIRTUAL
)
}
internal val BytecodePatchContext.storyUrlResponseJsonParserMethodMatch by composingFirstMethod(
"StoryItemUrlResponse",
"story_item_to_share_url",
) {
name("parseFromJson")
instructions("story_item_to_share_url"())
}
internal val BytecodePatchContext.profileUrlResponseJsonParserMethodMatch by composingFirstMethod {
internal val BytecodePatchContext.profileUrlResponseJsonParserMethodMatch by composingFirstMethod(
"profile_to_share_url"
) {
name("parseFromJson")
instructions("profile_to_share_url"())
}
internal val BytecodePatchContext.liveUrlResponseJsonParserMethodMatch by composingFirstMethod(
"LiveItemLinkUrlResponse",
"live_to_share_url",
) {
name("parseFromJson")
instructions("live_to_share_url"())
}

View file

@ -0,0 +1,8 @@
package app.revanced.patches.kleinanzeigen.hide_pur
import app.revanced.patcher.gettingFirstMethod
import app.revanced.patcher.patch.BytecodePatchContext
internal val BytecodePatchContext.getShowAdFreeSubscriptionFingerprint by gettingFirstMethod {
name == "getShowAdFreeSubscription"
}

View file

@ -0,0 +1,16 @@
package app.revanced.patches.kleinanzeigen.hide_pur
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.returnEarly
@Suppress("unused")
val hidePurPatch = bytecodePatch(
name = "Hide Pur",
description = "Hides Pur (Ad Free Subscription) from Settings Menu.",
) {
compatibleWith("com.ebay.kleinanzeigen")
apply {
getShowAdFreeSubscriptionFingerprint.returnEarly(false)
}
}

View file

@ -0,0 +1,11 @@
package app.revanced.patches.microsoft.officelens.misc.onedrive
import app.revanced.patcher.definingClass
import app.revanced.patcher.gettingFirstMethodDeclaratively
import app.revanced.patcher.name
import app.revanced.patcher.patch.BytecodePatchContext
internal val BytecodePatchContext.hasMigratedToOneDriveMethod by gettingFirstMethodDeclaratively {
name("getMigrationStage")
definingClass("FREManager;")
}

View file

@ -0,0 +1,22 @@
package app.revanced.patches.microsoft.officelens.misc.onedrive
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
import app.revanced.patcher.patch.bytecodePatch
@Suppress("unused")
val hideOneDriveMigrationPatch = bytecodePatch(
name = "Hide OneDrive migration",
description = "Hides the OneDrive migration prompt when opening Microsoft Office Lens.",
) {
compatibleWith("com.microsoft.office.officelens")
apply {
hasMigratedToOneDriveMethod.replaceInstructions(
0,
"""
sget-object v0, Lcom/microsoft/office/officelens/scansMigration/LensMigrationStage;->PreMigration:Lcom/microsoft/office/officelens/scansMigration/LensMigrationStage;
return-object v0
""",
)
}
}

View file

@ -13,6 +13,8 @@ import app.revanced.patches.music.misc.settings.settingsPatch
import app.revanced.patches.shared.castContextFetchMethod
import app.revanced.patches.shared.misc.gms.gmsCoreSupportPatch
import app.revanced.patches.shared.misc.settings.preference.IntentPreference
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.shared.primeMethod
@Suppress("unused")
@ -20,7 +22,7 @@ val gmsCoreSupportPatch = gmsCoreSupportPatch(
fromPackageName = MUSIC_PACKAGE_NAME,
toPackageName = REVANCED_MUSIC_PACKAGE_NAME,
getPrimeMethod = { primeMethod },
earlyReturnMethods = setOf(BytecodePatchContext::castContextFetchMethod::get),
getEarlyReturnMethods = setOf(BytecodePatchContext::castContextFetchMethod::get),
getMainActivityOnCreateMethod = { musicActivityOnCreateMethod },
extensionPatch = sharedExtensionPatch,
gmsCoreSupportResourcePatchFactory = ::gmsCoreSupportResourcePatch,
@ -47,11 +49,17 @@ private fun gmsCoreSupportResourcePatch(
val gmsCoreVendorGroupId by gmsCoreVendorGroupIdOption
PreferenceScreen.MISC.addPreferences(
IntentPreference(
"microg_settings",
intent = IntentPreference.Intent("", "org.microg.gms.ui.SettingsActivity") {
"$gmsCoreVendorGroupId.android.gms"
},
PreferenceScreenPreference(
"revanced_gms_core_screen",
preferences = setOf(
SwitchPreference("revanced_gms_core_check_updates"),
IntentPreference(
"revanced_gms_core_settings",
intent = IntentPreference.Intent("", "org.microg.gms.ui.SettingsActivity") {
"$gmsCoreVendorGroupId.android.gms"
},
),
),
),
)
},

View file

@ -22,7 +22,7 @@ internal val BytecodePatchContext.serviceCheckMethod by gettingFirstMethodDeclar
parameterTypes("L", "I")
}
internal val BytecodePatchContext.gmsCoreSupportMethod by gettingFirstMethodDeclaratively {
internal val BytecodePatchContext.getGmsCoreVendorGroupIdMethod by gettingFirstMethodDeclaratively {
name("getGmsCoreVendorGroupId")
definingClass(EXTENSION_CLASS_DESCRIPTOR)
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)

View file

@ -2,27 +2,32 @@ package app.revanced.patches.shared.misc.gms
import app.revanced.com.android.tools.smali.dexlib2.mutable.MutableMethod
import app.revanced.patcher.extensions.addInstruction
import app.revanced.patcher.extensions.instructions
import app.revanced.patcher.extensions.getInstruction
import app.revanced.patcher.extensions.replaceInstruction
import app.revanced.patcher.patch.*
import app.revanced.patcher.extensions.string
import app.revanced.patcher.patch.BytecodePatchBuilder
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.patch.Option
import app.revanced.patcher.patch.Patch
import app.revanced.patcher.patch.ResourcePatchBuilder
import app.revanced.patcher.patch.ResourcePatchContext
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.all.misc.packagename.changePackageNamePatch
import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.gms.Constants.ACTIONS
import app.revanced.patches.shared.misc.gms.Constants.AUTHORITIES
import app.revanced.patches.shared.misc.gms.Constants.PERMISSIONS
import app.revanced.util.getReference
import app.revanced.util.returnEarly
import app.revanced.patches.shared.misc.gms.Constants.APP_AUTHORITIES
import app.revanced.patches.shared.misc.gms.Constants.APP_PERMISSIONS
import app.revanced.patches.shared.misc.gms.Constants.GMS_AUTHORITIES
import app.revanced.patches.shared.misc.gms.Constants.GMS_PERMISSIONS
import app.revanced.util.*
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction21c
import com.android.tools.smali.dexlib2.iface.reference.StringReference
import com.android.tools.smali.dexlib2.immutable.reference.ImmutableStringReference
import com.android.tools.smali.dexlib2.util.MethodUtil
import org.w3c.dom.Element
import org.w3c.dom.Node
import java.net.URI
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/shared/GmsCoreSupport;"
@ -34,8 +39,8 @@ private const val PACKAGE_NAME_REGEX_PATTERN = "^[a-z]\\w*(\\.[a-z]\\w*)+\$"
*
* @param fromPackageName The package name of the original app.
* @param toPackageName The package name to fall back to if no custom package name is specified in patch options.
* @param getPrimeMethod The "prime" method that needs to be patched.
* @param earlyReturnMethods The methods that need to be returned early.
* @param getPrimeMethod The fingerprint of the "prime" method that needs to be patched.
* @param getEarlyReturnMethods The methods that need to be returned early.
* @param getMainActivityOnCreateMethod The main activity onCreate method.
* @param extensionPatch The patch responsible for the extension.
* @param gmsCoreSupportResourcePatchFactory The factory for the corresponding resource patch
@ -47,8 +52,8 @@ fun gmsCoreSupportPatch(
fromPackageName: String,
toPackageName: String,
getPrimeMethod: (BytecodePatchContext.() -> MutableMethod)? = null,
earlyReturnMethods: Set<BytecodePatchContext.() -> MutableMethod> = emptySet(),
getMainActivityOnCreateMethod: BytecodePatchContext.() -> MutableMethod,
getEarlyReturnMethods: Set<BytecodePatchContext.() -> MutableMethod> = setOf(),
getMainActivityOnCreateMethod: (BytecodePatchContext.() -> MutableMethod),
extensionPatch: Patch,
gmsCoreSupportResourcePatchFactory: (gmsCoreVendorGroupIdOption: Option<String>) -> Patch,
executeBlock: BytecodePatchContext.() -> Unit = {},
@ -56,15 +61,13 @@ fun gmsCoreSupportPatch(
) = bytecodePatch(
name = "GmsCore support",
description = "Allows the app to work without root by using a different package name when patched " +
"using a GmsCore instead of Google Play Services.",
"using a GmsCore instead of Google Play Services.",
) {
val gmsCoreVendorGroupIdOption = stringOption(
key = "gmsCoreVendorGroupId",
default = "app.revanced",
values =
mapOf(
"ReVanced" to "app.revanced",
),
name = "GmsCore vendor group ID",
values = mapOf("ReVanced" to "app.revanced"),
title = "GmsCore vendor group ID",
description = "The vendor's group ID for GmsCore.",
required = true,
) { it!!.matches(Regex(PACKAGE_NAME_REGEX_PATTERN)) }
@ -75,134 +78,91 @@ fun gmsCoreSupportPatch(
extensionPatch,
)
val gmsCoreVendorGroupId by gmsCoreVendorGroupIdOption
apply {
fun transformStringReferences(transform: (str: String) -> String?) {
val transformations = mutableListOf<() -> Unit>()
val gmsCoreVendorGroupId = gmsCoreVendorGroupIdOption.value!!
classDefs.forEach { classDef ->
val mutableClass by lazy { classDefs.getOrReplaceMutable(classDef) }
classDef.methods.forEach classLoop@{ method ->
val implementation = method.implementation ?: return@classLoop
val mutableMethod by lazy {
mutableClass.methods.first { MethodUtil.methodSignaturesMatch(it, method) }
}
implementation.instructions.forEachIndexed { index, instruction ->
val string = ((instruction as? Instruction21c)?.reference as? StringReference)?.string
?: return@forEachIndexed
// Apply transformation.
val transformedString = transform(string) ?: return@forEachIndexed
transformations += {
mutableMethod.replaceInstruction(
index,
BuilderInstruction21c(
Opcode.CONST_STRING,
instruction.registerA,
ImmutableStringReference(transformedString),
),
)
}
}
}
}
transformations.forEach { it() }
}
// region Collection of transformations that are applied to all strings.
fun commonTransform(referencedString: String): String? = when (referencedString) {
fun transformPackages(string: String): String? = when (string) {
"com.google",
"com.google.android.gms",
in PERMISSIONS,
in ACTIONS,
in AUTHORITIES,
-> referencedString.replace("com.google", gmsCoreVendorGroupId!!)
in GMS_PERMISSIONS,
in GMS_AUTHORITIES,
-> if (string.startsWith("com.google")) {
string.replace("com.google", gmsCoreVendorGroupId)
} else {
"$gmsCoreVendorGroupId.$string"
}
// No vendor prefix for whatever reason...
"subscribedfeeds" -> "$gmsCoreVendorGroupId.subscribedfeeds"
in APP_PERMISSIONS,
in APP_AUTHORITIES,
-> "$toPackageName.$string"
else -> null
}
fun contentUrisTransform(str: String): String? {
// only when content:// uri
if (str.startsWith("content://")) {
// check if matches any authority
for (authority in AUTHORITIES) {
val uriPrefix = "content://$authority"
if (str.startsWith(uriPrefix)) {
return str.replace(
uriPrefix,
"content://${authority.replace("com.google", gmsCoreVendorGroupId!!)}",
)
}
fun transformContentUrlAuthority(string: String) = if (!string.startsWith("content://")) {
null
} else {
runCatching { URI.create(string) }.map {
when (it.authority) {
in GMS_AUTHORITIES ->
if (it.authority.startsWith("com.google")) {
string.replace("com.google", gmsCoreVendorGroupId)
} else {
string.replace(
it.authority,
"$gmsCoreVendorGroupId.${it.authority}",
)
}
in APP_AUTHORITIES ->
string.replace(it.authority, "$toPackageName.${it.authority}")
else -> null
}
// gms also has a 'subscribedfeeds' authority, check for that one too
val subFeedsUriPrefix = "content://subscribedfeeds"
if (str.startsWith(subFeedsUriPrefix)) {
return str.replace(subFeedsUriPrefix, "content://$gmsCoreVendorGroupId.subscribedfeeds")
}
}
return null
}.getOrNull()
}
fun packageNameTransform(fromPackageName: String, toPackageName: String): (String) -> String? = { string ->
when (string) {
"$fromPackageName.SuggestionProvider",
"$fromPackageName.fileprovider",
-> string.replace(fromPackageName, toPackageName)
else -> null
}
}
fun transformPrimeMethod(packageName: String) {
val primeMethod = getPrimeMethod!!()
var register = 2
val index = primeMethod.instructions.indexOfFirst {
if (it.getReference<StringReference>()?.string != fromPackageName) return@indexOfFirst false
register = (it as OneRegisterInstruction).registerA
return@indexOfFirst true
}
primeMethod.replaceInstruction(index, "const-string v$register, \"$packageName\"")
}
// endregion
val packageName = setOrGetFallbackPackageName(toPackageName)
// Transform all strings using all provided transforms, first match wins.
val transformations = arrayOf(
::commonTransform,
::contentUrisTransform,
packageNameTransform(fromPackageName, packageName),
::transformPackages,
::transformContentUrlAuthority,
)
transformStringReferences transform@{ string ->
transformations.forEach { transform ->
transform(string)?.let { transformedString -> return@transform transformedString }
}
return@transform null
forEachInstructionAsSequence({ _, _, instruction, index ->
val string = instruction.string ?: return@forEachInstructionAsSequence null
val transformedString = transformations.firstNotNullOfOrNull { it(string) }
?: return@forEachInstructionAsSequence null
index to transformedString
}) { method, (index, transformedString) ->
val register = method.getInstruction<OneRegisterInstruction>(index).registerA
method.replaceInstruction(
index,
BuilderInstruction21c(
Opcode.CONST_STRING,
register,
ImmutableStringReference(transformedString),
),
)
}
// Specific method that needs to be patched.
getPrimeMethod?.let { transformPrimeMethod(packageName) }
if (getPrimeMethod != null) getPrimeMethod().apply {
val index = indexOfFirstInstruction { string == fromPackageName }
val register = getInstruction<OneRegisterInstruction>(index).registerA
replaceInstruction(
index,
"const-string v$register, \"$packageName\"",
)
}
// Return these methods early to prevent the app from crashing.
earlyReturnMethods.forEach { it().returnEarly() }
getEarlyReturnMethods.forEach { it().returnEarly() }
serviceCheckMethod.returnEarly()
// Google Play Utility is not present in all apps, so we need to check if it's present.
@ -211,15 +171,15 @@ fun gmsCoreSupportPatch(
// Set original and patched package names for extension to use.
originalPackageNameExtensionMethod.returnEarly(fromPackageName)
// Verify GmsCore is installed and whitelisted for power optimizations and background usage.
// Run GmsCore presence, correct installation and update checks in the main activity.
getMainActivityOnCreateMethod().addInstruction(
0,
"invoke-static/range { p0 .. p0 }, $EXTENSION_CLASS_DESCRIPTOR->" +
"checkGmsCore(Landroid/app/Activity;)V",
"checkGmsCore(Landroid/app/Activity;)V",
)
// Change the vendor of GmsCore in the extension.
gmsCoreSupportMethod.returnEarly(gmsCoreVendorGroupId!!)
getGmsCoreVendorGroupIdMethod.returnEarly(gmsCoreVendorGroupId)
executeBlock()
}
@ -227,274 +187,6 @@ fun gmsCoreSupportPatch(
block()
}
/**
* A collection of permissions, intents and content provider authorities
* that are present in GmsCore which need to be transformed.
*/
private object Constants {
/**
* All permissions.
*/
val PERMISSIONS = setOf(
"com.google.android.c2dm.permission.RECEIVE",
"com.google.android.c2dm.permission.SEND",
"com.google.android.gms.auth.api.phone.permission.SEND",
"com.google.android.gms.permission.AD_ID",
"com.google.android.gms.permission.AD_ID_NOTIFICATION",
"com.google.android.gms.permission.CAR_FUEL",
"com.google.android.gms.permission.CAR_INFORMATION",
"com.google.android.gms.permission.CAR_MILEAGE",
"com.google.android.gms.permission.CAR_SPEED",
"com.google.android.gms.permission.CAR_VENDOR_EXTENSION",
"com.google.android.googleapps.permission.GOOGLE_AUTH",
"com.google.android.googleapps.permission.GOOGLE_AUTH.cp",
"com.google.android.googleapps.permission.GOOGLE_AUTH.local",
"com.google.android.googleapps.permission.GOOGLE_AUTH.mail",
"com.google.android.googleapps.permission.GOOGLE_AUTH.writely",
"com.google.android.gtalkservice.permission.GTALK_SERVICE",
"com.google.android.providers.gsf.permission.READ_GSERVICES",
)
/**
* All intent actions.
*/
val ACTIONS = setOf(
"com.google.android.c2dm.intent.RECEIVE",
"com.google.android.c2dm.intent.REGISTER",
"com.google.android.c2dm.intent.REGISTRATION",
"com.google.android.c2dm.intent.UNREGISTER",
"com.google.android.contextmanager.service.ContextManagerService.START",
"com.google.android.gcm.intent.SEND",
"com.google.android.gms.accounts.ACCOUNT_SERVICE",
"com.google.android.gms.accountsettings.ACCOUNT_PREFERENCES_SETTINGS",
"com.google.android.gms.accountsettings.action.BROWSE_SETTINGS",
"com.google.android.gms.accountsettings.action.VIEW_SETTINGS",
"com.google.android.gms.accountsettings.MY_ACCOUNT",
"com.google.android.gms.accountsettings.PRIVACY_SETTINGS",
"com.google.android.gms.accountsettings.SECURITY_SETTINGS",
"com.google.android.gms.ads.gservice.START",
"com.google.android.gms.ads.identifier.service.EVENT_ATTESTATION",
"com.google.android.gms.ads.service.CACHE",
"com.google.android.gms.ads.service.CONSENT_LOOKUP",
"com.google.android.gms.ads.service.HTTP",
"com.google.android.gms.analytics.service.START",
"com.google.android.gms.app.settings.GoogleSettingsLink",
"com.google.android.gms.appstate.service.START",
"com.google.android.gms.appusage.service.START",
"com.google.android.gms.asterism.service.START",
"com.google.android.gms.audiomodem.service.AudioModemService.START",
"com.google.android.gms.audit.service.START",
"com.google.android.gms.auth.account.authapi.START",
"com.google.android.gms.auth.account.authenticator.auto.service.START",
"com.google.android.gms.auth.account.authenticator.chromeos.START",
"com.google.android.gms.auth.account.authenticator.tv.service.START",
"com.google.android.gms.auth.account.data.service.START",
"com.google.android.gms.auth.api.credentials.PICKER",
"com.google.android.gms.auth.api.credentials.service.START",
"com.google.android.gms.auth.api.identity.service.authorization.START",
"com.google.android.gms.auth.api.identity.service.credentialsaving.START",
"com.google.android.gms.auth.api.identity.service.signin.START",
"com.google.android.gms.auth.api.phone.service.InternalService.START",
"com.google.android.gms.auth.api.signin.service.START",
"com.google.android.gms.auth.be.appcert.AppCertService",
"com.google.android.gms.auth.blockstore.service.START",
"com.google.android.gms.auth.config.service.START",
"com.google.android.gms.auth.cryptauth.cryptauthservice.START",
"com.google.android.gms.auth.GOOGLE_SIGN_IN",
"com.google.android.gms.auth.login.LOGIN",
"com.google.android.gms.auth.proximity.devicesyncservice.START",
"com.google.android.gms.auth.proximity.securechannelservice.START",
"com.google.android.gms.auth.proximity.START",
"com.google.android.gms.auth.service.START",
"com.google.android.gms.backup.ACTION_BACKUP_SETTINGS",
"com.google.android.gms.backup.G1_BACKUP",
"com.google.android.gms.backup.G1_RESTORE",
"com.google.android.gms.backup.GMS_MODULE_RESTORE",
"com.google.android.gms.beacon.internal.IBleService.START",
"com.google.android.gms.car.service.START",
"com.google.android.gms.carrierauth.service.START",
"com.google.android.gms.cast.firstparty.START",
"com.google.android.gms.cast.remote_display.service.START",
"com.google.android.gms.cast.service.BIND_CAST_DEVICE_CONTROLLER_SERVICE",
"com.google.android.gms.cast_mirroring.service.START",
"com.google.android.gms.checkin.BIND_TO_SERVICE",
"com.google.android.gms.chromesync.service.START",
"com.google.android.gms.clearcut.service.START",
"com.google.android.gms.common.account.CHOOSE_ACCOUNT",
"com.google.android.gms.common.download.START",
"com.google.android.gms.common.service.START",
"com.google.android.gms.common.telemetry.service.START",
"com.google.android.gms.config.START",
"com.google.android.gms.constellation.service.START",
"com.google.android.gms.credential.manager.service.firstparty.START",
"com.google.android.gms.deviceconnection.service.START",
"com.google.android.gms.drive.ApiService.RESET_AFTER_BOOT",
"com.google.android.gms.drive.ApiService.START",
"com.google.android.gms.drive.ApiService.STOP",
"com.google.android.gms.droidguard.service.INIT",
"com.google.android.gms.droidguard.service.PING",
"com.google.android.gms.droidguard.service.START",
"com.google.android.gms.enterprise.loader.service.START",
"com.google.android.gms.facs.cache.service.START",
"com.google.android.gms.facs.internal.service.START",
"com.google.android.gms.feedback.internal.IFeedbackService",
"com.google.android.gms.fido.credentialstore.internal_service.START",
"com.google.android.gms.fido.fido2.privileged.START",
"com.google.android.gms.fido.fido2.regular.START",
"com.google.android.gms.fido.fido2.zeroparty.START",
"com.google.android.gms.fido.sourcedevice.service.START",
"com.google.android.gms.fido.targetdevice.internal_service.START",
"com.google.android.gms.fido.u2f.privileged.START",
"com.google.android.gms.fido.u2f.thirdparty.START",
"com.google.android.gms.fido.u2f.zeroparty.START",
"com.google.android.gms.fitness.BleApi",
"com.google.android.gms.fitness.ConfigApi",
"com.google.android.gms.fitness.GoalsApi",
"com.google.android.gms.fitness.GoogleFitnessService.START",
"com.google.android.gms.fitness.HistoryApi",
"com.google.android.gms.fitness.InternalApi",
"com.google.android.gms.fitness.RecordingApi",
"com.google.android.gms.fitness.SensorsApi",
"com.google.android.gms.fitness.SessionsApi",
"com.google.android.gms.fonts.service.START",
"com.google.android.gms.freighter.service.START",
"com.google.android.gms.games.internal.connect.service.START",
"com.google.android.gms.games.PLAY_GAMES_UPGRADE",
"com.google.android.gms.games.service.START",
"com.google.android.gms.gass.START",
"com.google.android.gms.gmscompliance.service.START",
"com.google.android.gms.googlehelp.HELP",
"com.google.android.gms.googlehelp.service.GoogleHelpService.START",
"com.google.android.gms.growth.service.START",
"com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START",
"com.google.android.gms.icing.INDEX_SERVICE",
"com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE",
"com.google.android.gms.identity.service.BIND",
"com.google.android.gms.inappreach.service.START",
"com.google.android.gms.instantapps.START",
"com.google.android.gms.kids.service.START",
"com.google.android.gms.languageprofile.service.START",
"com.google.android.gms.learning.internal.dynamitesupport.START",
"com.google.android.gms.learning.intservice.START",
"com.google.android.gms.learning.predictor.START",
"com.google.android.gms.learning.trainer.START",
"com.google.android.gms.learning.training.background.START",
"com.google.android.gms.location.places.GeoDataApi",
"com.google.android.gms.location.places.PlaceDetectionApi",
"com.google.android.gms.location.places.PlacesApi",
"com.google.android.gms.location.reporting.service.START",
"com.google.android.gms.location.settings.LOCATION_HISTORY",
"com.google.android.gms.location.settings.LOCATION_REPORTING_SETTINGS",
"com.google.android.gms.locationsharing.api.START",
"com.google.android.gms.locationsharingreporter.service.START",
"com.google.android.gms.lockbox.service.START",
"com.google.android.gms.matchstick.lighter.service.START",
"com.google.android.gms.mdm.services.DeviceManagerApiService.START",
"com.google.android.gms.mdm.services.START",
"com.google.android.gms.mdns.service.START",
"com.google.android.gms.measurement.START",
"com.google.android.gms.nearby.bootstrap.service.NearbyBootstrapService.START",
"com.google.android.gms.nearby.connection.service.START",
"com.google.android.gms.nearby.fastpair.START",
"com.google.android.gms.nearby.messages.service.NearbyMessagesService.START",
"com.google.android.gms.nearby.sharing.service.NearbySharingService.START",
"com.google.android.gms.nearby.sharing.START_SERVICE",
"com.google.android.gms.notifications.service.START",
"com.google.android.gms.ocr.service.internal.START",
"com.google.android.gms.ocr.service.START",
"com.google.android.gms.oss.licenses.service.START",
"com.google.android.gms.payse.service.BIND",
"com.google.android.gms.people.contactssync.service.START",
"com.google.android.gms.people.service.START",
"com.google.android.gms.phenotype.service.START",
"com.google.android.gms.photos.autobackup.service.START",
"com.google.android.gms.playlog.service.START",
"com.google.android.gms.plus.service.default.INTENT",
"com.google.android.gms.plus.service.image.INTENT",
"com.google.android.gms.plus.service.internal.START",
"com.google.android.gms.plus.service.START",
"com.google.android.gms.potokens.service.START",
"com.google.android.gms.pseudonymous.service.START",
"com.google.android.gms.rcs.START",
"com.google.android.gms.reminders.service.START",
"com.google.android.gms.romanesco.MODULE_BACKUP_AGENT",
"com.google.android.gms.romanesco.service.START",
"com.google.android.gms.safetynet.service.START",
"com.google.android.gms.scheduler.ACTION_PROXY_SCHEDULE",
"com.google.android.gms.search.service.SEARCH_AUTH_START",
"com.google.android.gms.semanticlocation.service.START_ODLH",
"com.google.android.gms.sesame.service.BIND",
"com.google.android.gms.settings.EXPOSURE_NOTIFICATION_SETTINGS",
"com.google.android.gms.setup.auth.SecondDeviceAuth.START",
"com.google.android.gms.signin.service.START",
"com.google.android.gms.smartdevice.d2d.SourceDeviceService.START",
"com.google.android.gms.smartdevice.d2d.TargetDeviceService.START",
"com.google.android.gms.smartdevice.directtransfer.SourceDirectTransferService.START",
"com.google.android.gms.smartdevice.directtransfer.TargetDirectTransferService.START",
"com.google.android.gms.smartdevice.postsetup.PostSetupService.START",
"com.google.android.gms.smartdevice.setup.accounts.AccountsService.START",
"com.google.android.gms.smartdevice.wifi.START_WIFI_HELPER_SERVICE",
"com.google.android.gms.social.location.activity.service.START",
"com.google.android.gms.speech.service.START",
"com.google.android.gms.statementservice.EXECUTE",
"com.google.android.gms.stats.ACTION_UPLOAD_DROPBOX_ENTRIES",
"com.google.android.gms.tapandpay.service.BIND",
"com.google.android.gms.telephonyspam.service.START",
"com.google.android.gms.testsupport.service.START",
"com.google.android.gms.thunderbird.service.START",
"com.google.android.gms.trustagent.BridgeApi.START",
"com.google.android.gms.trustagent.StateApi.START",
"com.google.android.gms.trustagent.trustlet.trustletmanagerservice.BIND",
"com.google.android.gms.trustlet.bluetooth.service.BIND",
"com.google.android.gms.trustlet.connectionlessble.service.BIND",
"com.google.android.gms.trustlet.face.service.BIND",
"com.google.android.gms.trustlet.nfc.service.BIND",
"com.google.android.gms.trustlet.onbody.service.BIND",
"com.google.android.gms.trustlet.place.service.BIND",
"com.google.android.gms.trustlet.voiceunlock.service.BIND",
"com.google.android.gms.udc.service.START",
"com.google.android.gms.update.START_API_SERVICE",
"com.google.android.gms.update.START_SERVICE",
"com.google.android.gms.update.START_SINGLE_USER_API_SERVICE",
"com.google.android.gms.update.START_TV_API_SERVICE",
"com.google.android.gms.usagereporting.service.START",
"com.google.android.gms.userlocation.service.START",
"com.google.android.gms.vehicle.cabin.service.START",
"com.google.android.gms.vehicle.climate.service.START",
"com.google.android.gms.vehicle.info.service.START",
"com.google.android.gms.wallet.service.BIND",
"com.google.android.gms.walletp2p.service.firstparty.BIND",
"com.google.android.gms.walletp2p.service.zeroparty.BIND",
"com.google.android.gms.wearable.BIND",
"com.google.android.gms.wearable.BIND_LISTENER",
"com.google.android.gms.wearable.DATA_CHANGED",
"com.google.android.gms.wearable.MESSAGE_RECEIVED",
"com.google.android.gms.wearable.NODE_CHANGED",
"com.google.android.gsf.action.GET_GLS",
"com.google.android.location.settings.LOCATION_REPORTING_SETTINGS",
"com.google.android.mdd.service.START",
"com.google.android.mdh.service.listener.START",
"com.google.android.mdh.service.START",
"com.google.android.mobstore.service.START",
"com.google.firebase.auth.api.gms.service.START",
"com.google.firebase.dynamiclinks.service.START",
"com.google.iid.TOKEN_REQUEST",
"com.google.android.gms.location.places.ui.PICK_PLACE",
)
/**
* All content provider authorities.
*/
val AUTHORITIES = setOf(
"com.google.android.gms.auth.accounts",
"com.google.android.gms.chimera",
"com.google.android.gms.fonts",
"com.google.android.gms.phenotype",
"com.google.android.gsf.gservices",
"com.google.settings",
)
}
/**
* Abstract resource patch that allows Google apps to run without root and under a different package name
* by using GmsCore instead of Google Play Services.
@ -503,7 +195,6 @@ private object Constants {
* @param toPackageName The package name to fall back to if no custom package name is specified in patch options.
* @param spoofedPackageSignature The signature of the package to spoof to.
* @param gmsCoreVendorGroupIdOption The option to get the vendor group ID of GmsCore.
* @param addStringResources If the GmsCore shared strings should be added to the patched app.
* @param executeBlock The additional execution block of the patch.
* @param block The additional block to build the patch.
*/
@ -512,7 +203,6 @@ fun gmsCoreSupportResourcePatch(
toPackageName: String,
spoofedPackageSignature: String,
gmsCoreVendorGroupIdOption: Option<String>,
addStringResources: Boolean = true,
executeBlock: ResourcePatchContext.() -> Unit = {},
block: ResourcePatchBuilder.() -> Unit = {},
) = resourcePatch {
@ -521,85 +211,134 @@ fun gmsCoreSupportResourcePatch(
addResourcesPatch,
)
val gmsCoreVendorGroupId by gmsCoreVendorGroupIdOption
val gmsCoreVendorGroupId = gmsCoreVendorGroupIdOption.value!!
apply {
// Some patches don't use shared String resources so there's no need to add them.
if (addStringResources) {
addResources("shared", "misc.gms.gmsCoreSupportResourcePatch")
}
addResources("shared", "misc.gms.gmsCoreSupportResourcePatch")
/**
* Add metadata to manifest to support spoofing the package name and signature of GmsCore.
*/
fun addSpoofingMetadata() {
fun Node.adoptChild(
tagName: String,
block: Element.() -> Unit,
) {
val child = ownerDocument.createElement(tagName)
child.block()
appendChild(child)
}
val toPackageName = setOrGetFallbackPackageName(toPackageName)
document("AndroidManifest.xml").use { document ->
val applicationNode =
document
.getElementsByTagName("application")
.item(0)
document("AndroidManifest.xml").use { document ->
document.getElementsByTagName("permission").asSequence().forEach { node ->
node.attributes.getNamedItem("android:name").apply {
APP_PERMISSIONS += textContent
// Spoof package name and signature.
applicationNode.adoptChild("meta-data") {
setAttribute("android:name", "$gmsCoreVendorGroupId.android.gms.SPOOFED_PACKAGE_NAME")
setAttribute("android:value", fromPackageName)
}
applicationNode.adoptChild("meta-data") {
setAttribute("android:name", "$gmsCoreVendorGroupId.android.gms.SPOOFED_PACKAGE_SIGNATURE")
setAttribute("android:value", spoofedPackageSignature)
}
// GmsCore presence detection in extension.
applicationNode.adoptChild("meta-data") {
// TODO: The name of this metadata should be dynamic.
setAttribute("android:name", "app.revanced.MICROG_PACKAGE_NAME")
setAttribute("android:value", "$gmsCoreVendorGroupId.android.gms")
textContent = "$toPackageName.$textContent"
}
}
}
/**
* Patch the manifest to support GmsCore.
*/
fun patchManifest() {
val packageName = setOrGetFallbackPackageName(toPackageName)
document.getElementsByTagName("uses-permission").asSequence().forEach { node ->
node.attributes.getNamedItem("android:name").apply {
if (textContent in GMS_PERMISSIONS) {
textContent.replace("com.google", gmsCoreVendorGroupId)
} else if (textContent in APP_PERMISSIONS) {
textContent = "$toPackageName.$textContent"
}
}
}
val transformations = mapOf(
"package=\"$fromPackageName" to "package=\"$packageName",
"android:authorities=\"$fromPackageName" to "android:authorities=\"$packageName",
"$fromPackageName.permission.C2D_MESSAGE" to "$packageName.permission.C2D_MESSAGE",
"$fromPackageName.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" to "$packageName.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION",
"com.google.android.c2dm" to "$gmsCoreVendorGroupId.android.c2dm",
"com.google.android.libraries.photos.api.mars" to "$gmsCoreVendorGroupId.android.apps.photos.api.mars",
"</queries>" to "<package android:name=\"$gmsCoreVendorGroupId.android.gms\"/></queries>",
)
document.getElementsByTagName("provider").asSequence().forEach { node ->
node.attributes.getNamedItem("android:authorities").apply {
textContent = textContent.split(";")
.joinToString(";") { authority ->
APP_AUTHORITIES += authority
"$toPackageName.$authority"
}
}
}
val manifest = get("AndroidManifest.xml")
manifest.writeText(
transformations.entries.fold(manifest.readText()) { acc, (from, to) ->
acc.replace(
from,
to,
document.getNode("manifest")
.attributes.getNamedItem("package").textContent = toPackageName
document.getNode("queries").appendChild(
document.createElement("package").apply {
attributes.setNamedItem(
document.createAttribute("android:name").apply {
textContent = "$gmsCoreVendorGroupId.android.gms"
},
)
},
)
}
patchManifest()
addSpoofingMetadata()
val applicationNode = document.getNode("application")
// Spoof package name and signature.
applicationNode.appendChild(
document.createElement("meta-data").apply {
setAttribute(
"android:name",
"$gmsCoreVendorGroupId.android.gms.SPOOFED_PACKAGE_NAME",
)
setAttribute("android:value", fromPackageName)
},
)
applicationNode.appendChild(
document.createElement("meta-data").apply {
setAttribute(
"android:name",
"$gmsCoreVendorGroupId.android.gms.SPOOFED_PACKAGE_SIGNATURE",
)
setAttribute("android:value", spoofedPackageSignature)
},
)
// GmsCore presence detection in extension.
applicationNode.appendChild(
document.createElement("meta-data").apply {
// TODO: The name of this metadata should be dynamic.
setAttribute("android:name", "app.revanced.MICROG_PACKAGE_NAME")
setAttribute("android:value", "$gmsCoreVendorGroupId.android.gms")
},
)
}
executeBlock()
}
block()
}
private object Constants {
val GMS_PERMISSIONS = setOf(
"com.google.android.providers.gsf.permission.READ_GSERVICES",
"com.google.android.c2dm.permission.RECEIVE",
"com.google.android.c2dm.permission.SEND",
"com.google.android.gtalkservice.permission.GTALK_SERVICE",
"com.google.android.googleapps.permission.GOOGLE_AUTH",
"com.google.android.googleapps.permission.GOOGLE_AUTH.cp",
"com.google.android.googleapps.permission.GOOGLE_AUTH.local",
"com.google.android.googleapps.permission.GOOGLE_AUTH.mail",
"com.google.android.googleapps.permission.GOOGLE_AUTH.writely",
"com.google.android.gms.permission.ACTIVITY_RECOGNITION",
"com.google.android.gms.permission.AD_ID",
"com.google.android.gms.permission.AD_ID_NOTIFICATION",
"com.google.android.gms.auth.api.phone.permission.SEND",
"com.google.android.gms.permission.CAR_INFORMATION",
"com.google.android.gms.permission.CAR_SPEED",
"com.google.android.gms.permission.CAR_FUEL",
"com.google.android.gms.permission.CAR_MILEAGE",
"com.google.android.gms.permission.CAR_VENDOR_EXTENSION",
"com.google.android.gms.locationsharingreporter.periodic.STATUS_UPDATE",
"com.google.android.gms.auth.permission.GOOGLE_ACCOUNT_CHANGE",
)
val GMS_AUTHORITIES = setOf(
"com.google.android.gms.fileprovider",
"com.google.android.gms.auth.accounts",
"com.google.android.gms.chimera",
"com.google.android.gms.fonts",
"com.google.android.gms.phenotype",
"com.google.android.gsf.gservices",
"com.google.settings",
"subscribedfeeds",
)
val APP_PERMISSIONS = mutableSetOf(
"org.microg.gms.STATUS_BROADCAST",
"org.microg.gms.EXTENDED_ACCESS",
"org.microg.gms.PROVISION"
)
val APP_AUTHORITIES = mutableSetOf<String>()
}

View file

@ -58,6 +58,7 @@ val hideDistractionsPatch = bytecodePatch(
),
"promo" to booleanOption(
name = "Promotions",
description = "Elements that promote features, challenges, clubs, etc.",
default = true,
required = true,
),
@ -86,7 +87,8 @@ val hideDistractionsPatch = bytecodePatch(
required = true,
),
"activityLookback" to booleanOption(
name = "Your activity from X years ago",
name = "Activity lookback",
description = "Your activity from X years ago",
default = false,
required = true,
),

View file

@ -7,6 +7,8 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.castContextFetchMethod
import app.revanced.patches.shared.misc.gms.gmsCoreSupportPatch
import app.revanced.patches.shared.misc.settings.preference.IntentPreference
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.shared.primeMethod
import app.revanced.patches.youtube.layout.buttons.overlay.hidePlayerOverlayButtonsPatch
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
@ -22,7 +24,7 @@ val gmsCoreSupportPatch = gmsCoreSupportPatch(
fromPackageName = YOUTUBE_PACKAGE_NAME,
toPackageName = REVANCED_YOUTUBE_PACKAGE_NAME,
getPrimeMethod = BytecodePatchContext::primeMethod::get,
earlyReturnMethods = setOf(BytecodePatchContext::castContextFetchMethod::get),
getEarlyReturnMethods = setOf(BytecodePatchContext::castContextFetchMethod::get),
getMainActivityOnCreateMethod = BytecodePatchContext::mainActivityOnCreateMethod::get,
extensionPatch = sharedExtensionPatch,
gmsCoreSupportResourcePatchFactory = ::gmsCoreSupportResourcePatch,
@ -55,11 +57,17 @@ private fun gmsCoreSupportResourcePatch(
val gmsCoreVendorGroupId by gmsCoreVendorGroupIdOption
PreferenceScreen.MISC.addPreferences(
IntentPreference(
"microg_settings",
intent = IntentPreference.Intent("", "org.microg.gms.ui.SettingsActivity") {
"$gmsCoreVendorGroupId.android.gms"
},
PreferenceScreenPreference(
"revanced_gms_core_screen",
preferences = setOf(
SwitchPreference("revanced_gms_core_check_updates"),
IntentPreference(
"revanced_gms_core_settings",
intent = IntentPreference.Intent("", "org.microg.gms.ui.SettingsActivity") {
"$gmsCoreVendorGroupId.android.gms"
},
),
),
),
)
},

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,294 +17,223 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="youtube.misc.announcements.announcementsPatch.revanced_announcements_dialog_dismiss">খাৰিজ কৰক</string>
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_dialog_dismiss">খাৰিজ কৰক</string>
</patch>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,351 +17,283 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="shared.layout.branding.baseCustomBrandingPatch.revanced_custom_branding_name_title">نام برنامه</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="shared.layout.branding.baseCustomBrandingPatch.revanced_custom_branding_icon_title">آیکون برنامه</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_failed_title">بررسی ناموفق بود</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_dialog_open_official_source_button">رفتن به وبسایت رسمی</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_dialog_ignore_button">نادیده بگیر</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_failed_message">&lt;h5&gt;به نظر نمی‌رسد این برنامه توسط شما وصله شده باشد.&lt;/h5&gt;&lt;br&gt;این برنامه ممکن است به درستی کار نکند، &lt;b&gt;ممکن است استفاده از آن مضر یا حتی خطرناک باشد&lt;/b&gt;.&lt;br&gt;&lt;بر&gt;این برنامه از قبل دریافت شده است یا این چک از قبل دریافت شده است else:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;اکیداً توصیه می‌شود که &lt;b&gt;این برنامه را حذف نصب کنید و خودتان آن را وصله کنید&lt;/b&gt; برای اطمینان از اینکه از یک برنامه معتبر و ایمن استفاده می‌کنید.&lt;p&gt;&lt;br&gt;اگر نادیده گرفته شود، این هشدار فقط دو بار نشان داده می‌شود.</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_same_patching_device">روی دستگاه دیگری وصله شده است</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_manager_not_expected_installer">به وسیله ReVanced Manager نصب نشده است</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time">بیشتر از ۱۰ دقیقه پیش وصله شده است</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time_days">%s روز پیش وصله شده است</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time_invalid">تاریخ ایجاد APK مخدوش شده است</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_submenu_title">تنظیمات</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_reset">بازنشانی</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_restart">راه‌اندازی مجدد</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_import">واردکردن</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_import_copy">رونوشت‌</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_import_reset">بازگرداندن تنظیمات ReVanced به پیش‌فرض</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_import_success">%d تنظیمات وارد شدند</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_import_failure_parse">واردکردن انجام نشد: %s</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_search_hint">تنظیمات جستجو</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_search_no_results_title">نتایجی برای %s یافت نشد</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_search_no_results_summary">کلیدواژه دیگری را امتحان کنید</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_search_remove_message">حذف از تاریخچه جستجو؟</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_search_empty_history_title">تاریخچه جستجو خالی است</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_search_history_title">نمایش تاریخچه جستجوی تنظیمات</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_show_menu_icons_title">نمایش آیکون تنظیمات ReVanced</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_show_menu_icons_summary_on">نمادهای تنظیمات نشان داده می‌شوند</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_show_menu_icons_summary_off">نمادهای تنظیمات نمایش داده نمی شوند</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_language_title">زبان ReVanced</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_language_DEFAULT">زبان برنامه</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_pref_import_export_title">وارد کردن/صادر کردن</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_pref_import_export_summary">وارد کردن / صادر کردن تنظیمات ReVanced</string>
<!-- Settings about dialog. -->
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_about_links_body">شما درحال استفاده از نسخه &lt;i&gt;%s&lt;/i&gt; از پچ Revanced هستید</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_about_links_dev_header">توجه</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_about_links_header">لینک‌های رسمی</string>
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">نام برنامه</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_icon_title">آیکون برنامه</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">بررسی ناموفق بود</string>
<string name="revanced_check_environment_dialog_open_official_source_button">رفتن به وبسایت رسمی</string>
<string name="revanced_check_environment_dialog_ignore_button">نادیده بگیر</string>
<string name="revanced_check_environment_failed_message">&lt;h5&gt;به نظر نمی‌رسد این برنامه توسط شما وصله شده باشد.&lt;/h5&gt;&lt;br&gt;این برنامه ممکن است به درستی کار نکند، &lt;b&gt;ممکن است استفاده از آن مضر یا حتی خطرناک باشد&lt;/b&gt;.&lt;br&gt;&lt;بر&gt;این برنامه از قبل دریافت شده است یا این چک از قبل دریافت شده است else:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;اکیداً توصیه می‌شود که &lt;b&gt;این برنامه را حذف نصب کنید و خودتان آن را وصله کنید&lt;/b&gt; برای اطمینان از اینکه از یک برنامه معتبر و ایمن استفاده می‌کنید.&lt;p&gt;&lt;br&gt;اگر نادیده گرفته شود، این هشدار فقط دو بار نشان داده می‌شود.</string>
<string name="revanced_check_environment_not_same_patching_device">روی دستگاه دیگری وصله شده است</string>
<string name="revanced_check_environment_manager_not_expected_installer">به وسیله ReVanced Manager نصب نشده است</string>
<string name="revanced_check_environment_not_near_patch_time">بیشتر از ۱۰ دقیقه پیش وصله شده است</string>
<string name="revanced_check_environment_not_near_patch_time_days">%s روز پیش وصله شده است</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">تاریخ ایجاد APK مخدوش شده است</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_submenu_title">تنظیمات</string>
<string name="revanced_settings_reset">بازنشانی</string>
<string name="revanced_settings_restart">راه‌اندازی مجدد</string>
<string name="revanced_settings_import">واردکردن</string>
<string name="revanced_settings_import_copy">رونوشت‌</string>
<string name="revanced_settings_import_reset">بازگرداندن تنظیمات ReVanced به پیش‌فرض</string>
<string name="revanced_settings_import_success">%d تنظیمات وارد شدند</string>
<string name="revanced_settings_import_failure_parse">واردکردن انجام نشد: %s</string>
<string name="revanced_settings_search_hint">تنظیمات جستجو</string>
<string name="revanced_settings_search_no_results_title">نتایجی برای %s یافت نشد</string>
<string name="revanced_settings_search_no_results_summary">کلیدواژه دیگری را امتحان کنید</string>
<string name="revanced_settings_search_remove_message">حذف از تاریخچه جستجو؟</string>
<string name="revanced_settings_search_empty_history_title">تاریخچه جستجو خالی است</string>
<string name="revanced_settings_search_history_title">نمایش تاریخچه جستجوی تنظیمات</string>
<string name="revanced_show_menu_icons_title">نمایش آیکون تنظیمات ReVanced</string>
<string name="revanced_show_menu_icons_summary_on">نمادهای تنظیمات نشان داده می‌شوند</string>
<string name="revanced_show_menu_icons_summary_off">نمادهای تنظیمات نمایش داده نمی شوند</string>
<string name="revanced_language_title">زبان ReVanced</string>
<string name="revanced_language_DEFAULT">زبان برنامه</string>
<string name="revanced_pref_import_export_title">وارد کردن/صادر کردن</string>
<string name="revanced_pref_import_export_summary">وارد کردن / صادر کردن تنظیمات ReVanced</string>
<!-- Settings about dialog. -->
<string name="revanced_settings_about_links_body">شما درحال استفاده از نسخه &lt;i&gt;%s&lt;/i&gt; از پچ Revanced هستید</string>
<string name="revanced_settings_about_links_dev_header">توجه</string>
<string name="revanced_settings_about_links_header">لینک‌های رسمی</string>
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="shared.misc.gms.gmsCoreSupportResourcePatch.gms_core_toast_not_installed_message">MicroG GmsCore نصب نشده است. آنرا نصب کنید.</string>
<string name="shared.misc.gms.gmsCoreSupportResourcePatch.gms_core_dialog_title">اقدام لازم است</string>
<string name="shared.misc.gms.gmsCoreSupportResourcePatch.gms_core_dialog_open_website_text">باز کردن تارنما</string>
<string name="shared.misc.gms.gmsCoreSupportResourcePatch.gms_core_dialog_continue_text">ادامه</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
<string name="shared.misc.debugging.enableDebuggingPatch.revanced_debug_screen_title">عیب‌یابی</string>
<string name="shared.misc.debugging.enableDebuggingPatch.revanced_debug_screen_summary">فعال یا غیرفعال کردن گزینه‌های عیب یابی</string>
<string name="shared.misc.debugging.enableDebuggingPatch.revanced_debug_title">گزارش عیب</string>
<string name="shared.misc.debugging.enableDebuggingPatch.revanced_debug_summary_on">لاگ عیب فعال است</string>
<string name="shared.misc.debugging.enableDebuggingPatch.revanced_debug_summary_off">لاگ عیب غیرفعال است</string>
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
<string name="youtube.misc.settings.settingsPatch.revanced_settings_screen_00_about_title">درباره</string>
<string name="youtube.misc.settings.settingsPatch.revanced_settings_screen_04_general_title">عمومی</string>
<string name="youtube.misc.settings.settingsPatch.revanced_settings_screen_05_player_title">اجراکننده</string>
<string name="youtube.misc.settings.settingsPatch.revanced_settings_screen_07_seekbar_title">نوار جریان پخش</string>
<string name="youtube.misc.settings.settingsPatch.revanced_settings_screen_12_video_title">ويدئو</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="gms_core_toast_not_installed_message">MicroG GmsCore نصب نشده است. آنرا نصب کنید.</string>
<string name="gms_core_dialog_title">اقدام لازم است</string>
<string name="gms_core_dialog_open_website_text">باز کردن تارنما</string>
<string name="gms_core_dialog_continue_text">ادامه</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
<string name="revanced_debug_screen_title">عیب‌یابی</string>
<string name="revanced_debug_screen_summary">فعال یا غیرفعال کردن گزینه‌های عیب یابی</string>
<string name="revanced_debug_title">گزارش عیب</string>
<string name="revanced_debug_summary_on">لاگ عیب فعال است</string>
<string name="revanced_debug_summary_off">لاگ عیب غیرفعال است</string>
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_screen_00_about_title">درباره</string>
<string name="revanced_settings_screen_04_general_title">عمومی</string>
<string name="revanced_settings_screen_05_player_title">اجراکننده</string>
<string name="revanced_settings_screen_07_seekbar_title">نوار جریان پخش</string>
<string name="revanced_settings_screen_12_video_title">ويدئو</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<string name="youtube.layout.hide.general.hideLayoutComponentsPatch.revanced_hide_show_more_button_title">پنهان سازی دکمه \'نمایش بیشتر\'</string>
<string name="youtube.layout.hide.general.hideLayoutComponentsPatch.revanced_hide_ticket_shelf_title">پنهان سازی قفسه بلیط</string>
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<string name="revanced_hide_show_more_button_title">پنهان سازی دکمه \'نمایش بیشتر\'</string>
<string name="revanced_hide_ticket_shelf_title">پنهان سازی قفسه بلیط</string>
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<string name="youtube.layout.sponsorblock.sponsorBlockResourcePatch.revanced_sb_general">عمومی</string>
<string name="youtube.layout.sponsorblock.sponsorBlockResourcePatch.revanced_sb_settings_copy">رونوشت‌</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="youtube.layout.sponsorblock.sponsorBlockResourcePatch.revanced_sb_about_title">درباره</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
<string name="twitch.misc.settings.settingsPatch.revanced_about_title">درباره</string>
<string name="twitch.misc.settings.settingsPatch.revanced_twitch_debug_title">گزارش عیب</string>
<string name="twitch.misc.settings.settingsPatch.revanced_twitch_debug_summary_on">لاگ عیب فعال است</string>
<string name="twitch.misc.settings.settingsPatch.revanced_twitch_debug_summary_off">لاگ عیب غیرفعال است</string>
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<string name="revanced_sb_general">عمومی</string>
<string name="revanced_sb_settings_copy">رونوشت‌</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_about_title">درباره</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_about_title">درباره</string>
<string name="revanced_twitch_debug_title">گزارش عیب</string>
<string name="revanced_twitch_debug_summary_on">لاگ عیب فعال است</string>
<string name="revanced_twitch_debug_summary_off">لاگ عیب غیرفعال است</string>
</patch>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,294 +17,223 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="shared.misc.fix.playback.spoofVideoStreamsPatch.revanced_spoof_video_streams_screen_summary">प्लेबैक समस्याओं को रोकने के लिए क्लाइंट वीडियो स्ट्रीम को स्पूफ करें</string>
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_summary">प्लेबैक समस्याओं को रोकने के लिए क्लाइंट वीडियो स्ट्रीम को स्पूफ करें</string>
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,295 +17,224 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_failed_title">Provjere nisu uspjele</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_save">Sačuvaj</string>
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Provjere nisu uspjele</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_save">Sačuvaj</string>
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,308 +17,237 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_failed_title">ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_dialog_open_official_source_button">ಅಧಿಕೃತ ಜಾಲತಾಣ ತೆರೆಯಿರಿ</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_dialog_ignore_button">ನಿರ್ಲಕ್ಷಿಸು</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_failed_message">&lt;h5&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನೀವು ಪ್ಯಾಚ್ ಮಾಡಿದಂತೆ ಕಾಣುತ್ತಿಲ್ಲ.&lt;/h5&gt;&lt;br&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು, &lt;b&gt; ಹಾಗು ಉಪಯೋಗಿಸಲು ಹಾನಿಕಾರಕ ಅಥವಾ ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು&lt;/b&gt;.&lt;br&gt;&lt;br&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಮೊದಲೇ ಪ್ಯಾಚ್ ಆಗಿದೆ ಅಥವಾ ಬೇರೆಯವರಿಂದ ಪಡೆದದ್ದು ಎಂದು ಈ ಪರಿಶೀಲನೆಗಳು ಸೂಚಿಸುತ್ತವೆ:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;ನೀವು ದೃಢೀಕೃತ ಮತ್ತು ಸುರಕ್ಷಿತ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು &lt;b&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ ಮತ್ತು ನೀವೇ ಪ್ಯಾಚ್ ಮಾಡಿ&lt;/b&gt; ಎಂದು ಬಲವಾಗಿ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.&lt;p&gt;&lt;br&gt;ನಿರ್ಲಕ್ಷಿಸಿದರೆ, ಈ ಎಚ್ಚರಿಕೆಯನ್ನು ಎರಡು ಬಾರಿ ಮಾತ್ರ ತೋರಿಸಲಾಗುತ್ತದೆ.</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_same_patching_device">ಬೇರೆ ಸಾಧನದಲ್ಲಿ ಪ್ಯಾಚ್ ಮಾಡಲಾಗಿದೆ</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_manager_not_expected_installer">ReVanced Manager ನಿಂದ ಸ್ಥಾಪಿಸಿದ್ದಲ್ಲ</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time">10 ನಿಮಿಷಗಳಿಗಿಂತ ಮುಂಚೆ ಪ್ಯಾಚ್ ಮಾಡಲಾಗಿದೆ</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time_days">%s ದಿನಗಳ ಹಿಂದೆ ಪ್ಯಾಚ್ ಮಾಡಲಾಗಿದೆ</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time_invalid">APK ನಿರ್ಮಾಣ ದಿನಾಂಕವು ಭ್ರಷ್ಟಗೊಂಡಿದೆ</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_submenu_title">ಸಂಯೋಜನೆಗಳು</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_confirm_user_dialog_title">ನೀವು ಮುಂದುವರಿಯಲು ಖಚಿತವಾಗಿ ಬಯಸುತ್ತೀರಾ?</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_reset">ಮರುಹೊಂದಿಸಿ</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_reset_color">ಬಣ್ಣ ಮರುಹೊಂದಿಸಿ</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_color_invalid">ಅಮಾನ್ಯ ಬಣ್ಣ</string>
<string name="shared.misc.settings.settingsResourcePatch.revanced_settings_restart_title">ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ</string>
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ</string>
<string name="revanced_check_environment_dialog_open_official_source_button">ಅಧಿಕೃತ ಜಾಲತಾಣ ತೆರೆಯಿರಿ</string>
<string name="revanced_check_environment_dialog_ignore_button">ನಿರ್ಲಕ್ಷಿಸು</string>
<string name="revanced_check_environment_failed_message">&lt;h5&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನೀವು ಪ್ಯಾಚ್ ಮಾಡಿದಂತೆ ಕಾಣುತ್ತಿಲ್ಲ.&lt;/h5&gt;&lt;br&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು, &lt;b&gt; ಹಾಗು ಉಪಯೋಗಿಸಲು ಹಾನಿಕಾರಕ ಅಥವಾ ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು&lt;/b&gt;.&lt;br&gt;&lt;br&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಮೊದಲೇ ಪ್ಯಾಚ್ ಆಗಿದೆ ಅಥವಾ ಬೇರೆಯವರಿಂದ ಪಡೆದದ್ದು ಎಂದು ಈ ಪರಿಶೀಲನೆಗಳು ಸೂಚಿಸುತ್ತವೆ:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;ನೀವು ದೃಢೀಕೃತ ಮತ್ತು ಸುರಕ್ಷಿತ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು &lt;b&gt;ಈ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ ಮತ್ತು ನೀವೇ ಪ್ಯಾಚ್ ಮಾಡಿ&lt;/b&gt; ಎಂದು ಬಲವಾಗಿ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.&lt;p&gt;&lt;br&gt;ನಿರ್ಲಕ್ಷಿಸಿದರೆ, ಈ ಎಚ್ಚರಿಕೆಯನ್ನು ಎರಡು ಬಾರಿ ಮಾತ್ರ ತೋರಿಸಲಾಗುತ್ತದೆ.</string>
<string name="revanced_check_environment_not_same_patching_device">ಬೇರೆ ಸಾಧನದಲ್ಲಿ ಪ್ಯಾಚ್ ಮಾಡಲಾಗಿದೆ</string>
<string name="revanced_check_environment_manager_not_expected_installer">ReVanced Manager ನಿಂದ ಸ್ಥಾಪಿಸಿದ್ದಲ್ಲ</string>
<string name="revanced_check_environment_not_near_patch_time">10 ನಿಮಿಷಗಳಿಗಿಂತ ಮುಂಚೆ ಪ್ಯಾಚ್ ಮಾಡಲಾಗಿದೆ</string>
<string name="revanced_check_environment_not_near_patch_time_days">%s ದಿನಗಳ ಹಿಂದೆ ಪ್ಯಾಚ್ ಮಾಡಲಾಗಿದೆ</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">APK ನಿರ್ಮಾಣ ದಿನಾಂಕವು ಭ್ರಷ್ಟಗೊಂಡಿದೆ</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_submenu_title">ಸಂಯೋಜನೆಗಳು</string>
<string name="revanced_settings_confirm_user_dialog_title">ನೀವು ಮುಂದುವರಿಯಲು ಖಚಿತವಾಗಿ ಬಯಸುತ್ತೀರಾ?</string>
<string name="revanced_settings_reset">ಮರುಹೊಂದಿಸಿ</string>
<string name="revanced_settings_reset_color">ಬಣ್ಣ ಮರುಹೊಂದಿಸಿ</string>
<string name="revanced_settings_color_invalid">ಅಮಾನ್ಯ ಬಣ್ಣ</string>
<string name="revanced_settings_restart_title">ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ</string>
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,294 +17,223 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="youtube.misc.announcements.announcementsPatch.revanced_announcements_dialog_dismiss">Melepaskan</string>
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_dialog_dismiss">Melepaskan</string>
</patch>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,295 +17,224 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_manager_not_expected_installer">ReVanced Manager द्वारा स्थापित छैन</string>
<string name="shared.misc.checks.checkEnvironmentPatch.revanced_check_environment_not_near_patch_time_invalid">APK निर्माण मिति खराब भएको छ</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_manager_not_expected_installer">ReVanced Manager द्वारा स्थापित छैन</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">APK निर्माण मिति खराब भएको छ</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

View file

@ -17,293 +17,221 @@
<string name="summary_key">"First 'item' text
Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
--><resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch"/>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch"/>
<patch id="misc.settings.settingsResourcePatch">
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
</patch>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="misc.privacy.sanitizeSharingLinksPatch">
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch"/>
<patch id="misc.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
</patch>
<patch id="misc.debugging.enableDebuggingPatch"/>
<patch id="misc.privacy.sanitizeSharingLinksPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch"/>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch"/>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
<!-- 'Community' should be translated with the same localized wording that YouTube displays. -->
<!-- 'For You' should be translated using the same localized wording YouTube displays. -->
<!-- 'Join' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Store' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Subscribe' should be translated with the same localized wording that YouTube displays. -->
<!-- Translations should lanaguge similar to revanced_hide_upload_time_user_dialog_message -->
<!-- Translations should lanaguge similar to revanced_hide_view_count_user_dialog_message -->
<!-- For localization, it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc.) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="ad.getpremium.hideGetPremiumPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch"/>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch"/>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch"/>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch"/>
<patch id="interaction.downloads.downloadsResourcePatch">
<!-- 'Download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title'. -->
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch"/>
<patch id="interaction.seekbar.enableSeekbarTappingPatch"/>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch"/>
<patch id="layout.autocaptions.autoCaptionsPatch"/>
<patch id="layout.buttons.action.hideButtonsPatch">
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged-in user. -->
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Create' has no display name. Translate normally. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'.
'Android No SDK' must be kept untranslated. -->
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch">
</patch>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
</patch>
<patch id="layout.startpage.changeStartPagePatch">
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
</patch>
<patch id="misc.loopvideo.loopVideoPatch">
</patch>
<patch id="misc.loopvideo.button.loopVideoButtonPatch">
</patch>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch">
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
</patch>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch">
</patch>
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
</patch>
<patch id="misc.links.openLinksExternallyPatch">
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
</patch>
<patch id="video.codecs.disableVideoCodecsPatch">
</patch>
<patch id="video.quality.advancedVideoQualityMenuPatch">
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">
</patch>
<patch id="interaction.permanentrepeat.permanentRepeatPatch">
</patch>
<patch id="layout.buttons.hideButtons">
</patch>
<patch id="layout.compactheader.hideCategoryBar">
</patch>
<patch id="layout.miniplayercolor.changeMiniplayerColor">
</patch>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch">
</patch>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch">
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
</patch>
<patch id="ad.video.videoAdsPatch">
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
</patch>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
</patch>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
</app>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<!-- This button does not display any text, but 'Captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title'. -->
</patch>
<patch id="layout.hide.endscreencards.hideEndScreenCardsResourcePatch"/>
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch"/>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch"/>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch"/>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'Join' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Share' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'Remix' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch"/>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch"/>
<patch id="layout.hide.time.hideTimestampPatch"/>
<patch id="layout.panels.popup.playerPopupPanelsPatch"/>
<patch id="layout.player.fullscreen.exitFullscreenPatch"/>
<patch id="layout.player.fullscreen.openVideosFullscreen"/>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch"/>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Video likes have been set to hidden by the video uploader. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch"/>
<patch id="layout.seekbar.seekbarThumbnailsPatch"/>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch"/>
<patch id="layout.spoofappversion.spoofAppVersionPatch"/>
<patch id="layout.startpage.changeStartPagePatch"/>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch"/>
<patch id="layout.shortsplayer.shortsPlayerTypePatch"/>
<patch id="layout.shortsautoplay.shortsAutoplayPatch"/>
<patch id="layout.miniplayer.miniplayerPatch"/>
<patch id="layout.theme.themePatch"/>
<patch id="layout.branding.customBrandingPatch"/>
<patch id="layout.branding.changeHeaderPatch">
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch"/>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch"/>
<patch id="misc.loopvideo.loopVideoPatch"/>
<patch id="misc.loopvideo.button.loopVideoButtonPatch"/>
<patch id="misc.audiofocus.pauseOnAudioInterruptPatch"/>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch"/>
<patch id="misc.hapticfeedback.disableHapticFeedbackPatch"/>
<patch id="misc.gms.accountCredentialsInvalidTextPatch"/>
<patch id="misc.links.bypassURLRedirectsPatch"/>
<patch id="misc.links.openLinksExternallyPatch"/>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch"/>
<patch id="video.quality.button.videoQualityDialogButtonPatch"/>
<patch id="video.speed.custom.customPlaybackSpeedPatch"/>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch"/>
<patch id="video.codecs.disableVideoCodecsPatch"/>
<patch id="video.quality.advancedVideoQualityMenuPatch"/>
<patch id="interaction.seekbar.enableSlideToSeekPatch"/>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch"/>
<patch id="misc.settings.settingsPatch"/>
<patch id="ad.video.hideVideoAdsPatch"/>
<patch id="interaction.permanentrepeat.permanentRepeatPatch"/>
<patch id="layout.buttons.hideButtons"/>
<patch id="layout.compactheader.hideCategoryBar"/>
<patch id="layout.miniplayercolor.changeMiniplayerColor"/>
<patch id="layout.navigationbar.navigationBarPatch">
<!-- 'Home' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Samples' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Explore' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Library' should be translated using the same localized wording YouTube Music displays for the tab. -->
<!-- 'Upgrade' should be translated using the same localized wording YouTube Music displays for the tab. -->
</patch>
<patch id="layout.premium.hideGetPremiumPatch"/>
<patch id="layout.upgradebutton.hideUpgradeButtonPatch"/>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch"/>
<patch id="ad.embedded.embeddedAdsPatch"/>
<patch id="ad.video.videoAdsPatch"/>
<patch id="chat.antidelete.showDeletedMessagesPatch"/>
<patch id="chat.autoclaim.autoClaimChannelPointsPatch"/>
<patch id="debug.debugModePatch">
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title'. -->
</patch>
<patch id="misc.settings.settingsPatch"/>
</app>
</resources>

Some files were not shown because too many files have changed in this diff Show more