mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-15 23:33:57 +00:00
Compare commits
21 Commits
v5.24.0-de
...
v5.25.0-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86e8e61ab2 | ||
|
|
e286dab74e | ||
|
|
712a82439f | ||
|
|
4449546c85 | ||
|
|
8d61ba90c3 | ||
|
|
689be79f71 | ||
|
|
b6047fa6b3 | ||
|
|
82bbd603ac | ||
|
|
bc0c3c452d | ||
|
|
fe864d8331 | ||
|
|
4f686935c3 | ||
|
|
798596fd83 | ||
|
|
38b37f182a | ||
|
|
52b9dc5c9f | ||
|
|
dea7108c45 | ||
|
|
24b4579cb9 | ||
|
|
0b52f3d192 | ||
|
|
18c374a81e | ||
|
|
092303e431 | ||
|
|
6bf5bf9d45 | ||
|
|
b2b09a2025 |
6
.github/workflows/build_pull_request.yml
vendored
6
.github/workflows/build_pull_request.yml
vendored
@@ -19,11 +19,11 @@ jobs:
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: "temurin"
|
||||
java-version: "17"
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Cache Gradle
|
||||
uses: burrunan/gradle-cache-action@v1
|
||||
uses: burrunan/gradle-cache-action@v3
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
|
||||
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@@ -13,24 +13,23 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
id-token: write
|
||||
attestations: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# Make sure the release step uses its own credentials:
|
||||
# https://github.com/cycjimmy/semantic-release-action#private-packages
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: "temurin"
|
||||
java-version: "17"
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Cache Gradle
|
||||
uses: burrunan/gradle-cache-action@v1
|
||||
uses: burrunan/gradle-cache-action@v3
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
@@ -40,7 +39,7 @@ jobs:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "lts/*"
|
||||
node-version: 'lts/*'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install dependencies
|
||||
@@ -54,6 +53,14 @@ jobs:
|
||||
fingerprint: ${{ vars.GPG_FINGERPRINT }}
|
||||
|
||||
- name: Release
|
||||
uses: cycjimmy/semantic-release-action@v4
|
||||
id: release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: npm exec semantic-release
|
||||
|
||||
- name: Attest
|
||||
if: steps.release.outputs.new_release_published == 'true'
|
||||
uses: actions/attest-build-provenance@v2
|
||||
with:
|
||||
subject-name: 'ReVanced Patches ${{ steps.release.outputs.new_release_git_tag }}'
|
||||
subject-path: patches/build/libs/patches-*.rvp
|
||||
|
||||
10
.releaserc
10
.releaserc
@@ -22,7 +22,7 @@
|
||||
{
|
||||
"assets": [
|
||||
"CHANGELOG.md",
|
||||
"gradle.properties",
|
||||
"gradle.properties"
|
||||
],
|
||||
"message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
||||
}
|
||||
@@ -33,16 +33,16 @@
|
||||
"assets": [
|
||||
{
|
||||
"path": "patches/build/libs/patches-!(*sources*|*javadoc*).rvp?(.asc)"
|
||||
},
|
||||
}
|
||||
],
|
||||
successComment: false
|
||||
"successComment": false
|
||||
}
|
||||
],
|
||||
[
|
||||
"@saithodev/semantic-release-backmerge",
|
||||
{
|
||||
backmergeBranches: [{"from": "main", "to": "dev"}],
|
||||
clearWorkspace: true
|
||||
"backmergeBranches": [{"from": "main", "to": "dev"}],
|
||||
"clearWorkspace": true
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
71
CHANGELOG.md
71
CHANGELOG.md
@@ -1,3 +1,74 @@
|
||||
# [5.25.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.25.0-dev.5...v5.25.0-dev.6) (2025-05-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Yuka - Unlock premium:** Remove broken patch that is no longer supported ([#5018](https://github.com/ReVanced/revanced-patches/issues/5018)) ([fac6e59](https://github.com/ReVanced/revanced-patches/commit/fac6e59d281e21e57abdcfc899cd1aeb18e5c2b8))
|
||||
|
||||
# [5.25.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.25.0-dev.4...v5.25.0-dev.5) (2025-05-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube:** Better handle incorrect duplicate translations ([20abac5](https://github.com/ReVanced/revanced-patches/commit/20abac52121fbecb65d87d0982f3380e1cf4e20e))
|
||||
|
||||
# [5.25.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.25.0-dev.3...v5.25.0-dev.4) (2025-05-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - GmsCore support:** Restore patch functionality from prior merge ([7686bbe](https://github.com/ReVanced/revanced-patches/commit/7686bbe975644e1e582fa52f166879da5694ed93))
|
||||
|
||||
# [5.25.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.25.0-dev.2...v5.25.0-dev.3) (2025-05-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - Hide ads:** Hide new type of general ad ([#5004](https://github.com/ReVanced/revanced-patches/issues/5004)) ([37e59d2](https://github.com/ReVanced/revanced-patches/commit/37e59d2771528c631dc13e73dac095fec95c6485))
|
||||
|
||||
# [5.25.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.25.0-dev.1...v5.25.0-dev.2) (2025-05-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Disable Pairip license check:** Change patch to default off ([74b6a94](https://github.com/ReVanced/revanced-patches/commit/74b6a94577ac3f73b04bd0cce98fb7011a6607fd))
|
||||
|
||||
# [5.25.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.24.0...v5.25.0-dev.1) (2025-05-22)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* Add `Disable pairip license check` patch ([#4927](https://github.com/ReVanced/revanced-patches/issues/4927)) ([42d2c27](https://github.com/ReVanced/revanced-patches/commit/42d2c277982ef63e6ad42d85e46f13c3ab50243c))
|
||||
* **Messenger:** Add `Remove Meta AI` patch ([#4945](https://github.com/ReVanced/revanced-patches/issues/4945)) ([012dff7](https://github.com/ReVanced/revanced-patches/commit/012dff7b6511b9e519ccac96f6713cf1a1b327b4))
|
||||
|
||||
# [5.24.0](https://github.com/ReVanced/revanced-patches/compare/v5.23.0...v5.24.0) (2025-05-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Spotify - Fix third party launchers widgets:** Add missing compatibility annotation ([0493f80](https://github.com/ReVanced/revanced-patches/commit/0493f8035b26b90c5f8e42be2e2a5ce73d8685a5))
|
||||
* **YouTube - Hide layout components:** Fix `Hide video recommendation labels` ([#4956](https://github.com/ReVanced/revanced-patches/issues/4956)) ([ae05ac3](https://github.com/ReVanced/revanced-patches/commit/ae05ac38151ebd3197953af97ca0dd847a04cc2d))
|
||||
* **YouTube - Settings:** Correctly show summary text if search box is closed before searching ([d0ae835](https://github.com/ReVanced/revanced-patches/commit/d0ae835d3381fc659c9bb4a2d130d4db8a1499cf))
|
||||
* **YouTube - SponsorBlock:** Fix segment category summary not showing category description ([06934a6](https://github.com/ReVanced/revanced-patches/commit/06934a60d91b40a5cdf7f4cd92deae4a136c149b))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **GmsCore support:** Open vendor specific DontKillMyApp if available ([#4952](https://github.com/ReVanced/revanced-patches/issues/4952)) ([b89927a](https://github.com/ReVanced/revanced-patches/commit/b89927a10e3b909a3c37fbb75c16a7abbce44560))
|
||||
* **NU.nl:** Support version `11.3.0` ([#4925](https://github.com/ReVanced/revanced-patches/issues/4925)) ([bedde60](https://github.com/ReVanced/revanced-patches/commit/bedde60fc1a52b0fd491174b3b5b887435eb621a))
|
||||
* **Spotify:** Add `Fix third party launchers widgets` patch ([#4893](https://github.com/ReVanced/revanced-patches/issues/4893)) ([23bfdc9](https://github.com/ReVanced/revanced-patches/commit/23bfdc98fbbcc8ecf0ffbf8704f58dd2272e4af2))
|
||||
* **YouTube - Hide description components:** Add `Hide Ask` ([#4972](https://github.com/ReVanced/revanced-patches/issues/4972)) ([ebc94a5](https://github.com/ReVanced/revanced-patches/commit/ebc94a5da6214b67399c9c01515689bd4b20547c))
|
||||
* **YouTube - Hide layout components:** Add `Hide ticket shelf` ([#4969](https://github.com/ReVanced/revanced-patches/issues/4969)) ([6436af7](https://github.com/ReVanced/revanced-patches/commit/6436af7e77c77d2034dfceba8bc51132ad7632be))
|
||||
* **YouTube - Hide player components:** Hide related video overlay in fullscreen ([#4938](https://github.com/ReVanced/revanced-patches/issues/4938)) ([ac9be97](https://github.com/ReVanced/revanced-patches/commit/ac9be9760c9965e54df196b227a310d64ead4bf5))
|
||||
* **YouTube - Settings:** Add ability to search in settings ([#4881](https://github.com/ReVanced/revanced-patches/issues/4881)) ([aca8b20](https://github.com/ReVanced/revanced-patches/commit/aca8b207c15f254bcc9ad94bc7dfb895f21d4058))
|
||||
|
||||
# [5.24.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.24.0-dev.8...v5.24.0-dev.9) (2025-05-18)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - SponsorBlock:** Fix segment category summary not showing category description ([06934a6](https://github.com/ReVanced/revanced-patches/commit/06934a60d91b40a5cdf7f4cd92deae4a136c149b))
|
||||
|
||||
# [5.24.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.24.0-dev.7...v5.24.0-dev.8) (2025-05-17)
|
||||
|
||||
|
||||
|
||||
3
extensions/messenger/build.gradle.kts
Normal file
3
extensions/messenger/build.gradle.kts
Normal file
@@ -0,0 +1,3 @@
|
||||
dependencies {
|
||||
compileOnly(project(":extensions:shared:library"))
|
||||
}
|
||||
1
extensions/messenger/src/main/AndroidManifest.xml
Normal file
1
extensions/messenger/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1 @@
|
||||
<manifest/>
|
||||
@@ -0,0 +1,15 @@
|
||||
package app.revanced.extension.messenger.metaai;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class RemoveMetaAIPatch {
|
||||
public static boolean overrideConfigBool(long id, boolean value) {
|
||||
// It seems like all configs starting with 363219 are related to Meta AI.
|
||||
// A list of specific ones that need disabling would probably be better,
|
||||
// but these config numbers seem to change slightly with each update.
|
||||
// These first 6 digits don't though.
|
||||
if (Long.toString(id).startsWith("363219"))
|
||||
return false;
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
package app.revanced.extension.shared;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.*;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.DialogFragment;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
@@ -18,6 +22,7 @@ import android.os.Looper;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.util.Pair;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewParent;
|
||||
@@ -738,9 +743,9 @@ public class Utils {
|
||||
* then the preferences are left unsorted.
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void sortPreferenceGroups(@NonNull PreferenceGroup group) {
|
||||
public static void sortPreferenceGroups(PreferenceGroup group) {
|
||||
Sort groupSort = Sort.fromKey(group.getKey(), Sort.UNSORTED);
|
||||
SortedMap<String, Preference> preferences = new TreeMap<>();
|
||||
List<Pair<String, Preference>> preferences = new ArrayList<>();
|
||||
|
||||
for (int i = 0, prefCount = group.getPreferenceCount(); i < prefCount; i++) {
|
||||
Preference preference = group.getPreference(i);
|
||||
@@ -769,17 +774,21 @@ public class Utils {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
preferences.put(sortValue, preference);
|
||||
preferences.add(new Pair<>(sortValue, preference));
|
||||
}
|
||||
|
||||
Collections.sort(preferences, (pair1, pair2)
|
||||
-> pair1.first.compareToIgnoreCase(pair2.first));
|
||||
|
||||
int index = 0;
|
||||
for (Preference pref : preferences.values()) {
|
||||
for (Pair<String, Preference> pair : preferences) {
|
||||
int order = index++;
|
||||
Preference pref = pair.second;
|
||||
|
||||
// Move any screens, intents, and the one off About preference to the top.
|
||||
if (pref instanceof PreferenceScreen || pref instanceof ReVancedAboutPreference
|
||||
|| pref.getIntent() != null) {
|
||||
// Arbitrary high number.
|
||||
// Any arbitrary large number.
|
||||
order -= 1000;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,9 +6,8 @@ import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.SortedMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import app.revanced.extension.shared.Utils;
|
||||
|
||||
@@ -46,17 +45,24 @@ public class SortedListPreference extends ListPreference {
|
||||
}
|
||||
|
||||
List<Pair<CharSequence, CharSequence>> firstEntries = new ArrayList<>(firstEntriesToPreserve);
|
||||
SortedMap<String, Pair<CharSequence, CharSequence>> lastEntries = new TreeMap<>();
|
||||
|
||||
// Android does not have a triple class like Kotlin, So instead use a nested pair.
|
||||
// Cannot easily use a SortedMap, because if two entries incorrectly have
|
||||
// identical names then the duplicates entries are not preserved.
|
||||
List<Pair<String, Pair<CharSequence, CharSequence>>> lastEntries = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < entrySize; i++) {
|
||||
Pair<CharSequence, CharSequence> pair = new Pair<>(entries[i], entryValues[i]);
|
||||
if (i < firstEntriesToPreserve) {
|
||||
firstEntries.add(pair);
|
||||
} else {
|
||||
lastEntries.put(Utils.removePunctuationToLowercase(pair.first), pair);
|
||||
lastEntries.add(new Pair<>(Utils.removePunctuationToLowercase(pair.first), pair));
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(lastEntries, (pair1, pair2)
|
||||
-> pair1.first.compareToIgnoreCase(pair2.first));
|
||||
|
||||
CharSequence[] sortedEntries = new CharSequence[entrySize];
|
||||
CharSequence[] sortedEntryValues = new CharSequence[entrySize];
|
||||
|
||||
@@ -67,9 +73,10 @@ public class SortedListPreference extends ListPreference {
|
||||
i++;
|
||||
}
|
||||
|
||||
for (Pair<CharSequence, CharSequence> pair : lastEntries.values()) {
|
||||
sortedEntries[i] = pair.first;
|
||||
sortedEntryValues[i] = pair.second;
|
||||
for (Pair<String, Pair<CharSequence, CharSequence>> outer : lastEntries) {
|
||||
Pair<CharSequence, CharSequence> inner = outer.second;
|
||||
sortedEntries[i] = inner.first;
|
||||
sortedEntryValues[i] = inner.second;
|
||||
i++;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,48 +64,45 @@ public final class AdsFilter extends Filter {
|
||||
"_interstitial"
|
||||
);
|
||||
|
||||
final var buttonedAd = new StringFilterGroup(
|
||||
Settings.HIDE_BUTTONED_ADS,
|
||||
"_ad_with",
|
||||
"_buttoned_layout",
|
||||
// text_image_button_group_layout, landscape_image_button_group_layout, full_width_square_image_button_group_layout
|
||||
"image_button_group_layout",
|
||||
"full_width_square_image_layout",
|
||||
"video_display_button_group_layout",
|
||||
"landscape_image_wide_button_layout",
|
||||
"video_display_carousel_button_group_layout",
|
||||
"video_display_full_buttoned_short_dr_layout",
|
||||
"compact_landscape_image_layout", // Tablet layout search results.
|
||||
"text_image_no_button_layout" // Tablet layout search results.
|
||||
);
|
||||
|
||||
final var generalAds = new StringFilterGroup(
|
||||
Settings.HIDE_GENERAL_ADS,
|
||||
"_ad_with",
|
||||
"_buttoned_layout",
|
||||
"ads_video_with_context",
|
||||
"banner_text_icon",
|
||||
"square_image_layout",
|
||||
"watch_metadata_app_promo",
|
||||
"video_display_full_layout",
|
||||
"hero_promo_image",
|
||||
"statement_banner",
|
||||
"brand_video_shelf",
|
||||
"brand_video_singleton",
|
||||
"carousel_footered_layout",
|
||||
"text_image_button_layout",
|
||||
"carousel_headered_layout",
|
||||
"compact_landscape_image_layout", // Tablet layout search results.
|
||||
"composite_concurrent_carousel_layout",
|
||||
"full_width_portrait_image_layout",
|
||||
"full_width_square_image_carousel_layout",
|
||||
"full_width_square_image_layout",
|
||||
"hero_promo_image",
|
||||
// text_image_button_group_layout, landscape_image_button_group_layout, full_width_square_image_button_group_layout
|
||||
"image_button_group_layout",
|
||||
"landscape_image_wide_button_layout",
|
||||
"primetime_promo",
|
||||
"product_details",
|
||||
"composite_concurrent_carousel_layout",
|
||||
"carousel_headered_layout",
|
||||
"full_width_portrait_image_layout",
|
||||
"brand_video_shelf",
|
||||
"brand_video_singleton"
|
||||
"square_image_layout",
|
||||
"statement_banner",
|
||||
"text_image_button_layout",
|
||||
"text_image_no_button_layout", // Tablet layout search results.
|
||||
"video_display_button_group_layout",
|
||||
"video_display_carousel_button_group_layout",
|
||||
"video_display_full_buttoned_short_dr_layout",
|
||||
"video_display_full_layout",
|
||||
"watch_metadata_app_promo"
|
||||
);
|
||||
|
||||
final var movieAds = new StringFilterGroup(
|
||||
Settings.HIDE_MOVIES_SECTION,
|
||||
"browsy_bar",
|
||||
"compact_movie",
|
||||
"compact_tvfilm_item",
|
||||
"horizontal_movie_shelf",
|
||||
"movie_and_show_upsell_card",
|
||||
"compact_tvfilm_item",
|
||||
"offer_module_root"
|
||||
);
|
||||
|
||||
@@ -160,7 +157,6 @@ public final class AdsFilter extends Filter {
|
||||
|
||||
addPathCallbacks(
|
||||
generalAds,
|
||||
buttonedAd,
|
||||
merchandise,
|
||||
viewProducts,
|
||||
selfSponsor,
|
||||
@@ -181,17 +177,19 @@ public final class AdsFilter extends Filter {
|
||||
}
|
||||
|
||||
// Check for the index because of likelihood of false positives.
|
||||
if (matchedGroup == shoppingLinks && contentIndex != 0) {
|
||||
if (contentIndex != 0 && matchedGroup == shoppingLinks) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (exceptions.matches(path))
|
||||
if (exceptions.matches(path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (matchedGroup == fullscreenAd) {
|
||||
if (path.contains("|ImageType|")) closeFullscreenAd();
|
||||
|
||||
return false; // Do not actually filter the fullscreen ad otherwise it will leave a dimmed screen.
|
||||
// Do not actually filter the fullscreen ad otherwise it will leave a dimmed screen.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (matchedGroup == channelProfile) {
|
||||
|
||||
@@ -68,7 +68,6 @@ public class Settings extends BaseSettings {
|
||||
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, new ForceOriginalAudioAvailability());
|
||||
|
||||
// Ads
|
||||
public static final BooleanSetting HIDE_BUTTONED_ADS = new BooleanSetting("revanced_hide_buttoned_ads", TRUE);
|
||||
public static final BooleanSetting HIDE_END_SCREEN_STORE_BANNER = new BooleanSetting("revanced_hide_end_screen_store_banner", TRUE, true);
|
||||
public static final BooleanSetting HIDE_FULLSCREEN_ADS = new BooleanSetting("revanced_hide_fullscreen_ads", TRUE);
|
||||
public static final BooleanSetting HIDE_GENERAL_ADS = new BooleanSetting("revanced_hide_general_ads", TRUE);
|
||||
|
||||
@@ -53,7 +53,7 @@ public class SegmentCategoryListPreference extends ListPreference {
|
||||
setEntryValues(isHighlightCategory
|
||||
? CategoryBehaviour.getBehaviorKeyValuesWithoutSkipOnce()
|
||||
: CategoryBehaviour.getBehaviorKeyValues());
|
||||
setSummary(category.description.toString());
|
||||
super.setSummary(category.description.toString());
|
||||
|
||||
updateUI();
|
||||
}
|
||||
@@ -268,4 +268,13 @@ public class SegmentCategoryListPreference extends ListPreference {
|
||||
private void updateOpacityText() {
|
||||
opacityEditText.setText(String.format(Locale.US, "%.2f", categoryOpacity));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSummary(CharSequence summary) {
|
||||
// Ignore calls to set the summary.
|
||||
// Summary is always the description of the category.
|
||||
//
|
||||
// This is required otherwise the ReVanced preference fragment
|
||||
// sets all ListPreference summaries to show the current selection.
|
||||
}
|
||||
}
|
||||
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
|
||||
org.gradle.parallel = true
|
||||
android.useAndroidX = true
|
||||
kotlin.code.style = official
|
||||
version = 5.24.0-dev.8
|
||||
version = 5.25.0-dev.6
|
||||
|
||||
@@ -284,6 +284,14 @@ public final class app/revanced/patches/messenger/inputfield/DisableTypingIndica
|
||||
public static final fun getDisableTypingIndicatorPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/messenger/metaai/RemoveMetaAIPatchKt {
|
||||
public static final fun getRemoveMetaAIPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/messenger/misc/extension/ExtensionPatchKt {
|
||||
public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/messenger/navbar/RemoveMetaAITabPatchKt {
|
||||
public static final fun getRemoveMetaAITabPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
@@ -652,6 +660,10 @@ public final class app/revanced/patches/shared/misc/mapping/ResourceMappingPatch
|
||||
public static final fun getResourceMappings ()Ljava/util/List;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/shared/misc/pairip/license/DisableLicenseCheckPatchKt {
|
||||
public static final fun getDisableLicenseCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/shared/misc/settings/SettingsPatchKt {
|
||||
public static final fun settingsPatch (Ljava/util/List;Ljava/util/Set;)Lapp/revanced/patcher/patch/ResourcePatch;
|
||||
public static final fun settingsPatch (Lkotlin/Pair;Ljava/util/Set;)Lapp/revanced/patcher/patch/ResourcePatch;
|
||||
@@ -1615,8 +1627,23 @@ public final class app/revanced/util/BytecodeUtilsKt {
|
||||
public static final fun indexOfFirstResourceIdOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I
|
||||
public static final fun injectHideViewCall (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;IILjava/lang/String;Ljava/lang/String;)V
|
||||
public static final fun literal (Lapp/revanced/patcher/FingerprintBuilder;Lkotlin/jvm/functions/Function0;)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;B)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;C)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;D)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;F)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;I)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;J)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;S)V
|
||||
public static final fun returnEarly (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Z)V
|
||||
public static synthetic fun returnEarly$default (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;ZILjava/lang/Object;)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;B)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;C)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;D)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;F)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;I)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;J)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;S)V
|
||||
public static final fun returnLate (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Z)V
|
||||
public static final fun transformMethods (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V
|
||||
public static final fun traverseClassHierarchy (Lapp/revanced/patcher/patch/BytecodePatchContext;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@ val removeShareTargetsPatch = resourcePatch(
|
||||
try {
|
||||
document("res/xml/shortcuts.xml")
|
||||
} catch (_: FileNotFoundException) {
|
||||
return@execute Logger.getLogger(this::class.java.name).warning("The app has no shortcuts")
|
||||
return@execute Logger.getLogger(this::class.java.name).warning(
|
||||
"The app has no shortcuts. No changes applied.")
|
||||
}.use { document ->
|
||||
val rootNode = document.getNode("shortcuts") as? Element ?: return@use
|
||||
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
package app.revanced.patches.angulus.ads
|
||||
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.patches.shared.misc.pairip.license.disableLicenseCheckPatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
val angulusPatch = bytecodePatch(name = "Hide ads") {
|
||||
compatibleWith("com.drinkplusplus.angulus")
|
||||
|
||||
dependsOn(disableLicenseCheckPatch)
|
||||
|
||||
execute {
|
||||
// Always return 0 as the daily measurement count.
|
||||
getDailyMeasurementCountFingerprint.method.returnEarly()
|
||||
getDailyMeasurementCountFingerprint.method.returnEarly(0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package app.revanced.patches.messenger.metaai
|
||||
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getMobileConfigBoolFingerprint = fingerprint {
|
||||
parameters("J")
|
||||
returns("Z")
|
||||
opcodes(Opcode.RETURN)
|
||||
custom { method, classDef ->
|
||||
method.implementation ?: return@custom false // unsure if this is necessary
|
||||
classDef.interfaces.contains("Lcom/facebook/mobileconfig/factory/MobileConfigUnsafeContext;")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package app.revanced.patches.messenger.metaai
|
||||
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.patches.messenger.misc.extension.sharedExtensionPatch
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/messenger/metaai/RemoveMetaAIPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
val removeMetaAIPatch = bytecodePatch(
|
||||
name = "Remove Meta AI",
|
||||
description = "Removes UI elements related to Meta AI."
|
||||
) {
|
||||
compatibleWith("com.facebook.orca")
|
||||
|
||||
dependsOn(sharedExtensionPatch)
|
||||
|
||||
execute {
|
||||
getMobileConfigBoolFingerprint.method.apply {
|
||||
val returnIndex = getMobileConfigBoolFingerprint.patternMatch!!.startIndex
|
||||
val returnRegister = getInstruction<OneRegisterInstruction>(returnIndex).registerA
|
||||
|
||||
addInstructions(
|
||||
returnIndex,
|
||||
"""
|
||||
invoke-static { p1, p2, v$returnRegister }, $EXTENSION_CLASS_DESCRIPTOR->overrideConfigBool(JZ)Z
|
||||
move-result v$returnRegister
|
||||
"""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package app.revanced.patches.messenger.misc.extension
|
||||
|
||||
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
|
||||
|
||||
val sharedExtensionPatch = sharedExtensionPatch("messenger", mainActivityOnCreateHook)
|
||||
@@ -0,0 +1,7 @@
|
||||
package app.revanced.patches.messenger.misc.extension
|
||||
|
||||
import app.revanced.patches.shared.misc.extension.extensionHook
|
||||
|
||||
internal val mainActivityOnCreateHook = extensionHook {
|
||||
strings("MainActivity_onCreate_begin")
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package app.revanced.patches.messenger.navbar
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val createTabConfigurationFingerprint = fingerprint {
|
||||
strings("MessengerTabConfigurationCreator.createTabConfiguration")
|
||||
opcodes(
|
||||
Opcode.INVOKE_DIRECT,
|
||||
Opcode.MOVE_RESULT,
|
||||
Opcode.IF_EQZ,
|
||||
Opcode.INVOKE_DIRECT,
|
||||
Opcode.MOVE_RESULT,
|
||||
Opcode.IF_EQZ,
|
||||
)
|
||||
}
|
||||
@@ -1,25 +1,12 @@
|
||||
package app.revanced.patches.messenger.navbar
|
||||
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import app.revanced.patches.messenger.metaai.removeMetaAIPatch
|
||||
|
||||
@Deprecated("Superseded by removeMetaAIPatch", ReplaceWith("removeMetaAIPatch"))
|
||||
@Suppress("unused")
|
||||
val removeMetaAITabPatch = bytecodePatch(
|
||||
name = "Remove Meta AI tab",
|
||||
description = "Removes the 'Meta AI' tab from the navbar.",
|
||||
) {
|
||||
compatibleWith("com.facebook.orca")
|
||||
|
||||
execute {
|
||||
createTabConfigurationFingerprint.let {
|
||||
val moveResultIndex = it.patternMatch!!.startIndex + 1
|
||||
val enabledRegister = it.method.getInstruction<OneRegisterInstruction>(moveResultIndex).registerA
|
||||
it.method.replaceInstruction(
|
||||
moveResultIndex,
|
||||
"const/4 v$enabledRegister, 0x0"
|
||||
)
|
||||
}
|
||||
}
|
||||
dependsOn(removeMetaAIPatch)
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ fun gmsCoreSupportPatch(
|
||||
|
||||
// Google Play Utility is not present in all apps, so we need to check if it's present.
|
||||
if (googlePlayUtilityFingerprint.methodOrNull != null) {
|
||||
googlePlayUtilityFingerprint.method.returnEarly()
|
||||
googlePlayUtilityFingerprint.method.returnEarly(0)
|
||||
}
|
||||
|
||||
// Verify GmsCore is installed and whitelisted for power optimizations and background usage.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package app.revanced.patches.shared.misc.pairip.license
|
||||
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
import java.util.logging.Logger
|
||||
|
||||
@Suppress("unused")
|
||||
val disableLicenseCheckPatch = bytecodePatch(
|
||||
name = "Disable Pairip license check",
|
||||
description = "Disable Play Integrity Protect (Pairip) client-side license check.",
|
||||
use = false
|
||||
) {
|
||||
|
||||
execute {
|
||||
if (processLicenseResponseFingerprint.methodOrNull == null || validateLicenseResponseFingerprint.methodOrNull == null) {
|
||||
return@execute Logger.getLogger(this::class.java.name)
|
||||
.warning("Could not find Pairip licensing check. No changes applied.")
|
||||
}
|
||||
|
||||
// Set first parameter (responseCode) to 0 (success status).
|
||||
processLicenseResponseFingerprint.method.addInstruction(0, "const/4 p1, 0x0")
|
||||
|
||||
// Short-circuit the license response validation.
|
||||
validateLicenseResponseFingerprint.method.returnEarly()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package app.revanced.patches.shared.misc.pairip.license
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val processLicenseResponseFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
classDef.type == "Lcom/pairip/licensecheck/LicenseClient;" &&
|
||||
method.name == "processResponse"
|
||||
}
|
||||
}
|
||||
|
||||
internal val validateLicenseResponseFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
classDef.type == "Lcom/pairip/licensecheck/ResponseValidator;" &&
|
||||
method.name == "validateResponse"
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,6 @@ private val hideAdsResourcePatch = resourcePatch {
|
||||
SwitchPreference("revanced_hide_general_ads"),
|
||||
SwitchPreference("revanced_hide_end_screen_store_banner"),
|
||||
SwitchPreference("revanced_hide_fullscreen_ads"),
|
||||
SwitchPreference("revanced_hide_buttoned_ads"),
|
||||
SwitchPreference("revanced_hide_paid_promotion_label"),
|
||||
SwitchPreference("revanced_hide_player_store_shelf"),
|
||||
SwitchPreference("revanced_hide_self_sponsor_ads"),
|
||||
|
||||
@@ -3,10 +3,10 @@ package app.revanced.patches.yuka.misc.unlockpremium
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
|
||||
@Deprecated("This patch no longer works and will be removed in the future.")
|
||||
@Suppress("unused")
|
||||
val unlockPremiumPatch = bytecodePatch(
|
||||
name = "Unlock premium",
|
||||
) {
|
||||
val unlockPremiumPatch = bytecodePatch {
|
||||
|
||||
compatibleWith("io.yuka.android"("4.29"))
|
||||
|
||||
execute {
|
||||
|
||||
@@ -133,6 +133,7 @@ internal val Instruction.registersUsed: List<Int>
|
||||
else -> listOf(registerC, registerD, registerE, registerF, registerG)
|
||||
}
|
||||
}
|
||||
|
||||
is ThreeRegisterInstruction -> listOf(registerA, registerB, registerC)
|
||||
is TwoRegisterInstruction -> listOf(registerA, registerB)
|
||||
is OneRegisterInstruction -> listOf(registerA)
|
||||
@@ -170,7 +171,7 @@ internal val Instruction.isReturnInstruction: Boolean
|
||||
/**
|
||||
* Adds public [AccessFlags] and removes private and protected flags (if present).
|
||||
*/
|
||||
internal fun Int.toPublicAccessFlags() : Int {
|
||||
internal fun Int.toPublicAccessFlags(): Int {
|
||||
return this.or(AccessFlags.PUBLIC.value)
|
||||
.and(AccessFlags.PROTECTED.value.inv())
|
||||
.and(AccessFlags.PRIVATE.value.inv())
|
||||
@@ -489,9 +490,10 @@ fun Method.indexOfFirstInstruction(targetOpcode: Opcode): Int = indexOfFirstInst
|
||||
* @return The index of the first opcode specified, or -1 if not found.
|
||||
* @see indexOfFirstInstructionOrThrow
|
||||
*/
|
||||
fun Method.indexOfFirstInstruction(startIndex: Int = 0, targetOpcode: Opcode): Int = indexOfFirstInstruction(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
fun Method.indexOfFirstInstruction(startIndex: Int = 0, targetOpcode: Opcode): Int =
|
||||
indexOfFirstInstruction(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of the first [Instruction] that matches the predicate, starting from [startIndex].
|
||||
@@ -526,9 +528,10 @@ fun Method.indexOfFirstInstructionOrThrow(targetOpcode: Opcode): Int = indexOfFi
|
||||
* @throws PatchException
|
||||
* @see indexOfFirstInstruction
|
||||
*/
|
||||
fun Method.indexOfFirstInstructionOrThrow(startIndex: Int = 0, targetOpcode: Opcode): Int = indexOfFirstInstructionOrThrow(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
fun Method.indexOfFirstInstructionOrThrow(startIndex: Int = 0, targetOpcode: Opcode): Int =
|
||||
indexOfFirstInstructionOrThrow(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of the first [Instruction] that matches the predicate, starting from [startIndex].
|
||||
@@ -554,9 +557,10 @@ fun Method.indexOfFirstInstructionOrThrow(startIndex: Int = 0, filter: Instructi
|
||||
* @return -1 if the instruction is not found.
|
||||
* @see indexOfFirstInstructionReversedOrThrow
|
||||
*/
|
||||
fun Method.indexOfFirstInstructionReversed(startIndex: Int? = null, targetOpcode: Opcode): Int = indexOfFirstInstructionReversed(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
fun Method.indexOfFirstInstructionReversed(startIndex: Int? = null, targetOpcode: Opcode): Int =
|
||||
indexOfFirstInstructionReversed(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of matching instruction,
|
||||
@@ -593,9 +597,10 @@ fun Method.indexOfFirstInstructionReversed(targetOpcode: Opcode): Int = indexOfF
|
||||
* @return The index of the instruction.
|
||||
* @see indexOfFirstInstructionReversed
|
||||
*/
|
||||
fun Method.indexOfFirstInstructionReversedOrThrow(startIndex: Int? = null, targetOpcode: Opcode): Int = indexOfFirstInstructionReversedOrThrow(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
fun Method.indexOfFirstInstructionReversedOrThrow(startIndex: Int? = null, targetOpcode: Opcode): Int =
|
||||
indexOfFirstInstructionReversedOrThrow(startIndex) {
|
||||
opcode == targetOpcode
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of matching instruction,
|
||||
@@ -652,7 +657,8 @@ fun Method.findInstructionIndicesReversedOrThrow(filter: Instruction.() -> Boole
|
||||
* _Returns an empty list if no indices are found_
|
||||
* @see findInstructionIndicesReversedOrThrow
|
||||
*/
|
||||
fun Method.findInstructionIndicesReversed(opcode: Opcode): List<Int> = findInstructionIndicesReversed { this.opcode == opcode }
|
||||
fun Method.findInstructionIndicesReversed(opcode: Opcode): List<Int> =
|
||||
findInstructionIndicesReversed { this.opcode == opcode }
|
||||
|
||||
/**
|
||||
* @return An immutable list of indices of the opcode in reverse order.
|
||||
@@ -726,43 +732,222 @@ fun BytecodePatchContext.forEachLiteralValueInstruction(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(overrideValue: Boolean = false) = overrideReturnValue(overrideValue, false)
|
||||
private const val RETURN_TYPE_MISMATCH = "Mismatch between override type and Method return type"
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant value.
|
||||
* Overrides the first instruction of a method with a constant `Boolean` return value.
|
||||
* None of the method code will ever execute.
|
||||
*
|
||||
* For methods that return an object or any array type, calling this method with `false`
|
||||
* will force the method to return a `null` value.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Boolean = false) {
|
||||
val returnType = returnType.first()
|
||||
check(returnType == 'Z' || (!value && (returnType in setOf('V', 'L', '[')))) { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toHexString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Byte` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Byte) {
|
||||
check(returnType.first() == 'B') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Short` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Short) {
|
||||
check(returnType.first() == 'S') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Char` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Char) {
|
||||
check(returnType.first() == 'C') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.code.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Int` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Int) {
|
||||
check(returnType.first() == 'I') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Long` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Long) {
|
||||
check(returnType.first() == 'J') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Float` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Float) {
|
||||
check(returnType.first() == 'F') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the first instruction of a method with a constant `Double` return value.
|
||||
* None of the method code will ever execute.
|
||||
*/
|
||||
fun MutableMethod.returnEarly(value: Double) {
|
||||
check(returnType.first() == 'J') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Boolean` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* For methods that return an object or any array type, calling this method with `false`
|
||||
* will force the method to return a `null` value.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Boolean) {
|
||||
val returnType = returnType.first()
|
||||
if (returnType == 'V') {
|
||||
error("Cannot return late for Method of void type")
|
||||
}
|
||||
check(returnType == 'Z' || (!value && returnType in setOf('L', '['))) { RETURN_TYPE_MISMATCH }
|
||||
|
||||
overrideReturnValue(value.toHexString(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Byte` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
internal fun MutableMethod.returnLate(overrideValue: Boolean = false) = overrideReturnValue(overrideValue, true)
|
||||
fun MutableMethod.returnLate(value: Byte) {
|
||||
check(returnType.first() == 'B') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), true)
|
||||
}
|
||||
|
||||
private fun MutableMethod.overrideReturnValue(bool: Boolean, returnLate: Boolean) {
|
||||
val const = if (bool) "0x1" else "0x0"
|
||||
/**
|
||||
* Overrides all return statements with a constant `Short` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Short) {
|
||||
check(returnType.first() == 'S') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Char` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Char) {
|
||||
check(returnType.first() == 'C') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.code.toString(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Int` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Int) {
|
||||
check(returnType.first() == 'I') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Long` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Long) {
|
||||
check(returnType.first() == 'J') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Float` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Float) {
|
||||
check(returnType.first() == 'F') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides all return statements with a constant `Double` value.
|
||||
* All method code is executed the same as unpatched.
|
||||
*
|
||||
* @see returnEarly
|
||||
*/
|
||||
fun MutableMethod.returnLate(value: Double) {
|
||||
check(returnType.first() == 'D') { RETURN_TYPE_MISMATCH }
|
||||
overrideReturnValue(value.toString(), true)
|
||||
}
|
||||
|
||||
private fun MutableMethod.overrideReturnValue(value: String, returnLate: Boolean) {
|
||||
val instructions = when (returnType.first()) {
|
||||
'L' -> {
|
||||
// If return type is an object, always return null.
|
||||
'L', '[' -> {
|
||||
"""
|
||||
const/4 v0, $const
|
||||
const/4 v0, 0x0
|
||||
return-object v0
|
||||
"""
|
||||
}
|
||||
|
||||
'V' -> {
|
||||
if (returnLate) throw IllegalArgumentException("Cannot return late for method of void type")
|
||||
"return-void"
|
||||
}
|
||||
|
||||
'I', 'Z' -> {
|
||||
'B', 'Z' -> {
|
||||
"""
|
||||
const/4 v0, $const
|
||||
const/4 v0, $value
|
||||
return v0
|
||||
"""
|
||||
}
|
||||
|
||||
'S', 'C' -> {
|
||||
"""
|
||||
const/16 v0, $value
|
||||
return v0
|
||||
"""
|
||||
}
|
||||
|
||||
'I', 'F' -> {
|
||||
"""
|
||||
const v0, $value
|
||||
return v0
|
||||
"""
|
||||
}
|
||||
|
||||
'J', 'D' -> {
|
||||
"""
|
||||
const-wide v0, $value
|
||||
return-wide v0
|
||||
"""
|
||||
}
|
||||
|
||||
else -> throw Exception("Return type is not supported: $this")
|
||||
}
|
||||
|
||||
|
||||
@@ -6,3 +6,5 @@ internal object Utils {
|
||||
.joinToString("\n") { it.trimIndent() } // Remove the leading whitespace from each line.
|
||||
.trimIndent() // Remove the leading newline.
|
||||
}
|
||||
|
||||
internal fun Boolean.toHexString(): String = if (this) "0x1" else "0x0"
|
||||
@@ -42,7 +42,7 @@ Second \"item\" text"</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_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>
|
||||
@@ -97,9 +97,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_restore_old_settings_menus_title">استعادة قوائم الإعدادات القديمة</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_on">يتم عرض قوائم الإعدادات القديمة</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_off">لا يتم عرض قوائم الإعدادات القديمة</string>
|
||||
<string name="revanced_settings_search_history_title">إظهار سجل البحث في الإعدادات</string>
|
||||
<string name="revanced_settings_search_history_summary_on">سجل البحث في الإعدادات معروض</string>
|
||||
<string name="revanced_settings_search_history_summary_off">لم يتم عرض سجل البحث في الإعدادات</string>
|
||||
<string name="revanced_settings_search_history_title">عرض سجل بحث الإعدادات</string>
|
||||
<string name="revanced_settings_search_history_summary_on">يتم عرض سجل البحث في الإعدادات</string>
|
||||
<string name="revanced_settings_search_history_summary_off">لا يتم عرض سجل البحث في الإعدادات</string>
|
||||
</patch>
|
||||
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
|
||||
<string name="revanced_shorts_disable_background_playback_title">تعطيل تشغيل فيديوهات Shorts في الخلفية</string>
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
هذه الميزة متاحة فقط للأجهزة القديمة"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">يتم عرض إعلانات ملء الشاشة</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">إخفاء الإعلانات الزرية</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">تم إخفاء الإعلانات الزرية</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">يتم عرض الإعلانات الزرية</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">إخفاء تسمية الترقية المدفوعة</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">تم إخفاء تسمية الترقية المدفوعة</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">يتم عرض تسمية الترقية المدفوعة</string>
|
||||
|
||||
@@ -42,7 +42,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_import_reset">ReVanced tənzimləmələr standarta təyin edildi</string>
|
||||
<string name="revanced_settings_import_success">%d tənzimləmə idxal edildi</string>
|
||||
<string name="revanced_settings_import_failure_parse">Uğursuz idxal prosesi: %s</string>
|
||||
<string name="revanced_settings_search_hint">Axtarış tənzimləmələri</string>
|
||||
<string name="revanced_settings_search_hint">Tənzimləmələri axtar</string>
|
||||
<string name="revanced_settings_search_no_results_title">‘%s’ üçün nəticə tapılmadı</string>
|
||||
<string name="revanced_settings_search_no_results_summary">Başqa açar sözü yoxla</string>
|
||||
<string name="revanced_settings_search_remove_message">Axtarış tarixçəsindən silinsin?</string>
|
||||
@@ -365,9 +365,6 @@ Məhdudiyyətlər
|
||||
|
||||
Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Tam ekran reklamları göstərilir</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Düyməli reklamları gizlət</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Düyməli reklamlar gizlədilir</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Düyməli reklamlar göstərilir</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ödənişli tanıtım etiketini gizlət</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Ödənişli reklam etiketi gizlədilib</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Ödənişli reklam etiketi göstərilir</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
Гэтая функцыя даступная толькі для старых прылад"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Адлюстроўваецца поўнаэкранная рэклама</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Схаваць рэкламу на кнопках</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Аб\"явы на кнопках схаваныя</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Паказваюцца аб\"явы на кнопках</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Схаваць метку аплачанай акцыі</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Пазнака платнай акцыі схавана</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Адлюстроўваецца ярлык платнай акцыі</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
Тази функция е налична само за по-стари устройства"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Рекламите в режим на цял екран са показани</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Скриване на рекламни бутони</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Бутонираните реклами са скрити</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Бутонираните реклами са показани</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Скриване на платените промоции</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Промоционалните етикети са скрити</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Промоционалните етикети се показват</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
|
||||
|
||||
এই বৈশিষ্ট্যটি কেবল পুরনো ডিভাইসের জন্য উপলব্ধ"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">পূর্ণ স্ক্রীন বিজ্ঞাপন প্রদর্শিত হয়েছে</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">বোতামযুক্ত বিজ্ঞাপন লুকান</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">বোতামযুক্ত বিজ্ঞাপন লুকিয়ে রয়েছে</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">বোতামযুক্ত বিজ্ঞাপন প্রদর্শিত হয়েছে</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">অর্থের বিনিময়ে প্রচার অন্তর্ভুক্ত রয়েছে ব্যানার লুকান</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">অর্থের বিনিময়ে প্রচার অন্তর্ভুক্ত রয়েছে ব্যানার লুকিয়ে রয়েছে</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">অর্থের বিনিময়ে প্রচার অন্তর্ভুক্ত রয়েছে ব্যানার প্রদর্শিত হয়েছে</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Limitacions
|
||||
|
||||
Aquesta funció només està disponible per a dispositius antics"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Els anuncis de pantalla completa es mostren</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Amaga els anuncis amb botó</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Els anuncis amb botó estan amagats</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Els anuncis amb botó es mostren</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Amaga l\'etiqueta de promoció de pagament</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">L\'etiqueta de promoció de pagament està amagada</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Es mostra l\'etiqueta de promoció de pagament</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Omezení:
|
||||
|
||||
Tato funkce je dostupná pouze pro starší zařízení"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Celostránkové reklamy jsou zobrazeny</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Skrýt reklamy s tlačítky</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Reklamy s tlačítky jsou skryty</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Reklamy s tlačítky jsou zobrazeny</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Skrýt štítek placené propagace</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Štítek placené propagace je skryt</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Štítek placené propagace je zobrazen</string>
|
||||
|
||||
@@ -338,9 +338,6 @@ Begrænsninger
|
||||
|
||||
Denne funktion er kun tilgængelig for ældre enheder"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Fuldskærms annoncer vises</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Skjul knapfyldte annoncer</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Knappede annoncer er skjult</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Knappede annoncer vises</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Skjul betalt kampagneetiket</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Betalt reklamemærke er skjult</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Betalt salgsfremmende mærke er vist</string>
|
||||
|
||||
@@ -360,9 +360,6 @@ Einschränkungen
|
||||
|
||||
Diese Funktion ist nur für ältere Geräte verfügbar"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Vollbild-Anzeigen werden angezeigt</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Verknüpfte Werbung ausblenden</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Verknüpfte Anzeigen sind ausgeblendet</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Verknüpfte Werbung wird angezeigt</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Bezahltes Werbe-Label ausblenden</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Bezahltes Werbelabel ist ausgeblendet</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Bezahltes Werbe-Label wird angezeigt</string>
|
||||
|
||||
@@ -367,9 +367,6 @@ Second \"item\" text"</string>
|
||||
|
||||
Αυτή η λειτουργία είναι διαθέσιμη μόνο για παλιότερες συσκευές"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Οι διαφημίσεις πλήρους οθόνης εμφανίζονται</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Διαφημίσεις κουμπιών</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Κρυμμένες</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Εμφανίζονται</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ετικέτες προώθησης επί πληρωμή</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Κρυμμένες</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Εμφανίζονται</string>
|
||||
|
||||
@@ -362,9 +362,6 @@ Limitaciones
|
||||
|
||||
Esta función solo está disponible para dispositivos antiguos"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Se muestran anuncios a pantalla completa</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Ocultar anuncios botonados</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Los anuncios botonados están ocultos</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Se muestran anuncios botonados</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ocultar etiqueta de promoción de pago</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Etiqueta de promoción pagada está oculta</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Etiqueta de promoción pagada se muestra</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Piirangud
|
||||
|
||||
See funktsioon on saadaval ainult vanemates seadmetes"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Täisekraanireklaamid kuvatakse</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Peida nuppudega reklaamid</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Nuppudega reklaamid on peidetud</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Nuked onukleitud reklaamid näidatakse</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Peida makstud edendamise silt</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Makstud edendamise silt on peidus</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Makstud edendamise silt on näidatud</string>
|
||||
|
||||
@@ -42,21 +42,48 @@ Second \"item\" text"</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_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">شما درحال استفاده از نسخه <i>%s</i> از پچ 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="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>
|
||||
</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>
|
||||
<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="layout.hide.general.hideLayoutComponentsPatch">
|
||||
<!-- 'Join' should be translated using the same localized wording YouTube displays.
|
||||
@@ -67,6 +94,10 @@ Second \"item\" text"</string>
|
||||
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording 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="revanced_hide_show_more_button_title">پنهان سازی دکمه \'نمایش بیشتر\'</string>
|
||||
<string name="revanced_hide_show_more_button_summary_on">دکمه پنهان است</string>
|
||||
<string name="revanced_hide_show_more_button_summary_off">دکمه نمایان است</string>
|
||||
<string name="revanced_hide_ticket_shelf_title">پنهان سازی قفسه بلیط</string>
|
||||
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
|
||||
<!-- '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. -->
|
||||
<!-- 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.
|
||||
|
||||
@@ -360,9 +360,6 @@ Rajoitukset
|
||||
|
||||
Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Koko näytön mainokset näytetään</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Piilota painikkeelliset mainokset</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Painikkeelliset mainokset on piilotettu</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Painikkeelliset mainokset näytetään</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Piilota maksetun mainostuksen tunniste</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Maksetun mainostuksen tunniste on piilotettu</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Maksetun mainostuksen tunniste näytetään</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Mga limitasyon
|
||||
|
||||
Ang tampok na ito ay magagamit lamang para sa mga mas lumang device"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Ipinapakita ang mga fullscreen na ad</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Itago ang mga naka-button na ad</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Nakatago ang mga naka-button na ad</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Ipinapakita ang mga naka-button na ad</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Itago ang may bayad na label ng promosyon</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Nakatago ang label ng bayad na promosyon</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Ipinapakita ang may bayad na label ng promosyon</string>
|
||||
|
||||
@@ -42,8 +42,8 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_import_reset">Paramètres ReVanced réinitialisés aux valeurs par défaut</string>
|
||||
<string name="revanced_settings_import_success">%d paramètres importés</string>
|
||||
<string name="revanced_settings_import_failure_parse">Importation échouée : %s</string>
|
||||
<string name="revanced_settings_search_hint">Paramètres de recherche</string>
|
||||
<string name="revanced_settings_search_no_results_title">Aucun résultat trouvé pour \".%s\".</string>
|
||||
<string name="revanced_settings_search_hint">Rechercher dans les paramètres</string>
|
||||
<string name="revanced_settings_search_no_results_title">Aucun résultat trouvé pour \"%s\"</string>
|
||||
<string name="revanced_settings_search_no_results_summary">Essayez un autre mot-clé</string>
|
||||
<string name="revanced_settings_search_remove_message">Supprimer de l\'historique des recherches ?</string>
|
||||
<string name="revanced_show_menu_icons_title">Afficher les icônes des paramètres ReVanced</string>
|
||||
@@ -169,9 +169,9 @@ Vous ne serez pas informé des événements inattendus."</string>
|
||||
<string name="revanced_hide_show_more_button_title">Masquer le bouton Afficher plus</string>
|
||||
<string name="revanced_hide_show_more_button_summary_on">Le bouton est masqué</string>
|
||||
<string name="revanced_hide_show_more_button_summary_off">Le bouton est affiché</string>
|
||||
<string name="revanced_hide_ticket_shelf_title">Masquer le rayon de billets</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_on">Le rayon de billets est masqué</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_off">Le rayon de billets est affiché</string>
|
||||
<string name="revanced_hide_ticket_shelf_title">Masquer l\'étagère des billets</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_on">L\'étagère des billets est masquée</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_off">L\'étagère des billets est affichée</string>
|
||||
<string name="revanced_hide_timed_reactions_title">Masquer les réactions minutées</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_on">Les réactions minutées sont masquées</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_off">Les réactions minutées sont affichées</string>
|
||||
@@ -241,9 +241,9 @@ Vous ne serez pas informé des événements inattendus."</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_title">Masquer \"Résumé de la vidéo généré par IA\"</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">La section du résumé de la vidéo est masquée</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">La section du résumé de la vidéo est affichée</string>
|
||||
<string name="revanced_hide_ask_section_title">Masquer la section \"Demander\"</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">La section \"Demander\" est masquée</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">La section \"Demander\" est affichée</string>
|
||||
<string name="revanced_hide_ask_section_title">Masquer \"Demander\"</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">La section Demander est masquée</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">La section Demander est affichée</string>
|
||||
<string name="revanced_hide_attributes_section_title">Masquer les attributions</string>
|
||||
<string name="revanced_hide_attributes_section_summary_on">Les sections Lieux mentionnés, Jeux, Musique et Personnes mentionnées sont masquées</string>
|
||||
<string name="revanced_hide_attributes_section_summary_off">Les sections Lieux mentionnés, Jeux, Musique et Personnes mentionnées sont affichées</string>
|
||||
@@ -365,9 +365,6 @@ Limitations
|
||||
|
||||
Cette fonctionnalité est disponible uniquement pour les appareils anciens"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Les annonces plein écran sont affichées</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Masquer les annonces au format bouton</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Les annonces au format bouton sont masquées</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Les annonces au format bouton sont affichées</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Masquer la bannière de promotion rémunérée</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">La bannière \"Inclut une promotion rémunérée\" est masquée</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">La bannière \"Inclut une promotion rémunérée\" est affichée</string>
|
||||
|
||||
@@ -162,8 +162,8 @@ Ní chuirfear ar an eolas thú faoi aon imeachtaí gan choinne."</string>
|
||||
<string name="revanced_hide_notify_me_button_summary_off">Taispeántar an cnaipe</string>
|
||||
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
|
||||
<string name="revanced_hide_search_result_recommendation_labels_title">Folaigh lipéid moltaí físeáin</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Tá lipéid \",,D’fhéach daoine eile air freisin\",, agus \",,B’fhéidir gur mhaith leat é seo freisin\",, folaithe</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Tá lipéid \",,D’fhéach daoine eile air freisin\",, agus \",,B’fhéidir gur mhaith leat é seo freisin\",, ar taispeáint</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Tá na lipéid \'Daoine a d\'fhéach orthu freisin\' agus \'B\'fhéidir gur mhaith leat freisin\' i bhfolach</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Taispeántar lipéid ‘Daoine a d’fhéach freisin’ agus ‘B’fhéidir gur mhaith leat freisin’</string>
|
||||
<!-- '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="revanced_hide_show_more_button_title">Folaigh cnaipe \'Taispeáin tuilleadh\'</string>
|
||||
@@ -263,8 +263,8 @@ Ní chuirfear ar an eolas thú faoi aon imeachtaí gan choinne."</string>
|
||||
<string name="revanced_hide_key_concepts_section_summary_on">Tá an chuid Príomhchoincheapa i bhfolach</string>
|
||||
<string name="revanced_hide_key_concepts_section_summary_off">Taispeántar an chuid Príomhchoincheapa</string>
|
||||
<string name="revanced_hide_transcript_section_title">Folaigh Tras-scríbhinn</string>
|
||||
<string name="revanced_hide_transcript_section_summary_on">Tá an chuid trasscríbhinne i bhfolach</string>
|
||||
<string name="revanced_hide_transcript_section_summary_off">Taispeántar alt an trasscríbhinne</string>
|
||||
<string name="revanced_hide_transcript_section_summary_on">Tá alt an tras-scríbhinn i bhfolach</string>
|
||||
<string name="revanced_hide_transcript_section_summary_off">Taispeántar alt an tras-scríbhinn</string>
|
||||
<string name="revanced_hide_description_components_screen_title">Cur síos físeán</string>
|
||||
<string name="revanced_hide_description_components_screen_summary">Folaigh nó taispeáint comhpháirteanna tuairisc</string>
|
||||
<string name="revanced_hide_filter_bar_screen_title">Barra scagaire</string>
|
||||
@@ -278,8 +278,8 @@ Ní chuirfear ar an eolas thú faoi aon imeachtaí gan choinne."</string>
|
||||
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Folaigh i bhfíseáin gaolmhara</string>
|
||||
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">I bhfolach i bhfíseáin ghaolmhara</string>
|
||||
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Taispeántar i bhfíseáin ghaolmhara</string>
|
||||
<string name="revanced_comments_screen_title">Tuairimí</string>
|
||||
<string name="revanced_comments_screen_summary">Folaigh nó taispeáin comhpháirteanna na rannóige tuairimí</string>
|
||||
<string name="revanced_comments_screen_title">Tráchtanna</string>
|
||||
<string name="revanced_comments_screen_summary">Folaigh nó taispeáin comhpháirteanna na rannóige tráchtanna</string>
|
||||
<string name="revanced_hide_comments_ai_chat_summary_title">Folaigh achoimre Comhrá AI</string>
|
||||
<string name="revanced_hide_comments_ai_chat_summary_summary_on">Tá achoimre comhrá i bhfolach</string>
|
||||
<string name="revanced_hide_comments_ai_chat_summary_summary_off">Taispeántar achoimre comhrá</string>
|
||||
@@ -365,9 +365,6 @@ Teorainneacha
|
||||
|
||||
Níl an ghné seo ar fáil ach do ghléasanna níos sine"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Taispeántar fógraí lánscáileáin</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Folaigh fógraí cnaipe</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Tá fógraí cnaipe i bhfolach</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Taispeántar fógraí cnaipe</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Folaigh lipéad chun cinn íoctha</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Tá an lipéad promóisin íoctha i bhfolach</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Taispeántar lipéad promóisin íoctha</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Korlátozások
|
||||
|
||||
Ez a funkció csak régebbi eszközökön érhető el"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">A teljes képernyős hirdetések láthatók</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Gomb hirdetések elrejtése</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">A gomb hirdetések el vannak rejtve</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">A gomb hirdetések láthatók</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Fizetett promóció címke elrejtése</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">A fizetett promóciós címke el van rejtve</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">A fizetett promóciós címke meg van jelenítve</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
|
||||
|
||||
Այս հատկությունը հասանելի է միայն հին սարքերի համար"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Լի էկրանի գովազդները երևում են</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Թաքցնել կոճակավորված գովազդները</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Կոճակավորված գովազդները թաքցված են</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Կոճակավորված գովազդները երևում են</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Թաքցնել վճարված խթանման նշանը</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Վճարված խթանման նշանը թաքցված է</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Վճարված խթանման նշանը երևում է</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Keterbatasan
|
||||
|
||||
Fitur ini hanya tersedia untuk perangkat yang lebih lama"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Iklan layar penuh ditampilkan</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Sembunyikan iklan bertombol</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Iklan bertombol disembunyikan</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Iklan bertombol ditampilkan</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Sembunyikan label promosi berbayar</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Label promosi berbayar disembunyikan</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Label promosi berbayar ditampilkan</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Note:
|
||||
|
||||
Questa funzione è disponibile solo per i dispositivi più vecchi"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Le pubblicità a schermo intero sono visibili</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Nascondi le pubblicità a pulsante</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Le pubblicità a pulsante sono nascoste</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Le pubblicità a pulsante sono visibili</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Nascondi l\'etichetta della promozione a pagamento</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">L\'etichetta della promozione a pagamento è nascosta</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">L\'etichetta della promozione a pagamento è visibile</string>
|
||||
|
||||
@@ -349,9 +349,6 @@ Second \"item\" text"</string>
|
||||
|
||||
תכונה זו זמינה רק עבור מכשירים ישנים יותר"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">מודעות מסך מלא מוצגות</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">הסתר מודעות מכופתרות</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">מודעות מכפותרות מוסתרות</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">מודעות מכפותרות מוצגות</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">הסתר תווית קידום מכירות בתשלום</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">תווית קידום מכירות בתשלום מוסתרת</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">תווית קידום מכירות בתשלום מוצגת</string>
|
||||
|
||||
@@ -42,8 +42,8 @@ Second \"item\" text"</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_hint">ReVanced の設定を検索</string>
|
||||
<string name="revanced_settings_search_no_results_title">\'%s\' に一致する ReVanced の設定は見つかりませんでした</string>
|
||||
<string name="revanced_settings_search_no_results_summary">別のキーワードを試してください</string>
|
||||
<string name="revanced_settings_search_remove_message">検索履歴から削除しますか?</string>
|
||||
<string name="revanced_show_menu_icons_title">ReVanced 設定にアイコンを表示する</string>
|
||||
@@ -98,9 +98,9 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
|
||||
<string name="revanced_restore_old_settings_menus_title">設定メニューを旧バージョンに戻す</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_on">旧バージョンの設定メニューが表示されます</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_off">通常の設定メニューが表示されます</string>
|
||||
<string name="revanced_settings_search_history_title">設定の検索履歴を表示</string>
|
||||
<string name="revanced_settings_search_history_summary_on">設定の検索履歴が表示されています</string>
|
||||
<string name="revanced_settings_search_history_summary_off">設定の検索履歴は表示されません</string>
|
||||
<string name="revanced_settings_search_history_title">設定検索の履歴を表示する</string>
|
||||
<string name="revanced_settings_search_history_summary_on">設定検索の履歴は表示されます</string>
|
||||
<string name="revanced_settings_search_history_summary_off">設定検索の履歴は表示されません</string>
|
||||
</patch>
|
||||
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
|
||||
<string name="revanced_shorts_disable_background_playback_title">ショート動画のバックグラウンド再生を無効にする</string>
|
||||
@@ -244,7 +244,7 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_title">「AI 生成による動画の要約」を非表示</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">動画の要約セクションは表示されません</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">動画の要約セクションは表示されます</string>
|
||||
<string name="revanced_hide_ask_section_title">質問ボタンを非表示</string>
|
||||
<string name="revanced_hide_ask_section_title">質問セクションを非表示</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">質問セクションは表示されません</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">質問セクションは表示されます</string>
|
||||
<string name="revanced_hide_attributes_section_title">関連情報を非表示</string>
|
||||
@@ -368,9 +368,6 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
|
||||
|
||||
この機能は、古いデバイスでのみ利用できます"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">全画面広告は、アプリ起動時に表示されます</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">ボタン付き広告を非表示</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">ボタン付き広告は表示されません</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">ボタン付き広告は表示されます</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">「プロモーションを含みます」ボタンを非表示</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">「プロモーションを含みます」ボタンはプレーヤー画面に表示されません</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">「プロモーションを含みます」ボタンはプレーヤー画面に表示されます</string>
|
||||
@@ -1167,7 +1164,7 @@ Automotive レイアウト
|
||||
<string name="revanced_change_start_page_always_summary_on">"スタート画面の変更は常時適用されます
|
||||
|
||||
制限事項: ツールバーの [戻る] ボタンが機能しない可能性があります"</string>
|
||||
<string name="revanced_change_start_page_always_summary_off">スタート画面の変更はアプリ起動時にのみ適用されます</string>
|
||||
<string name="revanced_change_start_page_always_summary_off">スタート画面の変更は、アプリ起動時にのみ適用されます</string>
|
||||
</patch>
|
||||
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
|
||||
<string name="revanced_disable_resuming_shorts_player_title">ショート動画プレーヤーの再開を無効にする</string>
|
||||
@@ -1296,8 +1293,8 @@ Automotive レイアウト
|
||||
</patch>
|
||||
<patch id="misc.announcements.announcementsPatch">
|
||||
<string name="revanced_announcements_title">ReVanced のお知らせを表示する</string>
|
||||
<string name="revanced_announcements_summary_on">アプリ起動時にお知らせが表示されます</string>
|
||||
<string name="revanced_announcements_summary_off">アプリ起動時にお知らせは表示されません</string>
|
||||
<string name="revanced_announcements_summary_on">お知らせは、アプリ起動時に表示されます</string>
|
||||
<string name="revanced_announcements_summary_off">お知らせは、アプリ起動時に表示されません</string>
|
||||
<string name="revanced_announcements_enabled_summary">アプリ起動時にお知らせを表示する</string>
|
||||
<string name="revanced_announcements_connection_failed">お知らせの取得に失敗しました</string>
|
||||
<string name="revanced_announcements_dialog_dismiss">閉じる</string>
|
||||
|
||||
@@ -21,15 +21,15 @@ Second \"item\" text"</string>
|
||||
<resources>
|
||||
<app id="shared">
|
||||
<patch id="misc.checks.checkEnvironmentPatch">
|
||||
<string name="revanced_check_environment_failed_title">환경 검사에 실패함</string>
|
||||
<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"><h5>이 앱은 사용자가 패치하지 않은 것 같습니다.</h5><br>이 앱은 제대로 작동하지 않을 수 있으며, <b>사용 시 해롭거나 심지어 위험할 수도 있습니다</b>.<br><br>이러한 검사는 이 앱이 사전에 패치되었거나 다른 사람으로부터 받은 것임을 의미합니다:<br><br><small>%1$s</small><br>검증되고 안전한 앱을 사용하고 있는지 확인하려면 <b>이 앱을 제거하고 직접 패치하는 것</b>을 강력히 권장합니다.<p><br>이 경고는 두 번만 표시됩니다.</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>
|
||||
<string name="revanced_check_environment_failed_message"><h5>이 앱은 사용자가 패치하지 않은 것 같습니다.</h5><br>이 앱은 제대로 작동하지 않을 수 있으며, <b>사용 시 해롭거나 심지어 위험할 수도 있습니다</b>.<br><br>이러한 검사는 이 앱이 사전에 패치되었거나 다른 사람으로부터 받은 것임을 의미합니다:<br><br><small>%1$s</small><br>검증되고 안전한 앱을 사용하고 있는지 확인하려면 <b>이 앱을 삭제하고 직접 패치하는 것</b>을 강력히 권장합니다.<p><br>이 경고는 두 번만 표시됩니다.</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.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">설정</string>
|
||||
@@ -44,8 +44,8 @@ Second \"item\" text"</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_no_results_summary">다른 키워드를 검색해 보세요</string>
|
||||
<string name="revanced_settings_search_remove_message">검색 기록에서 삭제하시겠습니까?</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>
|
||||
@@ -98,8 +98,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_restore_old_settings_menus_summary_on">이전 설정 메뉴를 표시합니다</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_off">이전 설정 메뉴를 표시하지 않습니다</string>
|
||||
<string name="revanced_settings_search_history_title">설정 검색 기록 표시하기</string>
|
||||
<string name="revanced_settings_search_history_summary_on">설정 검색 기록이 표시됩니다</string>
|
||||
<string name="revanced_settings_search_history_summary_off">설정 검색 기록이 표시되지 않습니다</string>
|
||||
<string name="revanced_settings_search_history_summary_on">설정 검색 기록을 표시합니다</string>
|
||||
<string name="revanced_settings_search_history_summary_off">설정 검색 기록을 표시하지 않습니다</string>
|
||||
</patch>
|
||||
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
|
||||
<string name="revanced_shorts_disable_background_playback_title">Shorts 백그라운드 재생 비활성화하기</string>
|
||||
@@ -166,8 +166,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_notify_me_button_summary_off">\'알림 받기\' 버튼이 표시됩니다</string>
|
||||
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
|
||||
<string name="revanced_hide_search_result_recommendation_labels_title">동영상 추천 라벨 숨기기</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_on">다음 동영상 추천 라벨이 숨겨집니다\n• 시청자가 이 동영상도 시청함\n• 내가 좋아할 만한 동영상</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_off">다음 동영상 추천 라벨이 표시됩니다\n• 시청자가 이 동영상도 시청함\n• 내가 좋아할 만한 동영상</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_on">다음 동영상 추천 라벨이 숨겨집니다:\n• 시청자가 이 동영상도 시청함\n• 내가 좋아할 만한 동영상</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_off">다음 동영상 추천 라벨이 표시됩니다:\n• 시청자가 이 동영상도 시청함\n• 내가 좋아할 만한 동영상</string>
|
||||
<!-- '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="revanced_hide_show_more_button_title">\'자세히 보기\' 버튼 숨기기</string>
|
||||
@@ -245,7 +245,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_title">AI 생성 동영상 요약 섹션 숨기기</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">AI 생성 동영상 요약 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">AI 생성 동영상 요약 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_ask_section_title">요청 버튼 숨기기</string>
|
||||
<string name="revanced_hide_ask_section_title">요청 섹션 숨기기</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">요청 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">요청 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_attributes_section_title">속성 섹션 숨기기</string>
|
||||
@@ -368,9 +368,6 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
|
||||
이 설정은 구형 기기에서만 사용할 수 있습니다"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">전체 화면 광고가 표시됩니다</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">버튼형 광고 숨기기</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">버튼형 광고가 숨겨집니다</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">버튼형 광고가 표시됩니다</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">유료 광고 포함 라벨 숨기기</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">유료 광고 포함 라벨이 숨겨집니다</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">유료 광고 포함 라벨이 표시됩니다</string>
|
||||
@@ -423,9 +420,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
<string name="revanced_copy_video_url_timestamp_summary_off">버튼을 표시하지 않습니다</string>
|
||||
</patch>
|
||||
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
|
||||
<string name="revanced_remove_viewer_discretion_dialog_title">시청 경고 다이얼로그 제거하기</string>
|
||||
<string name="revanced_remove_viewer_discretion_dialog_summary_on">다음 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 제거합니다\n• 연령 제한 동영상\n• 자살 또는 자해와 관련된 동영상, etc.</string>
|
||||
<string name="revanced_remove_viewer_discretion_dialog_summary_off">다음 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 제거하지 않습니다\n• 연령 제한 동영상\n• 자살 또는 자해와 관련된 동영상, etc.</string>
|
||||
<string name="revanced_remove_viewer_discretion_dialog_title">시청 경고 다이얼로그 삭제하기</string>
|
||||
<string name="revanced_remove_viewer_discretion_dialog_summary_on">다음 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 삭제합니다:\n• 연령 제한 동영상\n• 자살 또는 자해와 관련된 동영상, etc.</string>
|
||||
<string name="revanced_remove_viewer_discretion_dialog_summary_off">다음 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 삭제하지 않습니다:\n• 연령 제한 동영상\n• 자살 또는 자해와 관련된 동영상, etc.</string>
|
||||
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">이 설정은 다이얼로그를 자동으로 허용하기만 하며 연령 제한(성인인증 절차)을 우회할 수 없습니다.</string>
|
||||
</patch>
|
||||
<patch id="interaction.downloads.downloadsResourcePatch">
|
||||
@@ -685,8 +682,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
|
||||
</patch>
|
||||
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
|
||||
<string name="revanced_disable_rolling_number_animations_title">롤링 넘버 애니메이션 비활성화하기</string>
|
||||
<string name="revanced_disable_rolling_number_animations_summary_on">다음 롤링 넘버 애니메이션을 비활성화합니다\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 수, 조회수 롤링 애니메이션 (동영상 설명)</string>
|
||||
<string name="revanced_disable_rolling_number_animations_summary_off">다음 롤링 넘버 애니메이션을 활성화합니다\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 수, 조회수 롤링 애니메이션 (동영상 설명)</string>
|
||||
<string name="revanced_disable_rolling_number_animations_summary_on">다음 롤링 넘버 애니메이션을 비활성화합니다:\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 수, 조회수 롤링 애니메이션 (동영상 설명)</string>
|
||||
<string name="revanced_disable_rolling_number_animations_summary_off">다음 롤링 넘버 애니메이션을 활성화합니다:\n• 조회수, 시청자 수 롤링 애니메이션 (플레이어 하단)\n• 좋아요 수, 조회수 롤링 애니메이션 (동영상 설명)</string>
|
||||
</patch>
|
||||
<patch id="layout.hide.seekbar.hideSeekbarPatch">
|
||||
<string name="revanced_hide_seekbar_title">동영상 플레이어 재생바 숨기기</string>
|
||||
@@ -1332,7 +1329,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
|
||||
<string name="microg_settings_summary">알림 수신을 위한 클라우드 메시징을 설정할 수 있습니다</string>
|
||||
</patch>
|
||||
<patch id="misc.gms.accountCredentialsInvalidTextPatch">
|
||||
<string name="microg_offline_account_login_error">최근에 계정 로그인 정보를 변경했다면 MicroG를 제거하고 다시 설치하세요.</string>
|
||||
<string name="microg_offline_account_login_error">최근에 계정 로그인 정보를 변경했다면 MicroG를 삭제하고 다시 설치하세요.</string>
|
||||
</patch>
|
||||
<patch id="misc.links.bypassURLRedirectsPatch">
|
||||
<string name="revanced_bypass_url_redirects_title">리다이렉션 없이 링크 바로 열기</string>
|
||||
@@ -1345,9 +1342,9 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
|
||||
<string name="revanced_external_browser_summary_off">앱 내에서 외부 링크를 열 때, 내부 브라우저를 사용합니다</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
|
||||
<string name="revanced_remove_tracking_query_parameter_title">추적 쿼리를 제거한 링크 공유하기</string>
|
||||
<string name="revanced_remove_tracking_query_parameter_summary_on">링크를 공유할 때, URL에서 추적 쿼리 매개변수를 제거합니다 (URL의 뒷부분 \'?si=...\' 이 제거됨)</string>
|
||||
<string name="revanced_remove_tracking_query_parameter_summary_off">링크를 공유할 때, URL에서 추적 쿼리 매개변수를 제거하지 않습니다</string>
|
||||
<string name="revanced_remove_tracking_query_parameter_title">추적 쿼리를 삭제한 링크 공유하기</string>
|
||||
<string name="revanced_remove_tracking_query_parameter_summary_on">링크를 공유할 때, URL에서 추적 쿼리 매개변수를 삭제합니다 (URL의 뒷부분 \'?si=...\' 이 삭제됨)</string>
|
||||
<string name="revanced_remove_tracking_query_parameter_summary_off">링크를 공유할 때, URL에서 추적 쿼리 매개변수를 삭제하지 않습니다</string>
|
||||
</patch>
|
||||
<patch id="misc.zoomhaptics.zoomHapticsPatch">
|
||||
<string name="revanced_disable_zoom_haptics_title">동영상을 확대할 때, 진동 피드백 비활성화하기</string>
|
||||
@@ -1428,8 +1425,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
|
||||
<string name="revanced_spoof_video_streams_user_dialog_message">이 설정을 비활성화하면 동영상 재생 문제가 발생할 수 있습니다.</string>
|
||||
<string name="revanced_spoof_video_streams_client_type_title">기본 클라이언트</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_title">iOS AVC (H.264) 강제로 활성화하기</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">동영상 코덱을 AVC (H.264)로 강제로 활성화합니다\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값이 표시될 수 있습니다\n• 최대 화질 값이 1080p이므로, 초고화질 동영상을 재생할 수 없습니다\n• HDR 동영상을 재생할 수 없습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">동영상 코덱을 자동으로 결정합니다\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질값이 제거되어 360p와 1080p(Premium 기능)만 선택가능할 수 있거나 화질 메뉴를 선택불가능할 수 있습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">동영상 코덱을 AVC (H.264)로 강제로 활성화합니다\n\n• 일부 VP9 코덱 동영상에서 삭제되었던 화질 값이 표시될 수 있습니다\n• 최대 화질 값이 1080p이므로, 초고화질 동영상을 재생할 수 없습니다\n• HDR 동영상을 재생할 수 없습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">동영상 코덱을 자동으로 결정합니다\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질값이 삭제되어 360p와 1080p(Premium 기능)만 선택가능할 수 있거나 화질 메뉴를 선택불가능할 수 있습니다</string>
|
||||
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"이 설정를 활성화하면 배터리 수명이 향상되고, 동영상 재생 끊김 문제가 해결될 수 있습니다.
|
||||
|
||||
AVC의 최대 화질 값은 1080p이고, OPUS 코덱을 사용불가 및 HDR 동영상을 재생할 수 없으며, 동영상을 재생했을 경우에는 VP9 또는 AV1보다 더 많은 모바일 데이터를 사용되오니 주의하세요."</string>
|
||||
@@ -1469,11 +1466,11 @@ AVC의 최대 화질 값은 1080p이고, OPUS 코덱을 사용불가 및 HDR 동
|
||||
<string name="revanced_block_video_ads_summary_off">동영상 광고를 차단하지 않습니다</string>
|
||||
</patch>
|
||||
<patch id="chat.antidelete.showDeletedMessagesPatch">
|
||||
<string name="revanced_deleted_msg">메시지를 제거합니다</string>
|
||||
<string name="revanced_show_deleted_messages_title">제거된 메시지 표시하기</string>
|
||||
<string name="revanced_show_deleted_messages_entry_1">제거된 메시지 표시하지 않기</string>
|
||||
<string name="revanced_show_deleted_messages_entry_2">스포일러 뒤에 제거된 메시지 숨기기</string>
|
||||
<string name="revanced_show_deleted_messages_entry_3">제거된 메시지를 줄이 그어진 텍스트로 표시하기</string>
|
||||
<string name="revanced_deleted_msg">메시지를 삭제합니다</string>
|
||||
<string name="revanced_show_deleted_messages_title">삭제된 메시지 표시하기</string>
|
||||
<string name="revanced_show_deleted_messages_entry_1">삭제된 메시지 표시하지 않기</string>
|
||||
<string name="revanced_show_deleted_messages_entry_2">스포일러 뒤에 삭제된 메시지 숨기기</string>
|
||||
<string name="revanced_show_deleted_messages_entry_3">삭제된 메시지를 줄이 그어진 텍스트로 표시하기</string>
|
||||
</patch>
|
||||
<patch id="chat.autoclaim.autoClaimChannelPointsPatch">
|
||||
<string name="revanced_auto_claim_channel_points_title">채널 포인트 자동 적립하기</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Apribojimai
|
||||
|
||||
Ši funkcija yra prieinama tik senesniuose įrenginiuose"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Viso ekrano reklamos yra rodomos</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Slėpti reklamas su mygtukais</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Reklamos su mygtukais yra paslėptos</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Reklamos su mygtukais yra rodomos</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Slėpti apmokėtos reklamos etiketę</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Apmokėtos reklamos etiketė yra paslėpta</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Apmokėtos reklamos etiketė yra rodoma</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Ierobežojumi
|
||||
|
||||
Šī funkcija ir pieejama tikai vecākiem ierīcēm"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Pilnekrāna reklāmas ir redzamas</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Paslēpt reklāmas ar pogām</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Reklāmas ar pogām ir paslēptas</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Reklāmas ar pogām ir redzamas</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Paslēpt apmaksātas reklāmas etiķeti</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Apmaksātas reklāmas etiķete ir paslēpta</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Apmaksātas reklāmas etiķete ir redzama</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Beperkingen
|
||||
|
||||
Deze functie is alleen beschikbaar voor oudere apparaten"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Volledig scherm advertenties worden getoond</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Advertenties met knoppen verbergen</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Advertenties met knoppen zijn verborgen</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Advertenties met knoppen worden getoond</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Betaalde promotielabel verbergen</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Betaalde promotielabel is verborgen</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Betaalde promotielabel wordt getoond</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Ograniczenia
|
||||
|
||||
Ta funkcja jest dostępna tylko dla starszych urządzeń"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Reklamy pełnoekranowe są widoczne</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Reklamy z przyciskami</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Reklamy z przyciskami są ukryte</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Reklamy z przyciskami są widoczne</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Etykiety płatnej promocji</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Etykiety płatnej promocji są ukryte</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Etykiety płatnej promocji są widoczne</string>
|
||||
|
||||
@@ -363,9 +363,6 @@ Linitações
|
||||
|
||||
Este recurso está disponível apenas para dispositivos mais antigos"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Anúncios em tela cheia não estão ocultos</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Ocultar anúncios com botões</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Os anúncios com botões estão ocultos</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Anúncios com botões não estão ocultos</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ocultar o rótulo de promoção paga</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">O rótulo de promoção paga está oculto</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">O rótulo de promoção paga é mostrada</string>
|
||||
@@ -762,8 +759,8 @@ Para exibir o menu da faixa de áudio, altere \"Spoof video streams\" para iOS T
|
||||
<string name="revanced_hide_shorts_like_button_summary_on">Botão gostei está oculto</string>
|
||||
<string name="revanced_hide_shorts_like_button_summary_off">Botão gostei não está oculto</string>
|
||||
<string name="revanced_hide_shorts_dislike_button_title">Ocultar botão Não curtir</string>
|
||||
<string name="revanced_hide_shorts_dislike_button_summary_on">Botão não gostei está oculto</string>
|
||||
<string name="revanced_hide_shorts_dislike_button_summary_off">Botão não gostei é mostrado</string>
|
||||
<string name="revanced_hide_shorts_dislike_button_summary_on">Botão não gostei é mostrado</string>
|
||||
<string name="revanced_hide_shorts_dislike_button_summary_off">Botão não gostei está oculto</string>
|
||||
<string name="revanced_hide_shorts_comments_button_title">Ocultar botão Comentários</string>
|
||||
<string name="revanced_hide_shorts_comments_button_summary_on">Botão comentários está oculto</string>
|
||||
<string name="revanced_hide_shorts_comments_button_summary_off">Botão comentários não está oculto</string>
|
||||
@@ -847,7 +844,7 @@ Configurações → Reprodução → Reproduzir próximo vídeo automaticamente"
|
||||
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Recarregue o vídeo para votar usando o Return YouTube Dislike</string>
|
||||
<!-- Video likes have been set to hidden by the video uploader. -->
|
||||
<string name="revanced_ryd_video_likes_hidden_by_video_owner">Oculto pelo proprietário</string>
|
||||
<string name="revanced_ryd_enabled_summary_on">Não gostei está oculto</string>
|
||||
<string name="revanced_ryd_enabled_summary_on">Não gostei é mostrado</string>
|
||||
<string name="revanced_ryd_enabled_summary_off">Não gostei não está oculto</string>
|
||||
<string name="revanced_ryd_shorts_title">Mostrar não gostei no Shorts</string>
|
||||
<string name="revanced_ryd_shorts_summary_on">"\"Não gostei\" nos Shorts são mostrados
|
||||
|
||||
@@ -365,9 +365,6 @@ Limitações
|
||||
|
||||
Tính năng này chỉ khả dụng cho các thiết bị cũ"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Os anúncios são visíveis em ecrã cheia</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Esconder anúncios com botão</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Anúncios com botões estão escondidos</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Os anúncios com botões são visíveis</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ocultar rótulo de promoção paga</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">O rótulo de promoção pago está oculto</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Rótulo de promoção pago é mostrado</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Limitări
|
||||
|
||||
Această funcție este disponibilă numai pentru dispozitivele mai vechi"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Reclame pe ecran complet sunt afișate</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Ascunde reclame butoane</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Reclame nastate sunt ascunse</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Reclame buttonate sunt afișate</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ascunde eticheta promoției cu plată</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Eticheta promoției plătite este ascunsă</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Eticheta promoției plătite este afișată</string>
|
||||
|
||||
@@ -42,7 +42,7 @@ Second \"item\" text"</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_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>
|
||||
@@ -97,9 +97,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_restore_old_settings_menus_title">Включить старое меню настроек</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_on">Старое меню настроек включено</string>
|
||||
<string name="revanced_restore_old_settings_menus_summary_off">Новое меню настроек включено</string>
|
||||
<string name="revanced_settings_search_history_title">Показывать историю поиска в настройках</string>
|
||||
<string name="revanced_settings_search_history_summary_on">История поиска в настройках отображается</string>
|
||||
<string name="revanced_settings_search_history_summary_off">История поиска настроек не отображается</string>
|
||||
<string name="revanced_settings_search_history_title">Показать историю поиска настроек</string>
|
||||
<string name="revanced_settings_search_history_summary_on">История поиска настроек показана</string>
|
||||
<string name="revanced_settings_search_history_summary_off">История поиска настроек скрыта</string>
|
||||
</patch>
|
||||
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
|
||||
<string name="revanced_shorts_disable_background_playback_title">Отключить воспроизведение Shorts в фоновом режиме</string>
|
||||
@@ -161,17 +161,17 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_hide_notify_me_button_summary_on">Кнопка \"Прислать уведомление\" под плеером скрыта</string>
|
||||
<string name="revanced_hide_notify_me_button_summary_off">Кнопка \"Прислать уведомление\" под плеером показана</string>
|
||||
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
|
||||
<string name="revanced_hide_search_result_recommendation_labels_title">Скрыть ярлыки с рекомендациями видео</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Ярлыки \"Люди также смотрят\" и \"Вам также может понравиться\" скрыты</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Ярлыки \"Люди также смотрят\" и \"Вам также может понравиться\" показаны</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_title">Скрыть метки видеорекомендаций</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Метки \"Люди также смотрели\" и \"Вам также может понравиться\" в результатах поиска скрыты</string>
|
||||
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Метки \"Люди также смотрели\" и \"Вам также может понравиться\" в результатах поиска показаны</string>
|
||||
<!-- '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="revanced_hide_show_more_button_title">Скрыть кнопку \"Показать еще\"</string>
|
||||
<string name="revanced_hide_show_more_button_summary_on">Кнопка \"Показать еще\" в результатах поиска скрыта</string>
|
||||
<string name="revanced_hide_show_more_button_summary_off">Кнопка \"Показать еще\" в результатах поиска показана</string>
|
||||
<string name="revanced_hide_ticket_shelf_title">Скрыть секцию билетов</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_on">Секция билетов скрыта</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_off">Секция билетов показана</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_on">Секция билетов под плеером скрыта</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_off">Секция билетов под плеером показана</string>
|
||||
<string name="revanced_hide_timed_reactions_title">Скрыть временные реакции</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_on">Временные реакции в комментариях и живом чате скрыты</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_off">Временные реакции в комментариях и живом чате показаны</string>
|
||||
@@ -241,9 +241,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_title">Скрыть секцию AI-резюме видео</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">Секция AI-резюме видео в описании видео скрыта</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">Секция AI-резюме видео в описании видео показана</string>
|
||||
<string name="revanced_hide_ask_section_title">Скрыть кнопку \"Спросить\"</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">Раздел \"Спросить\" скрыт</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">Раздел \"Спросить\" показан</string>
|
||||
<string name="revanced_hide_ask_section_title">Скрыть раздел \"Спросить\"</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">Раздел \"Спросить\" в описании видео скрыт</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">Раздел \"Спросить\" в описании видео показан</string>
|
||||
<string name="revanced_hide_attributes_section_title">Скрыть раздел атрибутов</string>
|
||||
<string name="revanced_hide_attributes_section_summary_on">Разделы \"Упомянутые или показанные места\", \"Игры\", \"Музыка\" и \"Люди, которых упоминали\" скрыты</string>
|
||||
<string name="revanced_hide_attributes_section_summary_off">Разделы \"Упомянутые или показанные места\", \"Игры\", \"Музыка\" и \"Люди, которых упоминали\" показаны</string>
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
Данная опция доступна только для старых устройств"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Полноэкранная реклама при запуске приложения показана</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Скрыть кнопочную рекламу</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Кнопочная реклама в ленте скрыта</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Кнопочная реклама в ленте показана</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Скрыть метку платной акции</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Метка платной акции в плеере скрыта</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Метка платной акции в плеере показана</string>
|
||||
|
||||
@@ -358,9 +358,6 @@ Slová s veľkými písmenami v strede musia byť zadané s použitím veľkých
|
||||
|
||||
Táto funkcia je dostupná len pre staršie zariadenia"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Zobrazujú sa reklamy na celú obrazovku</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Skryť zapnuté reklamy</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Zapnuté reklamy sú skryté</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Zobrazujú sa reklamy s tlačidlami</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Skryť štítok platenej propagácie</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Štítok platenej propagácie je skrytý</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Zobrazuje sa štítok platenej propagácie</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Omejitve
|
||||
|
||||
Ta funkcija je na voljo samo za starejše naprave"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Oglasi na celotnem zaslonu so prikazani</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Skrij oglase z gumbi</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Oglasi z gumbi so skriti</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Oglasi z gumbi so prikazani</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Skrij nalepko plačane promocije</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Nalepka plačane promocije je skrita</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Nalepka plačane promocije je prikazana</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Kufizime
|
||||
|
||||
Kjo veçori është e disponueshme vetëm për pajisje më të vjetra"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Reklamimet me ekran të plotë janë të dukshme</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Fsheh reklamimet me butona</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Reklamimet me butona janë të fshehur</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Reklamimet me butona janë të dukshme</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Fsheh etiketën e promovimit të paguar</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Etiketë e promovimit të paguar është e fshehur</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Etiketë e promovimit të paguar është e dukshme</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Ograničenja
|
||||
|
||||
Ova funkcija je dostupna samo za starije uređaje"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Oglasi preko celog ekrana su prikazani</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Sakrij oglase u obliku dugmadi</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Oglasi u obliku dugmadi su skriveni</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Oglasi u obliku dugmadi su prikazani</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Sakrij oznaku plaćene promocije</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Oznaka plaćeme promocije je skrivena</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Oznaka plaćene promocije je prikazana</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
Ова функција је доступна само за старије уређаје"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Огласи преко целог екрана су приказани</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Сакриј огласе у облику дугмади</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Огласи у облику дугмади су скривени</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Огласи у облику дугмади су приказани</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Сакриј ознаку плаћене промоције</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Ознака плаћене промоције је скривена</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Ознака плаћене промоције је приказана</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Begränsningar
|
||||
|
||||
Den här funktionen är endast tillgänglig för äldre enheter"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Fullskärmsannonser är synliga</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Dölj knappannonser</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Knappannonser är dolda</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Knappannonser är synliga</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Dölj betald kampanjetikett</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Betald kampanjetikett är dold</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Betald kampanjetikett är synlig</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
คุณสมบัตินี้มีเฉพาะสําหรับอุปกรณ์รุ่นเก่า"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">โฆษณาแบบเต็มหน้าจอจะแสดง</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">ซ่อนโฆษณาแบบมีปุ่ม</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">โฆษณาแบบมีปุ่มถูกซ่อน</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">โฆษณาแบบมีปุ่มจะแสดง</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">ซ่อนป้ายโฆษณาที่จ่ายเงิน</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">ป้ายโฆษณาที่จ่ายเงินถูกซ่อน</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">ป้ายโฆษณาที่จ่ายเงินจะแสดง</string>
|
||||
|
||||
@@ -42,7 +42,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_import_reset">ReVanced ayarları varsayılanlara sıfırlandı</string>
|
||||
<string name="revanced_settings_import_success">%d ayar içe aktarıldı</string>
|
||||
<string name="revanced_settings_import_failure_parse">İçe aktarılamadı: %s</string>
|
||||
<string name="revanced_settings_search_hint">Arama ayarları</string>
|
||||
<string name="revanced_settings_search_hint">Ayarları ara</string>
|
||||
<string name="revanced_settings_search_no_results_title">\'%s\' için sonuç bulunamadı</string>
|
||||
<string name="revanced_settings_search_no_results_summary">Başka bir anahtar kelime deneyin</string>
|
||||
<string name="revanced_settings_search_remove_message">Arama geçmişinden kaldırılsın mı?</string>
|
||||
@@ -171,7 +171,7 @@ Beklenmedik olaylar hakkında bilgilendirilmeyeceksiniz."</string>
|
||||
<string name="revanced_hide_show_more_button_summary_off">Düğme görünür</string>
|
||||
<string name="revanced_hide_ticket_shelf_title">Bilet rafını gizle</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_on">Bilet rafı gizli</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_off">Bilet rafı görünüyor</string>
|
||||
<string name="revanced_hide_ticket_shelf_summary_off">Bilet rafı görünür</string>
|
||||
<string name="revanced_hide_timed_reactions_title">Süreli tepkileri gizle</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_on">Süreli tepkiler gizli</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_off">Süreli tepkiler görünür</string>
|
||||
@@ -242,8 +242,8 @@ Beklenmedik olaylar hakkında bilgilendirilmeyeceksiniz."</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">Video özeti bölümü gizli</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">Video özeti bölümü görünür</string>
|
||||
<string name="revanced_hide_ask_section_title">\'Sor\'u gizle</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">Sor bölümü gizli</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">Sor bölümü görünür</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">Sor kısmı gizli</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">Sor kısmı görünür</string>
|
||||
<string name="revanced_hide_attributes_section_title">Nitelikleri gizle</string>
|
||||
<string name="revanced_hide_attributes_section_summary_on">Öne çıkan yerler, Oyunlar, Müzik ve Bahsedilen kişiler bölümleri gizli</string>
|
||||
<string name="revanced_hide_attributes_section_summary_off">Öne çıkan yerler, Oyunlar, Müzik ve Bahsedilen kişiler bölümleri görünür</string>
|
||||
@@ -365,9 +365,6 @@ Sınırlamalar
|
||||
|
||||
Bu özellik yalnızca eski cihazlarda kullanılabilir"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Tam ekran reklamlar görünür</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Düğmeli reklamları gizle</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Düğmeli reklamlar gizli</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Düğmeli reklamlar görünür</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ücretli tanıtım etiketini gizle</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Ücretli tanıtım etiketi gizli</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Ücretli tanıtım etiketi görünür</string>
|
||||
|
||||
@@ -366,9 +366,6 @@ Second \"item\" text"</string>
|
||||
|
||||
Ця функція доступна тільки для старих пристроїв"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Повноекранна реклама показується</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Приховати рекламу з кнопкою</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Рекламу з кнопкою приховано</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Реклама з кнопкою показується</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Приховати \"Містить пряму рекламу\"</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Мітку \"Містить пряму рекламу\" приховано</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Мітка \"Містить пряму рекламу\" показується</string>
|
||||
@@ -1141,13 +1138,13 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_change_start_page_title">Змінити початкову сторінку</string>
|
||||
<string name="revanced_change_start_page_entry_default">За замовчуванням</string>
|
||||
<string name="revanced_change_start_page_entry_all_subscriptions">Усі підписки</string>
|
||||
<string name="revanced_change_start_page_entry_browse">Усі підписки</string>
|
||||
<string name="revanced_change_start_page_entry_browse">Перегляд каналів</string>
|
||||
<string name="revanced_change_start_page_entry_courses">Навчання</string>
|
||||
<string name="revanced_change_start_page_entry_explore">Навігатор</string>
|
||||
<string name="revanced_change_start_page_entry_fashion">Мода і краса</string>
|
||||
<string name="revanced_change_start_page_entry_explore">Що нового</string>
|
||||
<string name="revanced_change_start_page_entry_fashion">Мода та краса</string>
|
||||
<string name="revanced_change_start_page_entry_gaming">Ігри</string>
|
||||
<string name="revanced_change_start_page_entry_history">Історія</string>
|
||||
<string name="revanced_change_start_page_entry_library">Бібліотека</string>
|
||||
<string name="revanced_change_start_page_entry_library">Вкладка \"Ви\"</string>
|
||||
<string name="revanced_change_start_page_entry_liked_videos">Відео, які сподобалися</string>
|
||||
<string name="revanced_change_start_page_entry_live">Прямі трансляції</string>
|
||||
<string name="revanced_change_start_page_entry_movies">Фільми</string>
|
||||
|
||||
@@ -42,7 +42,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_import_reset">Cài đặt ReVanced đặt lại thành mặc định</string>
|
||||
<string name="revanced_settings_import_success">Đã nhập cài đặt %d</string>
|
||||
<string name="revanced_settings_import_failure_parse">Nhập thất bại: %s</string>
|
||||
<string name="revanced_settings_search_hint">Cài đặt tìm kiếm</string>
|
||||
<string name="revanced_settings_search_hint">Tìm kiếm</string>
|
||||
<string name="revanced_settings_search_no_results_title">Không tìm thấy kết quả nào cho \'%s\'</string>
|
||||
<string name="revanced_settings_search_no_results_summary">Thử một từ khóa khác</string>
|
||||
<string name="revanced_settings_search_remove_message">Xóa khỏi lịch sử tìm kiếm?</string>
|
||||
@@ -365,9 +365,6 @@ Hạn chế
|
||||
|
||||
Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Quảng cáo toàn màn hình được hiển thị</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Ẩn quảng cáo có nút</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Quảng cáo có nút đã bị ẩn</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Quảng cáo có nút được hiển thị</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Ẩn nhãn quảng cáo được tài trợ</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Nhãn quảng cáo được tài trợ đã bị ẩn</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Nhãn quảng cáo được tài trợ được hiển thị</string>
|
||||
|
||||
@@ -365,9 +365,6 @@ Second \"item\" text"</string>
|
||||
|
||||
此功能仅适用于旧设备"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">全屏广告已显示</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">隐藏信息流视频广告</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">按钮广告已隐藏</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">按钮广告已显示</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">隐藏付费推广标签</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">付费推广标签已隐藏</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">付费推广标签已显示</string>
|
||||
|
||||
@@ -355,9 +355,6 @@ Second \"item\" text"</string>
|
||||
|
||||
此功能僅適用於舊版裝置"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">已顯示全螢幕廣告</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">隱藏按鈕型廣告</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">已隱藏按鈕型廣告</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">已顯示按鈕型廣告</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">隱藏付費推廣標籤</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">已隱藏付費推廣標籤</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">已顯示付費推廣標籤</string>
|
||||
|
||||
@@ -427,9 +427,6 @@ Limitations
|
||||
|
||||
This feature is only available for older devices"</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Fullscreen ads are shown</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Hide buttoned ads</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Buttoned ads are hidden</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_off">Buttoned ads are shown</string>
|
||||
<string name="revanced_hide_paid_promotion_label_title">Hide paid promotion label</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_on">Paid promotion label is hidden</string>
|
||||
<string name="revanced_hide_paid_promotion_label_summary_off">Paid promotion label is shown</string>
|
||||
|
||||
Reference in New Issue
Block a user