Compare commits

..

46 Commits

Author SHA1 Message Date
semantic-release-bot
e687d3ed37 chore: Release v5.9.0-dev.3 [skip ci]
# [5.9.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.9.0-dev.2...v5.9.0-dev.3) (2025-01-19)

### Features

* **YouTube - Settings:** Add option to use new Cairo settings menus ([#4305](https://github.com/ReVanced/revanced-patches/issues/4305)) ([064b859](064b859d39))
2025-01-19 23:25:39 +00:00
LisoUseInAIKyrios
064b859d39 feat(YouTube - Settings): Add option to use new Cairo settings menus (#4305)
Co-authored-by: MarcaDian <152095496+marcadian@users.noreply.github.com>
2025-01-20 01:22:15 +02:00
github-actions[bot]
89882ddaf8 chore: Sync translations (#4316) 2025-01-20 01:21:48 +02:00
semantic-release-bot
41881ba161 chore: Release v5.9.0-dev.2 [skip ci]
# [5.9.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.9.0-dev.1...v5.9.0-dev.2) (2025-01-18)

### Features

* **YouTube - Playback speed:** Add option to change 2x tap and hold speed ([#4307](https://github.com/ReVanced/revanced-patches/issues/4307)) ([0615990](0615990138))
2025-01-18 09:40:42 +00:00
LisoUseInAIKyrios
0615990138 feat(YouTube - Playback speed): Add option to change 2x tap and hold speed (#4307) 2025-01-18 10:37:34 +01:00
semantic-release-bot
70532313db chore: Release v5.9.0-dev.1 [skip ci]
# [5.9.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.2-dev.1...v5.9.0-dev.1) (2025-01-17)

### Features

* **YouTube - Hide feed components:** Handle new type of surveys ([#4295](https://github.com/ReVanced/revanced-patches/issues/4295)) ([e5e897d](e5e897de77))
2025-01-17 00:28:17 +00:00
ILoveOpenSourceApplications
e5e897de77 feat(YouTube - Hide feed components): Handle new type of surveys (#4295) 2025-01-17 01:25:43 +01:00
semantic-release-bot
1e57ce9658 chore: Release v5.8.2-dev.1 [skip ci]
## [5.8.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.1...v5.8.2-dev.1) (2025-01-09)

### Bug Fixes

* **YouTube - Spoof video streams:** Resolve playback issues after changing from cellular to wifi ([#4277](https://github.com/ReVanced/revanced-patches/issues/4277)) ([fcad0ab](fcad0ab5bb))
2025-01-09 17:13:13 +00:00
LisoUseInAIKyrios
fcad0ab5bb fix(YouTube - Spoof video streams): Resolve playback issues after changing from cellular to wifi (#4277) 2025-01-09 18:09:44 +01:00
semantic-release-bot
91471eccf9 chore: Release v5.8.1 [skip ci]
## [5.8.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.0...v5.8.1) (2025-01-07)

### Bug Fixes

* **YouTube - Spoof video streams:** Add 'Android Creator' ([#4262](https://github.com/ReVanced/revanced-patches/issues/4262)) ([3ee99b7](3ee99b7bf1))
2025-01-07 16:01:12 +00:00
oSumAtrIX
d559f016c6 chore: Merge branch dev to main (#4271) 2025-01-07 16:57:59 +01:00
github-actions[bot]
5a82d26f03 chore: Sync translations (#4275) 2025-01-07 12:17:17 +01:00
LisoUseInAIKyrios
e2eae499d9 ci: Fix crowdin cron pull strings? 2025-01-07 12:12:53 +01:00
LisoUseInAIKyrios
64919d6443 chore: Fix typo 2025-01-06 14:57:11 +01:00
semantic-release-bot
c6ffaf86ae chore: Release v5.8.1-dev.1 [skip ci]
## [5.8.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.0...v5.8.1-dev.1) (2025-01-06)

### Bug Fixes

* **YouTube - Spoof video streams:** Add 'Android Creator' ([#4262](https://github.com/ReVanced/revanced-patches/issues/4262)) ([3ee99b7](3ee99b7bf1))
2025-01-06 11:01:28 +00:00
LisoUseInAIKyrios
3ee99b7bf1 fix(YouTube - Spoof video streams): Add 'Android Creator' (#4262) 2025-01-06 11:58:27 +01:00
semantic-release-bot
6f9bf4873f chore: Release v5.8.0 [skip ci]
# [5.8.0](https://github.com/ReVanced/revanced-patches/compare/v5.7.2...v5.8.0) (2024-12-30)

### Bug Fixes

* **GmsCore support:** Do not show battery optimization error on Android Automotive devices (Google built-in) ([#4218](https://github.com/ReVanced/revanced-patches/issues/4218)) ([fa4aa54](fa4aa54f0c))
* **YouTube - Exit fullscreen mode:** Exit fullscreen mode of first video opened after cold start ([9496438](9496438da1))
* **YouTube - Force original audio:** If stream spoofing to Android then show a summary text why force audio is not available ([#4220](https://github.com/ReVanced/revanced-patches/issues/4220)) ([4de768f](4de768febf))
* **YouTube - Spoof video streams:** Ignore harmless error toast if hide ads is disabled ([e7c6943](e7c6943ca7))

### Features

* **Swipe controls:** Add option to enable/disable fullscreen swipe to next video ([#4222](https://github.com/ReVanced/revanced-patches/issues/4222)) ([29dbc9f](29dbc9ffbf))
* **YouTube - Hide Shorts components:** Add option to hide Shorts in watch history ([#4214](https://github.com/ReVanced/revanced-patches/issues/4214)) ([094a6aa](094a6aa6de))
* **YouTube - Spoof app version:** Add 'Restore old navigation and toolbar icons' ([9fac161](9fac1614e7))
* **YouTube:** Add `Change form factor` patch ([#4217](https://github.com/ReVanced/revanced-patches/issues/4217)) ([189e1c9](189e1c90c4))
* **YouTube:** Add `Exit fullscreen mode` patch ([#4223](https://github.com/ReVanced/revanced-patches/issues/4223)) ([f3c4d6f](f3c4d6fd64))
* **YouTube:** Add in app option to select a preferred language for ReVanced specific text ([#4231](https://github.com/ReVanced/revanced-patches/issues/4231)) ([7b90baa](7b90baadb5))
2024-12-30 01:50:09 +00:00
LisoUseInAIKyrios
29a73089a3 chore: Merge branch dev to main (#4213) 2024-12-30 05:46:51 +04:00
github-actions[bot]
74ef1841eb chore: Sync translations (#4240) 2024-12-30 05:41:11 +04:00
github-actions[bot]
0c544d28e3 chore: Sync translations (#4239) 2024-12-30 04:55:33 +04:00
semantic-release-bot
b1e5b99b44 chore: Release v5.8.0-dev.8 [skip ci]
# [5.8.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.7...v5.8.0-dev.8) (2024-12-28)

### Features

* **YouTube:** Add in app option to select a preferred language for ReVanced specific text ([#4231](https://github.com/ReVanced/revanced-patches/issues/4231)) ([7b90baa](7b90baadb5))
2024-12-28 08:33:56 +00:00
LisoUseInAIKyrios
7b90baadb5 feat(YouTube): Add in app option to select a preferred language for ReVanced specific text (#4231) 2024-12-28 12:30:57 +04:00
semantic-release-bot
4a6f3c8555 chore: Release v5.8.0-dev.7 [skip ci]
# [5.8.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.6...v5.8.0-dev.7) (2024-12-27)

### Bug Fixes

* **YouTube - Spoof video streams:** Ignore harmless error toast if hide ads is disabled ([e7c6943](e7c6943ca7))
2024-12-27 21:13:07 +00:00
LisoUseInAIKyrios
e7c6943ca7 fix(YouTube - Spoof video streams): Ignore harmless error toast if hide ads is disabled 2024-12-28 01:10:01 +04:00
semantic-release-bot
ae1b987c0d chore: Release v5.8.0-dev.6 [skip ci]
# [5.8.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.5...v5.8.0-dev.6) (2024-12-27)

### Bug Fixes

* **YouTube - Exit fullscreen mode:** Exit fullscreen mode of first video opened after cold start ([9496438](9496438da1))
2024-12-27 15:34:52 +00:00
LisoUseInAIKyrios
9496438da1 fix(YouTube - Exit fullscreen mode): Exit fullscreen mode of first video opened after cold start 2024-12-27 19:31:39 +04:00
github-actions[bot]
fa51631ea6 chore: Sync translations (#4232) 2024-12-27 19:30:03 +04:00
LisoUseInAIKyrios
8bf7108001 ci: Not fixing Crowdin cron task 2024-12-27 19:27:52 +04:00
LisoUseInAIKyrios
030eece04a refactor(YouTube - Exit fullscreen mode): Improve logging 2024-12-27 18:19:43 +04:00
LisoUseInAIKyrios
30009b723d refactor: Change context field to volatile
Field is set from main thread, but can be immediately accessed by non main threads.
2024-12-27 11:15:35 +04:00
semantic-release-bot
53b25ea7e9 chore: Release v5.8.0-dev.5 [skip ci]
# [5.8.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.4...v5.8.0-dev.5) (2024-12-27)

### Features

* **YouTube:** Add `Change form factor` patch ([#4217](https://github.com/ReVanced/revanced-patches/issues/4217)) ([189e1c9](189e1c90c4))
2024-12-27 06:51:57 +00:00
LisoUseInAIKyrios
189e1c90c4 feat(YouTube): Add Change form factor patch (#4217) 2024-12-27 10:48:14 +04:00
github-actions[bot]
f01603b3f3 chore: Sync translations (#4229) 2024-12-27 10:46:32 +04:00
semantic-release-bot
3db5651e5c chore: Release v5.8.0-dev.4 [skip ci]
# [5.8.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.3...v5.8.0-dev.4) (2024-12-27)

### Bug Fixes

* **GmsCore support:** Do not show battery optimization error on Android Automotive devices (Google built-in) ([#4218](https://github.com/ReVanced/revanced-patches/issues/4218)) ([fa4aa54](fa4aa54f0c))

### Features

* **Swipe controls:** Add option to enable/disable fullscreen swipe to next video ([#4222](https://github.com/ReVanced/revanced-patches/issues/4222)) ([29dbc9f](29dbc9ffbf))
* **YouTube:** Add `Exit fullscreen mode` patch ([#4223](https://github.com/ReVanced/revanced-patches/issues/4223)) ([f3c4d6f](f3c4d6fd64))
2024-12-27 06:28:58 +00:00
LisoUseInAIKyrios
f3c4d6fd64 feat(YouTube): Add Exit fullscreen mode patch (#4223) 2024-12-27 10:25:17 +04:00
LisoUseInAIKyrios
29dbc9ffbf feat(Swipe controls): Add option to enable/disable fullscreen swipe to next video (#4222) 2024-12-27 10:23:30 +04:00
LisoUseInAIKyrios
fa4aa54f0c fix(GmsCore support): Do not show battery optimization error on Android Automotive devices (Google built-in) (#4218) 2024-12-27 10:22:50 +04:00
github-actions[bot]
1d89ada07f chore: Sync translations (#4228) 2024-12-27 10:22:25 +04:00
LisoUseInAIKyrios
8c529abad5 ci: Fix Crowdin cron task? 2024-12-27 10:17:28 +04:00
LisoUseInAIKyrios
4ade7c7329 ci: Fix Crowdin cron task? 2024-12-26 14:08:46 +04:00
semantic-release-bot
f35247a872 chore: Release v5.8.0-dev.3 [skip ci]
# [5.8.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.2...v5.8.0-dev.3) (2024-12-26)

### Bug Fixes

* **YouTube - Force original audio:** If stream spoofing to Android then show a summary text why force audio is not available ([#4220](https://github.com/ReVanced/revanced-patches/issues/4220)) ([4de768f](4de768febf))
2024-12-26 10:02:26 +00:00
LisoUseInAIKyrios
4de768febf fix(YouTube - Force original audio): If stream spoofing to Android then show a summary text why force audio is not available (#4220) 2024-12-26 13:58:29 +04:00
github-actions[bot]
1a5c86db93 chore: Sync translations (#4216) 2024-12-26 13:58:13 +04:00
LisoUseInAIKyrios
dbba795468 chore(YouTube): Fix inconsistent strings 2024-12-25 04:59:12 +04:00
semantic-release-bot
0a9320551d chore: Release v5.8.0-dev.2 [skip ci]
# [5.8.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.1...v5.8.0-dev.2) (2024-12-24)

### Features

* **YouTube - Spoof app version:** Add 'Restore old navigation and toolbar icons' ([9fac161](9fac1614e7))
2024-12-24 22:11:57 +00:00
LisoUseInAIKyrios
9fac1614e7 feat(YouTube - Spoof app version): Add 'Restore old navigation and toolbar icons' 2024-12-25 02:09:10 +04:00
150 changed files with 6424 additions and 3791 deletions

View File

@@ -16,8 +16,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: dev
fetch-depth: 0
clean: true
- name: Pull strings
uses: crowdin/github-action@v2

View File

@@ -1,3 +1,120 @@
# [5.9.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.9.0-dev.2...v5.9.0-dev.3) (2025-01-19)
### Features
* **YouTube - Settings:** Add option to use new Cairo settings menus ([#4305](https://github.com/ReVanced/revanced-patches/issues/4305)) ([7b8a2a2](https://github.com/ReVanced/revanced-patches/commit/7b8a2a2721ab5351f8c0251401aceddf0c5327df))
# [5.9.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.9.0-dev.1...v5.9.0-dev.2) (2025-01-18)
### Features
* **YouTube - Playback speed:** Add option to change 2x tap and hold speed ([#4307](https://github.com/ReVanced/revanced-patches/issues/4307)) ([02fb26e](https://github.com/ReVanced/revanced-patches/commit/02fb26e9458fb8635d497e6e78f964055244d738))
# [5.9.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.2-dev.1...v5.9.0-dev.1) (2025-01-17)
### Features
* **YouTube - Hide feed components:** Handle new type of surveys ([#4295](https://github.com/ReVanced/revanced-patches/issues/4295)) ([c770e03](https://github.com/ReVanced/revanced-patches/commit/c770e03f3801367cb531af860fbdfa43dca89af0))
## [5.8.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.1...v5.8.2-dev.1) (2025-01-09)
### Bug Fixes
* **YouTube - Spoof video streams:** Resolve playback issues after changing from cellular to wifi ([#4277](https://github.com/ReVanced/revanced-patches/issues/4277)) ([e93e1c8](https://github.com/ReVanced/revanced-patches/commit/e93e1c8ec3367e941034e9c4e3725ec1db429a60))
## [5.8.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.0...v5.8.1) (2025-01-07)
### Bug Fixes
* **YouTube - Spoof video streams:** Add 'Android Creator' ([#4262](https://github.com/ReVanced/revanced-patches/issues/4262)) ([0479dd2](https://github.com/ReVanced/revanced-patches/commit/0479dd265e09b0accdf6ff6b00c8e938dc5b96c7))
## [5.8.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.8.0...v5.8.1-dev.1) (2025-01-06)
### Bug Fixes
* **YouTube - Spoof video streams:** Add 'Android Creator' ([#4262](https://github.com/ReVanced/revanced-patches/issues/4262)) ([0479dd2](https://github.com/ReVanced/revanced-patches/commit/0479dd265e09b0accdf6ff6b00c8e938dc5b96c7))
# [5.8.0](https://github.com/ReVanced/revanced-patches/compare/v5.7.2...v5.8.0) (2024-12-30)
### Bug Fixes
* **GmsCore support:** Do not show battery optimization error on Android Automotive devices (Google built-in) ([#4218](https://github.com/ReVanced/revanced-patches/issues/4218)) ([d6e389c](https://github.com/ReVanced/revanced-patches/commit/d6e389cc43bc40724f032b230f70048276349a19))
* **YouTube - Exit fullscreen mode:** Exit fullscreen mode of first video opened after cold start ([be5cf2e](https://github.com/ReVanced/revanced-patches/commit/be5cf2e834d87d51b5d3061d46bd7154d6306787))
* **YouTube - Force original audio:** If stream spoofing to Android then show a summary text why force audio is not available ([#4220](https://github.com/ReVanced/revanced-patches/issues/4220)) ([029aee8](https://github.com/ReVanced/revanced-patches/commit/029aee8023f096413fc80a2c583b4fe55ecb10ac))
* **YouTube - Spoof video streams:** Ignore harmless error toast if hide ads is disabled ([c3423bb](https://github.com/ReVanced/revanced-patches/commit/c3423bb9e531cfa52f6d28e0b98bbe8ab8684c30))
### Features
* **Swipe controls:** Add option to enable/disable fullscreen swipe to next video ([#4222](https://github.com/ReVanced/revanced-patches/issues/4222)) ([119092f](https://github.com/ReVanced/revanced-patches/commit/119092fafa4129849246df15fe8076ed3b491b85))
* **YouTube - Hide Shorts components:** Add option to hide Shorts in watch history ([#4214](https://github.com/ReVanced/revanced-patches/issues/4214)) ([19c2742](https://github.com/ReVanced/revanced-patches/commit/19c2742aa367367c77bb50ddad6f8a20fef8ea0a))
* **YouTube - Spoof app version:** Add 'Restore old navigation and toolbar icons' ([f84e459](https://github.com/ReVanced/revanced-patches/commit/f84e459d3d54b3001586796ab4e114ebadf09043))
* **YouTube:** Add `Change form factor` patch ([#4217](https://github.com/ReVanced/revanced-patches/issues/4217)) ([644ac5b](https://github.com/ReVanced/revanced-patches/commit/644ac5baa68b209a32300149a2efa009b776f9a7))
* **YouTube:** Add `Exit fullscreen mode` patch ([#4223](https://github.com/ReVanced/revanced-patches/issues/4223)) ([bb5d03b](https://github.com/ReVanced/revanced-patches/commit/bb5d03bd89a3f932c77e4e9de90174c374933688))
* **YouTube:** Add in app option to select a preferred language for ReVanced specific text ([#4231](https://github.com/ReVanced/revanced-patches/issues/4231)) ([3932af3](https://github.com/ReVanced/revanced-patches/commit/3932af397ae89a0b30191cd870bd6cddb7a078db))
# [5.8.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.7...v5.8.0-dev.8) (2024-12-28)
### Features
* **YouTube:** Add in app option to select a preferred language for ReVanced specific text ([#4231](https://github.com/ReVanced/revanced-patches/issues/4231)) ([3932af3](https://github.com/ReVanced/revanced-patches/commit/3932af397ae89a0b30191cd870bd6cddb7a078db))
# [5.8.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.6...v5.8.0-dev.7) (2024-12-27)
### Bug Fixes
* **YouTube - Spoof video streams:** Ignore harmless error toast if hide ads is disabled ([c3423bb](https://github.com/ReVanced/revanced-patches/commit/c3423bb9e531cfa52f6d28e0b98bbe8ab8684c30))
# [5.8.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.5...v5.8.0-dev.6) (2024-12-27)
### Bug Fixes
* **YouTube - Exit fullscreen mode:** Exit fullscreen mode of first video opened after cold start ([be5cf2e](https://github.com/ReVanced/revanced-patches/commit/be5cf2e834d87d51b5d3061d46bd7154d6306787))
# [5.8.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.4...v5.8.0-dev.5) (2024-12-27)
### Features
* **YouTube:** Add `Change form factor` patch ([#4217](https://github.com/ReVanced/revanced-patches/issues/4217)) ([644ac5b](https://github.com/ReVanced/revanced-patches/commit/644ac5baa68b209a32300149a2efa009b776f9a7))
# [5.8.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.3...v5.8.0-dev.4) (2024-12-27)
### Bug Fixes
* **GmsCore support:** Do not show battery optimization error on Android Automotive devices (Google built-in) ([#4218](https://github.com/ReVanced/revanced-patches/issues/4218)) ([d6e389c](https://github.com/ReVanced/revanced-patches/commit/d6e389cc43bc40724f032b230f70048276349a19))
### Features
* **Swipe controls:** Add option to enable/disable fullscreen swipe to next video ([#4222](https://github.com/ReVanced/revanced-patches/issues/4222)) ([119092f](https://github.com/ReVanced/revanced-patches/commit/119092fafa4129849246df15fe8076ed3b491b85))
* **YouTube:** Add `Exit fullscreen mode` patch ([#4223](https://github.com/ReVanced/revanced-patches/issues/4223)) ([bb5d03b](https://github.com/ReVanced/revanced-patches/commit/bb5d03bd89a3f932c77e4e9de90174c374933688))
# [5.8.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.2...v5.8.0-dev.3) (2024-12-26)
### Bug Fixes
* **YouTube - Force original audio:** If stream spoofing to Android then show a summary text why force audio is not available ([#4220](https://github.com/ReVanced/revanced-patches/issues/4220)) ([029aee8](https://github.com/ReVanced/revanced-patches/commit/029aee8023f096413fc80a2c583b4fe55ecb10ac))
# [5.8.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.8.0-dev.1...v5.8.0-dev.2) (2024-12-24)
### Features
* **YouTube - Spoof app version:** Add 'Restore old navigation and toolbar icons' ([f84e459](https://github.com/ReVanced/revanced-patches/commit/f84e459d3d54b3001586796ab4e114ebadf09043))
# [5.8.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.7.2...v5.8.0-dev.1) (2024-12-24)

View File

@@ -106,7 +106,11 @@ public class GmsCoreSupport {
}
// Check if GmsCore is whitelisted from battery optimizations.
if (batteryOptimizationsEnabled(context)) {
if (isAndroidAutomotive(context)) {
// Ignore Android Automotive devices (Google built-in),
// as there is no way to disable battery optimizations.
Logger.printDebug(() -> "Device is Android Automotive");
} else if (batteryOptimizationsEnabled(context)) {
Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations");
showBatteryOptimizationDialog(context,
@@ -147,6 +151,10 @@ public class GmsCoreSupport {
return !powerManager.isIgnoringBatteryOptimizations(GMS_CORE_PACKAGE_NAME);
}
private static boolean isAndroidAutomotive(Context context) {
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
}
private static String getGmsCoreDownload() {
final var vendorGroupId = getGmsCoreVendorGroupId();
//noinspection SwitchStatementWithTooFewBranches

View File

@@ -40,13 +40,15 @@ import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import app.revanced.extension.shared.settings.AppLanguage;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.settings.BooleanSetting;
import app.revanced.extension.shared.settings.preference.ReVancedAboutPreference;
public class Utils {
@SuppressLint("StaticFieldLeak")
private static Context context;
private static volatile Context context;
private static String versionName;
private static String applicationLabel;
@@ -360,7 +362,17 @@ public class Utils {
}
public static void setContext(Context appContext) {
// Must initially set context as the language settings needs it.
context = appContext;
AppLanguage language = BaseSettings.REVANCED_LANGUAGE.get();
if (language != AppLanguage.DEFAULT) {
// Create a new context with the desired language.
Configuration config = appContext.getResources().getConfiguration();
config.setLocale(language.getLocale());
context = appContext.createConfigurationContext(config);
}
// In some apps like TikTok, the Setting classes can load in weird orders due to cyclic class dependencies.
// Calling the regular printDebug method here can cause a Settings context null pointer exception,
// even though the context is already set before the call.
@@ -523,6 +535,11 @@ public class Utils {
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
}
public static boolean isLandscapeOrientation() {
final int orientation = context.getResources().getConfiguration().orientation;
return orientation == Configuration.ORIENTATION_LANDSCAPE;
}
/**
* Automatically logs any exceptions the runnable throws.
*
@@ -595,7 +612,7 @@ public class Utils {
|| networkType == NetworkType.OTHER;
}
@SuppressLint("MissingPermission") // permission already included in YouTube
@SuppressLint({"MissingPermission", "deprecation"}) // Permission already included in YouTube.
public static NetworkType getNetworkType() {
Context networkContext = getContext();
if (networkContext == null) {
@@ -705,8 +722,8 @@ public class Utils {
Preference preference = group.getPreference(i);
final Sort preferenceSort;
if (preference instanceof PreferenceGroup) {
sortPreferenceGroups((PreferenceGroup) preference);
if (preference instanceof PreferenceGroup subGroup) {
sortPreferenceGroups(subGroup);
preferenceSort = groupSort; // Sort value for groups is for it's content, not itself.
} else {
// Allow individual preferences to set a key sorting.
@@ -760,8 +777,8 @@ public class Utils {
return;
}
String deviceLanguage = Utils.getContext().getResources().getConfiguration().locale.getLanguage();
if (deviceLanguage.equals("en")) {
String revancedLocale = Utils.getContext().getResources().getConfiguration().locale.getLanguage();
if (revancedLocale.equals(Locale.ENGLISH.getLanguage())) {
return;
}
@@ -769,8 +786,8 @@ public class Utils {
Preference pref = group.getPreference(i);
pref.setSingleLineTitle(false);
if (pref instanceof PreferenceGroup) {
setPreferenceTitlesToMultiLineIfNeeded((PreferenceGroup) pref);
if (pref instanceof PreferenceGroup subGroup) {
setPreferenceTitlesToMultiLineIfNeeded(subGroup);
}
}
}

View File

@@ -1,8 +1,8 @@
package app.revanced.extension.shared.spoof;
package app.revanced.extension.shared.settings;
import java.util.Locale;
public enum AudioStreamLanguage {
public enum AppLanguage {
/**
* The current app language.
*/
@@ -34,7 +34,7 @@ public enum AudioStreamLanguage {
GL,
GU,
HI,
HE, // App uses obsolete 'IW' and 'HE' is modern ISO code.
HE, // App uses obsolete 'IW' and not the modern 'HE' ISO code.
HR,
HU,
HY,
@@ -87,7 +87,7 @@ public enum AudioStreamLanguage {
private final String language;
AudioStreamLanguage() {
AppLanguage() {
language = name().toLowerCase(Locale.US);
}
@@ -103,4 +103,12 @@ public enum AudioStreamLanguage {
return language;
}
public Locale getLocale() {
if (this == DEFAULT) {
return Locale.getDefault();
}
return Locale.forLanguageTag(language);
}
}

View File

@@ -6,7 +6,6 @@ import static app.revanced.extension.shared.settings.Setting.parent;
import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.AudioStreamLanguageOverrideAvailability;
import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.SpoofiOSAvailability;
import app.revanced.extension.shared.spoof.AudioStreamLanguage;
import app.revanced.extension.shared.spoof.ClientType;
/**
@@ -22,8 +21,10 @@ public class BaseSettings {
public static final IntegerSetting CHECK_ENVIRONMENT_WARNINGS_ISSUED = new IntegerSetting("revanced_check_environment_warnings_issued", 0, true, false);
public static final EnumSetting<AppLanguage> REVANCED_LANGUAGE = new EnumSetting<>("revanced_language", AppLanguage.DEFAULT, true, "revanced_language_user_dialog_message");
public static final BooleanSetting SPOOF_VIDEO_STREAMS = new BooleanSetting("revanced_spoof_video_streams", TRUE, true, "revanced_spoof_video_streams_user_dialog_message");
public static final EnumSetting<AudioStreamLanguage> SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AudioStreamLanguage.DEFAULT, new AudioStreamLanguageOverrideAvailability());
public static final EnumSetting<AppLanguage> SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AppLanguage.DEFAULT, new AudioStreamLanguageOverrideAvailability());
public static final BooleanSetting SPOOF_STREAMING_DATA_STATS_FOR_NERDS = new BooleanSetting("revanced_spoof_streaming_data_stats_for_nerds", TRUE, parent(SPOOF_VIDEO_STREAMS));
public static final BooleanSetting SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC = new BooleanSetting("revanced_spoof_video_streams_ios_force_avc", FALSE, true,
"revanced_spoof_video_streams_ios_force_avc_user_dialog_message", new SpoofiOSAvailability());

View File

@@ -153,7 +153,6 @@ public abstract class Setting<T> {
/**
* Confirmation message to display, if the user tries to change the setting from the default value.
* Currently this works only for Boolean setting types.
*/
@Nullable
public final StringRef userDialogMessage;
@@ -244,6 +243,7 @@ public abstract class Setting<T> {
*
* This method will be deleted in the future.
*/
@SuppressWarnings("rawtypes")
public static void migrateFromOldPreferences(@NonNull SharedPrefCategory oldPrefs, @NonNull Setting setting, String settingKey) {
if (!oldPrefs.preferences.contains(settingKey)) {
return; // Nothing to do.
@@ -419,6 +419,7 @@ public abstract class Setting<T> {
boolean rebootSettingChanged = false;
int numberOfSettingsImported = 0;
//noinspection rawtypes
for (Setting setting : SETTINGS) {
String key = setting.getImportExportKey();
if (json.has(key)) {

View File

@@ -42,7 +42,7 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
private final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, str) -> {
try {
Setting<?> setting = Setting.getSettingFromPath(str);
Setting<?> setting = Setting.getSettingFromPath(Objects.requireNonNull(str));
if (setting == null) {
return;
}
@@ -52,23 +52,21 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
}
Logger.printDebug(() -> "Preference changed: " + setting.key);
// Apply 'Setting <- Preference', unless during importing when it needs to be 'Setting -> Preference'.
updatePreference(pref, setting, true, settingImportInProgress);
// Update any other preference availability that may now be different.
updateUIAvailability();
if (settingImportInProgress) {
return;
}
if (!showingUserDialogMessage) {
if (setting.userDialogMessage != null && ((SwitchPreference) pref).isChecked() != (Boolean) setting.defaultValue) {
showSettingUserDialogConfirmation((SwitchPreference) pref, (BooleanSetting) setting);
if (!settingImportInProgress && !showingUserDialogMessage) {
if (setting.userDialogMessage != null && !prefIsSetToDefault(pref, setting)) {
// Do not change the setting yet, to allow preserving whatever
// list/text value was previously set if it needs to be reverted.
showSettingUserDialogConfirmation(pref, setting);
return;
} else if (setting.rebootApp) {
showRestartDialog(getContext());
}
}
// Apply 'Setting <- Preference', unless during importing when it needs to be 'Setting -> Preference'.
updatePreference(pref, setting, true, settingImportInProgress);
// Update any other preference availability that may now be different.
updateUIAvailability();
} catch (Exception ex) {
Logger.printException(() -> "OnSharedPreferenceChangeListener failure", ex);
}
@@ -92,7 +90,7 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
Utils.setPreferenceTitlesToMultiLineIfNeeded(screen);
}
private void showSettingUserDialogConfirmation(SwitchPreference switchPref, BooleanSetting setting) {
private void showSettingUserDialogConfirmation(Preference pref, Setting<?> setting) {
Utils.verifyOnMainThread();
final var context = getContext();
@@ -104,12 +102,19 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
.setTitle(confirmDialogTitle)
.setMessage(Objects.requireNonNull(setting.userDialogMessage).toString())
.setPositiveButton(android.R.string.ok, (dialog, id) -> {
// User confirmed, save to the Setting.
updatePreference(pref, setting, true, false);
// Update availability of other preferences that may be changed.
updateUIAvailability();
if (setting.rebootApp) {
showRestartDialog(context);
}
})
.setNegativeButton(android.R.string.cancel, (dialog, id) -> {
switchPref.setChecked(setting.defaultValue); // Recursive call that resets the Setting value.
// Restore whatever the setting was before the change.
updatePreference(pref, setting, true, true);
})
.setOnDismissListener(dialog -> {
showingUserDialogMessage = false;
@@ -132,6 +137,24 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
updatePreferenceScreen(getPreferenceScreen(), false, false);
}
/**
* @return If the preference is currently set to the default value of the Setting.
*/
protected boolean prefIsSetToDefault(Preference pref, Setting<?> setting) {
if (pref instanceof SwitchPreference switchPref) {
return switchPref.isChecked() == (Boolean) setting.defaultValue;
}
if (pref instanceof EditTextPreference editPreference) {
return editPreference.getText().equals(setting.defaultValue.toString());
}
if (pref instanceof ListPreference listPref) {
return listPref.getValue().equals(setting.defaultValue.toString());
}
throw new IllegalStateException("Must override method to handle "
+ "preference type: " + pref.getClass());
}
/**
* Syncs all UI Preferences to any {@link Setting} they represent.
*/
@@ -170,23 +193,20 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
protected void syncSettingWithPreference(@NonNull Preference pref,
@NonNull Setting<?> setting,
boolean applySettingToPreference) {
if (pref instanceof SwitchPreference) {
SwitchPreference switchPref = (SwitchPreference) pref;
if (pref instanceof SwitchPreference switchPref) {
BooleanSetting boolSetting = (BooleanSetting) setting;
if (applySettingToPreference) {
switchPref.setChecked(boolSetting.get());
} else {
BooleanSetting.privateSetValue(boolSetting, switchPref.isChecked());
}
} else if (pref instanceof EditTextPreference) {
EditTextPreference editPreference = (EditTextPreference) pref;
} else if (pref instanceof EditTextPreference editPreference) {
if (applySettingToPreference) {
editPreference.setText(setting.get().toString());
} else {
Setting.privateSetValueFromString(setting, editPreference.getText());
}
} else if (pref instanceof ListPreference) {
ListPreference listPref = (ListPreference) pref;
} else if (pref instanceof ListPreference listPref) {
if (applySettingToPreference) {
listPref.setValue(setting.get().toString());
} else {

View File

@@ -11,7 +11,9 @@ public enum ClientType {
ANDROID_VR_NO_AUTH(
28,
"ANDROID_VR",
"Oculus",
"Quest 3",
"Android",
"12",
"com.google.android.apps.youtube.vr.oculus/1.56.21 (Linux; U; Android 12; GB) gzip",
"32", // Android 12.1
@@ -19,10 +21,14 @@ public enum ClientType {
false,
"Android VR No auth"
),
// Chromecast with Google TV 4K.
// https://dumps.tadiphone.dev/dumps/google/kirkwood
ANDROID_UNPLUGGED(
29,
"ANDROID_UNPLUGGED",
"Google",
"Google TV Streamer",
"Android",
"14",
"com.google.android.apps.youtube.unplugged/8.49.0 (Linux; U; Android 14; GB) gzip",
"34",
@@ -30,10 +36,26 @@ public enum ClientType {
true,
"Android TV"
),
// Cannot play livestreams and lacks HDR, but can play videos with music and labeled "for children".
ANDROID_CREATOR(
14,
"ANDROID_CREATOR",
Build.MANUFACTURER,
Build.MODEL,
"Android",
"11",
"com.google.android.apps.youtube.creator/24.45.100 (Linux; U; Android 11) gzip",
"30",
"24.45.100",
true,
"Android Creator"
),
ANDROID_VR(
ANDROID_VR_NO_AUTH.id,
ANDROID_VR_NO_AUTH.clientName,
ANDROID_VR_NO_AUTH.deviceMake,
ANDROID_VR_NO_AUTH.deviceModel,
ANDROID_VR_NO_AUTH.osName,
ANDROID_VR_NO_AUTH.osVersion,
ANDROID_VR_NO_AUTH.userAgent,
ANDROID_VR_NO_AUTH.androidSdkVersion,
@@ -41,18 +63,21 @@ public enum ClientType {
true,
"Android VR"
),
IOS_UNPLUGGED(33,
IOS_UNPLUGGED(
33,
"IOS_UNPLUGGED",
"Apple",
forceAVC()
? "iPhone12,5" // 11 Pro Max (last device with iOS 13)
: "iPhone16,2", // 15 Pro Max
"iOS",
// iOS 13 and earlier uses only AVC. 14+ adds VP9 and AV1.
forceAVC()
? "13.7.17H35" // Last release of iOS 13.
: "18.1.1.22B91",
: "18.2.22C152",
forceAVC()
? "com.google.ios.youtubeunplugged/6.45 (iPhone; U; CPU iOS 13_7 like Mac OS X)"
: "com.google.ios.youtubeunplugged/8.33 (iPhone; U; CPU iOS 18_1_1 like Mac OS X)",
? "com.google.ios.youtubeunplugged/6.45 (iPhone12,5; U; CPU iOS 13_7 like Mac OS X)"
: "com.google.ios.youtubeunplugged/8.49 (iPhone16,2; U; CPU iOS 18_2_22 like Mac OS X)",
null,
// Version number should be a valid iOS release.
// https://www.ipa4fun.com/history/152043/
@@ -60,7 +85,7 @@ public enum ClientType {
// but 6.45 is the last version that supports iOS 13.
forceAVC()
? "6.45"
: "8.33",
: "8.49",
true,
forceAVC()
? "iOS TV Force AVC"
@@ -80,10 +105,20 @@ public enum ClientType {
public final String clientName;
/**
* Device model, equivalent to {@link Build#MODEL} (System property: ro.product.model)
* Device model, equivalent to {@link Build#MANUFACTURER} (System property: ro.product.vendor.manufacturer)
*/
public final String deviceMake;
/**
* Device model, equivalent to {@link Build#MODEL} (System property: ro.product.vendor.model)
*/
public final String deviceModel;
/**
* Device OS name.
*/
public final String osName;
/**
* Device OS version.
*/
@@ -118,7 +153,9 @@ public enum ClientType {
ClientType(int id,
String clientName,
String deviceMake,
String deviceModel,
String osName,
String osVersion,
String userAgent,
@Nullable String androidSdkVersion,
@@ -127,7 +164,9 @@ public enum ClientType {
String friendlyName) {
this.id = id;
this.clientName = clientName;
this.deviceMake = deviceMake;
this.deviceModel = deviceModel;
this.osName = osName;
this.osVersion = osVersion;
this.userAgent = userAgent;
this.androidSdkVersion = androidSdkVersion;

View File

@@ -34,6 +34,12 @@ public class SpoofVideoStreamsPatch {
return false; // Modified during patching.
}
public static boolean notSpoofingToAndroid() {
return !isPatchIncluded()
|| !BaseSettings.SPOOF_VIDEO_STREAMS.get()
|| BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.IOS_UNPLUGGED;
}
/**
* Injection point.
* Blocks /get_watch requests by returning an unreachable URI.
@@ -71,9 +77,9 @@ public class SpoofVideoStreamsPatch {
String path = originalUri.getPath();
if (path != null && path.contains("initplayback")) {
Logger.printDebug(() -> "Blocking 'initplayback' by returning unreachable url");
Logger.printDebug(() -> "Blocking 'initplayback' by clearing query");
return UNREACHABLE_HOST_URI_STRING;
return originalUri.buildUpon().clearQuery().build().toString();
}
} catch (Exception ex) {
Logger.printException(() -> "blockInitPlaybackRequest failure", ex);
@@ -109,20 +115,27 @@ public class SpoofVideoStreamsPatch {
try {
Uri uri = Uri.parse(url);
String path = uri.getPath();
if (path == null || !path.contains("player")) {
return;
}
// 'get_drm_license' has no video id and appears to happen when waiting for a paid video to start.
// 'heartbeat' has no video id and appears to be only after playback has started.
// 'refresh' has no video id and appears to happen when waiting for a livestream to start.
if (path != null && path.contains("player") && !path.contains("heartbeat")
&& !path.contains("refresh")) {
String id = uri.getQueryParameter("id");
if (id == null) {
Logger.printException(() -> "Ignoring request that has no video id." +
" Url: " + url + " headers: " + requestHeaders);
return;
}
StreamingDataRequest.fetchRequest(id, requestHeaders);
// 'ad_break' has no video id.
if (path.contains("get_drm_license") || path.contains("heartbeat")
|| path.contains("refresh") || path.contains("ad_break")) {
Logger.printDebug(() -> "Ignoring path: " + path);
return;
}
String id = uri.getQueryParameter("id");
if (id == null) {
Logger.printException(() -> "Ignoring request with no id: " + url);
return;
}
StreamingDataRequest.fetchRequest(id, requestHeaders);
} catch (Exception ex) {
Logger.printException(() -> "buildRequest failure", ex);
}
@@ -206,23 +219,11 @@ public class SpoofVideoStreamsPatch {
return videoFormat;
}
public static final class NotSpoofingAndroidAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
if (SpoofVideoStreamsPatch.isPatchIncluded()) {
return !BaseSettings.SPOOF_VIDEO_STREAMS.get()
|| BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.IOS_UNPLUGGED;
}
return true;
}
}
public static final class AudioStreamLanguageOverrideAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
return !BaseSettings.SPOOF_VIDEO_STREAMS.get()
|| BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_VR_NO_AUTH;
return BaseSettings.SPOOF_VIDEO_STREAMS.get()
&& BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_VR_NO_AUTH;
}
}

View File

@@ -10,7 +10,7 @@ import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.requests.Requester;
import app.revanced.extension.shared.requests.Route;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.spoof.AudioStreamLanguage;
import app.revanced.extension.shared.settings.AppLanguage;
import app.revanced.extension.shared.spoof.ClientType;
final class PlayerRoutes {
@@ -42,15 +42,17 @@ final class PlayerRoutes {
// but if this is a fall over client it will set the language even though
// the audio language is not selectable in the UI.
ClientType userSelectedClient = BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
AudioStreamLanguage language = userSelectedClient == ClientType.ANDROID_VR_NO_AUTH
AppLanguage language = userSelectedClient == ClientType.ANDROID_VR_NO_AUTH
? BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get()
: AudioStreamLanguage.DEFAULT;
: AppLanguage.DEFAULT;
JSONObject client = new JSONObject();
client.put("hl", language.getLanguage());
client.put("clientName", clientType.clientName);
client.put("clientVersion", clientType.clientVersion);
client.put("deviceMake", clientType.deviceMake);
client.put("deviceModel", clientType.deviceModel);
client.put("osName", clientType.osName);
client.put("osVersion", clientType.osVersion);
if (clientType.androidSdkVersion != null) {
client.put("androidSdkVersion", clientType.androidSdkVersion);
@@ -76,6 +78,7 @@ final class PlayerRoutes {
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("User-Agent", clientType.userAgent);
connection.setRequestProperty("X-YouTube-Client-Version", String.valueOf(clientType.id));
connection.setUseCaches(false);
connection.setDoOutput(true);

View File

@@ -191,8 +191,8 @@ public class StreamingDataRequest {
// gzip encoding doesn't response with content length (-1),
// but empty response body does.
if (connection.getContentLength() == 0) {
if (BaseSettings.DEBUG.get()) {
Logger.printException(() -> "Ignoring empty client: " + clientType);
if (BaseSettings.DEBUG.get() && BaseSettings.DEBUG_TOAST_ON_ERROR.get()) {
Utils.showToastShort("Ignoring empty spoof stream client: " + clientType);
}
} else {
try (InputStream inputStream = new BufferedInputStream(connection.getInputStream());

View File

@@ -90,4 +90,12 @@ public class ThemeHelper {
public static int getForegroundColor() {
return isDarkTheme() ? getLightThemeColor() : getDarkThemeColor();
}
public static int getToolbarBackgroundColor() {
final String colorName = isDarkTheme()
? "yt_black3"
: "yt_white1";
return getColorInt(colorName);
}
}

View File

@@ -176,14 +176,13 @@ public final class AlternativeThumbnailsPatch {
// Unknown tab, treat as the home tab;
return homeOption;
}
if (selectedNavButton == NavigationButton.HOME) {
return homeOption;
}
if (selectedNavButton == NavigationButton.SUBSCRIPTIONS || selectedNavButton == NavigationButton.NOTIFICATIONS) {
return subscriptionsOption;
}
// A library tab variant is active.
return libraryOption;
return switch (selectedNavButton) {
case SUBSCRIPTIONS, NOTIFICATIONS -> subscriptionsOption;
case LIBRARY -> libraryOption;
// Home or explore tab.
default -> homeOption;
};
}
/**

View File

@@ -0,0 +1,54 @@
package app.revanced.extension.youtube.patches;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public class ChangeFormFactorPatch {
public enum FormFactor {
/**
* Unmodified, and same as un-patched.
*/
DEFAULT(null),
/**
* <pre>
* Some changes include:
* - Explore tab is present.
* - watch history is missing.
* - feed thumbnails fade in.
*/
UNKNOWN(0),
SMALL(1),
LARGE(2),
/**
* Cars with 'Google built-in'.
* Layout seems identical to {@link #UNKNOWN}
* even when using an Android Automotive device.
*/
AUTOMOTIVE(3),
WEARABLE(4);
@Nullable
final Integer formFactorType;
FormFactor(@Nullable Integer formFactorType) {
this.formFactorType = formFactorType;
}
}
@Nullable
private static final Integer FORM_FACTOR_TYPE = Settings.CHANGE_FORM_FACTOR.get().formFactorType;
/**
* Injection point.
*/
public static int getFormFactor(int original) {
return FORM_FACTOR_TYPE == null
? original
: FORM_FACTOR_TYPE;
}
}

View File

@@ -0,0 +1,63 @@
package app.revanced.extension.youtube.patches;
import android.widget.ImageView;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.shared.PlayerType;
@SuppressWarnings("unused")
public class ExitFullscreenPatch {
public enum FullscreenMode {
DISABLED,
PORTRAIT,
LANDSCAPE,
PORTRAIT_LANDSCAPE,
}
/**
* Injection point.
*/
public static void endOfVideoReached() {
try {
FullscreenMode mode = Settings.EXIT_FULLSCREEN.get();
if (mode == FullscreenMode.DISABLED) {
return;
}
if (PlayerType.getCurrent() == PlayerType.WATCH_WHILE_FULLSCREEN) {
if (mode != FullscreenMode.PORTRAIT_LANDSCAPE) {
if (Utils.isLandscapeOrientation()) {
if (mode == FullscreenMode.PORTRAIT) {
return;
}
} else if (mode == FullscreenMode.LANDSCAPE) {
return;
}
}
// If the user cold launches the app and plays a video but does not
// tap to show the overlay controls, the fullscreen button is not
// set because the overlay controls are not attached.
// To fix this, push the perform click to the back fo the main thread,
// and by then the overlay controls will be visible since the video is now finished.
Utils.runOnMainThread(() -> {
ImageView button = PlayerControlsPatch.fullscreenButtonRef.get();
if (button == null) {
Logger.printDebug(() -> "Fullscreen button is null, cannot click");
} else {
Logger.printDebug(() -> "Clicking fullscreen button");
final boolean soundEffectsEnabled = button.isSoundEffectsEnabled();
button.setSoundEffectsEnabled(false);
button.performClick();
button.setSoundEffectsEnabled(soundEffectsEnabled);
}
});
}
} catch (Exception ex) {
Logger.printException(() -> "endOfVideoReached failure", ex);
}
}
}

View File

@@ -1,6 +1,8 @@
package app.revanced.extension.youtube.patches;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
@@ -8,6 +10,20 @@ public class ForceOriginalAudioPatch {
private static final String DEFAULT_AUDIO_TRACKS_SUFFIX = ".4";
/**
* If the conditions to use this patch were present when the app launched.
*/
public static boolean PATCH_AVAILABLE = SpoofVideoStreamsPatch.notSpoofingToAndroid();
public static final class ForceOriginalAudioAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
// Check conditions of launch and now. Otherwise if spoofing is changed
// without a restart the setting will show as available when it's not.
return PATCH_AVAILABLE && SpoofVideoStreamsPatch.notSpoofingToAndroid();
}
}
/**
* Injection point.
*/

View File

@@ -4,15 +4,30 @@ import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import java.lang.ref.WeakReference;
import app.revanced.extension.shared.Logger;
@SuppressWarnings("unused")
public class PlayerControlsPatch {
public static WeakReference<ImageView> fullscreenButtonRef = new WeakReference<>(null);
private static boolean fullscreenButtonVisibilityCallbacksExist() {
return false; // Modified during patching if needed.
}
/**
* Injection point.
*/
public static void setFullscreenCloseButton(ImageView imageButton) {
fullscreenButtonRef = new WeakReference<>(imageButton);
Logger.printDebug(() -> "Fullscreen button set");
if (!fullscreenButtonVisibilityCallbacksExist()) {
return;
}
// Add a global listener, since the protected method
// View#onVisibilityChanged() does not have any call backs.
imageButton.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@@ -39,7 +54,7 @@ public class PlayerControlsPatch {
}
// noinspection EmptyMethod
public static void fullscreenButtonVisibilityChanged(boolean isVisible) {
private static void fullscreenButtonVisibilityChanged(boolean isVisible) {
// Code added during patching.
}

View File

@@ -1,16 +0,0 @@
package app.revanced.extension.youtube.patches;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public final class TabletLayoutPatch {
private static final boolean TABLET_LAYOUT_ENABLED = Settings.TABLET_LAYOUT.get();
/**
* Injection point.
*/
public static boolean getTabletLayoutEnabled() {
return TABLET_LAYOUT_ENABLED;
}
}

View File

@@ -528,14 +528,13 @@ final class KeywordContentFilter extends Filter {
if (selectedNavButton == null) {
return hideHome; // Unknown tab, treat the same as home.
}
if (selectedNavButton == NavigationButton.HOME) {
return hideHome;
}
if (selectedNavButton == NavigationButton.SUBSCRIPTIONS) {
return hideSubscriptions;
}
// User is in the Library or Notifications tab.
return false;
return switch (selectedNavButton) {
case HOME, EXPLORE -> hideHome;
case SUBSCRIPTIONS -> hideSubscriptions;
// User is in the Library or notifications.
default -> false;
};
}
private void updateStats(boolean videoWasHidden, @Nullable String keyword) {

View File

@@ -106,7 +106,8 @@ public final class LayoutComponentsFilter extends Filter {
inFeedSurvey = new StringFilterGroup(
Settings.HIDE_FEED_SURVEY,
"in_feed_survey",
"slimline_survey"
"slimline_survey",
"feed_nudge"
);
final var medicalPanel = new StringFilterGroup(

View File

@@ -366,7 +366,7 @@ public final class ShortsFilter extends Filter {
}
return switch (selectedNavButton) {
case HOME -> hideHome;
case HOME, EXPLORE -> hideHome;
case SUBSCRIPTIONS -> hideSubscriptions;
case LIBRARY -> hideHistory;
default -> false;

View File

@@ -32,6 +32,11 @@ public class CustomPlaybackSpeedPatch {
*/
public static final float PLAYBACK_SPEED_MAXIMUM = 8;
/**
* Tap and hold speed.
*/
private static final float TAP_AND_HOLD_SPEED;
/**
* Custom playback speeds.
*/
@@ -48,12 +53,27 @@ public class CustomPlaybackSpeedPatch {
private static String[] preferenceListEntries, preferenceListEntryValues;
static {
final float holdSpeed = Settings.SPEED_TAP_AND_HOLD.get();
if (holdSpeed > 0 && holdSpeed <= PLAYBACK_SPEED_MAXIMUM) {
TAP_AND_HOLD_SPEED = holdSpeed;
} else {
showInvalidCustomSpeedToast();
Settings.SPEED_TAP_AND_HOLD.resetToDefault();
TAP_AND_HOLD_SPEED = Settings.SPEED_TAP_AND_HOLD.get();
}
loadCustomSpeeds();
}
private static void resetCustomSpeeds(@NonNull String toastMessage) {
Utils.showToastLong(toastMessage);
Settings.CUSTOM_PLAYBACK_SPEEDS.resetToDefault();
/**
* Injection point.
*/
public static float tapAndHoldSpeed() {
return TAP_AND_HOLD_SPEED;
}
private static void showInvalidCustomSpeedToast() {
Utils.showToastLong(str("revanced_custom_playback_speeds_invalid", PLAYBACK_SPEED_MAXIMUM));
}
private static void loadCustomSpeeds() {
@@ -74,17 +94,18 @@ public class CustomPlaybackSpeedPatch {
}
if (speedFloat >= PLAYBACK_SPEED_MAXIMUM) {
resetCustomSpeeds(str("revanced_custom_playback_speeds_invalid", PLAYBACK_SPEED_MAXIMUM));
showInvalidCustomSpeedToast();
Settings.CUSTOM_PLAYBACK_SPEEDS.resetToDefault();
loadCustomSpeeds();
return;
}
customPlaybackSpeeds[i] = speedFloat;
i++;
customPlaybackSpeeds[i++] = speedFloat;
}
} catch (Exception ex) {
Logger.printInfo(() -> "parse error", ex);
resetCustomSpeeds(str("revanced_custom_playback_speeds_parse_exception"));
Utils.showToastLong(str("revanced_custom_playback_speeds_parse_exception"));
Settings.CUSTOM_PLAYBACK_SPEEDS.resetToDefault();
loadCustomSpeeds();
}
}

View File

@@ -1,21 +1,30 @@
package app.revanced.extension.youtube.settings;
import static app.revanced.extension.shared.Utils.getResourceIdentifier;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.preference.PreferenceFragment;
import android.util.TypedValue;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.ThemeHelper;
import app.revanced.extension.youtube.settings.preference.ReVancedPreferenceFragment;
import app.revanced.extension.youtube.settings.preference.ReturnYouTubeDislikePreferenceFragment;
import app.revanced.extension.youtube.settings.preference.SponsorBlockPreferenceFragment;
import android.widget.Toolbar;
import androidx.annotation.RequiresApi;
import java.util.Objects;
import static app.revanced.extension.shared.Utils.getChildView;
import static app.revanced.extension.shared.Utils.getResourceIdentifier;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.AppLanguage;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.youtube.ThemeHelper;
import app.revanced.extension.youtube.patches.VersionCheckPatch;
import app.revanced.extension.youtube.settings.preference.ReVancedPreferenceFragment;
import app.revanced.extension.youtube.settings.preference.ReturnYouTubeDislikePreferenceFragment;
import app.revanced.extension.youtube.settings.preference.SponsorBlockPreferenceFragment;
/**
* Hooks LicenseActivity.
@@ -25,17 +34,57 @@ import static app.revanced.extension.shared.Utils.getResourceIdentifier;
@SuppressWarnings("unused")
public class LicenseActivityHook {
private static ViewGroup.LayoutParams toolbarLayoutParams;
public static void setToolbarLayoutParams(Toolbar toolbar) {
if (toolbarLayoutParams != null) {
toolbar.setLayoutParams(toolbarLayoutParams);
}
}
/**
* Injection point.
* Overrides the ReVanced settings language.
*/
public static Context getAttachBaseContext(Context original) {
AppLanguage language = BaseSettings.REVANCED_LANGUAGE.get();
if (language == AppLanguage.DEFAULT) {
return original;
}
return Utils.getContext();
}
/**
* Injection point.
*/
public static boolean useCairoSettingsFragment(boolean original) {
// Early targets have layout issues and it's better to always force off.
if (!VersionCheckPatch.IS_19_34_OR_GREATER) {
return false;
}
if (Settings.RESTORE_OLD_SETTINGS_MENUS.get()) {
return false;
}
// On the first launch of a clean install, forcing the cairo menu can give a
// half broken appearance because all the preference icons may not be available yet.
// 19.34+ cairo settings are always on, so it doesn't need to be forced anyway.
// Cairo setting will show on the next launch of the app.
return original;
}
/**
* Injection point.
* <p>
* Hooks LicenseActivity#onCreate in order to inject our own fragment.
*/
@RequiresApi(api = Build.VERSION_CODES.N)
public static void initialize(Activity licenseActivity) {
try {
ThemeHelper.setActivityTheme(licenseActivity);
licenseActivity.setContentView(
getResourceIdentifier("revanced_settings_with_toolbar", "layout"));
setBackButton(licenseActivity);
licenseActivity.setContentView(getResourceIdentifier(
"revanced_settings_with_toolbar", "layout"));
PreferenceFragment fragment;
String toolbarTitleResourceName;
@@ -58,7 +107,7 @@ public class LicenseActivityHook {
return;
}
setToolbarTitle(licenseActivity, toolbarTitleResourceName);
createToolbar(licenseActivity, toolbarTitleResourceName);
//noinspection deprecation
licenseActivity.getFragmentManager()
@@ -70,28 +119,36 @@ public class LicenseActivityHook {
}
}
private static void setToolbarTitle(Activity activity, String toolbarTitleResourceName) {
ViewGroup toolbar = activity.findViewById(getToolbarResourceId());
TextView toolbarTextView = Objects.requireNonNull(getChildView(toolbar, false,
view -> view instanceof TextView));
toolbarTextView.setText(getResourceIdentifier(toolbarTitleResourceName, "string"));
}
@RequiresApi(api = Build.VERSION_CODES.N)
@SuppressLint("UseCompatLoadingForDrawables")
private static void setBackButton(Activity activity) {
ViewGroup toolbar = activity.findViewById(getToolbarResourceId());
ImageButton imageButton = Objects.requireNonNull(getChildView(toolbar, false,
view -> view instanceof ImageButton));
imageButton.setImageDrawable(ReVancedPreferenceFragment.getBackButtonDrawable());
imageButton.setOnClickListener(view -> activity.onBackPressed());
}
private static void createToolbar(Activity activity, String toolbarTitleResourceName) {
// Replace dummy placeholder toolbar.
// This is required to fix submenu title alignment issue with Android ASOP 15+
ViewGroup toolBarParent = activity.findViewById(
getResourceIdentifier("revanced_toolbar_parent", "id"));
ViewGroup dummyToolbar = toolBarParent.findViewById(getResourceIdentifier(
"revanced_toolbar", "id"));
toolbarLayoutParams = dummyToolbar.getLayoutParams();
toolBarParent.removeView(dummyToolbar);
private static int getToolbarResourceId() {
final int toolbarResourceId = getResourceIdentifier("revanced_toolbar", "id");
if (toolbarResourceId == 0) {
throw new IllegalStateException("Could not find back button resource");
Toolbar toolbar = new Toolbar(toolBarParent.getContext());
toolbar.setBackgroundColor(ThemeHelper.getToolbarBackgroundColor());
toolbar.setNavigationIcon(ReVancedPreferenceFragment.getBackButtonDrawable());
toolbar.setNavigationOnClickListener(view -> activity.onBackPressed());
toolbar.setTitle(getResourceIdentifier(toolbarTitleResourceName, "string"));
final int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16,
Utils.getContext().getResources().getDisplayMetrics());
toolbar.setTitleMarginStart(margin);
toolbar.setTitleMarginEnd(margin);
TextView toolbarTextView = Utils.getChildView(toolbar, false,
view -> view instanceof TextView);
if (toolbarTextView != null) {
toolbarTextView.setTextColor(ThemeHelper.getForegroundColor());
}
return toolbarResourceId;
setToolbarLayoutParams(toolbar);
toolBarParent.addView(toolbar, 0);
}
}

View File

@@ -7,8 +7,10 @@ import static app.revanced.extension.shared.settings.Setting.migrateFromOldPrefe
import static app.revanced.extension.shared.settings.Setting.migrateOldSettingToNew;
import static app.revanced.extension.shared.settings.Setting.parent;
import static app.revanced.extension.shared.settings.Setting.parentsAny;
import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.NotSpoofingAndroidAvailability;
import static app.revanced.extension.youtube.patches.ChangeFormFactorPatch.FormFactor;
import static app.revanced.extension.youtube.patches.ChangeStartPagePatch.StartPage;
import static app.revanced.extension.youtube.patches.ExitFullscreenPatch.FullscreenMode;
import static app.revanced.extension.youtube.patches.ForceOriginalAudioPatch.ForceOriginalAudioAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHideExpandCloseAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHorizontalDragAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType;
@@ -48,13 +50,14 @@ public class Settings extends BaseSettings {
public static final IntegerSetting VIDEO_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_video_quality_default_wifi", -2);
public static final IntegerSetting VIDEO_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_video_quality_default_mobile", -2);
// Speed
public static final FloatSetting SPEED_TAP_AND_HOLD = new FloatSetting("revanced_speed_tap_and_hold", 2.0f, true);
public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED = new BooleanSetting("revanced_remember_playback_speed_last_selected", FALSE);
public static final BooleanSetting CUSTOM_SPEED_MENU = new BooleanSetting("revanced_custom_speed_menu", TRUE);
public static final FloatSetting PLAYBACK_SPEED_DEFAULT = new FloatSetting("revanced_playback_speed_default", -2.0f);
public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds",
"0.25\n0.5\n0.75\n0.9\n0.95\n1.0\n1.05\n1.1\n1.25\n1.5\n1.75\n2.0\n3.0\n4.0\n5.0", true);
// Audio
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, new NotSpoofingAndroidAvailability());
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);
@@ -120,6 +123,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting DISABLE_LIKE_SUBSCRIBE_GLOW = new BooleanSetting("revanced_disable_like_subscribe_glow", FALSE);
public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE);
public static final BooleanSetting DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE, true);
public static final EnumSetting<FullscreenMode> EXIT_FULLSCREEN = new EnumSetting<>("revanced_exit_fullscreen", FullscreenMode.DISABLED);
public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true);
public static final BooleanSetting HIDE_CAPTIONS_BUTTON = new BooleanSetting("revanced_hide_captions_button", FALSE);
public static final BooleanSetting HIDE_CAST_BUTTON = new BooleanSetting("revanced_hide_cast_button", TRUE, true);
@@ -139,10 +143,10 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_SUBSCRIBERS_COMMUNITY_GUIDELINES = new BooleanSetting("revanced_hide_subscribers_community_guidelines", TRUE);
public static final BooleanSetting HIDE_TIMED_REACTIONS = new BooleanSetting("revanced_hide_timed_reactions", TRUE);
public static final BooleanSetting HIDE_VIDEO_CHANNEL_WATERMARK = new BooleanSetting("revanced_hide_channel_watermark", TRUE);
public static final BooleanSetting PLAYBACK_SPEED_DIALOG_BUTTON = new BooleanSetting("revanced_playback_speed_dialog_button", FALSE);
public static final BooleanSetting PLAYER_POPUP_PANELS = new BooleanSetting("revanced_hide_player_popup_panels", FALSE);
public static final IntegerSetting PLAYER_OVERLAY_OPACITY = new IntegerSetting("revanced_player_overlay_opacity", 100, true);
public static final BooleanSetting OPEN_VIDEOS_FULLSCREEN_PORTRAIT = new BooleanSetting("revanced_open_videos_fullscreen_portrait", FALSE);
public static final BooleanSetting PLAYBACK_SPEED_DIALOG_BUTTON = new BooleanSetting("revanced_playback_speed_dialog_button", FALSE);
public static final IntegerSetting PLAYER_OVERLAY_OPACITY = new IntegerSetting("revanced_player_overlay_opacity", 100, true);
public static final BooleanSetting PLAYER_POPUP_PANELS = new BooleanSetting("revanced_hide_player_popup_panels", FALSE);
// Miniplayer
public static final EnumSetting<MiniplayerType> MINIPLAYER_TYPE = new EnumSetting<>("revanced_miniplayer_type", MiniplayerType.DEFAULT, true);
private static final Availability MINIPLAYER_ANY_MODERN = MINIPLAYER_TYPE.availability(MODERN_1, MODERN_2, MODERN_3, MODERN_4);
@@ -200,15 +204,16 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_PLAYER_FLYOUT_WATCH_IN_VR = new BooleanSetting("revanced_hide_player_flyout_watch_in_vr", TRUE);
// General layout
public static final BooleanSetting RESTORE_OLD_SETTINGS_MENUS = new BooleanSetting("revanced_restore_old_settings_menus", FALSE, true);
public static final EnumSetting<FormFactor> CHANGE_FORM_FACTOR = new EnumSetting<>("revanced_change_form_factor", FormFactor.DEFAULT, true, "revanced_change_form_factor_user_dialog_message");
public static final BooleanSetting BYPASS_IMAGE_REGION_RESTRICTIONS = new BooleanSetting("revanced_bypass_image_region_restrictions", FALSE, true);
public static final BooleanSetting GRADIENT_LOADING_SCREEN = new BooleanSetting("revanced_gradient_loading_screen", FALSE, true);
public static final BooleanSetting REMOVE_VIEWER_DISCRETION_DIALOG = new BooleanSetting("revanced_remove_viewer_discretion_dialog", FALSE,
"revanced_remove_viewer_discretion_dialog_user_dialog_message");
public static final BooleanSetting SPOOF_APP_VERSION = new BooleanSetting("revanced_spoof_app_version", FALSE, true, "revanced_spoof_app_version_user_dialog_message");
public static final BooleanSetting TABLET_LAYOUT = new BooleanSetting("revanced_tablet_layout", FALSE, true, "revanced_tablet_layout_user_dialog_message");
public static final BooleanSetting WIDE_SEARCHBAR = new BooleanSetting("revanced_wide_searchbar", FALSE, true);
public static final EnumSetting<StartPage> CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.DEFAULT, true);
public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", IS_19_17_OR_GREATER ? "19.35.36" : "17.33.42", true, parent(SPOOF_APP_VERSION));
public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", IS_19_17_OR_GREATER ? "19.26.42" : "17.33.42", true, parent(SPOOF_APP_VERSION));
// Custom filter
public static final BooleanSetting CUSTOM_FILTER = new BooleanSetting("revanced_custom_filter", FALSE);
public static final StringSetting CUSTOM_FILTER_STRINGS = new StringSetting("revanced_custom_filter_strings", "", true, parent(CUSTOM_FILTER));
@@ -294,8 +299,9 @@ public class Settings extends BaseSettings {
public static final BooleanSetting DEBUG_PROTOBUFFER = new BooleanSetting("revanced_debug_protobuffer", FALSE, parent(BaseSettings.DEBUG));
// Swipe controls
public static final BooleanSetting SWIPE_BRIGHTNESS = new BooleanSetting("revanced_swipe_brightness", TRUE);
public static final BooleanSetting SWIPE_VOLUME = new BooleanSetting("revanced_swipe_volume", TRUE);
public static final BooleanSetting SWIPE_CHANGE_VIDEO = new BooleanSetting("revanced_swipe_change_video", FALSE, true);
public static final BooleanSetting SWIPE_BRIGHTNESS = new BooleanSetting("revanced_swipe_brightness", FALSE);
public static final BooleanSetting SWIPE_VOLUME = new BooleanSetting("revanced_swipe_volume", FALSE);
public static final BooleanSetting SWIPE_PRESS_TO_ENGAGE = new BooleanSetting("revanced_swipe_press_to_engage", FALSE, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final BooleanSetting SWIPE_HAPTIC_FEEDBACK = new BooleanSetting("revanced_swipe_haptic_feedback", TRUE, true,

View File

@@ -0,0 +1,36 @@
package app.revanced.extension.youtube.settings.preference;
import static app.revanced.extension.shared.StringRef.str;
import android.content.Context;
import android.preference.SwitchPreference;
import android.util.AttributeSet;
import app.revanced.extension.youtube.patches.ForceOriginalAudioPatch;
@SuppressWarnings({"deprecation", "unused"})
public class ForceOriginalAudioSwitchPreference extends SwitchPreference {
{
if (!ForceOriginalAudioPatch.PATCH_AVAILABLE) {
// Show why force audio is not available.
String summary = str("revanced_force_original_audio_not_available");
setSummary(summary);
setSummaryOn(summary);
setSummaryOff(summary);
}
}
public ForceOriginalAudioSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public ForceOriginalAudioSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public ForceOriginalAudioSwitchPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ForceOriginalAudioSwitchPreference(Context context) {
super(context);
}
}

View File

@@ -25,9 +25,12 @@ import java.util.List;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.settings.EnumSetting;
import app.revanced.extension.shared.settings.preference.AbstractPreferenceFragment;
import app.revanced.extension.youtube.ThemeHelper;
import app.revanced.extension.youtube.patches.playback.speed.CustomPlaybackSpeedPatch;
import app.revanced.extension.youtube.settings.LicenseActivityHook;
import app.revanced.extension.youtube.settings.Settings;
/**
@@ -109,15 +112,20 @@ public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
CustomPlaybackSpeedPatch.initializeListPreference(playbackPreference);
}
preference = findPreference(Settings.SPOOF_VIDEO_STREAMS_LANGUAGE.key);
if (preference instanceof ListPreference languagePreference) {
sortListPreferenceByValues(languagePreference, 1);
}
sortPreferenceListMenu(Settings.SPOOF_VIDEO_STREAMS_LANGUAGE);
sortPreferenceListMenu(BaseSettings.REVANCED_LANGUAGE);
} catch (Exception ex) {
Logger.printException(() -> "initialize failure", ex);
}
}
private void sortPreferenceListMenu(EnumSetting<?> setting) {
Preference preference = findPreference(setting.key);
if (preference instanceof ListPreference languagePreference) {
sortListPreferenceByValues(languagePreference, 1);
}
}
private void setPreferenceScreenToolbar(PreferenceScreen parentScreen) {
for (int i = 0, preferenceCount = parentScreen.getPreferenceCount(); i < preferenceCount; i++) {
Preference childPreference = parentScreen.getPreference(i);
@@ -133,9 +141,6 @@ public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
.getParent();
// Fix required for Android 15 and YT 19.45+
// FIXME:
// On Android 15 the text layout is not aligned the same as the parent
// screen and it looks a little off. Otherwise this works.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
rootView.setOnApplyWindowInsetsListener((v, insets) -> {
Insets statusInsets = insets.getInsets(WindowInsets.Type.statusBars());
@@ -162,6 +167,8 @@ public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
toolbarTextView.setTextColor(ThemeHelper.getForegroundColor());
}
LicenseActivityHook.setToolbarLayoutParams(toolbar);
rootView.addView(toolbar, 0);
return false;
}

View File

@@ -81,7 +81,15 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference {
(clientType == ClientType.IOS_UNPLUGGED
? "ios_tv"
: "android");
setTitle(str(key + "_title"));
setSummary(str(key + "_summary"));
String title = str(key + "_title");
String summary = str(key + "_summary");
// Android VR supports AV1 but all other clients do not.
if (clientType != ClientType.ANDROID_VR && clientType != ClientType.ANDROID_VR_NO_AUTH) {
summary += '\n' + str("revanced_spoof_video_streams_about_no_av1");
}
setTitle(title);
setSummary(summary);
}
}

View File

@@ -3,12 +3,15 @@ package app.revanced.extension.youtube.shared;
import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton.CREATE;
import android.app.Activity;
import android.os.Build;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import java.lang.ref.WeakReference;
import java.util.Arrays;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import java.util.WeakHashMap;
@@ -242,6 +245,30 @@ public final class NavigationBar {
// Code is added during patching.
}
/**
* Use the bundled non cairo filled icon instead of a custom icon.
* Use the old non cairo filled icon, which is almost identical to
* the what would be the filled cairo icon.
*/
private static final int fillBellCairoBlack = Utils.getResourceIdentifier(
"yt_fill_bell_black_24", "drawable");
/**
* Injection point.
* Fixes missing drawable.
*/
@RequiresApi(api = Build.VERSION_CODES.N)
@SuppressWarnings({"unchecked", "rawtypes"})
public static void setCairoNotificationFilledIcon(EnumMap enumMap, Enum tabActivityCairo) {
if (fillBellCairoBlack != 0) {
// Show a popup informing this fix is no longer needed to those who might care.
if (BaseSettings.DEBUG.get() && enumMap.containsKey(tabActivityCairo)) {
Logger.printException(() -> "YouTube fixed the cairo notification icons");
}
enumMap.putIfAbsent(tabActivityCairo, fillBellCairoBlack);
}
}
public enum NavigationButton {
HOME("PIVOT_HOME", "TAB_HOME_CAIRO"),
SHORTS("TAB_SHORTS", "TAB_SHORTS_CAIRO"),
@@ -250,6 +277,10 @@ public final class NavigationBar {
* This tab will never be in a selected state, even if the create video UI is on screen.
*/
CREATE("CREATION_TAB_LARGE", "CREATION_TAB_LARGE_CAIRO"),
/**
* Only shown to automotive layout.
*/
EXPLORE("TAB_EXPLORE"),
SUBSCRIPTIONS("PIVOT_SUBSCRIPTIONS", "TAB_SUBSCRIPTIONS_CAIRO"),
/**
* Notifications tab. Only present when

View File

@@ -73,7 +73,7 @@ enum class PlayerType {
onChange(currentPlayerType)
}
@Volatile // value is read/write from different threads
@Volatile // Read/write from different threads.
private var currentPlayerType = NONE
/**

View File

@@ -46,6 +46,7 @@ enum class VideoState {
currentVideoState = value
}
@Volatile // Read/write from different threads.
private var currentVideoState: VideoState? = null
}
}

View File

@@ -8,6 +8,7 @@ import android.view.MotionEvent
import android.view.ViewGroup
import app.revanced.extension.shared.Logger.printDebug
import app.revanced.extension.shared.Logger.printException
import app.revanced.extension.youtube.settings.Settings
import app.revanced.extension.youtube.shared.PlayerType
import app.revanced.extension.youtube.swipecontrols.controller.AudioVolumeController
import app.revanced.extension.youtube.swipecontrols.controller.ScreenBrightnessController
@@ -232,5 +233,12 @@ class SwipeControlsHostActivity : Activity() {
@JvmStatic
var currentHost: WeakReference<SwipeControlsHostActivity> = WeakReference(null)
private set
/**
* Injection point.
*/
@Suppress("unused")
@JvmStatic
fun allowSwipeChangeVideo(original: Boolean): Boolean = Settings.SWIPE_CHANGE_VIDEO.get()
}
}

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.8.0-dev.1
version = 5.9.0-dev.3

View File

@@ -461,10 +461,6 @@ public final class app/revanced/patches/reddit/customclients/joeyforreddit/detec
public static final fun getDisablePiracyDetectionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/redditisfun/api/FingerprintsKt {
public static final fun baseClientIdFingerprint (Ljava/lang/String;)Lapp/revanced/patcher/Fingerprint;
}
public final class app/revanced/patches/reddit/customclients/redditisfun/api/SpoofClientPatchKt {
public static final fun getSpoofClientPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -548,7 +544,6 @@ public final class app/revanced/patches/shared/misc/checks/BaseCheckEnvironmentP
}
public final class app/revanced/patches/shared/misc/extension/ExtensionHook {
public final fun getFingerprint ()Lapp/revanced/patcher/Fingerprint;
public final fun invoke (Lapp/revanced/patcher/patch/BytecodePatchContext;Ljava/lang/String;)V
}
@@ -608,16 +603,19 @@ public final class app/revanced/patches/shared/misc/mapping/ResourceMappingPatch
}
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;
public static synthetic fun settingsPatch$default (Lkotlin/Pair;Ljava/util/Set;ILjava/lang/Object;)Lapp/revanced/patcher/patch/ResourcePatch;
public static synthetic fun settingsPatch$default (Ljava/util/List;Ljava/util/Set;ILjava/lang/Object;)Lapp/revanced/patcher/patch/ResourcePatch;
}
public abstract class app/revanced/patches/shared/misc/settings/preference/BasePreference {
public static final field Companion Lapp/revanced/patches/shared/misc/settings/preference/BasePreference$Companion;
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun equals (Ljava/lang/Object;)Z
public final fun getIcon ()Ljava/lang/String;
public final fun getKey ()Ljava/lang/String;
public final fun getLayout ()Ljava/lang/String;
public final fun getSummaryKey ()Ljava/lang/String;
public final fun getTag ()Ljava/lang/String;
public final fun getTitleKey ()Ljava/lang/String;
@@ -640,17 +638,19 @@ public abstract class app/revanced/patches/shared/misc/settings/preference/BaseP
public abstract class app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$BasePreferenceCollection {
public fun <init> ()V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getIcon ()Ljava/lang/String;
public final fun getKey ()Ljava/lang/String;
public final fun getLayout ()Ljava/lang/String;
public final fun getPreferences ()Ljava/util/Set;
public final fun getTitleKey ()Ljava/lang/String;
public abstract fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;
}
public class app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen : app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$BasePreferenceCollection {
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;)V
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;)V
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun addPreferences ([Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;)V
public final fun getCategories ()Ljava/util/Set;
public synthetic fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;
@@ -658,8 +658,8 @@ public class app/revanced/patches/shared/misc/settings/preference/BasePreference
}
public class app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen$Category : app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$BasePreferenceCollection {
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun addPreferences ([Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;)V
public synthetic fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;
public fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/PreferenceCategory;
@@ -667,6 +667,7 @@ public class app/revanced/patches/shared/misc/settings/preference/BasePreference
public final class app/revanced/patches/shared/misc/settings/preference/InputType : java/lang/Enum {
public static final field NUMBER Lapp/revanced/patches/shared/misc/settings/preference/InputType;
public static final field NUMBER_DECIMAL Lapp/revanced/patches/shared/misc/settings/preference/InputType;
public static final field TEXT Lapp/revanced/patches/shared/misc/settings/preference/InputType;
public static final field TEXT_CAP_CHARACTERS Lapp/revanced/patches/shared/misc/settings/preference/InputType;
public static final field TEXT_MULTI_LINE Lapp/revanced/patches/shared/misc/settings/preference/InputType;
@@ -677,8 +678,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/InputTyp
}
public final class app/revanced/patches/shared/misc/settings/preference/IntentPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun equals (Ljava/lang/Object;)Z
public final fun getIntent ()Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;
public fun hashCode ()I
@@ -698,8 +699,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/ListPref
public fun <init> ()V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/util/resource/ArrayResource;Lapp/revanced/util/resource/ArrayResource;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/util/resource/ArrayResource;Lapp/revanced/util/resource/ArrayResource;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getEntries ()Lapp/revanced/util/resource/ArrayResource;
public final fun getEntriesKey ()Ljava/lang/String;
public final fun getEntryValues ()Lapp/revanced/util/resource/ArrayResource;
@@ -708,22 +709,22 @@ public final class app/revanced/patches/shared/misc/settings/preference/ListPref
}
public final class app/revanced/patches/shared/misc/settings/preference/NonInteractivePreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getSelectable ()Z
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
}
public class app/revanced/patches/shared/misc/settings/preference/PreferenceCategory : app/revanced/patches/shared/misc/settings/preference/BasePreference {
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getPreferences ()Ljava/util/Set;
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
}
public class app/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getPreferences ()Ljava/util/Set;
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
}
@@ -732,6 +733,7 @@ public final class app/revanced/patches/shared/misc/settings/preference/Preferen
public static final field BY_KEY Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;
public static final field BY_TITLE Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;
public static final field UNSORTED Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;
public final fun appendSortType (Ljava/lang/String;)Ljava/lang/String;
public static fun getEntries ()Lkotlin/enums/EnumEntries;
public final fun getKeySuffix ()Ljava/lang/String;
public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;
@@ -750,8 +752,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/SummaryT
public final class app/revanced/patches/shared/misc/settings/preference/SwitchPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
public fun <init> ()V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getSummaryOffKey ()Ljava/lang/String;
public final fun getSummaryOnKey ()Ljava/lang/String;
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
@@ -759,8 +761,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/SwitchPr
public final class app/revanced/patches/shared/misc/settings/preference/TextPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
public fun <init> ()V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getInputType ()Lapp/revanced/patches/shared/misc/settings/preference/InputType;
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
}
@@ -1106,6 +1108,10 @@ public final class app/revanced/patches/youtube/layout/buttons/overlay/HidePlaye
public static final fun getHidePlayerOverlayButtonsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/layout/formfactor/ChangeFormFactorPatchKt {
public static final fun getChangeFormFactorPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatchKt {
public static final fun getHideEndscreenCardsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1235,7 +1241,6 @@ public final class app/revanced/patches/youtube/layout/startupshortsreset/Disabl
}
public final class app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatchKt {
public static final field EXTENSION_CLASS_DESCRIPTOR Ljava/lang/String;
public static final fun getEnableTabletLayoutPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1268,10 +1273,6 @@ public final class app/revanced/patches/youtube/misc/backgroundplayback/Backgrou
public static final fun getBackgroundPlaybackPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/misc/check/CheckEnvironmentPatchKt {
public static final fun getCheckEnvironmentPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/misc/debugging/EnableDebuggingPatchKt {
public static final fun getEnableDebuggingPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1408,10 +1409,6 @@ public final class app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatc
public static final fun getZoomHapticsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/shared/FingerprintsKt {
public static final fun getRollingNumberTextViewAnimationUpdateFingerprint ()Lapp/revanced/patcher/Fingerprint;
}
public final class app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatchKt {
public static final fun getForceOriginalAudioPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1457,10 +1454,6 @@ public final class app/revanced/patches/youtube/video/speed/button/PlaybackSpeed
public static final fun getPlaybackSpeedButtonPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatchKt {
public static final fun getSpeedUnavailableId ()J
}
public final class app/revanced/patches/youtube/video/videoid/VideoIdPatchKt {
public static final fun getVideoIdPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
public static final fun hookBackgroundPlayVideoId (Ljava/lang/String;)V

View File

@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
fun baseClientIdFingerprint(string: String) = fingerprint {
internal fun baseClientIdFingerprint(string: String) = fingerprint {
strings("yyOCBp.RHJhDKd", string)
}

View File

@@ -92,7 +92,7 @@ fun sharedExtensionPatch(
}
class ExtensionHook internal constructor(
val fingerprint: Fingerprint,
private val fingerprint: Fingerprint,
private val insertIndexResolver: ((Method) -> Int),
private val contextRegisterResolver: (Method) -> String,
) {

View File

@@ -1,5 +1,6 @@
package app.revanced.patches.shared.misc.settings
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patches.all.misc.resources.addResource
import app.revanced.patches.all.misc.resources.addResources
@@ -12,15 +13,22 @@ import app.revanced.util.getNode
import app.revanced.util.insertFirst
import org.w3c.dom.Node
// TODO: Delete this on next major version bump.
@Deprecated("Use non deprecated settings patch function")
fun settingsPatch (
rootPreference: Pair<IntentPreference, String>,
preferences: Set<BasePreference>,
) = settingsPatch(listOf(rootPreference), preferences)
/**
* A resource patch that adds settings to a settings fragment.
*
* @param rootPreference A pair of an intent preference and the name of the fragment file to add it to.
* If null, no preference will be added.
* @param rootPreferences List of intent preferences and the name of the fragment file to add it to.
* File names that do not exist are ignored and not processed.
* @param preferences A set of preferences to add to the ReVanced fragment.
*/
fun settingsPatch(
rootPreference: Pair<IntentPreference, String>? = null,
fun settingsPatch (
rootPreferences: List<Pair<BasePreference, String>>? = null,
preferences: Set<BasePreference>,
) = resourcePatch {
dependsOn(addResourcesPatch)
@@ -46,10 +54,20 @@ fun settingsPatch(
}
// Add the root preference to an existing fragment if needed.
rootPreference?.let { (intentPreference, fragment) ->
document("res/xml/$fragment.xml").use { document ->
document.getNode("PreferenceScreen").addPreference(intentPreference, true)
rootPreferences?.let {
var modified = false
it.forEach { (intent, fileName) ->
val preferenceFileName = "res/xml/$fileName.xml"
if (get(preferenceFileName).exists()) {
document(preferenceFileName).use { document ->
document.getNode("PreferenceScreen").addPreference(intent, true)
}
modified = true
}
}
if (!modified) throw PatchException("No declared preference files exists: $rootPreferences")
}
// Add all preferences to the ReVanced fragment.

View File

@@ -9,6 +9,8 @@ import org.w3c.dom.Element
*
* @param key The key of the preference. If null, other parameters must be specified.
* @param titleKey The key of the preference title.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param summaryKey The key of the preference summary.
* @param tag The tag or full class name of the preference.
*/
@@ -17,6 +19,8 @@ abstract class BasePreference(
val key: String? = null,
val titleKey: String = "${key}_title",
val summaryKey: String? = "${key}_summary",
val icon: String? = null,
val layout: String? = null,
val tag: String
) {
/**
@@ -33,6 +37,11 @@ abstract class BasePreference(
key?.let { setAttribute("android:key", it) }
setAttribute("android:title", "@string/${titleKey}")
summaryKey?.let { addSummary(it) }
icon?.let {
setAttribute("android:icon", it)
setAttribute("app:iconSpaceReserved", "true")
}
layout?.let { setAttribute("android:layout", layout) }
}
override fun hashCode(): Int {

View File

@@ -24,16 +24,20 @@ abstract class BasePreferenceScreen(
key: String? = null,
titleKey: String = "${key}_title",
private val summaryKey: String? = "${key}_summary",
icon: String? = null,
layout: String? = null,
preferences: MutableSet<BasePreference> = mutableSetOf(),
val categories: MutableSet<Category> = mutableSetOf(),
private val sorting: Sorting = Sorting.BY_TITLE,
) : BasePreferenceCollection(key, titleKey, preferences) {
) : BasePreferenceCollection(key, titleKey, icon, layout, preferences) {
override fun transform(): PreferenceScreenPreference {
return PreferenceScreenPreference(
key,
titleKey,
summaryKey,
icon,
layout,
sorting,
// Screens and preferences are sorted at runtime by extension code,
// so title sorting uses the localized language in use.
@@ -56,12 +60,17 @@ abstract class BasePreferenceScreen(
open inner class Category(
key: String? = null,
titleKey: String = "${key}_title",
icon: String? = null,
layout: String? = null,
preferences: MutableSet<BasePreference> = mutableSetOf(),
) : BasePreferenceCollection(key, titleKey, preferences) {
) : BasePreferenceCollection(key, titleKey, icon, layout, preferences) {
override fun transform(): PreferenceCategory {
return PreferenceCategory(
key,
titleKey,
icon,
layout,
sorting,
preferences = preferences,
)
}
@@ -82,6 +91,8 @@ abstract class BasePreferenceScreen(
abstract class BasePreferenceCollection(
val key: String? = null,
val titleKey: String = "${key}_title",
val icon: String? = null,
val layout: String? = null,
val preferences: MutableSet<BasePreference> = mutableSetOf(),
) {
abstract fun transform(): BasePreference

View File

@@ -5,4 +5,5 @@ enum class InputType(val type: String) {
TEXT_CAP_CHARACTERS("textCapCharacters"),
TEXT_MULTI_LINE("textMultiLine"),
NUMBER("number"),
NUMBER_DECIMAL("numberDecimal"),
}

View File

@@ -9,6 +9,8 @@ import org.w3c.dom.Document
* @param key Optional preference key.
* @param titleKey The preference title key.
* @param summaryKey The preference summary key.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param tag The preference tag.
* @param intent The intent to open.
*/
@@ -16,9 +18,11 @@ class IntentPreference(
key: String? = null,
titleKey: String = "${key}_title",
summaryKey: String? = "${key}_summary",
icon: String? = null,
layout: String? = null,
tag: String = "Preference",
val intent: Intent,
) : BasePreference(key, titleKey, summaryKey, tag) {
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
super.serialize(ownerDocument, resourceCallback).apply {

View File

@@ -10,6 +10,8 @@ import org.w3c.dom.Document
* @param key The preference key. If null, other parameters must be specified.
* @param titleKey The preference title key.
* @param summaryKey The preference summary key.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param tag The preference tag.
* @param entriesKey The entries array key.
* @param entryValuesKey The entry values array key.
@@ -19,10 +21,12 @@ class ListPreference(
key: String? = null,
titleKey: String = "${key}_title",
summaryKey: String? = "${key}_summary",
icon: String? = null,
layout: String? = null,
tag: String = "ListPreference",
val entriesKey: String? = "${key}_entries",
val entryValuesKey: String? = "${key}_entry_values"
) : BasePreference(key, titleKey, summaryKey, tag) {
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
var entries: ArrayResource? = null
private set
var entryValues: ArrayResource? = null

View File

@@ -10,6 +10,8 @@ import org.w3c.dom.Document
*
* @param key The preference key.
* @param summaryKey The preference summary key.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param tag The tag or full class name of the preference.
* @param selectable If the preference is selectable and responds to tap events.
*/
@@ -18,9 +20,11 @@ class NonInteractivePreference(
key: String,
titleKey: String = "${key}_title",
summaryKey: String? = "${key}_summary",
icon: String? = null,
layout: String? = null,
tag: String = "Preference",
val selectable: Boolean = false,
) : BasePreference(key, titleKey, summaryKey, tag) {
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
super.serialize(ownerDocument, resourceCallback).apply {
setAttribute("android:selectable", selectable.toString())

View File

@@ -1,5 +1,6 @@
package app.revanced.patches.shared.misc.settings.preference
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference.Sorting
import app.revanced.util.resource.BaseResource
import org.w3c.dom.Document
@@ -8,6 +9,8 @@ import org.w3c.dom.Document
*
* @param key The key of the preference. If null, other parameters must be specified.
* @param titleKey The key of the preference title.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param tag The tag or full class name of the preference.
* @param preferences The preferences in this category.
*/
@@ -15,9 +18,12 @@ import org.w3c.dom.Document
open class PreferenceCategory(
key: String? = null,
titleKey: String = "${key}_title",
icon: String? = null,
layout: String? = null,
sorting: Sorting = Sorting.BY_TITLE,
tag: String = "PreferenceCategory",
val preferences: Set<BasePreference>
) : BasePreference(key, titleKey, null, tag) {
) : BasePreference(sorting.appendSortType(key), titleKey, null, icon, layout, tag) {
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
super.serialize(ownerDocument, resourceCallback).apply {

View File

@@ -9,6 +9,8 @@ import org.w3c.dom.Document
* @param key The key of the preference. If null, other parameters must be specified.
* @param titleKey The key of the preference title.
* @param summaryKey The key of the preference summary.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param sorting Sorting to use. If the sorting is not [Sorting.UNSORTED],
* then the key parameter will be modified to include the sort type.
* @param tag The tag or full class name of the preference.
@@ -19,6 +21,8 @@ open class PreferenceScreenPreference(
key: String? = null,
titleKey: String = "${key}_title",
summaryKey: String? = "${key}_summary",
icon: String? = null,
layout: String? = null,
sorting: Sorting = Sorting.BY_TITLE,
tag: String = "PreferenceScreen",
val preferences: Set<BasePreference>,
@@ -28,7 +32,7 @@ open class PreferenceScreenPreference(
// or adding new attributes to the attrs.xml file.
// Since the key value is not currently used by the extensions,
// for now it's much simpler to modify the key to include the sort parameter.
) : BasePreference(if (sorting == Sorting.UNSORTED) key else (key + sorting.keySuffix), titleKey, summaryKey, tag) {
) : BasePreference(sorting.appendSortType(key), titleKey, summaryKey, icon, layout, tag) {
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
super.serialize(ownerDocument, resourceCallback).apply {
preferences.forEach {
@@ -53,6 +57,16 @@ open class PreferenceScreenPreference(
/**
* Unspecified sorting.
*/
UNSORTED("_sort_by_unsorted"),
UNSORTED("_sort_by_unsorted");
/**
* @return The key with this sort type appended to to the end,
* or if key is null then null is returned.
*/
fun appendSortType(key: String?): String? {
if (key == null) return null
if (this == UNSORTED) return key
return key + keySuffix
}
}
}

View File

@@ -8,6 +8,8 @@ import org.w3c.dom.Document
*
* @param key The preference key. If null, other parameters must be specified.
* @param titleKey The preference title key.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param tag The preference tag.
* @param summaryOnKey The preference summary-on key.
* @param summaryOffKey The preference summary-off key.
@@ -17,9 +19,11 @@ class SwitchPreference(
key: String? = null,
titleKey: String = "${key}_title",
tag: String = "SwitchPreference",
icon: String? = null,
layout: String? = null,
val summaryOnKey: String = "${key}_summary_on",
val summaryOffKey: String = "${key}_summary_off"
) : BasePreference(key, titleKey, null, tag) {
) : BasePreference(key, titleKey, null, icon, layout, tag) {
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
super.serialize(ownerDocument, resourceCallback).apply {
addSummary(summaryOnKey, SummaryType.ON)

View File

@@ -9,6 +9,8 @@ import org.w3c.dom.Document
* @param key The preference key. If null, other parameters must be specified.
* @param titleKey The preference title key.
* @param summaryKey The preference summary key.
* @param icon The preference icon resource name.
* @param layout Layout declaration.
* @param tag The preference tag.
* @param inputType The preference input type.
*/
@@ -17,9 +19,11 @@ class TextPreference(
key: String? = null,
titleKey: String = "${key}_title",
summaryKey: String? = "${key}_summary",
icon: String? = null,
layout: String? = null,
tag: String = "app.revanced.extension.shared.settings.preference.ResettableEditTextPreference",
val inputType: InputType = InputType.TEXT
) : BasePreference(key, titleKey, summaryKey, tag) {
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
super.serialize(ownerDocument, resourceCallback).apply {

View File

@@ -1,12 +1,23 @@
package app.revanced.patches.youtube.interaction.swipecontrols
import app.revanced.patcher.fingerprint
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
internal val swipeControlsHostActivityFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
parameters()
custom { method, _ ->
method.definingClass == "Lapp/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity;"
method.definingClass == EXTENSION_CLASS_DESCRIPTOR
}
}
internal const val SWIPE_CHANGE_VIDEO_FEATURE_FLAG = 45631116L
internal val swipeChangeVideoFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
parameters("L")
literal {
SWIPE_CHANGE_VIDEO_FEATURE_FLAG
}
}

View File

@@ -10,6 +10,8 @@ import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.shared.misc.settings.preference.TextPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playertype.playerTypeHookPatch
import app.revanced.patches.youtube.misc.playservice.is_19_23_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.shared.mainActivityFingerprint
@@ -17,6 +19,8 @@ import app.revanced.util.*
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity;"
private val swipeControlsResourcePatch = resourcePatch {
dependsOn(
settingsPatch,
@@ -26,6 +30,12 @@ private val swipeControlsResourcePatch = resourcePatch {
execute {
addResources("youtube", "interaction.swipecontrols.swipeControlsResourcePatch")
if (is_19_25_or_greater) {
PreferenceScreen.SWIPE_CONTROLS.addPreferences(
SwitchPreference("revanced_swipe_change_video")
)
}
PreferenceScreen.SWIPE_CONTROLS.addPreferences(
SwitchPreference("revanced_swipe_brightness"),
SwitchPreference("revanced_swipe_volume"),
@@ -101,5 +111,16 @@ val swipeControlsPatch = bytecodePatch(
).toMutable()
}
}
// region patch to enable/disable swipe to change video.
if (is_19_23_or_greater) {
swipeChangeVideoFingerprint.method.insertFeatureFlagBooleanOverride(
SWIPE_CHANGE_VIDEO_FEATURE_FLAG,
"$EXTENSION_CLASS_DESCRIPTOR->allowSwipeChangeVideo(Z)Z"
)
}
// endregion
}
}

View File

@@ -65,9 +65,12 @@ val navigationButtonsPatch = bytecodePatch(
)
if (is_19_25_or_greater) {
preferences += SwitchPreference("revanced_disable_translucent_status_bar")
preferences += SwitchPreference("revanced_disable_translucent_navigation_bar_light")
preferences += SwitchPreference("revanced_disable_translucent_navigation_bar_dark")
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
SwitchPreference("revanced_disable_translucent_status_bar")
)
}
PreferenceScreen.GENERAL_LAYOUT.addPreferences(

View File

@@ -0,0 +1,75 @@
package app.revanced.patches.youtube.layout.formfactor
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeFormFactorPatch;"
@Suppress("unused")
val changeFormFactorPatch = bytecodePatch(
name = "Change form factor",
description = "Adds an option to change the UI appearance to a phone, tablet, or automotive device.",
) {
dependsOn(
sharedExtensionPatch,
settingsPatch,
addResourcesPatch,
)
compatibleWith(
"com.google.android.youtube"(
"18.38.44",
"18.49.37",
"19.16.39",
"19.25.37",
"19.34.42",
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
execute {
addResources("youtube", "layout.formfactor.changeFormFactorPatch")
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
ListPreference(
"revanced_change_form_factor",
summaryKey = null,
)
)
createPlayerRequestBodyWithModelFingerprint.method.apply {
val formFactorEnumClass = formFactorEnumConstructorFingerprint.originalClassDef.type
val index = indexOfFirstInstructionOrThrow {
val reference = getReference<FieldReference>()
opcode == Opcode.IGET &&
reference?.definingClass == formFactorEnumClass &&
reference.type == "I"
}
val register = getInstruction<TwoRegisterInstruction>(index).registerA
addInstructions(
index + 1,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->getFormFactor(I)I
move-result v$register
"""
)
}
}
}

View File

@@ -0,0 +1,49 @@
package app.revanced.patches.youtube.layout.formfactor
import app.revanced.patcher.fingerprint
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.Method
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
internal val formFactorEnumConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
strings(
"UNKNOWN_FORM_FACTOR",
"SMALL_FORM_FACTOR",
"LARGE_FORM_FACTOR",
"AUTOMOTIVE_FORM_FACTOR"
)
}
internal val createPlayerRequestBodyWithModelFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("L")
parameters()
opcodes(Opcode.OR_INT_LIT16)
custom { method, _ ->
method.indexOfModelInstruction() >= 0 &&
method.indexOfReleaseInstruction() >= 0
}
}
private fun Method.indexOfModelInstruction() =
indexOfFirstInstruction {
val reference = getReference<FieldReference>()
reference?.definingClass == "Landroid/os/Build;" &&
reference.name == "MODEL" &&
reference.type == "Ljava/lang/String;"
}
internal fun Method.indexOfReleaseInstruction(): Int =
indexOfFirstInstruction {
val reference = getReference<FieldReference>()
reference?.definingClass == "Landroid/os/Build${'$'}VERSION;" &&
reference.name == "RELEASE" &&
reference.type == "Ljava/lang/String;"
}

View File

@@ -0,0 +1,67 @@
package app.revanced.patches.youtube.layout.player.fullscreen
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playercontrols.playerControlsPatch
import app.revanced.patches.youtube.misc.playertype.playerTypeHookPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.shared.autoRepeatFingerprint
import app.revanced.patches.youtube.shared.autoRepeatParentFingerprint
import app.revanced.util.addInstructionsAtControlFlowLabel
@Suppress("unused")
internal val exitFullscreenPatch = bytecodePatch(
name = "Exit fullscreen mode",
description = "Adds options to automatically exit fullscreen mode when a video reaches the end."
) {
compatibleWith(
"com.google.android.youtube"(
"18.38.44",
"18.49.37",
"19.16.39",
"19.25.37",
"19.34.42",
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
)
)
dependsOn(
sharedExtensionPatch,
settingsPatch,
addResourcesPatch,
playerTypeHookPatch,
playerControlsPatch
)
// Cannot declare as top level since this patch is in the same package as
// other patches that declare same constant name with internal visibility.
@Suppress("LocalVariableName")
val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/ExitFullscreenPatch;"
execute {
addResources("youtube", "layout.player.fullscreen.exitFullscreenPatch")
PreferenceScreen.PLAYER.addPreferences(
ListPreference(
"revanced_exit_fullscreen",
summaryKey = null,
)
)
autoRepeatFingerprint.match(autoRepeatParentFingerprint.originalClassDef).method.apply {
addInstructionsAtControlFlowLabel(
implementation!!.instructions.lastIndex,
"invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->endOfVideoReached()V",
)
}
}
}

View File

@@ -1,66 +1,9 @@
package app.revanced.patches.youtube.layout.tablet
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.layout.formfactor.changeFormFactorPatch
const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/TabletLayoutPatch;"
val enableTabletLayoutPatch = bytecodePatch(
name = "Enable tablet layout",
description = "Adds an option to enable tablet layout.",
) {
dependsOn(
sharedExtensionPatch,
settingsPatch,
addResourcesPatch,
)
compatibleWith(
"com.google.android.youtube"(
"18.38.44",
"18.49.37",
"19.16.39",
"19.25.37",
"19.34.42",
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
execute {
addResources("youtube", "layout.tablet.enableTabletLayoutPatch")
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
SwitchPreference("revanced_tablet_layout"),
)
getFormFactorFingerprint.method.apply {
val returnIsLargeFormFactorIndex = instructions.lastIndex - 4
val returnIsLargeFormFactorLabel = getInstruction(returnIsLargeFormFactorIndex)
addInstructionsWithLabels(
0,
"""
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getTabletLayoutEnabled()Z
move-result v0
if-nez v0, :is_large_form_factor
""",
ExternalLabel(
"is_large_form_factor",
returnIsLargeFormFactorLabel,
),
)
}
}
}
@Deprecated("Use 'Change form factor' instead.")
val enableTabletLayoutPatch = bytecodePatch {
dependsOn(changeFormFactorPatch)
}

View File

@@ -1,25 +0,0 @@
package app.revanced.patches.youtube.layout.tablet
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.AccessFlags
import app.revanced.patcher.fingerprint
internal val getFormFactorFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("L")
parameters("Landroid/content/Context;", "Ljava/util/List;")
opcodes(
Opcode.SGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.IF_EQZ,
Opcode.SGET_OBJECT,
Opcode.RETURN_OBJECT,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.RETURN_OBJECT,
)
strings("")
}

View File

@@ -4,7 +4,7 @@ import app.revanced.patches.shared.misc.checks.checkEnvironmentPatch
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
val checkEnvironmentPatch = checkEnvironmentPatch(
internal val checkEnvironmentPatch = checkEnvironmentPatch(
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
extensionPatch = sharedExtensionPatch,
"com.google.android.youtube",

View File

@@ -1,47 +0,0 @@
package app.revanced.patches.youtube.misc.fix.cairo
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.youtube.misc.backgroundplayback.backgroundPlaybackPatch
import app.revanced.patches.youtube.misc.playservice.is_19_04_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstLiteralInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
internal val disableCairoSettingsPatch = bytecodePatch(
description = "Disables Cairo Fragment from being used.",
) {
dependsOn(versionCheckPatch)
execute {
if (!is_19_04_or_greater) {
return@execute
}
/**
* <pre>
* Cairo Fragment was added since YouTube v19.04.38.
*
* Disable this for the following reasons:
* 1. [backgroundPlaybackPatch] does not activate the Minimized playback setting of Cairo Fragment.
* 2. Some patches do not yet support Cairo Fragments (ie: custom Seekbar color).
* 3. Settings preferences added by ReVanced are missing.
*
* Screenshots of the Cairo Fragment:
* <a href="https://github.com/qnblackcat/uYouPlus/issues/1468">uYouPlus#1468</a>.
*/
cairoFragmentConfigFingerprint.method.apply {
val literalIndex = indexOfFirstLiteralInstructionOrThrow(CAIRO_CONFIG_LITERAL_VALUE)
val resultIndex = indexOfFirstInstructionOrThrow(literalIndex, Opcode.MOVE_RESULT)
val register = getInstruction<OneRegisterInstruction>(resultIndex).registerA
addInstruction(
resultIndex + 1,
"const/16 v$register, 0x0",
)
}
}
}

View File

@@ -1,19 +0,0 @@
package app.revanced.patches.youtube.misc.fix.cairo
import app.revanced.patcher.fingerprint
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
/**
* Added in YouTube v19.04.38.
*
* When this value is true, Cairo Fragment is used.
* In this case, some of the patches may be broken, so set this value to FALSE.
*/
internal const val CAIRO_CONFIG_LITERAL_VALUE = 45532100L
internal val cairoFragmentConfigFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
literal { CAIRO_CONFIG_LITERAL_VALUE }
}

View File

@@ -105,3 +105,15 @@ internal val pivotBarConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
strings("com.google.android.apps.youtube.app.endpoint.flags")
}
internal val imageEnumConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
strings("TAB_ACTIVITY_CAIRO")
}
internal val setEnumMapFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
literal {
ytFillBellId
}
}

View File

@@ -1,6 +1,7 @@
package app.revanced.patches.youtube.misc.navigation
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.patch.PatchException
@@ -12,13 +13,16 @@ import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playertype.playerTypeHookPatch
import app.revanced.patches.youtube.misc.playservice.is_19_35_or_greater
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
import app.revanced.util.indexOfFirstLiteralInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.Instruction
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.util.MethodUtil
@@ -26,6 +30,8 @@ internal var imageOnlyTabResourceId = -1L
private set
internal var actionBarSearchResultsViewMicId = -1L
private set
internal var ytFillBellId = -1L
private set
private val navigationBarHookResourcePatch = resourcePatch {
dependsOn(resourceMappingPatch)
@@ -33,6 +39,7 @@ private val navigationBarHookResourcePatch = resourcePatch {
execute {
imageOnlyTabResourceId = resourceMappings["layout", "image_only_tab"]
actionBarSearchResultsViewMicId = resourceMappings["layout", "action_bar_search_results_view_mic"]
ytFillBellId = resourceMappings["drawable", "yt_fill_bell_black_24"]
}
}
@@ -144,6 +151,36 @@ val navigationBarHookPatch = bytecodePatch(description = "Hooks the active navig
"(${EXTENSION_NAVIGATION_BUTTON_DESCRIPTOR}Landroid/view/View;)V",
)
}
// Fix YT bug of notification tab missing the filled icon.
if (is_19_35_or_greater) {
val cairoNotificationEnumReference = with(imageEnumConstructorFingerprint) {
val stringIndex = stringMatches!!.first().index
val cairoNotificationEnumIndex = method.indexOfFirstInstructionOrThrow(stringIndex) {
opcode == Opcode.SPUT_OBJECT
}
method.getInstruction<ReferenceInstruction>(cairoNotificationEnumIndex).reference
}
setEnumMapFingerprint.method.apply {
val enumMapIndex = indexOfFirstInstructionReversedOrThrow {
val reference = getReference<MethodReference>()
opcode == Opcode.INVOKE_VIRTUAL &&
reference?.definingClass == "Ljava/util/EnumMap;" &&
reference.name == "put" &&
reference.parameterTypes.firstOrNull() == "Ljava/lang/Enum;"
}
val instruction = getInstruction<FiveRegisterInstruction>(enumMapIndex)
addInstructions(
enumMapIndex + 1,
"""
sget-object v${instruction.registerD}, $cairoNotificationEnumReference
invoke-static { v${instruction.registerC}, v${instruction.registerD} }, $EXTENSION_CLASS_DESCRIPTOR->setCairoNotificationFilledIcon(Ljava/util/EnumMap;Ljava/lang/Enum;)V
"""
)
}
}
}
}

View File

@@ -12,13 +12,23 @@ internal val playerTopControlsInflateFingerprint = fingerprint {
literal { controlsLayoutStub }
}
internal val playerControlsExtensionHookListenersExistFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("Z")
parameters()
custom { methodDef, classDef ->
methodDef.name == "fullscreenButtonVisibilityCallbacksExist" &&
classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}
internal val playerControlsExtensionHookFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("V")
parameters("Z")
custom { methodDef, classDef ->
methodDef.name == "fullscreenButtonVisibilityChanged" &&
classDef.type == "Lapp/revanced/extension/youtube/patches/PlayerControlsPatch;"
classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}

View File

@@ -189,13 +189,18 @@ fun injectVisibilityCheckCall(descriptor: String) {
"invoke-static { p1 , p2 }, $descriptor->changeVisibility(ZZ)V",
)
if (!visibilityImmediateCallbacksExistModified) {
visibilityImmediateCallbacksExistModified = true
visibilityImmediateCallbacksExistMethod.returnEarly(true)
}
visibilityImmediateMethod.addInstruction(
visibilityImmediateInsertIndex++,
"invoke-static { p0 }, $descriptor->changeVisibilityImmediate(Z)V",
)
}
private const val EXTENSION_CLASS_DESCRIPTOR =
internal const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/PlayerControlsPatch;"
private lateinit var inflateTopControlMethod: MutableMethod
@@ -209,6 +214,9 @@ private var inflateBottomControlRegister: Int = -1
private lateinit var visibilityMethod: MutableMethod
private var visibilityInsertIndex: Int = 0
private var visibilityImmediateCallbacksExistModified = false
private lateinit var visibilityImmediateCallbacksExistMethod : MutableMethod
private lateinit var visibilityImmediateMethod: MutableMethod
private var visibilityImmediateInsertIndex: Int = 0
@@ -266,6 +274,7 @@ val playerControlsPatch = bytecodePatch(
)
}
visibilityImmediateCallbacksExistMethod = playerControlsExtensionHookListenersExistFingerprint.method
visibilityImmediateMethod = playerControlsExtensionHookFingerprint.method
// A/B test for a slightly different bottom overlay controls,

View File

@@ -21,3 +21,14 @@ internal val setThemeFingerprint = fingerprint {
opcodes(Opcode.RETURN_OBJECT)
literal { appearanceStringId }
}
/**
* Added in YouTube v19.04.38.
*/
internal const val CAIRO_CONFIG_LITERAL_VALUE = 45532100L
internal val cairoFragmentConfigFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
literal { CAIRO_CONFIG_LITERAL_VALUE }
}

View File

@@ -6,6 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
@@ -17,11 +18,17 @@ import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPref
import app.revanced.patches.shared.misc.settings.settingsPatch
import app.revanced.patches.youtube.misc.check.checkEnvironmentPatch
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.fix.cairo.disableCairoSettingsPatch
import app.revanced.patches.youtube.misc.fix.playbackspeed.fixPlaybackSpeedWhilePlayingPatch
import app.revanced.patches.youtube.misc.playservice.is_19_04_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_34_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.util.*
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter
import com.android.tools.smali.dexlib2.util.MethodUtil
// Used by a fingerprint() from SettingsPatch.
@@ -38,13 +45,28 @@ private val settingsResourcePatch = resourcePatch {
dependsOn(
resourceMappingPatch,
settingsPatch(
rootPreference = IntentPreference(
titleKey = "revanced_settings_title",
summaryKey = null,
intent = newIntent("revanced_settings_intent"),
) to "settings_fragment",
preferences,
),
listOf(
IntentPreference(
titleKey = "revanced_settings_title",
summaryKey = null,
intent = newIntent("revanced_settings_intent"),
) to "settings_fragment",
PreferenceCategory(
titleKey = "revanced_settings_title",
layout = "@layout/preference_group_title",
preferences = setOf(
IntentPreference(
titleKey = "revanced_settings_submenu_title",
summaryKey = null,
icon = "@drawable/revanced_settings_icon",
layout = "@layout/preference_with_icon",
intent = newIntent("revanced_settings_intent"),
)
)
) to "settings_fragment_cairo",
),
preferences
)
)
execute {
@@ -52,6 +74,7 @@ private val settingsResourcePatch = resourcePatch {
appearanceStringId = resourceMappings["string", "app_theme_appearance_dark"]
arrayOf(
ResourceGroup("drawable", "revanced_settings_icon.xml"),
ResourceGroup("layout", "revanced_settings_with_toolbar.xml"),
).forEach { resourceGroup ->
copyResources("settings", resourceGroup)
@@ -74,7 +97,6 @@ private val settingsResourcePatch = resourcePatch {
// Remove horizontal divider from the settings Preferences
// To better match the appearance of the stock YouTube settings.
document("res/values/styles.xml").use { document ->
arrayOf(
"Theme.YouTube.Settings",
"Theme.YouTube.Settings.Dark",
@@ -94,7 +116,6 @@ private val settingsResourcePatch = resourcePatch {
// Some devices freak out if undeclared data is passed to an intent,
// and this change appears to fix the issue.
document("AndroidManifest.xml").use { document ->
val licenseElement = document.childNodes.findElementByAttributeValueOrThrow(
"android:name",
"com.google.android.libraries.social.licenses.LicenseActivity",
@@ -118,7 +139,7 @@ val settingsPatch = bytecodePatch(
sharedExtensionPatch,
settingsResourcePatch,
addResourcesPatch,
disableCairoSettingsPatch,
versionCheckPatch,
fixPlaybackSpeedWhilePlayingPatch,
// Currently there is no easy way to make a mandatory patch,
// so for now this is a dependent of this patch.
@@ -142,6 +163,12 @@ val settingsPatch = bytecodePatch(
selectable = true,
)
if (is_19_34_or_greater) {
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
SwitchPreference("revanced_restore_old_settings_menus")
)
}
PreferenceScreen.MISC.addPreferences(
TextPreference(
key = null,
@@ -150,6 +177,10 @@ val settingsPatch = bytecodePatch(
inputType = InputType.TEXT_MULTI_LINE,
tag = "app.revanced.extension.shared.settings.preference.ImportExportPreference",
),
ListPreference(
key = "revanced_language",
summaryKey = null
)
)
setThemeFingerprint.method.let { setThemeMethod ->
@@ -189,6 +220,40 @@ val settingsPatch = bytecodePatch(
licenseActivityOnCreateFingerprint.classDef.apply {
methods.removeIf { it.name != "onCreate" && !MethodUtil.isConstructor(it) }
}
// Add context override to force a specific settings language.
licenseActivityOnCreateFingerprint.classDef.apply {
val attachBaseContext = ImmutableMethod(
type,
"attachBaseContext",
listOf(ImmutableMethodParameter("Landroid/content/Context;", null, null)),
"V",
AccessFlags.PROTECTED.value,
null,
null,
MutableMethodImplementation(3),
).toMutable().apply {
addInstructions(
"""
invoke-static { p1 }, $activityHookClassDescriptor->getAttachBaseContext(Landroid/content/Context;)Landroid/content/Context;
move-result-object p1
invoke-super { p0, p1 }, $superclass->attachBaseContext(Landroid/content/Context;)V
return-void
"""
)
}
methods.add(attachBaseContext)
}
// Add setting to force cairo settings fragment on/off.
if (is_19_04_or_greater) {
cairoFragmentConfigFingerprint.method.insertFeatureFlagBooleanOverride(
CAIRO_CONFIG_LITERAL_VALUE,
"$activityHookClassDescriptor->useCairoSettingsFragment(Z)Z"
)
}
}
finalize {
@@ -224,17 +289,15 @@ object PreferenceScreen : BasePreferenceScreen() {
key = "revanced_settings_screen_03_feed",
summaryKey = null,
)
val PLAYER = Screen(
key = "revanced_settings_screen_04_player",
val GENERAL_LAYOUT = Screen(
key = "revanced_settings_screen_04_general",
summaryKey = null,
)
val GENERAL_LAYOUT = Screen(
key = "revanced_settings_screen_05_general",
val PLAYER = Screen(
key = "revanced_settings_screen_05_player",
summaryKey = null,
)
// Don't sort, as related preferences are scattered apart.
// Can use title sorting after PreferenceCategory support is added.
val SHORTS = Screen(
key = "revanced_settings_screen_06_shorts",
summaryKey = null,

View File

@@ -47,8 +47,11 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference"
),
ListPreference(
"revanced_spoof_video_streams_language",
summaryKey = null
key = "revanced_spoof_video_streams_language",
summaryKey = null,
// Language strings are declared in Setting patch.
entriesKey = "revanced_language_entries",
entryValuesKey = "revanced_language_entry_values"
),
SwitchPreference("revanced_spoof_video_streams_ios_force_avc"),
SwitchPreference("revanced_spoof_streaming_data_stats_for_nerds"),

View File

@@ -51,7 +51,7 @@ internal val mainActivityOnCreateFingerprint = fingerprint {
}
}
val rollingNumberTextViewAnimationUpdateFingerprint = fingerprint {
internal val rollingNumberTextViewAnimationUpdateFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters("Landroid/graphics/Bitmap;")

View File

@@ -57,7 +57,10 @@ val forceOriginalAudioPatch = bytecodePatch(
addResources("youtube", "video.audio.forceOriginalAudioPatch")
PreferenceScreen.VIDEO.addPreferences(
SwitchPreference("revanced_force_original_audio")
SwitchPreference(
key = "revanced_force_original_audio",
tag = "app.revanced.extension.youtube.settings.preference.ForceOriginalAudioSwitchPreference"
)
)
fun Method.firstFormatStreamingModelCall(

View File

@@ -17,22 +17,26 @@ import app.revanced.patches.shared.misc.mapping.resourceMappings
import app.revanced.patches.shared.misc.settings.preference.InputType
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.shared.misc.settings.preference.TextPreference
import app.revanced.patches.youtube.interaction.seekbar.disableFastForwardNoticeFingerprint
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.litho.filter.addLithoFilter
import app.revanced.patches.youtube.misc.litho.filter.lithoFilterPatch
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.recyclerviewtree.hook.addRecyclerViewTreeHook
import app.revanced.patches.youtube.misc.recyclerviewtree.hook.recyclerViewTreeHookPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.util.*
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.iface.instruction.NarrowLiteralInstruction
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.ImmutableField
var speedUnavailableId = -1L
internal set
internal var speedUnavailableId = -1L
private set
private val customPlaybackSpeedResourcePatch = resourcePatch {
dependsOn(resourceMappingPatch)
@@ -61,6 +65,7 @@ internal val customPlaybackSpeedPatch = bytecodePatch(
recyclerViewTreeHookPatch,
customPlaybackSpeedResourcePatch,
addResourcesPatch,
versionCheckPatch
)
execute {
@@ -71,6 +76,12 @@ internal val customPlaybackSpeedPatch = bytecodePatch(
TextPreference("revanced_custom_playback_speeds", inputType = InputType.TEXT_MULTI_LINE),
)
if (is_19_25_or_greater) {
PreferenceScreen.VIDEO.addPreferences(
TextPreference("revanced_speed_tap_and_hold", inputType = InputType.NUMBER_DECIMAL),
)
}
// Replace the speeds float array with custom speeds.
speedArrayGeneratorFingerprint.method.apply {
val sizeCallIndex = indexOfFirstInstructionOrThrow { getReference<MethodReference>()?.name == "size" }
@@ -166,5 +177,27 @@ internal val customPlaybackSpeedPatch = bytecodePatch(
addLithoFilter(FILTER_CLASS_DESCRIPTOR)
// endregion
// region Custom tap and hold 2x speed.
if (is_19_25_or_greater) {
disableFastForwardNoticeFingerprint.method.apply {
val index = indexOfFirstInstructionOrThrow {
(this as? NarrowLiteralInstruction)?.narrowLiteral == 2.0f.toRawBits()
}
val register = getInstruction<OneRegisterInstruction>(index).registerA
addInstructions(
index + 1,
"""
invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->tapAndHoldSpeed()F
move-result v$register
"""
)
}
}
// endregion
}
}

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -43,6 +43,62 @@ 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_language_title">لغة ReVanced</string>
<string name="revanced_language_user_dialog_message">"قد تكون الترجمات لبعض اللغات مفقودة أو غير مكتملة.
لترجمة لغات جديدة، تفضل بزيارة translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">لغة التطبيق</string>
<string name="revanced_language_AR">العربية</string>
<string name="revanced_language_AZ">Azerbaijani</string>
<string name="revanced_language_BG">Bulgarian</string>
<string name="revanced_language_BN">Bengali</string>
<string name="revanced_language_CA">Catalan</string>
<string name="revanced_language_CS">Czech</string>
<string name="revanced_language_DA">Danish</string>
<string name="revanced_language_DE">German</string>
<string name="revanced_language_EL">Greek</string>
<string name="revanced_language_EN">English</string>
<string name="revanced_language_ES">Spanish</string>
<string name="revanced_language_ET">Estonian</string>
<string name="revanced_language_FA">فارسى</string>
<string name="revanced_language_FI">Finnish</string>
<string name="revanced_language_FR">French - Français</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Croatian</string>
<string name="revanced_language_HU">Hungarian</string>
<string name="revanced_language_ID">Indonesian</string>
<string name="revanced_language_IT">Italian</string>
<string name="revanced_language_JA">Japanese</string>
<string name="revanced_language_KK">Kazakh</string>
<string name="revanced_language_KO">Korean</string>
<string name="revanced_language_LT">Lithuanian</string>
<string name="revanced_language_LV">Latvian</string>
<string name="revanced_language_MK">Macedonian</string>
<string name="revanced_language_MN">Mongolian</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malay</string>
<string name="revanced_language_MY">Burmese</string>
<string name="revanced_language_NL">Dutch</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Punjabi</string>
<string name="revanced_language_PL">Polish</string>
<string name="revanced_language_PT">Portugese</string>
<string name="revanced_language_RO">Romanian</string>
<string name="revanced_language_RU">Russian - Русский</string>
<string name="revanced_language_SK">Slovak</string>
<string name="revanced_language_SL">Slovene</string>
<string name="revanced_language_SR">Serbian</string>
<string name="revanced_language_SV">Swedish</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thai</string>
<string name="revanced_language_TR">Turkish</string>
<string name="revanced_language_UK">Ukrainian</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamese</string>
<string name="revanced_language_ZH">Chinese</string>
<string name="revanced_pref_import_export_title">استيراد / تصدير</string>
<string name="revanced_pref_import_export_summary">استيراد / تصدير إعدادات ReVanced</string>
<!-- Settings about dialog. -->
@@ -138,12 +194,12 @@ Second \"item\" text"</string>
<string name="revanced_hide_join_membership_button_summary_on">تم إخفاء الزر</string>
<string name="revanced_hide_join_membership_button_summary_off">يتم عرض الزر</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">إخفاء رف \"من أجلك\" في صفحة القناة</string>
<string name="revanced_hide_for_you_shelf_title">إخفاء رف \"لـك\" في صفحة القناة</string>
<string name="revanced_hide_for_you_shelf_summary_on">تم إخفاء الرف</string>
<string name="revanced_hide_for_you_shelf_summary_off">يتم عرض الرف</string>
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the subscription feed for future livestreams or unreleased videos. -->
<string name="revanced_hide_notify_me_button_title">إخفاء زر \'نبهني\'</string>
<string name="revanced_hide_notify_me_button_title">إخفاء زر \'تنبيهي\'</string>
<string name="revanced_hide_notify_me_button_summary_on">تم إخفاء الزر</string>
<string name="revanced_hide_notify_me_button_summary_off">يتم عرض الزر</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
@@ -164,9 +220,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_chips_shelf_title">إخفاء رف الشرائح</string>
<string name="revanced_hide_chips_shelf_summary_on">تم إخفاء رف الشرائح</string>
<string name="revanced_hide_chips_shelf_summary_off">يتم عرض رف الشرائح</string>
<string name="revanced_hide_expandable_chip_title">إخفاء الشريحة القابلة للتوسيع تحت مقاطع الفيديو</string>
<string name="revanced_hide_expandable_chip_summary_on">تم إخفاء الرقائق القابلة للتوسيع</string>
<string name="revanced_hide_expandable_chip_summary_off">يتم عرض الرقائق القابلة للتوسيع</string>
<string name="revanced_hide_expandable_chip_title">إخفاء الشريحة القابلة للتوسيع تحت الفيديوهات</string>
<string name="revanced_hide_expandable_chip_summary_on">تم إخفاء الشرائح القابلة للتوسيع</string>
<string name="revanced_hide_expandable_chip_summary_off">يتم عرض الشرائح القابلة للتوسيع</string>
<string name="revanced_hide_community_posts_title">إخفاء مشاركات المجتمع</string>
<string name="revanced_hide_community_posts_summary_on">تم إخفاء مشاركات المجتمع</string>
<string name="revanced_hide_community_posts_summary_off">يتم عرض مشاركات المجتمع</string>
@@ -207,8 +263,8 @@ Second \"item\" text"</string>
<string name="revanced_hide_quick_actions_summary_on">تم إخفاء الإجراءات السريعة</string>
<string name="revanced_hide_quick_actions_summary_off">يتم عرض الإجراءات السريعة</string>
<string name="revanced_hide_related_videos_title">إخفاء الفيديوهات ذات الصلة في الإجراءات السريعة</string>
<string name="revanced_hide_related_videos_summary_on">تم إخفاء مقاطع الفيديو ذات الصلة</string>
<string name="revanced_hide_related_videos_summary_off">يتم عرض مقاطع الفيديو ذات الصلة</string>
<string name="revanced_hide_related_videos_summary_on">تم إخفاء الفيديوهات ذات الصلة</string>
<string name="revanced_hide_related_videos_summary_off">يتم عرض الفيديوهات ذات الصلة</string>
<string name="revanced_hide_image_shelf_title">إخفاء رفوف الصور في نتائج البحث</string>
<string name="revanced_hide_image_shelf_summary_on">تم إخفاء رفوف الصورة</string>
<string name="revanced_hide_image_shelf_summary_off">يتم عرض رفوف الصورة</string>
@@ -242,7 +298,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_description_components_screen_title">وصف الفيديو</string>
<string name="revanced_hide_description_components_screen_summary">إخفاء أو عرض مكونات وصف الفيديو</string>
<string name="revanced_hide_filter_bar_screen_title">شريط التصفية</string>
<string name="revanced_hide_filter_bar_screen_summary">إخفاء شريط التصفية أو عرضه في الموجز والبحث ومقاطع الفيديو ذات الصلة</string>
<string name="revanced_hide_filter_bar_screen_summary">إخفاء شريط التصفية أو عرضه في الموجز والبحث الفيديوهات ذات الصلة</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">إخفاء في الموجز</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">مخفي في الموجز</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">يعرض في الموجز</string>
@@ -293,10 +349,10 @@ Second \"item\" text"</string>
<string name="revanced_custom_filter_toast_invalid_syntax">فلتر مخصص غير صالح: %s</string>
<string name="revanced_hide_keyword_content_screen_title">إخفاء محتوى الكلمات الرئيسية</string>
<string name="revanced_hide_keyword_content_screen_summary">إخفاء فيديوهات البحث والموجز باستخدام فلاتر الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_home_title">إخفاء مقاطع فيديو الصفحة الرئيسية بواسطة الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_home_summary_on">تتم تصفية مقاطع الفيديو في علامة التبويب \"الصفحة الرئيسية\" حسب الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_home_summary_off">لا تتم تصفية مقاطع الفيديو في علامة التبويب \"الصفحة الرئيسية\" حسب الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_subscriptions_title">إخفاء مقاطع الفيديو الخاصة بالاشتراك عن طريق الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_home_title">إخفاء فيديوهات الصفحة الرئيسية بواسطة الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_home_summary_on">تتم تصفية الفيديوهات في علامة التبويب \"الصفحة الرئيسية\" حسب الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_home_summary_off">لا تتم تصفية الفيديوهات في علامة التبويب \"الصفحة الرئيسية\" حسب الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_subscriptions_title">إخفاء الفيديوهات الخاصة بالاشتراك عن طريق الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_on">يتم تصفية الفيديوهات في علامة التبويب الاشتراكات حسب الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_off">لا يتم تصفية الفيديوهات في علامة التبويب الاشتراكات حسب الكلمات المفتاحية</string>
<string name="revanced_hide_keyword_content_search_title">إخفاء نتائج البحث عن طريق الكلمات المفتاحية</string>
@@ -445,6 +501,9 @@ Second \"item\" text"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">قيمة شفافية خلفية واجهة التمرير</string>
<string name="revanced_swipe_threshold_title">مقدار حد التمرير</string>
<string name="revanced_swipe_threshold_summary">الحد الأدنى من التمرير قبل اكتشاف الإيماءة</string>
<string name="revanced_swipe_change_video_title">تمكين إيماءة التمرير لتغيير الفيديو</string>
<string name="revanced_swipe_change_video_summary_on">سيؤدي التمرير في وضع ملء الشاشة إلى التغيير للفيديو التالي/السابق</string>
<string name="revanced_swipe_change_video_summary_off">لن يؤدي التمرير في وضع ملء الشاشة إلى التغيير للفيديو التالي/السابق</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">تعطيل التَّرْجَمَة التلقائية</string>
@@ -516,14 +575,14 @@ Second \"item\" text"</string>
<string name="revanced_hide_navigation_button_labels_summary_on">تم إخفاء التسميات</string>
<string name="revanced_hide_navigation_button_labels_summary_off">يتم عرض التسميات</string>
<string name="revanced_disable_translucent_status_bar_title">تعطيل شريط الحالة الشفاف</string>
<string name="revanced_disable_translucent_status_bar_summary_on">شريط الحالة غير معتمة</string>
<string name="revanced_disable_translucent_status_bar_summary_off">شريط الحالة غير شفافة أو عميقة</string>
<string name="revanced_disable_translucent_navigation_bar_light_title">تعطيل شريط التنقل الشفاف الفاتح</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_on">شريط التنقل في الوضع الفاتح معتم</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_off">يكون شريط التنقل في الوضع الفاتح معتمًا أو نصف شفاف</string>
<string name="revanced_disable_translucent_navigation_bar_dark_title">تعطيل الشريط الداكنة</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_on">شريط التنقل في الوضع الداكن معتم</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_off">شريط التطبيق المصوري الشفاف غير عميقة أو عميقة</string>
<string name="revanced_disable_translucent_status_bar_summary_on">شريط الحالة غير شفاف</string>
<string name="revanced_disable_translucent_status_bar_summary_off">شريط الحالة معتم أو شفاف</string>
<string name="revanced_disable_translucent_navigation_bar_light_title">تعطيل الشريط الشفاف الفاتح</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_on">شريط التنقل في الوضع الفاتح غير شفاف</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_off">شريط التنقل في الوضع الفاتح معتم او شفاف</string>
<string name="revanced_disable_translucent_navigation_bar_dark_title">تعطيل الشريط الشفاف الداكن</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_on">شريط التنقل في الوضع الداكن غير شفاف</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_off">شريط التنقل في الوضع الداكن معتم او شفاف</string>
</patch>
<patch id="layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch">
<string name="revanced_hide_player_flyout_title">القائمة المنبثقة</string>
@@ -628,9 +687,18 @@ Second \"item\" text"</string>
<string name="revanced_shorts_player_screen_summary">إخفاء أو عرض المكونات في مشغل Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">إخفاء Shorts في موجز الصفحة الرئيسية</string>
<string name="revanced_hide_shorts_home_summary_on">مخفية في الصفحة الرئيسية والفيديوهات ذات الصلة</string>
<string name="revanced_hide_shorts_home_summary_off">تعرض في الصفحة الرئيسية والفيديوهات ذات الصلة</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">إخفاء Shorts في موجز الاشتراكات</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">مخفية في موجز الاشتراكات</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">تعرض في موجز الاشتراكات</string>
<string name="revanced_hide_shorts_search_title">إخفاء Shorts في نتائج البحث</string>
<string name="revanced_hide_shorts_search_summary_on">مخفية في نتائج البحث</string>
<string name="revanced_hide_shorts_search_summary_off">تعرض في نتائج البحث</string>
<string name="revanced_hide_shorts_history_title">إخفاء Shorts في سجل المشاهدة</string>
<string name="revanced_hide_shorts_history_summary_on">مخفية في سجل المشاهدة</string>
<string name="revanced_hide_shorts_history_summary_off">تعرض في سجل المشاهدة</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">إخفاء زر الانضمام</string>
<string name="revanced_hide_shorts_join_button_summary_on">تم إخفاء زر الانضمام</string>
@@ -732,8 +800,15 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_popup_panels_summary_on">تم إخفاء لوحات المشغل المنبثقة</string>
<string name="revanced_hide_player_popup_panels_summary_off">يتم عرض لوحات المشغل المنبثقة</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">الخروج من وضع ملء الشاشة عند انتهاء الفيديو</string>
<string name="revanced_exit_fullscreen_entry_1">معطل</string>
<string name="revanced_exit_fullscreen_entry_2">بالطول</string>
<string name="revanced_exit_fullscreen_entry_3">بالعرض</string>
<string name="revanced_exit_fullscreen_entry_4">بالطول والعرض</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">فتح مقاطع الفيديو في ملء الشاشة</string>
<string name="revanced_open_videos_fullscreen_portrait_title">فتح الفيديوهات في ملء الشاشة</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">يتم فتح الفيديوهات في وضع ملء الشاشة</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">لا يتم فتح الفيديوهات في وضع ملء الشاشة</string>
</patch>
@@ -752,12 +827,12 @@ Second \"item\" text"</string>
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">أعد تحميل الفيديو للتصويت بـ Return YouTube Dislike</string>
<string name="revanced_ryd_enable_summary_on">يتم عرض لم يعجبني</string>
<string name="revanced_ryd_enable_summary_off">لا يتم عرض لم يعجبني</string>
<string name="revanced_ryd_shorts_title">عرض لم يعجني في مقاطع Shorts</string>
<string name="revanced_ryd_shorts_summary_on">يتم عرض لم يعجني في مقاطع Shorts</string>
<string name="revanced_ryd_shorts_title">عرض لم يعجني في فيديوهات Shorts</string>
<string name="revanced_ryd_shorts_summary_on">يتم عرض لم يعجني في فيديوهات Shorts</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"إبداءات لم يعجبني التي تظهر على فيديوهات Shorts
التقييد: قد لا تظهر إبداءات لم يعجبني في وضع التصفح المتخفي"</string>
<string name="revanced_ryd_shorts_summary_off">تم إخفاء لم يعجني في مقاطع Shorts</string>
<string name="revanced_ryd_shorts_summary_off">تم إخفاء لم يعجني في فيديوهات Shorts</string>
<string name="revanced_ryd_dislike_percentage_title">لم يعجبني كــ نسبة مئوية</string>
<string name="revanced_ryd_dislike_percentage_summary_on">يعرض عدد لم يعجبني كـ نسبة مئوية</string>
<string name="revanced_ryd_dislike_percentage_summary_off">يعرض عدد لم يعجبني كـ رَقَم</string>
@@ -810,7 +885,7 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<string name="revanced_sb_enable_sb">تمكين SponsorBlock</string>
<string name="revanced_sb_enable_sb_sum">مانِع الرُعَاة هو نظام جماعي لتخطي الأجزاء المُمِلَّة في مقاطع YouTube</string>
<string name="revanced_sb_enable_sb_sum">SponsorBlock مانِع الرُعَاة هو نظام جماعي لتخطي الأجزاء المُمِلَّة في مقاطع YouTube</string>
<string name="revanced_sb_appearance_category">المظهر</string>
<string name="revanced_sb_enable_voting">عرض زر التصويت</string>
<string name="revanced_sb_enable_voting_sum_on">يتم عرض زر التصويت على المقطع</string>
@@ -889,7 +964,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_segments_filler">خارج الموضوع/النكات</string>
<string name="revanced_sb_segments_filler_sum">تم إضافة مشاهد ملتقطة خارج الموضوع أو الفكاهة التي ليست مطلوبة لفهم المحتوى الرئيسي للفيديو. لا تتضمن مقاطع توفر تَعبِير أو تفاصيل الخلفية</string>
<string name="revanced_sb_segments_nomusic">الموسيقى: مقطع غير موسيقي</string>
<string name="revanced_sb_segments_nomusic_sum">فقط للاستخدام في مقاطع الفيديو الموسيقية. أقسام مقاطع الفيديو الموسيقية بدون موسيقى، والتي لم يتم تغطيتها بالفعل من قبل فئة أخرى</string>
<string name="revanced_sb_segments_nomusic_sum">فقط للاستخدام في المقاطع الموسيقية. أقسام المقاطع الموسيقية بدون موسيقى، والتي لم يتم تغطيتها بالفعل من قبل فئة أخرى</string>
<string name="revanced_sb_skip_button_compact">تخطي</string>
<string name="revanced_sb_skip_button_compact_highlight">الأبرز</string>
<string name="revanced_sb_skip_button_sponsor">تخطي الراعي</string>
@@ -1000,6 +1075,23 @@ Second \"item\" text"</string>
<string name="revanced_sb_reset">إعادة التعيين</string>
<string name="revanced_sb_about">لمحة</string>
<string name="revanced_sb_about_api_sum">يتم توفير البيانات بواسطة SponsorBlock API. انقر هنا لمعرفة المزيد ومشاهدة التنزيلات لمنصات أخرى</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">شكل نموذج التخطيط</string>
<string name="revanced_change_form_factor_entry_1">الافتراضي</string>
<string name="revanced_change_form_factor_entry_2">الجوّال</string>
<string name="revanced_change_form_factor_entry_3">الجهاز اللوحي</string>
<string name="revanced_change_form_factor_entry_4">Automotive</string>
<string name="revanced_change_form_factor_user_dialog_message">"تتضمن التغييرات:
تخطيط الجهاز اللوحي
• إخفاء منشورات المجتمع
تخطيط Automotive
• إخفاء قائمة سجل المشاهدة
• استعادة علامة التبويب \"استكشاف\"
• فتح فيديوهات Shorts في المشغل العادي
• تنظيم الخلاصة حسب الموضوعات والقناة"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">خِداع إصدار التطبيق</string>
@@ -1014,6 +1106,7 @@ Second \"item\" text"</string>
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">الهدف من تغيير إصدار التطبيق</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - استعادة أيقونات مشغل Shorts القديمة</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - استعادة أيقونات التنقل وشريط الأدوات القديمة</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - استعادة RYD على Shorts بوضع التخفي</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - استعادة قائمة سرعة الفيديو العريضة &amp; الجودة</string>
@@ -1044,10 +1137,10 @@ Second \"item\" text"</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">سيتم استئناف تشغيل مشغل Shorts عند بدء تشغيل التطبيق</string>
</patch>
<patch id="layout.shortsplayer.shortsPlayerTypePatch">
<string name="revanced_shorts_player_type_title">فتح مقاطع الـShorts باستخدام</string>
<string name="revanced_shorts_player_type_title">فتح فيديوهات Shorts باستخدام</string>
<string name="revanced_shorts_player_type_shorts">مشغل Shorts</string>
<string name="revanced_shorts_player_type_regular_player">مشغل عادي</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">شاشة كاملة - مشغل عادي</string>
<string name="revanced_shorts_player_type_regular_player">المشغل العادي</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">المشغل العادي في وضع ملء الشاشة</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">التشغيل التلقائي لفيديوهات Shorts</string>
@@ -1057,12 +1150,6 @@ Second \"item\" text"</string>
<string name="revanced_shorts_autoplay_background_summary_on">سيتم تشغيل فيديوهات Shorts تلقائيًا في الخلفية</string>
<string name="revanced_shorts_autoplay_background_summary_off">سيتم تكرار فيديوهات Shorts في الخلفية</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">تمكين تصميم الجهاز اللوحي</string>
<string name="revanced_tablet_layout_summary_on">تم تمكين تصميم الجهاز اللوحي</string>
<string name="revanced_tablet_layout_summary_off">تم تعطيل تصميم الجهاز اللوحي</string>
<string name="revanced_tablet_layout_user_dialog_message">لا تظهر منشورات المجتمع على تخطيطات الجهاز اللوحي</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">المشغل المصغر</string>
<string name="revanced_miniplayer_screen_summary">تغيير نمط المشغل المصغر داخل التطبيق</string>
@@ -1160,7 +1247,7 @@ Second \"item\" text"</string>
<string name="revanced_alt_thumbnail_stills_about_title">لقطات الفيديو الثابتة</string>
<string name="revanced_alt_thumbnail_stills_about_summary">يتم التقاط اللقطات الثابتة من بداية/وسط/نهاية كل فيديو. هذه الصور مدمجة في YouTube ولا يتم استخدام أي واجهة برمجة تطبيقات خارجية</string>
<string name="revanced_alt_thumbnail_stills_fast_title">استخدم اللقطات الثابتة السريعة</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_on">استخدام اللقطات متوسطة الجودة. سيتم تحميل المُصغَّرات بشكل أسرع، ولكن البث المباشر و المقاطع التي لم يتم إصدارها أو القديمة جدًا قد تعرض مُصغَّرات فارغة</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_on">استخدام اللقطات متوسطة الجودة. سيتم تحميل المُصغَّرات بشكل أسرع، ولكن البث المباشر و الفيديوهات التي لم يتم إصدارها أو القديمة جدًا قد تعرض مُصغَّرات فارغة</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_off">استخدام لقطات الفيديو الثابتة بجودة عالية</string>
<string name="revanced_alt_thumbnail_stills_time_title">وقت الفيديو لأخذ اللقطات الثابتة منه</string>
<string name="revanced_alt_thumbnail_stills_time_entry_1">بداية الفيديو</string>
@@ -1226,12 +1313,13 @@ Second \"item\" text"</string>
<string name="revanced_force_original_audio_title">فرض الصوت الأصلي</string>
<string name="revanced_force_original_audio_summary_on">استخدام الصوت الأصلي</string>
<string name="revanced_force_original_audio_summary_off">استخدام الصوت الافتراضي</string>
<string name="revanced_force_original_audio_not_available">لاستخدام هذه الميزة، قم بتغيير محاكاة بث المحتوى إلى نوع العميل iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
<string name="revanced_video_quality_default_entry_1">تلقائي</string>
<string name="revanced_remember_video_quality_last_selected_title">تذكر تغييرات جودة الفيديو</string>
<string name="revanced_remember_video_quality_last_selected_summary_on">تنطبق تغييرات الجودة على جميع مقاطع الفيديو</string>
<string name="revanced_remember_video_quality_last_selected_summary_on">تنطبق تغييرات الجودة على جميع الفيديوهات</string>
<string name="revanced_remember_video_quality_last_selected_summary_off">تنطبق تغييرات الجودة على الفيديو الحالي فقط</string>
<string name="revanced_video_quality_default_wifi_title">جودة الفيديو الافتراضية على شبكة Wi-Fi</string>
<string name="revanced_video_quality_default_mobile_title">جودة الفيديو الافتراضية على شبكة الجوَّال</string>
@@ -1253,6 +1341,8 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">يجب أن تكون سرعات التشغيل المخصصة أقل من %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">سرعة التشغيل المخصصة غير صالحة</string>
<string name="revanced_custom_playback_speeds_auto">تلقائي</string>
<string name="revanced_speed_tap_and_hold_title">\"سرعة النقر مع الاستمرار المخصصة\"</string>
<string name="revanced_speed_tap_and_hold_summary">سرعة التشغيل بين 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">تذكر التغيرات في سرعة التشغيل</string>
@@ -1282,77 +1372,26 @@ Second \"item\" text"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">إيقاف تشغيل هذا الإعداد قد يسبب مشاكل في تشغيل الفيديو.</string>
<string name="revanced_spoof_video_streams_client_type_title">العميل الافتراضي</string>
<!-- 'no auth' means no authentication -->
<string name="revanced_spoof_video_streams_client_type_android_vr_no_auth">Android VR (no auth)</string>
<string name="revanced_spoof_video_streams_client_type_android_vr_no_auth">Android VR (بدون مصادقة)</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)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">يتم تحديد ترميز فيديو تلقائيًا</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">يتم فرض ترميز فيديو على AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">يتم تحديد ترميز الفيديو تلقائيًا</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"قد يؤدي تمكين هذا إلى تحسين عمر البطارية وإصلاح تقطيع التشغيل.
AVC لديه حد أقصى للدقة 1080 بكسل ، لا يتوفر ترميز الصوت Opus ، وسوف يستخدم تشغيل الفيديو بيانات إنترنت أكثر من VP9 أو AV1."</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">آثار جانبية لتزييف iOS</string>
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• قد لا يتم تشغيل الأفلام أو مقاطع الفيديو المدفوعة
AVC لديه حد أقصى للدقة 1080p، لا يتوفر ترميز الصوت Opus، وسوف يستخدم تشغيل الفيديو بيانات إنترنت أكثر من VP9 أو AV1."</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">الآثار الجانبية لمحاكاة هوية iOS</string>
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• قد لا يتم تشغيل الأفلام أو الفيديوهات المدفوعة
• مستوى الصوت الثابت غير متوفر
• تنتهي مقاطع الفيديو قبل ثانية واحدة"</string>
<string name="revanced_spoof_video_streams_about_android_title">تأثيرات نظام الجهاز الأندرويد</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• قائمة قائمة الصوت مفقودة
لا يتوفر بحجم الصوت متاح
تثبيت الصوت الأصلي ليس غير متوافر"</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">اطلاع في الإحصائيات للنردز</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">يظهر نوع العميل في الإحصائيات للنردز</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">يتم العميل مخفي في الإحصائيات للنردز</string>
<string name="revanced_spoof_video_streams_language_title">لغة البث الإفتراضي القياسي لافتراضي الاهتداري</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">لغة الحساب</string>
<string name="revanced_spoof_video_streams_language_AR">العربية</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaijani</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarian</string>
<string name="revanced_spoof_video_streams_language_BN">Bengali</string>
<string name="revanced_spoof_video_streams_language_CA">Catalan</string>
<string name="revanced_spoof_video_streams_language_CS">Czech</string>
<string name="revanced_spoof_video_streams_language_DA">Danish</string>
<string name="revanced_spoof_video_streams_language_DE">German</string>
<string name="revanced_spoof_video_streams_language_EL">Greek</string>
<string name="revanced_spoof_video_streams_language_EN">English</string>
<string name="revanced_spoof_video_streams_language_ES">Spanish</string>
<string name="revanced_spoof_video_streams_language_ET">Estonian</string>
<string name="revanced_spoof_video_streams_language_FA">فارسى</string>
<string name="revanced_spoof_video_streams_language_FI">Finnish</string>
<string name="revanced_spoof_video_streams_language_FR">French</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croatian</string>
<string name="revanced_spoof_video_streams_language_HU">Hungarian</string>
<string name="revanced_spoof_video_streams_language_ID"> Indonesian</string>
<string name="revanced_spoof_video_streams_language_IT">Italian</string>
<string name="revanced_spoof_video_streams_language_JA">Japanese</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Korean</string>
<string name="revanced_spoof_video_streams_language_LT">Lithuanian</string>
<string name="revanced_spoof_video_streams_language_LV">Latvian</string>
<string name="revanced_spoof_video_streams_language_MK">Macedonian</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolian</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malay</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Dutch</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polish</string>
<string name="revanced_spoof_video_streams_language_PT">البرتغالية</string>
<string name="revanced_spoof_video_streams_language_RO">Romanian</string>
<string name="revanced_spoof_video_streams_language_RU">Russian</string>
<string name="revanced_spoof_video_streams_language_SK">Slovak</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbian</string>
<string name="revanced_spoof_video_streams_language_SV">Swedish</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thai</string>
<string name="revanced_spoof_video_streams_language_TR">Turkish</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainian</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Chinese</string>
• تنتهي الفيديوهات قبل ب 1 ثانية"</string>
<string name="revanced_spoof_video_streams_about_android_title">الآثار الجانبية لمحاكاة هوية Android</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• قائمة المقطع الصوتي مفقودة
مستوى الصوت الثابت غير متاح
فرض الصوت الأصلي غير متوفر"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• لا يوجد ترميز الفيديو AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">عرض في إحصاءات تقنية</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">يتم عرض نوع العميل في إحصاءات تقنية</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">تم إخفاء نوع العميل في إحصاءات تقنية</string>
<string name="revanced_spoof_video_streams_language_title">لغة البث الصوتي الافتراضية للواقع الافتراضي VR</string>
</patch>
</app>
<app id="twitch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -33,7 +33,6 @@ Second \"item\" text"</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">APK qurulma vaxtı pozulub</string>
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_title">\"ReVanced\"</string>
<string name="revanced_settings_confirm_user_dialog_title">Davam etmək istəyirsiniz?</string>
<string name="revanced_settings_reset">Sıfırla</string>
<string name="revanced_settings_restart_title">Yenilə və yenidən başlat</string>
@@ -43,6 +42,62 @@ 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_language_title">ReVanced dili</string>
<string name="revanced_language_user_dialog_message">"Bəzi dillər üçün tərcümələr əskik və ya səhv ola bilər.
Yeni dilləri tərcümə etmək üçün translate.revanced.app 'ə daxil olun"</string>
<string name="revanced_language_DEFAULT">Tətbiq dili</string>
<string name="revanced_language_AR">Ərəbcə</string>
<string name="revanced_language_AZ">Azərbaycanca</string>
<string name="revanced_language_BG">Bolqarca</string>
<string name="revanced_language_BN">Benqalca</string>
<string name="revanced_language_CA">Katalan dili</string>
<string name="revanced_language_CS">Çexcə</string>
<string name="revanced_language_DA">Dan dili</string>
<string name="revanced_language_DE">Almanca</string>
<string name="revanced_language_EL">Yunanca</string>
<string name="revanced_language_EN">İngiliscə</string>
<string name="revanced_language_ES">İspanca</string>
<string name="revanced_language_ET">Estonca</string>
<string name="revanced_language_FA">Farsca</string>
<string name="revanced_language_FI">Fincə</string>
<string name="revanced_language_FR">Fransızca</string>
<string name="revanced_language_GU">Qücərat dili</string>
<string name="revanced_language_HI">Hindcə</string>
<string name="revanced_language_HR">Xorvatca</string>
<string name="revanced_language_HU">Macarca</string>
<string name="revanced_language_ID">İndoneziya dili</string>
<string name="revanced_language_IT">İtalyanca</string>
<string name="revanced_language_JA">Yaponca</string>
<string name="revanced_language_KK">Qazax dili</string>
<string name="revanced_language_KO">Koreya dili</string>
<string name="revanced_language_LT">Litva Dili</string>
<string name="revanced_language_LV">Letonca</string>
<string name="revanced_language_MK">Makedon Dili</string>
<string name="revanced_language_MN">Monqolca</string>
<string name="revanced_language_MR">Marathi dili</string>
<string name="revanced_language_MS">Malay dili</string>
<string name="revanced_language_MY">Birmanca</string>
<string name="revanced_language_NL">Hollandca</string>
<string name="revanced_language_OR">Oriya dili</string>
<string name="revanced_language_PA">Pəncabca</string>
<string name="revanced_language_PL">Polyak dili</string>
<string name="revanced_language_PT">Portuqal dili</string>
<string name="revanced_language_RO">Rumınca</string>
<string name="revanced_language_RU">Rusca</string>
<string name="revanced_language_SK">Slovak dili</string>
<string name="revanced_language_SL">Slovencə</string>
<string name="revanced_language_SR">Serbcə</string>
<string name="revanced_language_SV">İsveçcə</string>
<string name="revanced_language_SW">Suahili dili</string>
<string name="revanced_language_TA">Tamilcə</string>
<string name="revanced_language_TE">Teluqu dili</string>
<string name="revanced_language_TH">Tayca</string>
<string name="revanced_language_TR">Türkcə</string>
<string name="revanced_language_UK">Ukrayna dili</string>
<string name="revanced_language_UR">Urdu dili</string>
<string name="revanced_language_VI">Vyetnamca</string>
<string name="revanced_language_ZH">Çincə</string>
<string name="revanced_pref_import_export_title">İdxal/İxrac et</string>
<string name="revanced_pref_import_export_summary">ReVanced tənzimləmələrin idxal/ixrac et</string>
<!-- Settings about dialog. -->
@@ -445,6 +500,9 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Sürüşdürmə örtüyü arxa fonunun görünməsi</string>
<string name="revanced_swipe_threshold_title">Sürüşdürmə böyüklük həddi</string>
<string name="revanced_swipe_threshold_summary">Sürüşdürmənin icra edilməsi üçün son dəyər</string>
<string name="revanced_swipe_change_video_title">Videoları ötürmək üçün sürüşdürməni aktiv et</string>
<string name="revanced_swipe_change_video_summary_on">Tam ekran rejimində sürüşdürmə növbəti/əvvəlki videoya ötürəcək</string>
<string name="revanced_swipe_change_video_summary_off">Tam ekran rejimində sürüşdürmə növbəti/əvvəlki videoya ötürməyəcək</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Avtomatik titrləri qeyri-aktiv et</string>
@@ -628,15 +686,18 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
<string name="revanced_shorts_player_screen_summary">Shorts oynadıcıda hissəcikləri gizlət və ya göstər</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Ev axınında \"Shorts\"u gizlət</string>
<string name="revanced_hide_shorts_home_summary_on">Ana səhifə lentindəmüvafiq videolarda gizləndilmişdir</string>
<string name="revanced_hide_shorts_home_summary_off">Ana səhifə lentindəmüvafiq videolarda göstərilir</string>
<string name="revanced_hide_shorts_home_summary_on">Ev axınındaəlaqəli videolarda gizlədilib</string>
<string name="revanced_hide_shorts_home_summary_off">Ev axınındaəlaqəli videolarda göstərilir</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Abunəlik axınında \"Shorts\"u gizlət</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Abunəlik lentində gizləndilmişdir</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Abunəlik lentində göstərilir</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Abunəlik axınında gizlidir</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Abunəlik axınında göstərilir</string>
<string name="revanced_hide_shorts_search_title">Axtarış nəticələrindəki \"Shorts\"u gizlət</string>
<string name="revanced_hide_shorts_search_summary_off">Axtarış nəticələrində göstərilir</string>
<string name="revanced_hide_shorts_history_summary_on">İzləmə tarixçəsində gizləndilmişdir</string>
<string name="revanced_hide_shorts_search_summary_on">Axtarış nəticələrində gizlidir</string>
<string name="revanced_hide_shorts_search_summary_off">Axtarış nəticələrində görünür</string>
<string name="revanced_hide_shorts_history_title">Baxış tarixçəsində Shorts-u gizlət</string>
<string name="revanced_hide_shorts_history_summary_on">Baxış tarixçəsində gizlidir</string>
<string name="revanced_hide_shorts_history_summary_off">Baxış tarixçəsində göstərilib</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Qoşul düyməsini gizlət</string>
<string name="revanced_hide_shorts_join_button_summary_on">Qoşulma düyməsi gizlidir</string>
@@ -738,6 +799,13 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
<string name="revanced_hide_player_popup_panels_summary_on">Oynadıcıılan pəncərə panelləri gizlidir</string>
<string name="revanced_hide_player_popup_panels_summary_off">Oynadıcıılan pəncərə panelləri göstərilir</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Video sonunda tam ekran rejimindən çıx</string>
<string name="revanced_exit_fullscreen_entry_1">Qapalı</string>
<string name="revanced_exit_fullscreen_entry_2">Şaquli</string>
<string name="revanced_exit_fullscreen_entry_3">Üfüqi</string>
<string name="revanced_exit_fullscreen_entry_4">Şaquli və üfüqi</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Videoları şaquli tam ekranda aç</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videolar tam ekranda açılır</string>
@@ -1006,6 +1074,23 @@ Təqdim etməyə hazırdır?"</string>
<string name="revanced_sb_reset">Sıfırlayın</string>
<string name="revanced_sb_about">Haqqında</string>
<string name="revanced_sb_about_api_sum">Məlumat SponsorBlock API tərəfindən təqdim edilir. Daha ətraflı öyrənmək və digər platformalar üzrə yükləmələrə baxmaq üçün bura toxunun</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Tərtibat forma göstəricisi</string>
<string name="revanced_change_form_factor_entry_1">İlkin</string>
<string name="revanced_change_form_factor_entry_2">Telefon</string>
<string name="revanced_change_form_factor_entry_3">Planşet</string>
<string name="revanced_change_form_factor_entry_4">Avtomobil</string>
<string name="revanced_change_form_factor_user_dialog_message">"Dəyişikliklərə daxildir:
Planşet tərtibatı
• İcma elanları gizlidir
Avtomobil tərtibatı
• Baxış tarixçəsi seçimi gizlidir
• \"Kəşf et\" bölməsi qaytarılıb
• Shorts daimi oynadıcıda açılır
• Axın mövzulara və kanala görə hazırlanıb"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Tətbiq versiyasını saxtalaşdır</string>
@@ -1020,6 +1105,7 @@ Sonradan qapadılarsa, UI səhvlərin önləmək üçün tətbiq məlumatların
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Saxta tətbiq versiyası hədəfi</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Köhnə Shorts oynadıcı işarələrin bərpa et</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Köhnə fəaliyyət və cihaz cizgisi işarələrin bərpa et</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Shorts gizli rejimində RYD-ni bərpa et</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Geniş video sürəti &amp; keyfiyyət menyusunu bərpa et</string>
@@ -1063,12 +1149,6 @@ Sonradan qapadılarsa, UI səhvlərin önləmək üçün tətbiq məlumatların
<string name="revanced_shorts_autoplay_background_summary_on">Shorts-lar arxa planda avto-oynadılacaq</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts-lar arxa planda təkrarlanacaq</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Planşet tərtibatını aktiv et</string>
<string name="revanced_tablet_layout_summary_on">Planşet tərtibatı aktiv edilib</string>
<string name="revanced_tablet_layout_summary_off">Planşet tərtibatı qeyri-aktivdir</string>
<string name="revanced_tablet_layout_user_dialog_message">İcma elanları planşet tərtibatında göstərilmir</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Kiçik oynadıcı</string>
<string name="revanced_miniplayer_screen_summary">Tətbiqdə kiçildilən oynadıcı üslubunu dəyişdir</string>
@@ -1233,6 +1313,7 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
<string name="revanced_force_original_audio_title">Orijinal səsi tələb et</string>
<string name="revanced_force_original_audio_summary_on">Orijinal səs istifadəsi</string>
<string name="revanced_force_original_audio_summary_off">İlkin səs istifadəsi</string>
<string name="revanced_force_original_audio_not_available">Bu xüsusiyyəti işlətmək üçün yayım saxtalaşdırmanı iOS ötürücü növünə dəyiş</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1260,6 +1341,8 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
<string name="revanced_custom_playback_speeds_invalid">Fərdi sürətlər %s dəyərindən az olmalıdır</string>
<string name="revanced_custom_playback_speeds_parse_exception">Fərdi oynatma sürətləri etibarsızdır</string>
<string name="revanced_custom_playback_speeds_auto">Avtomatik</string>
<string name="revanced_speed_tap_and_hold_title">Xüsusi toxunma və saxlanma sürəti</string>
<string name="revanced_speed_tap_and_hold_summary">0-8 arası oynatma sürəti</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Oynatma sürəti dəyişikliklərin xatırla</string>
@@ -1304,62 +1387,11 @@ AVC maksimum 1080p görüntü imkanına malikdir, Opus audio kodlama olmur və v
<string name="revanced_spoof_video_streams_about_android_summary">"• Səs treki menyusu yoxdur
• Sabit səs səviyyəsi yoxdur
• İlkin səsi məcbur etmə mümkün deyil"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 video kodlayıcı yoxdur</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">İstək üçün Statistikada göstər</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Qəbuledici növü Nerdlər üçün statistikada göstərilir</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Qəbuledici nerd üçün Statistikada gizlidir</string>
<string name="revanced_spoof_video_streams_language_title">VR-da ilkin səs yayımı dili</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Hesab dili</string>
<string name="revanced_spoof_video_streams_language_AR">Ərəbcə</string>
<string name="revanced_spoof_video_streams_language_AZ">Azərbaycanca</string>
<string name="revanced_spoof_video_streams_language_BG">Bolqarca</string>
<string name="revanced_spoof_video_streams_language_BN">Benqalca</string>
<string name="revanced_spoof_video_streams_language_CA">Katalanca</string>
<string name="revanced_spoof_video_streams_language_CS">Çexcə</string>
<string name="revanced_spoof_video_streams_language_DA">Danimarka dili</string>
<string name="revanced_spoof_video_streams_language_DE">Almanca</string>
<string name="revanced_spoof_video_streams_language_EL">Yunanca</string>
<string name="revanced_spoof_video_streams_language_EN">İngiliscə</string>
<string name="revanced_spoof_video_streams_language_ES">İspanca</string>
<string name="revanced_spoof_video_streams_language_ET">Estonca</string>
<string name="revanced_spoof_video_streams_language_FA">Farsca</string>
<string name="revanced_spoof_video_streams_language_FI">Fincə</string>
<string name="revanced_spoof_video_streams_language_FR">Fransızca</string>
<string name="revanced_spoof_video_streams_language_GU">Qücərat dili</string>
<string name="revanced_spoof_video_streams_language_HI">Hindcə</string>
<string name="revanced_spoof_video_streams_language_HR">Xorvatca</string>
<string name="revanced_spoof_video_streams_language_HU">Macarca</string>
<string name="revanced_spoof_video_streams_language_ID">İndoneziya dili</string>
<string name="revanced_spoof_video_streams_language_IT">İtalyanca</string>
<string name="revanced_spoof_video_streams_language_JA">Yaponca</string>
<string name="revanced_spoof_video_streams_language_KK">Qazaxca</string>
<string name="revanced_spoof_video_streams_language_KO">Koreyaca</string>
<string name="revanced_spoof_video_streams_language_LT">Litvaca</string>
<string name="revanced_spoof_video_streams_language_LV">Letonca</string>
<string name="revanced_spoof_video_streams_language_MK">Makedon Dili</string>
<string name="revanced_spoof_video_streams_language_MN">Monqolca</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi dili</string>
<string name="revanced_spoof_video_streams_language_MS">Malay dili</string>
<string name="revanced_spoof_video_streams_language_MY">Birman dili</string>
<string name="revanced_spoof_video_streams_language_NL">Hollandca</string>
<string name="revanced_spoof_video_streams_language_OR">Oriya dili</string>
<string name="revanced_spoof_video_streams_language_PA">Pəncabca</string>
<string name="revanced_spoof_video_streams_language_PL">Polyak dili</string>
<string name="revanced_spoof_video_streams_language_PT">Portuqal dili</string>
<string name="revanced_spoof_video_streams_language_RO">Rumınca</string>
<string name="revanced_spoof_video_streams_language_RU">Rusca</string>
<string name="revanced_spoof_video_streams_language_SK">Slovak dili</string>
<string name="revanced_spoof_video_streams_language_SL">Sloven dili</string>
<string name="revanced_spoof_video_streams_language_SR">Serbcə</string>
<string name="revanced_spoof_video_streams_language_SV">İsveçcə</string>
<string name="revanced_spoof_video_streams_language_SW">Suahili dili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamilcə</string>
<string name="revanced_spoof_video_streams_language_TE">Teluquca</string>
<string name="revanced_spoof_video_streams_language_TH">Tay dili</string>
<string name="revanced_spoof_video_streams_language_TR">Türkcə</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrayna dili</string>
<string name="revanced_spoof_video_streams_language_UR">Urduca</string>
<string name="revanced_spoof_video_streams_language_VI">Vyetnamca</string>
<string name="revanced_spoof_video_streams_language_ZH">Çincə</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ 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_language_title">Мова ReVanced</string>
<string name="revanced_language_user_dialog_message">"Пераклады для некаторых моў могуць быць адсутнымі або няпоўнымі.
Каб дадаць новыя мовы, наведайце translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Мова праграмы</string>
<string name="revanced_language_AR">Арабская</string>
<string name="revanced_language_AZ">Азербайджанскі</string>
<string name="revanced_language_BG">Балгарская</string>
<string name="revanced_language_BN">Бенгальская</string>
<string name="revanced_language_CA">Каталонская</string>
<string name="revanced_language_CS">Чэшскі</string>
<string name="revanced_language_DA">Дацкі</string>
<string name="revanced_language_DE">Нямецкі</string>
<string name="revanced_language_EL">Грэцкі</string>
<string name="revanced_language_EN">Англійская</string>
<string name="revanced_language_ES">Іспанская</string>
<string name="revanced_language_ET">Эстонская</string>
<string name="revanced_language_FA">Персідская</string>
<string name="revanced_language_FI">Фінская</string>
<string name="revanced_language_FR">Французская</string>
<string name="revanced_language_GU">Гуджараці</string>
<string name="revanced_language_HI">Хіндзі</string>
<string name="revanced_language_HR">Харвацкая</string>
<string name="revanced_language_HU">Венгерская</string>
<string name="revanced_language_ID">Інданезійская</string>
<string name="revanced_language_IT">Італьянская</string>
<string name="revanced_language_JA">Японская</string>
<string name="revanced_language_KK">Казахская</string>
<string name="revanced_language_KO">Карэйская</string>
<string name="revanced_language_LT">Літоўская</string>
<string name="revanced_language_LV">Латышская</string>
<string name="revanced_language_MK">Македонская</string>
<string name="revanced_language_MN">Мангольская</string>
<string name="revanced_language_MR">Малаялам</string>
<string name="revanced_language_MS">Малайская</string>
<string name="revanced_language_MY">Бірманская</string>
<string name="revanced_language_NL">Нідэрландская</string>
<string name="revanced_language_OR">Одыя</string>
<string name="revanced_language_PA">Пенджабі</string>
<string name="revanced_language_PL">Польская</string>
<string name="revanced_language_PT">Партугальская</string>
<string name="revanced_language_RO">Румынская</string>
<string name="revanced_language_RU">Руская</string>
<string name="revanced_language_SK">Славацкая</string>
<string name="revanced_language_SL">Славенская</string>
<string name="revanced_language_SR">Сербская</string>
<string name="revanced_language_SV">Шведская</string>
<string name="revanced_language_SW">Суахілі</string>
<string name="revanced_language_TA">Тамільская</string>
<string name="revanced_language_TE">Тэлугу</string>
<string name="revanced_language_TH">Тайская</string>
<string name="revanced_language_TR">Турецкая</string>
<string name="revanced_language_UK">Украінская</string>
<string name="revanced_language_UR">Урду</string>
<string name="revanced_language_VI">В\'етнамская</string>
<string name="revanced_language_ZH">Кітайская</string>
<string name="revanced_pref_import_export_title">Імпарт / Экспарт</string>
<string name="revanced_pref_import_export_summary">Імпарт / Экспарт налад ReVanced</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ Second \"item\" text"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Бачнасць фону накладання пальцам</string>
<string name="revanced_swipe_threshold_title">Парог велічыні пальцам</string>
<string name="revanced_swipe_threshold_summary">Велічыня парогавага значэння для правядзення пальцам</string>
<string name="revanced_swipe_change_video_title">Уключыць зьмену відэа праз правядзенне пальцам</string>
<string name="revanced_swipe_change_video_summary_on">Правядзенне пальцам у рэжыме поўнага экрана зьменіць відэа на наступнае/папярэдняе</string>
<string name="revanced_swipe_change_video_summary_off">Правядзенне пальцам у рэжыме поўнага экрана не зьменіць відэа на наступнае/папярэдняе</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Адключыць аўтаматычныя цітры</string>
@@ -629,9 +688,18 @@ Second \"item\" text"</string>
<string name="revanced_shorts_player_screen_summary">Схаваць або паказаць кампаненты ў прайгравальніку Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Схаваць шорты ў хатняй стужцы</string>
<string name="revanced_hide_shorts_home_summary_on">Схаваны ў стужцы і звязаных відэа</string>
<string name="revanced_hide_shorts_home_summary_off">Паказаны ў стужцы і звязаных відэа</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Схаваць Shorts у стужцы падпіскі</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Схавана ў стужцы падпісак</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Паказана ў стужцы падпісак</string>
<string name="revanced_hide_shorts_search_title">Схаваць Shorts у выніках пошуку</string>
<string name="revanced_hide_shorts_search_summary_on">Схаваны ў выніках пошуку</string>
<string name="revanced_hide_shorts_search_summary_off">Паказана ў выніках пошуку</string>
<string name="revanced_hide_shorts_history_title">Схаваць Shorts з гісторыі праглядаў</string>
<string name="revanced_hide_shorts_history_summary_on">Схавана ў гісторыі праглядаў</string>
<string name="revanced_hide_shorts_history_summary_off">Паказаны ў гісторыі праглядаў</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Схаваць кнопку далучыцца</string>
<string name="revanced_hide_shorts_join_button_summary_on">Кнопка «Далучыцца» схавана</string>
@@ -733,6 +801,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Усплывальныя панэлі прайгравальніка схаваныя</string>
<string name="revanced_hide_player_popup_panels_summary_off">Паказваюцца ўсплывальныя панэлі прайгравальніка</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Выйсці з поўнаэкраннага рэжыму ў канцы відэа</string>
<string name="revanced_exit_fullscreen_entry_1">Адключана</string>
<string name="revanced_exit_fullscreen_entry_2">Партрэт</string>
<string name="revanced_exit_fullscreen_entry_3">Ландшафт</string>
<string name="revanced_exit_fullscreen_entry_4">Партрэт і ландшафт</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Открывать видео на весь экран в портретном режиме</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Видео открываются на весь экран</string>
@@ -1002,6 +1077,23 @@ Second \"item\" text"</string>
<string name="revanced_sb_reset">Скінуць</string>
<string name="revanced_sb_about">Пра праграму</string>
<string name="revanced_sb_about_api_sum">Дадзеныя прадастаўляюцца API SponsorBlock. Націсніце тут, каб даведацца больш і паглядзець спампоўкі для іншых платформаў</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Фармат экрана</string>
<string name="revanced_change_form_factor_entry_1">Па змаўчанню</string>
<string name="revanced_change_form_factor_entry_2">Тэлефон</string>
<string name="revanced_change_form_factor_entry_3">Планшэт</string>
<string name="revanced_change_form_factor_entry_4">Аўтамабільны</string>
<string name="revanced_change_form_factor_user_dialog_message">"Змены ўключаюць:
Раскладка планшэта
• Паведамленні супольнасці схаваны
Раскладка аўтамабіля
• Меню гісторыі праглядаў схавана
• Адноўлена ўкладка «Даследаваць»
• Ролікі Shorts адкрываюцца ў звычайным прайгравальніку
• Стужка арганізавана па тэмах і каналах"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Версія праграмы Spoof</string>
@@ -1059,12 +1151,6 @@ Second \"item\" text"</string>
<string name="revanced_shorts_autoplay_background_summary_on">Shorts в фоновом режиме будут воспроизводиться автоматически</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts в фоновом режиме будут повторяться</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Уключыць макет планшэта</string>
<string name="revanced_tablet_layout_summary_on">Макет планшэта ўключаны</string>
<string name="revanced_tablet_layout_summary_off">Макет планшэта адключаны</string>
<string name="revanced_tablet_layout_user_dialog_message">Паведамленні ў супольнасці не адлюстроўваюцца на планшэце</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Міні-плэер</string>
<string name="revanced_miniplayer_screen_summary">Змяніце стыль мінімізаванага плэера ў праграме</string>
@@ -1228,6 +1314,7 @@ Second \"item\" text"</string>
<string name="revanced_force_original_audio_title">Вымушанае арыгінальнае аўдыё</string>
<string name="revanced_force_original_audio_summary_on">Выкарыстанне арыгінальнага аўдыё</string>
<string name="revanced_force_original_audio_summary_off">Выкарыстанне аўдыё па змаўчанні</string>
<string name="revanced_force_original_audio_not_available">Каб выкарыстоўваць гэтую функцыю, зменіце спафінг патоку на тып кліента iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1255,6 +1342,8 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Нестандартныя хуткасці павінны быць менш за %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Несапраўдныя нестандартныя хуткасці прайгравання</string>
<string name="revanced_custom_playback_speeds_auto">Аўто</string>
<string name="revanced_speed_tap_and_hold_title">Уласны хуткасць націску і ўтрымання</string>
<string name="revanced_speed_tap_and_hold_summary">Хуткасць прайгравання між 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Запомніце змены хуткасці прайгравання</string>
@@ -1299,62 +1388,11 @@ AVC мае максімальнае дазвол 1080p, аўдыёкадэк Opu
<string name="revanced_spoof_video_streams_about_android_summary">"• Меню гукавой дарожкі адсутнічае
• Стабільны гук недаступны
• Прымусовае арыгінальнае аўдыё недаступна"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Няма відэакідавання AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Паказаць у статыстыцы для спецыялістаў</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Тып кліента адлюстроўваецца ў статыстыцы для спецыялістаў</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Кліент схаваны ў статыстыцы для спецыялістаў</string>
<string name="revanced_spoof_video_streams_language_title">Мова гукавой дарожкі па змаўчанні для VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Мова акаўнта</string>
<string name="revanced_spoof_video_streams_language_AR">Арабский</string>
<string name="revanced_spoof_video_streams_language_AZ">Азербайджанский</string>
<string name="revanced_spoof_video_streams_language_BG">Болгарский</string>
<string name="revanced_spoof_video_streams_language_BN">Бенгальский</string>
<string name="revanced_spoof_video_streams_language_CA">Каталонский</string>
<string name="revanced_spoof_video_streams_language_CS">Чешский</string>
<string name="revanced_spoof_video_streams_language_DA">Датский</string>
<string name="revanced_spoof_video_streams_language_DE">Немецкий</string>
<string name="revanced_spoof_video_streams_language_EL">Греческий</string>
<string name="revanced_spoof_video_streams_language_EN">Англійская</string>
<string name="revanced_spoof_video_streams_language_ES">Іспанская</string>
<string name="revanced_spoof_video_streams_language_ET">Эстонская</string>
<string name="revanced_spoof_video_streams_language_FA">Фарсі</string>
<string name="revanced_spoof_video_streams_language_FI">Фінская</string>
<string name="revanced_spoof_video_streams_language_FR">Французская</string>
<string name="revanced_spoof_video_streams_language_GU">Гуяраті</string>
<string name="revanced_spoof_video_streams_language_HI">Хянді</string>
<string name="revanced_spoof_video_streams_language_HR">Хорватская</string>
<string name="revanced_spoof_video_streams_language_HU">Венгерская</string>
<string name="revanced_spoof_video_streams_language_ID">Инданезійская</string>
<string name="revanced_spoof_video_streams_language_IT">Итальянская</string>
<string name="revanced_spoof_video_streams_language_JA">Японская</string>
<string name="revanced_spoof_video_streams_language_KK">Казахская</string>
<string name="revanced_spoof_video_streams_language_KO">Корэйская</string>
<string name="revanced_spoof_video_streams_language_LT">Літоуская</string>
<string name="revanced_spoof_video_streams_language_LV">Латышская</string>
<string name="revanced_spoof_video_streams_language_MK">Македонская</string>
<string name="revanced_spoof_video_streams_language_MN">Монгольская</string>
<string name="revanced_spoof_video_streams_language_MR">Маратхі</string>
<string name="revanced_spoof_video_streams_language_MS">Малайская</string>
<string name="revanced_spoof_video_streams_language_MY">Брыманская</string>
<string name="revanced_spoof_video_streams_language_NL">Нідрландский</string>
<string name="revanced_spoof_video_streams_language_OR">Орія</string>
<string name="revanced_spoof_video_streams_language_PA">Панджабский</string>
<string name="revanced_spoof_video_streams_language_PL">Польская</string>
<string name="revanced_spoof_video_streams_language_PT">Партугальская</string>
<string name="revanced_spoof_video_streams_language_RO">Румынская</string>
<string name="revanced_spoof_video_streams_language_RU">Русская</string>
<string name="revanced_spoof_video_streams_language_SK">Словацкия</string>
<string name="revanced_spoof_video_streams_language_SL">Словенская</string>
<string name="revanced_spoof_video_streams_language_SR">Сербская</string>
<string name="revanced_spoof_video_streams_language_SV">Швецкая</string>
<string name="revanced_spoof_video_streams_language_SW">Суахілі</string>
<string name="revanced_spoof_video_streams_language_TA">Тамільская</string>
<string name="revanced_spoof_video_streams_language_TE">Тэлугу</string>
<string name="revanced_spoof_video_streams_language_TH">Тайская</string>
<string name="revanced_spoof_video_streams_language_TR">Турэцкая</string>
<string name="revanced_spoof_video_streams_language_UK">Украёнская</string>
<string name="revanced_spoof_video_streams_language_UR">Урду</string>
<string name="revanced_spoof_video_streams_language_VI">Віетнамская</string>
<string name="revanced_spoof_video_streams_language_ZH">Кітайская</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ 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_language_title">Език на ReVanced</string>
<string name="revanced_language_user_dialog_message">"Преводите на някои езици може да липсват или да са непълни.
За да преведете нови езици, посетете translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Език на приложението</string>
<string name="revanced_language_AR">арабски</string>
<string name="revanced_language_AZ">Азербайджански</string>
<string name="revanced_language_BG">български</string>
<string name="revanced_language_BN">бенгалски</string>
<string name="revanced_language_CA">каталонски</string>
<string name="revanced_language_CS">Чешки</string>
<string name="revanced_language_DA">Датски</string>
<string name="revanced_language_DE">Немски</string>
<string name="revanced_language_EL">Гръцки</string>
<string name="revanced_language_EN">Английски</string>
<string name="revanced_language_ES">Испански</string>
<string name="revanced_language_ET">Естонски</string>
<string name="revanced_language_FA">Персийски</string>
<string name="revanced_language_FI">Финландски</string>
<string name="revanced_language_FR">Френски</string>
<string name="revanced_language_GU">Гуджарати</string>
<string name="revanced_language_HI">Хинди</string>
<string name="revanced_language_HR">Хърватски</string>
<string name="revanced_language_HU">Унгарски</string>
<string name="revanced_language_ID">Индонезийски</string>
<string name="revanced_language_IT">Италиански</string>
<string name="revanced_language_JA">Японски</string>
<string name="revanced_language_KK">Казахски</string>
<string name="revanced_language_KO">Корейски</string>
<string name="revanced_language_LT">Литовски</string>
<string name="revanced_language_LV">Латвийски</string>
<string name="revanced_language_MK">Македонски</string>
<string name="revanced_language_MN">Монголски</string>
<string name="revanced_language_MR">Маратхи</string>
<string name="revanced_language_MS">Малайски</string>
<string name="revanced_language_MY">Бирмански</string>
<string name="revanced_language_NL">Холандски</string>
<string name="revanced_language_OR">Одия</string>
<string name="revanced_language_PA">Пенджаби</string>
<string name="revanced_language_PL">Полски</string>
<string name="revanced_language_PT">Португалски</string>
<string name="revanced_language_RO">Румънски</string>
<string name="revanced_language_RU">Руски</string>
<string name="revanced_language_SK">Словашки</string>
<string name="revanced_language_SL">Словенски</string>
<string name="revanced_language_SR">Сръбски</string>
<string name="revanced_language_SV">Шведски</string>
<string name="revanced_language_SW">Суахили</string>
<string name="revanced_language_TA">Тамилски</string>
<string name="revanced_language_TE">Телугу</string>
<string name="revanced_language_TH">Тайландски</string>
<string name="revanced_language_TR">Турски</string>
<string name="revanced_language_UK">Украински</string>
<string name="revanced_language_UR">Урду</string>
<string name="revanced_language_VI">Виетнамски</string>
<string name="revanced_language_ZH">Китайски</string>
<string name="revanced_pref_import_export_title">Импортиране / Експортиране</string>
<string name="revanced_pref_import_export_summary">Импортиране / Експортиране на ReVanced настройките</string>
<!-- Settings about dialog. -->
@@ -445,6 +501,9 @@ Second \"item\" text"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Видимостта на фона на плъзгащите контроли.</string>
<string name="revanced_swipe_threshold_title">Праг на величината на плъзгане</string>
<string name="revanced_swipe_threshold_summary">Праг преди да се осъществи плъзгането</string>
<string name="revanced_swipe_change_video_title">Включване на превключване на видеото чрез плъзване</string>
<string name="revanced_swipe_change_video_summary_on">Плъзването в режим на цял екран ще превключи към следващото/предишно видео</string>
<string name="revanced_swipe_change_video_summary_off">Плъзването в режим на цял екран няма да превключи към следващото/предишно видео</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Автоматични Субтитри</string>
@@ -628,9 +687,18 @@ Second \"item\" text"</string>
<string name="revanced_shorts_player_screen_summary">Скриване или показване на компоненти в Shorts плейъра</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Скриване на Shorts в началната лента</string>
<string name="revanced_hide_shorts_home_summary_on">Скрит в началния канал и свързани видеоклипове</string>
<string name="revanced_hide_shorts_home_summary_off">Показан в началния канал и свързани видеоклипове</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Shorts в раздел „Абонаменти“</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Скрито в абонаментната емисия</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Показано в абонаментната емисия</string>
<string name="revanced_hide_shorts_search_title">Shorts в резултатите от търсенето</string>
<string name="revanced_hide_shorts_search_summary_on">Скрити в резултатите от търсенето</string>
<string name="revanced_hide_shorts_search_summary_off">Показано в резултатите от търсенето</string>
<string name="revanced_hide_shorts_history_title">Скриване на шортите в историята на гледане</string>
<string name="revanced_hide_shorts_history_summary_on">Скрито в историята на гледане</string>
<string name="revanced_hide_shorts_history_summary_off">Показва се в историята на гледане</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Бутон за присъединяване</string>
<string name="revanced_hide_shorts_join_button_summary_on">Бутона за присъединяване е скрит</string>
@@ -732,6 +800,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Изскачащите панели на плейъра са скрити</string>
<string name="revanced_hide_player_popup_panels_summary_off">Изскачащите панели на плейъра се показват</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Изход от режим на цял екран в края на видеото</string>
<string name="revanced_exit_fullscreen_entry_1">Деактивирано</string>
<string name="revanced_exit_fullscreen_entry_2">Портрет</string>
<string name="revanced_exit_fullscreen_entry_3">Пейзаж</string>
<string name="revanced_exit_fullscreen_entry_4">Портрет и пейзаж</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Отваряне на видеоклипове в портретен режим на цял екран</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Видеоклиповете се отварят на цял екран</string>
@@ -1000,6 +1075,23 @@ Second \"item\" text"</string>
<string name="revanced_sb_reset">Възстанови</string>
<string name="revanced_sb_about">За програмата</string>
<string name="revanced_sb_about_api_sum">Данните са предоставени от SponsorBlock API. Докоснете тук за повече информация и изтеглияния</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Формат на екрана /Таблет, Телфон, .../</string>
<string name="revanced_change_form_factor_entry_1">По подразбиране</string>
<string name="revanced_change_form_factor_entry_2">Телефон</string>
<string name="revanced_change_form_factor_entry_3">Таблет</string>
<string name="revanced_change_form_factor_entry_4">Автомобил</string>
<string name="revanced_change_form_factor_user_dialog_message">"Промените включват:
Оформление за таблет
• Публикациите на общността са скрити
Оформление за автомобил
• Менюто „История на гледане“ е скрито
• Разделът „Разгледай“ е възстановен
• Shorts се отварят в обикновения плейър
• Лентата е организирана по теми и канал"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Подлъгване за версията на приложението</string>
@@ -1014,6 +1106,7 @@ Second \"item\" text"</string>
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Подлъгване за версията на</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Възстановете старите икони на Shorts в плейъра</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Възстановяване на стари икони на навигацията и лентата с инструменти</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Възстановете RYD в режим „инкогнито“ на Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Възстановяване на видео скорост &amp; в менюто за качество</string>
@@ -1057,12 +1150,6 @@ Second \"item\" text"</string>
<string name="revanced_shorts_autoplay_background_summary_on">Shorts ще се възпроизвеждат автоматично един след друг във фонов режим</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts ще се повтори във фонов режим</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Включи режим за таблет</string>
<string name="revanced_tablet_layout_summary_on">Режим за таблет е вкл.</string>
<string name="revanced_tablet_layout_summary_off">Режим за таблет е изкл.</string>
<string name="revanced_tablet_layout_user_dialog_message">Публикациите в общността не се показват на оформления за таблет</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Минимизиран екран за възпроизвеждане</string>
<string name="revanced_miniplayer_screen_summary">Променете стила на минимизирания екран за възпроизвеждане</string>
@@ -1226,6 +1313,7 @@ Second \"item\" text"</string>
<string name="revanced_force_original_audio_title">Принудително оригинално аудио</string>
<string name="revanced_force_original_audio_summary_on">Използване на оригинално аудио</string>
<string name="revanced_force_original_audio_summary_off">Използване на аудио по подразбиране</string>
<string name="revanced_force_original_audio_not_available">За да използвате тази функция, променете имитацията на поточно предаване на тип клиент на iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1253,6 +1341,8 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Персонализираните скорости трябва да са по-малки от %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Невалидни персонализирани скорости на възпроизвеждане</string>
<string name="revanced_custom_playback_speeds_auto">Авто</string>
<string name="revanced_speed_tap_and_hold_title">Персонализирана скорост при докосване и задържане</string>
<string name="revanced_speed_tap_and_hold_summary">Скорост на възпроизвеждане между 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Запомни промените в скоростта на възпроизвеждане</string>
@@ -1297,62 +1387,11 @@ AVC има максимална резолюция от 1080p, Opus аудио
<string name="revanced_spoof_video_streams_about_android_summary">"• Lipsva menju za audio pisti
• Ne e nali4na stabilna glasnost
• Ne e nali4na forsirana originalna audio pista"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Без AV1 видео кодек</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Poka6i v Statistiki za nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Tipът na klienta se poka6va v Statistiki za nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Klientът e skriт v Statistiki za nerds</string>
<string name="revanced_spoof_video_streams_language_title">Ezik po подразбиране za audio potok v VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Език на приложението</string>
<string name="revanced_spoof_video_streams_language_AR">Арабски</string>
<string name="revanced_spoof_video_streams_language_AZ">Азербайджански</string>
<string name="revanced_spoof_video_streams_language_BG">Български</string>
<string name="revanced_spoof_video_streams_language_BN">Бенгалски</string>
<string name="revanced_spoof_video_streams_language_CA">Каталонски</string>
<string name="revanced_spoof_video_streams_language_CS">Чешки</string>
<string name="revanced_spoof_video_streams_language_DA">Датски</string>
<string name="revanced_spoof_video_streams_language_DE">Немски</string>
<string name="revanced_spoof_video_streams_language_EL">Гръцки</string>
<string name="revanced_spoof_video_streams_language_EN">Английски</string>
<string name="revanced_spoof_video_streams_language_ES">Испански</string>
<string name="revanced_spoof_video_streams_language_ET">Естонски</string>
<string name="revanced_spoof_video_streams_language_FA">Персийски</string>
<string name="revanced_spoof_video_streams_language_FI">Финландски</string>
<string name="revanced_spoof_video_streams_language_FR">Френски</string>
<string name="revanced_spoof_video_streams_language_GU">Гуджарати</string>
<string name="revanced_spoof_video_streams_language_HI">Хинди</string>
<string name="revanced_spoof_video_streams_language_HR">Хърватски</string>
<string name="revanced_spoof_video_streams_language_HU">Унгарски</string>
<string name="revanced_spoof_video_streams_language_ID">Индонезийски</string>
<string name="revanced_spoof_video_streams_language_IT">Италиански</string>
<string name="revanced_spoof_video_streams_language_JA">Японски</string>
<string name="revanced_spoof_video_streams_language_KK">Казахски</string>
<string name="revanced_spoof_video_streams_language_KO">Корейски</string>
<string name="revanced_spoof_video_streams_language_LT">Литовски</string>
<string name="revanced_spoof_video_streams_language_LV">Латвийски</string>
<string name="revanced_spoof_video_streams_language_MK">Македонски</string>
<string name="revanced_spoof_video_streams_language_MN">Монголски</string>
<string name="revanced_spoof_video_streams_language_MR">Маратхи</string>
<string name="revanced_spoof_video_streams_language_MS">Малайски</string>
<string name="revanced_spoof_video_streams_language_MY">Бирмански</string>
<string name="revanced_spoof_video_streams_language_NL">Холандски</string>
<string name="revanced_spoof_video_streams_language_OR">Ория</string>
<string name="revanced_spoof_video_streams_language_PA">Пенджабски</string>
<string name="revanced_spoof_video_streams_language_PL">Полски</string>
<string name="revanced_spoof_video_streams_language_PT">Portugalski</string>
<string name="revanced_spoof_video_streams_language_RO">Румънски</string>
<string name="revanced_spoof_video_streams_language_RU">Руски</string>
<string name="revanced_spoof_video_streams_language_SK">Словашки</string>
<string name="revanced_spoof_video_streams_language_SL">Словенски</string>
<string name="revanced_spoof_video_streams_language_SR">Сръбски</string>
<string name="revanced_spoof_video_streams_language_SV">Шведски</string>
<string name="revanced_spoof_video_streams_language_SW">Суахили</string>
<string name="revanced_spoof_video_streams_language_TA">Тамилски</string>
<string name="revanced_spoof_video_streams_language_TE">Телугу</string>
<string name="revanced_spoof_video_streams_language_TH">Тайландски</string>
<string name="revanced_spoof_video_streams_language_TR">Турски</string>
<string name="revanced_spoof_video_streams_language_UK">Украински</string>
<string name="revanced_spoof_video_streams_language_UR">Урду</string>
<string name="revanced_spoof_video_streams_language_VI">Виетнамски</string>
<string name="revanced_spoof_video_streams_language_ZH">Китайски</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ 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_language_title">ReVanced ভাষা</string>
<string name="revanced_language_user_dialog_message">"কিছু ভাষার জন্য অনুবাদ অনুপস্থিত বা অসম্পূর্ণ হতে পারে।
নতুন ভাষা অনুবাদ করতে translate.revanced.app দেখুন"</string>
<string name="revanced_language_DEFAULT">অ্যাপ্লিকেশনের ভাষা</string>
<string name="revanced_language_AR">আরবি</string>
<string name="revanced_language_AZ">আজারবাইজানি</string>
<string name="revanced_language_BG">বুলগেরিয়ান</string>
<string name="revanced_language_BN">বাংলা</string>
<string name="revanced_language_CA">কাতালান</string>
<string name="revanced_language_CS">চেক</string>
<string name="revanced_language_DA">ড্যানিশ</string>
<string name="revanced_language_DE">জার্মান</string>
<string name="revanced_language_EL">গ্রিক</string>
<string name="revanced_language_EN">ইংরেজি</string>
<string name="revanced_language_ES">স্প্যানিশ</string>
<string name="revanced_language_ET">এস্তোনিয়ান</string>
<string name="revanced_language_FA">ফার্সি</string>
<string name="revanced_language_FI">ফিনিশ</string>
<string name="revanced_language_FR">ফরাসি</string>
<string name="revanced_language_GU">গুজরাটি</string>
<string name="revanced_language_HI">হিন্দি</string>
<string name="revanced_language_HR">ক্রোয়েশীয়</string>
<string name="revanced_language_HU">হাঙ্গেরিয়ান</string>
<string name="revanced_language_ID">ইন্দোনেশিয়ান</string>
<string name="revanced_language_IT">ইতালীয়</string>
<string name="revanced_language_JA">জাপানি</string>
<string name="revanced_language_KK">কাজাখ</string>
<string name="revanced_language_KO">কোরিয়ান</string>
<string name="revanced_language_LT">লিথুয়ানিয়ান</string>
<string name="revanced_language_LV">লাতভিয়ান</string>
<string name="revanced_language_MK">ম্যাসেডোনিয়ান</string>
<string name="revanced_language_MN">মঙ্গোলীয়</string>
<string name="revanced_language_MR">মারাঠি</string>
<string name="revanced_language_MS">মালয়</string>
<string name="revanced_language_MY">বর্মি</string>
<string name="revanced_language_NL">ডাচ</string>
<string name="revanced_language_OR">ওড়িয়া</string>
<string name="revanced_language_PA">পাঞ্জাবি</string>
<string name="revanced_language_PL">পোলিশ</string>
<string name="revanced_language_PT">পর্তুগিজ</string>
<string name="revanced_language_RO">রোমানীয়</string>
<string name="revanced_language_RU">রুশ</string>
<string name="revanced_language_SK">স্লোভাক</string>
<string name="revanced_language_SL">স্লোভেন</string>
<string name="revanced_language_SR">সার্বিয়ান</string>
<string name="revanced_language_SV">সুইডিশ</string>
<string name="revanced_language_SW">সোয়াহিলি</string>
<string name="revanced_language_TA">তামিল</string>
<string name="revanced_language_TE">তেলুগু</string>
<string name="revanced_language_TH">থাই</string>
<string name="revanced_language_TR">তুর্কি</string>
<string name="revanced_language_UK">ইউক্রেনীয়</string>
<string name="revanced_language_UR">উর্দু</string>
<string name="revanced_language_VI">ভিয়েতনামী</string>
<string name="revanced_language_ZH">চাইনিজ</string>
<string name="revanced_pref_import_export_title">আমদানি এবং রপ্তানি</string>
<string name="revanced_pref_import_export_summary">ReVanced সেটিং আমদানি বা রপ্তানি করুন</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_swipe_overlay_background_alpha_summary">সোয়াইপ ওভারলে ব্যাকগ্রাউন্ডের দৃশ্যমানতা</string>
<string name="revanced_swipe_threshold_title">সোয়াইপ থ্রেশহোল্ড এর মাত্রা</string>
<string name="revanced_swipe_threshold_summary">সোয়াইপ করার থ্রেশহোল্ডের পরিমাণ</string>
<string name="revanced_swipe_change_video_title">ভিডিও পরিবর্তন করতে সোয়াইপ করে সক্ষম করুন</string>
<string name="revanced_swipe_change_video_summary_on">ফুলস্ক্রিন মোডে সোয়াইপ করলে পরবর্তী/পূর্ববর্তী ভিডিওতে পরিবর্তন হবে</string>
<string name="revanced_swipe_change_video_summary_off">ফুলস্ক্রিন মোডে সোয়াইপ করলে পরবর্তী /পূর্ববর্তী ভিডিওতে পরিবর্তন হবে না</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">স্বয়ংক্রিয় ক্যাপশন বন্ধ করুন</string>
@@ -629,9 +688,18 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_shorts_player_screen_summary">Shorts প্লেয়ারে উপাদান লুকানো বা দেখানো</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">প্রধান ফিডে Shorts লুকান</string>
<string name="revanced_hide_shorts_home_summary_on">বাড়ির ফিড এবং সম্পর্কিত ভিডিওতে লুকানো হয়েছে</string>
<string name="revanced_hide_shorts_home_summary_off">বাড়ির ফিড এবং সম্পর্কিত ভিডিওতে দেখানো হয়েছে</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">সদস্যতা ফিডে Shorts লুকান</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">সাবস্ক্রিপশন ফিডে লুকানো আছে</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">সাবস্ক্রিপশন ফিডে দেখানো হয়েছে</string>
<string name="revanced_hide_shorts_search_title">অনুসন্ধান ফলাফলে Shorts লুকান</string>
<string name="revanced_hide_shorts_search_summary_on">অনুসন্ধান ফলাফলে লুকানো</string>
<string name="revanced_hide_shorts_search_summary_off">সার্চ রেজাল্টে দেখানো হয়েছে</string>
<string name="revanced_hide_shorts_history_title">Shortsগুলিকে ওয়াচ ইতিহাসে লুকান</string>
<string name="revanced_hide_shorts_history_summary_on">ওয়াচ হিস্ট্রিতে লুকানো</string>
<string name="revanced_hide_shorts_history_summary_off">ওয়াচ ইতিহাসে দেখানো</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">জয়েন করুন বোতাম লুকান</string>
<string name="revanced_hide_shorts_join_button_summary_on">জয়েন করুন বোতাম লুকিয়ে রয়েছে</string>
@@ -733,6 +801,13 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_player_popup_panels_summary_on">প্লেয়ার পপআপ প্যানেলগুলো লুকিয়ে রয়েছে</string>
<string name="revanced_hide_player_popup_panels_summary_off">প্লেয়ার পপআপ প্যানেলগুলো প্রদর্শিত হয়েছে</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">ভিডিও শেষ হওয়ার সময় পূর্ণ পর্দা মোড থেকে বেরিয়ে যান</string>
<string name="revanced_exit_fullscreen_entry_1">নিষ্ক্রিয়</string>
<string name="revanced_exit_fullscreen_entry_2">আনুভূমিক</string>
<string name="revanced_exit_fullscreen_entry_3">ল্যান্ডস্কেপ</string>
<string name="revanced_exit_fullscreen_entry_4">আনুভূমিক এবং ল্যান্ডস্কেপ</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">পূর্ণ পর্দায় ভিডিও খুলুন</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">ভিডিও পূর্ণ পর্দায় খুলবে</string>
@@ -1001,6 +1076,23 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_sb_reset">পুনরায় সেট করুন</string>
<string name="revanced_sb_about">সম্পর্কিত</string>
<string name="revanced_sb_about_api_sum">ডেটা SponsorBlock API দ্বারা সরবরাহ করা হয়। আরও জানতে এবং অন্যান্য প্ল্যাটফর্মের ডাউনলোড দেখতে এখানে ট্যাপ করুন</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">লেআউট ফর্ম ফ্যাক্টর</string>
<string name="revanced_change_form_factor_entry_1">ডিফল্ট</string>
<string name="revanced_change_form_factor_entry_2">ফোন</string>
<string name="revanced_change_form_factor_entry_3">ট্যাবলেট</string>
<string name="revanced_change_form_factor_entry_4">স্বয়ংচালিত</string>
<string name="revanced_change_form_factor_user_dialog_message">"পরিবর্তনগুলো হল:
ট্যাবলেট লেআউট
• কমিউনিটি পোস্ট গোপন
স্বয়ংচালিত লেআউট
• ঘড়ির ইতিহাস মেনু গোপন
• এক্সপ্লোর ট্যাব পুনরুদ্ধার করা হয়েছে
• শর্টস নিয়মিত প্লেয়ারে খোলে
• ফিড বিষয় এবং চ্যানেল দ্বারা সংগঠিত হয়"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">অ্যাপ সংস্করণ স্পুফ করুন</string>
@@ -1015,6 +1107,7 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">স্পুফ অ্যাপ সংস্করণ লক্ষ্য</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - পুরনো Shorts প্লেয়ার আইকন পুনরুদ্ধার করুন</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - পুরোনো নেভিগেশন এবং টুলবার আইকন পুনরুদ্ধার করুন</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - ছদ্মবেশি মোডে RYD পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - প্রশ্বস্ত ভিডিও স্পিড এবং গুণমান মেনু পুনরুদ্ধার করে</string>
@@ -1058,12 +1151,6 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_shorts_autoplay_background_summary_on">পটভূমিতে Shorts অটোপ্লে হবে</string>
<string name="revanced_shorts_autoplay_background_summary_off">পটভূমিতে Shorts পুনরাবৃত্তি হবে</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">ট্যাবলেট লেআউট সক্রিয় করুন</string>
<string name="revanced_tablet_layout_summary_on">ট্যাবলেট লেআউট সক্রিয় হয়েছে</string>
<string name="revanced_tablet_layout_summary_off">ট্যাবলেট লেআউট নিষ্ক্রিয় হয়েছে</string>
<string name="revanced_tablet_layout_user_dialog_message">ট্যাবলেট লেআউটে কমিউনিটি পোস্ট দেখাবে না</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">মিনিপ্লেয়ার</string>
<string name="revanced_miniplayer_screen_summary">অ্যাপের মধ্যকার মিনিমাইজড প্লেয়ার এর ধরণ পরিবর্তন করুন</string>
@@ -1228,6 +1315,7 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
<string name="revanced_force_original_audio_title">মূল অডিও বলপূর্বক চালু করুন</string>
<string name="revanced_force_original_audio_summary_on">মূল অডিও ব্যবহার করছে</string>
<string name="revanced_force_original_audio_summary_off">ডিফল্ট অডিও ব্যবহার করছে</string>
<string name="revanced_force_original_audio_not_available">এই বৈশিষ্ট্যটি ব্যবহার করার জন্য, iOS ক্লায়েন্ট প্রকারে স্ট্রিম স্পুফিং পরিবর্তন করুন</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1255,6 +1343,8 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
<string name="revanced_custom_playback_speeds_invalid">কাস্টম গতি %s এর চেয়ে কম হতে হবে</string>
<string name="revanced_custom_playback_speeds_parse_exception">অবৈধ কাস্টম প্লেব্যাক গতি</string>
<string name="revanced_custom_playback_speeds_auto">স্বতস্ফূর্তভাবে</string>
<string name="revanced_speed_tap_and_hold_title">কাস্টম ট্যাপ এন্ড হোল্ড স্পিড</string>
<string name="revanced_speed_tap_and_hold_summary">-৮ এর মধ্যে প্লেব্যাক স্পিড</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">প্লেব্যাকের স্পিড পরিবর্তন মনে রাখুন</string>
@@ -1299,62 +1389,11 @@ AVC-এর সর্বোচ্চ রেজোলিউশন হল 1080p, Op
<string name="revanced_spoof_video_streams_about_android_summary">"• অডিও ট্র্যাক মেনু নেই
• স্থির ভলিউম পাওয়া যায় না
• মূল অডিও জোর করে চালু করা যায় না"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• কোনো AV1 ভিডিও কোডেক নেই</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">স্ট্যাটস ফর নার্ডসে দেখান</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">স্ট্যাটস ফর নার্ডসে ক্লায়েন্ট প্রকার দেখানো হবে</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">স্ট্যাটস ফর নার্ডসে ক্লায়েন্ট লুকানো হবে</string>
<string name="revanced_spoof_video_streams_language_title">VR ডিফল্ট অডিও স্ট্রিম ভাষা</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">অ্যাপ ভাষা</string>
<string name="revanced_spoof_video_streams_language_AR">আরবি</string>
<string name="revanced_spoof_video_streams_language_AZ">আজারবাইজানি</string>
<string name="revanced_spoof_video_streams_language_BG">বুলগেরিয়ান</string>
<string name="revanced_spoof_video_streams_language_BN">বাংলা</string>
<string name="revanced_spoof_video_streams_language_CA">কাতালান</string>
<string name="revanced_spoof_video_streams_language_CS">চেক</string>
<string name="revanced_spoof_video_streams_language_DA">ডেনিশ</string>
<string name="revanced_spoof_video_streams_language_DE">জার্মান</string>
<string name="revanced_spoof_video_streams_language_EL">গ্রীক</string>
<string name="revanced_spoof_video_streams_language_EN">ইংরেজি</string>
<string name="revanced_spoof_video_streams_language_ES">স্প্যানিশ</string>
<string name="revanced_spoof_video_streams_language_ET">এস্তোনিয়ান</string>
<string name="revanced_spoof_video_streams_language_FA">ফার্সি</string>
<string name="revanced_spoof_video_streams_language_FI">ফিনল্যান্ড</string>
<string name="revanced_spoof_video_streams_language_FR">ফরাসি</string>
<string name="revanced_spoof_video_streams_language_GU">গুজরাটি</string>
<string name="revanced_spoof_video_streams_language_HI">হিন্দি</string>
<string name="revanced_spoof_video_streams_language_HR">ক্রোয়েশিয়ান</string>
<string name="revanced_spoof_video_streams_language_HU">হাঙ্গেরিয়ান</string>
<string name="revanced_spoof_video_streams_language_ID">ইন্দোনেশিয়ান</string>
<string name="revanced_spoof_video_streams_language_IT">ইতালীয়</string>
<string name="revanced_spoof_video_streams_language_JA">জাপানি</string>
<string name="revanced_spoof_video_streams_language_KK">কাজাখ</string>
<string name="revanced_spoof_video_streams_language_KO">কোরিয়ান</string>
<string name="revanced_spoof_video_streams_language_LT">লিথুয়ানিয়ান</string>
<string name="revanced_spoof_video_streams_language_LV">লাতভিয়ান</string>
<string name="revanced_spoof_video_streams_language_MK">ম্যাসেডোনিয়ান</string>
<string name="revanced_spoof_video_streams_language_MN">মঙ্গোলিয়ান</string>
<string name="revanced_spoof_video_streams_language_MR">মারাঠি</string>
<string name="revanced_spoof_video_streams_language_MS">মালয়</string>
<string name="revanced_spoof_video_streams_language_MY">বার্মিজ</string>
<string name="revanced_spoof_video_streams_language_NL">ডাচ</string>
<string name="revanced_spoof_video_streams_language_OR">ওড়িয়া</string>
<string name="revanced_spoof_video_streams_language_PA">পঞ্জাবি</string>
<string name="revanced_spoof_video_streams_language_PL">পোলিশ</string>
<string name="revanced_spoof_video_streams_language_PT">পর্তুগিজ</string>
<string name="revanced_spoof_video_streams_language_RO">রোমানীয়</string>
<string name="revanced_spoof_video_streams_language_RU">রাশিয়ান</string>
<string name="revanced_spoof_video_streams_language_SK">স্লোভাক</string>
<string name="revanced_spoof_video_streams_language_SL">স্লোভেনিয়ান</string>
<string name="revanced_spoof_video_streams_language_SR">সার্বিয়ান</string>
<string name="revanced_spoof_video_streams_language_SV">সুইডিশ</string>
<string name="revanced_spoof_video_streams_language_SW">সোয়াহিলি</string>
<string name="revanced_spoof_video_streams_language_TA">তামিল</string>
<string name="revanced_spoof_video_streams_language_TE">তেলুগু</string>
<string name="revanced_spoof_video_streams_language_TH">থাই</string>
<string name="revanced_spoof_video_streams_language_TR">তুর্কি</string>
<string name="revanced_spoof_video_streams_language_UK">ইউক্রেনীয়</string>
<string name="revanced_spoof_video_streams_language_UR">উর্দু</string>
<string name="revanced_spoof_video_streams_language_VI">ভিয়েতনামি</string>
<string name="revanced_spoof_video_streams_language_ZH">চীনা</string>
</patch>
</app>
<app id="twitch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">La configuració de ReVanced s\'ha restablert als valors predeterminats</string>
<string name="revanced_settings_import_success">S\'han importat %d configuracions</string>
<string name="revanced_settings_import_failure_parse">No s\'ha pogut importar: %s</string>
<string name="revanced_language_title">Llenguatge de ReVanced</string>
<string name="revanced_language_user_dialog_message">"Les traduccions per a algunes llengües poden faltar o ser incompletes.
Per traduir nous idiomes, visiteu translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Llengua de l\'aplicació</string>
<string name="revanced_language_AR">Àrab</string>
<string name="revanced_language_AZ">Azerbaidjanès</string>
<string name="revanced_language_BG">Búlgaro</string>
<string name="revanced_language_BN">Bengalí</string>
<string name="revanced_language_CA">Català</string>
<string name="revanced_language_CS">Txec</string>
<string name="revanced_language_DA">Danès</string>
<string name="revanced_language_DE">Alemany</string>
<string name="revanced_language_EL">Grec</string>
<string name="revanced_language_EN">Anglès</string>
<string name="revanced_language_ES">Espanyol</string>
<string name="revanced_language_ET">Estonià</string>
<string name="revanced_language_FA">Persa</string>
<string name="revanced_language_FI">Finès</string>
<string name="revanced_language_FR">Francès</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Croat</string>
<string name="revanced_language_HU">Hongarès</string>
<string name="revanced_language_ID">Indonesi</string>
<string name="revanced_language_IT">Italià</string>
<string name="revanced_language_JA">Japonès</string>
<string name="revanced_language_KK">Kazakh</string>
<string name="revanced_language_KO">Coreà</string>
<string name="revanced_language_LT">Lituà</string>
<string name="revanced_language_LV">Letó</string>
<string name="revanced_language_MK">Macedoni</string>
<string name="revanced_language_MN">Mongol</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malai</string>
<string name="revanced_language_MY">Birmà</string>
<string name="revanced_language_NL">Neerlandès</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Punjabi</string>
<string name="revanced_language_PL">Polonès</string>
<string name="revanced_language_PT">Portuguès</string>
<string name="revanced_language_RO">Romanès</string>
<string name="revanced_language_RU">Rus</string>
<string name="revanced_language_SK">Eslovac</string>
<string name="revanced_language_SL">Eslovè</string>
<string name="revanced_language_SR">Serbi</string>
<string name="revanced_language_SV">Suec</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tàmil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Tailandès</string>
<string name="revanced_language_TR">Turc</string>
<string name="revanced_language_UK">Ucraïnès</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamita</string>
<string name="revanced_language_ZH">Xinès</string>
<string name="revanced_pref_import_export_title">Importa / Exporta</string>
<string name="revanced_pref_import_export_summary">Importa / Exporta els ajustos de ReVanced</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ Aquesta funció només està disponible per a dispositius antics"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">La visibilitat del fons de la superposició lliscant</string>
<string name="revanced_swipe_threshold_title">Llindar de magnitud de lliscament</string>
<string name="revanced_swipe_threshold_summary">La quantitat de llindar per a què es produeixi el desplaçament</string>
<string name="revanced_swipe_change_video_title">Activa la funció de lliscament per canviar vídeos</string>
<string name="revanced_swipe_change_video_summary_on">Lliscar en mode de pantalla completa canviarà al vídeo següent/anterior</string>
<string name="revanced_swipe_change_video_summary_off">Lliscar en mode de pantalla completa no canviarà al vídeo següent/anterior</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Desactiva els subtítols automàtics</string>
@@ -629,9 +688,15 @@ Nota: si actives aquesta opció, també s'amaguen els anuncis de vídeo per for
<string name="revanced_shorts_player_screen_summary">Amaga o mostra components al reproductor de Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Amaga els Shorts al feed d\'inici</string>
<string name="revanced_hide_shorts_home_summary_on">Amagat al feed d\'inici i als vídeos relacionats</string>
<string name="revanced_hide_shorts_home_summary_off">Es mostra al feed d\'inici i als vídeos relacionats</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Amaga Shorts al feed de subscripcions</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Amagat al feed de subscripcions</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Es mostra al feed de subscripcions</string>
<string name="revanced_hide_shorts_search_title">Amaga Shorts als resultats de la cerca</string>
<string name="revanced_hide_shorts_search_summary_off">Es mostra als resultats de la cerca</string>
<string name="revanced_hide_shorts_history_summary_on">Amagat a l\'historial de visualitzacions</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Amaga el botó d\'unió</string>
<string name="revanced_hide_shorts_join_button_summary_on">El botó d\'unió està ocult</string>
@@ -733,6 +798,13 @@ Nota: si actives aquesta opció, també s'amaguen els anuncis de vídeo per for
<string name="revanced_hide_player_popup_panels_summary_on">Els panells emergents del reproductor estan ocults</string>
<string name="revanced_hide_player_popup_panels_summary_off">Els panells emergents del reproductor estan visibles</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Surt del mode de pantalla completa al final del vídeo</string>
<string name="revanced_exit_fullscreen_entry_1">Desactivat</string>
<string name="revanced_exit_fullscreen_entry_2">Vertical</string>
<string name="revanced_exit_fullscreen_entry_3">Horitzontal</string>
<string name="revanced_exit_fullscreen_entry_4">Vertical i horitzontal</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Obrir vídeos en pantalla completa en format vertical</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Els vídeos s\'obren en pantalla completa</string>
@@ -1000,6 +1072,23 @@ Preparat per enviar?"</string>
<string name="revanced_sb_reset">Restablir</string>
<string name="revanced_sb_about">Quant a</string>
<string name="revanced_sb_about_api_sum">Les dades són proporcionades per l\'API de SponsorBlock. Toca aquí per a saber-ne més i veure les descàrregues per a altres plataformes</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Factor de forma del disseny</string>
<string name="revanced_change_form_factor_entry_1">Predeterminat</string>
<string name="revanced_change_form_factor_entry_2">Telèfon</string>
<string name="revanced_change_form_factor_entry_3">Tauleta</string>
<string name="revanced_change_form_factor_entry_4">Automoció</string>
<string name="revanced_change_form_factor_user_dialog_message">"Els canvis inclouen:
Presentació de la tauleta
• Les publicacions de la comunitat estan amagades
Presentació de l'automòbil
• El menú d'historial del rellotge està ocult
• La pestanya Explora s'ha restaurat
• Els curts s'obren al reproductor normal
• La font d'informació s'organitza per temes i canals"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Falsa la versió de l\'aplicació</string>
@@ -1057,12 +1146,6 @@ Si després es desactiva, es recomana esborrar les dades de l'aplicació per evi
<string name="revanced_shorts_autoplay_background_summary_on">La reproducció en segon pla dels Shorts es reproduirà automàticament</string>
<string name="revanced_shorts_autoplay_background_summary_off">La reproducció en segon pla dels Shorts es repetirà</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Habilita el disseny de tauleta</string>
<string name="revanced_tablet_layout_summary_on">El disseny de tauleta està habilitat</string>
<string name="revanced_tablet_layout_summary_off">El disseny de tauleta està deshabilitat</string>
<string name="revanced_tablet_layout_user_dialog_message">Les publicacions de la comunitat no apareixen en els dissenys de tauleta</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minireproductor</string>
<string name="revanced_miniplayer_screen_summary">Canvia l\'estil del reproductor minimitzat a l\'aplicació</string>
@@ -1227,6 +1310,7 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
<string name="revanced_force_original_audio_title">Forçar àudio original</string>
<string name="revanced_force_original_audio_summary_on">Utilitzant àudio original</string>
<string name="revanced_force_original_audio_summary_off">Utilitzant àudio predeterminat</string>
<string name="revanced_force_original_audio_not_available">Per utilitzar aquesta funció, canvia la suplantació de flux al tipus de client iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1254,6 +1338,8 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
<string name="revanced_custom_playback_speeds_invalid">Les velocitats personalitzades han de ser inferiors a %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocitats de reproducció personalitzades no vàlides</string>
<string name="revanced_custom_playback_speeds_auto">Automàtic</string>
<string name="revanced_speed_tap_and_hold_title">Velocitat personalitzada de mantenir premut</string>
<string name="revanced_speed_tap_and_hold_summary">Velocitat de reproducció entre 0 i 8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Recorda els canvis de velocitat de reproducció</string>
@@ -1298,62 +1384,11 @@ L'AVC té una resolució màxima de 1080p, el còdec d'àudio Opus no està disp
<string name="revanced_spoof_video_streams_about_android_summary">"• Menú de pistes d'àudio no disponible
• El volum estable no està disponible
• Forçar l'àudio original no està disponible"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Sense còdec de vídeo AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Mostra a l\'apartat \'Dades per a experts\'</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">El tipus de client es mostra a l\'apartat \'Dades per a experts\'</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">El client s\'amaga a l\'apartat \'Dades per a experts\'</string>
<string name="revanced_spoof_video_streams_language_title">Idioma de l\'àudio per defecte a VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Idioma de l\'aplicació</string>
<string name="revanced_spoof_video_streams_language_AR">Àrab</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaidjanès</string>
<string name="revanced_spoof_video_streams_language_BG">Búlgar</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalí</string>
<string name="revanced_spoof_video_streams_language_CA">Català</string>
<string name="revanced_spoof_video_streams_language_CS">Txec</string>
<string name="revanced_spoof_video_streams_language_DA">Danès</string>
<string name="revanced_spoof_video_streams_language_DE">Alemany</string>
<string name="revanced_spoof_video_streams_language_EL">Grec</string>
<string name="revanced_spoof_video_streams_language_EN">Anglès</string>
<string name="revanced_spoof_video_streams_language_ES">Espanyol</string>
<string name="revanced_spoof_video_streams_language_ET">Estonià</string>
<string name="revanced_spoof_video_streams_language_FA">Persa</string>
<string name="revanced_spoof_video_streams_language_FI">Finès</string>
<string name="revanced_spoof_video_streams_language_FR">Francès</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croat</string>
<string name="revanced_spoof_video_streams_language_HU">Hongarès</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesi</string>
<string name="revanced_spoof_video_streams_language_IT">Italià</string>
<string name="revanced_spoof_video_streams_language_JA">Japonès</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakhstanès</string>
<string name="revanced_spoof_video_streams_language_KO">Coreà</string>
<string name="revanced_spoof_video_streams_language_LT">Lituà</string>
<string name="revanced_spoof_video_streams_language_LV">Letó</string>
<string name="revanced_spoof_video_streams_language_MK">Macedoni</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malai</string>
<string name="revanced_spoof_video_streams_language_MY">Birmano</string>
<string name="revanced_spoof_video_streams_language_NL">Neerlandès</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polonès</string>
<string name="revanced_spoof_video_streams_language_PT">Portuguès</string>
<string name="revanced_spoof_video_streams_language_RO">Romanès</string>
<string name="revanced_spoof_video_streams_language_RU">Rus</string>
<string name="revanced_spoof_video_streams_language_SK">Eslovac</string>
<string name="revanced_spoof_video_streams_language_SL">Eslovè</string>
<string name="revanced_spoof_video_streams_language_SR">Serbi</string>
<string name="revanced_spoof_video_streams_language_SV">Suec</string>
<string name="revanced_spoof_video_streams_language_SW">Suahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tàmils</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandès</string>
<string name="revanced_spoof_video_streams_language_TR">Turc</string>
<string name="revanced_spoof_video_streams_language_UK">Ucraïnès</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamita</string>
<string name="revanced_spoof_video_streams_language_ZH">Xinès</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">Nastavení ReVanced obnoveno do výchozího stavu</string>
<string name="revanced_settings_import_success">Importováno %d nastavení</string>
<string name="revanced_settings_import_failure_parse">Importováni selhalo: %s</string>
<string name="revanced_language_title">Jazyk ReVanced</string>
<string name="revanced_language_user_dialog_message">"Překlady pro některé jazyky mohou chybět nebo být neúplné.
Nové jazyky přeložíte na translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Jazyk aplikace</string>
<string name="revanced_language_AR">Arabština</string>
<string name="revanced_language_AZ">Ázerbájdžánština</string>
<string name="revanced_language_BG">Bulharština</string>
<string name="revanced_language_BN">Bengálština</string>
<string name="revanced_language_CA">Katalánština</string>
<string name="revanced_language_CS">Čeština</string>
<string name="revanced_language_DA">Dánština</string>
<string name="revanced_language_DE">Němčina</string>
<string name="revanced_language_EL">Řečtina</string>
<string name="revanced_language_EN">Angličtina</string>
<string name="revanced_language_ES">Španělština</string>
<string name="revanced_language_ET">Estonština</string>
<string name="revanced_language_FA">Perština</string>
<string name="revanced_language_FI">Finština</string>
<string name="revanced_language_FR">Francouzština</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindština</string>
<string name="revanced_language_HR">Chorvatština</string>
<string name="revanced_language_HU">Maďarština</string>
<string name="revanced_language_ID">Indonéština</string>
<string name="revanced_language_IT">Italština</string>
<string name="revanced_language_JA">Japonština</string>
<string name="revanced_language_KK">Kazachština</string>
<string name="revanced_language_KO">Korejština</string>
<string name="revanced_language_LT">Litevština</string>
<string name="revanced_language_LV">Lotyština</string>
<string name="revanced_language_MK">Makedonština</string>
<string name="revanced_language_MN">Mongolština</string>
<string name="revanced_language_MR">Maráthština</string>
<string name="revanced_language_MS">Malajština</string>
<string name="revanced_language_MY">Barmština</string>
<string name="revanced_language_NL">Nizozemština</string>
<string name="revanced_language_OR">Uríjština</string>
<string name="revanced_language_PA">Paňdžábština</string>
<string name="revanced_language_PL">Polština</string>
<string name="revanced_language_PT">Portugalština</string>
<string name="revanced_language_RO">Rumunština</string>
<string name="revanced_language_RU">Ruština</string>
<string name="revanced_language_SK">Slovenština</string>
<string name="revanced_language_SL">Slověnština</string>
<string name="revanced_language_SR">Srbština</string>
<string name="revanced_language_SV">Švédština</string>
<string name="revanced_language_SW">Svahilština</string>
<string name="revanced_language_TA">Tamilština</string>
<string name="revanced_language_TE">Telugština</string>
<string name="revanced_language_TH">Thajština</string>
<string name="revanced_language_TR">Turečtina</string>
<string name="revanced_language_UK">Ukrajinština</string>
<string name="revanced_language_UR">Urdština</string>
<string name="revanced_language_VI">Vietnamština</string>
<string name="revanced_language_ZH">Čínština</string>
<string name="revanced_pref_import_export_title">Importovat / Exportovat</string>
<string name="revanced_pref_import_export_summary">Importovat/exportovat nastavení ReVanced</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Viditelnost pozadí překrytí gesta</string>
<string name="revanced_swipe_threshold_title">Práh vynucení gesta</string>
<string name="revanced_swipe_threshold_summary">Velikost prahu pro provedení gesta</string>
<string name="revanced_swipe_change_video_title">Povolit přejetí prstem pro změnu videa</string>
<string name="revanced_swipe_change_video_summary_on">Přejetí prstem v režimu celé obrazovky změní video na další/předchozí</string>
<string name="revanced_swipe_change_video_summary_off">Přejetí prstem v režimu celé obrazovky nebude video měnit na další/předchozí</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Zakázat automatické titulky</string>
@@ -629,9 +688,18 @@ Poznámka: Povolení této funkce také vynuceně skryje video reklamy"</string>
<string name="revanced_shorts_player_screen_summary">Skrýt nebo zobrazit komponenty v přehrávači Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Skrýt Shorts v Domů</string>
<string name="revanced_hide_shorts_home_summary_on">Skryto v domovskom kanáli a súvisiacich videách</string>
<string name="revanced_hide_shorts_home_summary_off">Zobrazené v domovskom kanáli a súvisiacich videách</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Schovat Shorts v odběrovém feedu</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Skryté v odběrech</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Zobrazeno v odběrech</string>
<string name="revanced_hide_shorts_search_title">Skrýt Shorts ve výsledcích vyhledávání</string>
<string name="revanced_hide_shorts_search_summary_on">Skryté ve výsledcích vyhledávání</string>
<string name="revanced_hide_shorts_search_summary_off">Zobrazeno ve výsledcích vyhledávání</string>
<string name="revanced_hide_shorts_history_title">Skrýt Shorts z historie sledování</string>
<string name="revanced_hide_shorts_history_summary_on">Skryté v historii sledování</string>
<string name="revanced_hide_shorts_history_summary_off">Zobrazené v historii sledování</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Skrýt tlačítko Připojit se</string>
<string name="revanced_hide_shorts_join_button_summary_on">Tlačítko Připojit se je skryto</string>
@@ -733,6 +801,13 @@ Poznámka: Povolení této funkce také vynuceně skryje video reklamy"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Vyskakovací panely přehrávače jsou skryté</string>
<string name="revanced_hide_player_popup_panels_summary_off">Vyskakovací panely přehrávače jsou zobrazeny</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Ukončete režim celé obrazovky na konci videa</string>
<string name="revanced_exit_fullscreen_entry_1">Zakázáno</string>
<string name="revanced_exit_fullscreen_entry_2">Na výšku</string>
<string name="revanced_exit_fullscreen_entry_3">Na šířku</string>
<string name="revanced_exit_fullscreen_entry_4">Na výšku i na šířku</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Otevřít videa v režimu na celou obrazovku na výšku</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videa se otevírají na celou obrazovku</string>
@@ -1000,6 +1075,23 @@ Jste připraveni k odeslání?"</string>
<string name="revanced_sb_reset">Výchozí</string>
<string name="revanced_sb_about">O aplikaci</string>
<string name="revanced_sb_about_api_sum">Data poskytuje rozhraní API SponsorBlock. Klepněte zde, abyste se dozvěděli více a zobrazili si soubory ke stažení pro další platformy</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Rozvržení formuláře</string>
<string name="revanced_change_form_factor_entry_1">Výchozí</string>
<string name="revanced_change_form_factor_entry_2">Telefon</string>
<string name="revanced_change_form_factor_entry_3">Tablet</string>
<string name="revanced_change_form_factor_entry_4">Automobilový</string>
<string name="revanced_change_form_factor_user_dialog_message">"Změny zahrnují:
Rozložení tabletu
• Příspěvky komunity jsou skryté
Rozložení automobilu
• Menu historie sledování je skryté
• Karta Prozkoumat je obnovena
• Shorts se otevírají v běžném přehrávači
• Kanál je organizován podle témat a kanálu"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Napodobit verzi aplikace</string>
@@ -1014,6 +1106,7 @@ Pokud bude později vypnuta, doporučujeme vymazat data aplikace, aby se zabrán
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Cíl napodobení verze aplikace</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Obnovuje staré ikony Shorts přehrávače</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Obnovit ikony staré navigace a panelu nástrojů</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Obnovení RYD v režimu inkognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Obnovení široké nabídky rychlosti a kvality videa</string>
@@ -1057,12 +1150,6 @@ Pokud bude později vypnuta, doporučujeme vymazat data aplikace, aby se zabrán
<string name="revanced_shorts_autoplay_background_summary_on">Přehrávání Shorts v pozadí se bude automaticky přehrávat</string>
<string name="revanced_shorts_autoplay_background_summary_off">Přehrávání Shorts v pozadí se bude opakovat</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Povolit rozvržení tabletu</string>
<string name="revanced_tablet_layout_summary_on">Rozvržení tabletu je povoleno</string>
<string name="revanced_tablet_layout_summary_off">Rozvržení tabletu je zakázáno</string>
<string name="revanced_tablet_layout_user_dialog_message">Příspěvky komunity se v rozvržení tabletu nezobrazují</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Mini přehrávač</string>
<string name="revanced_miniplayer_screen_summary">Změnit styl minimalizovaného přehrávače v aplikaci</string>
@@ -1226,6 +1313,7 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
<string name="revanced_force_original_audio_title">Vynutit původní zvuk</string>
<string name="revanced_force_original_audio_summary_on">Používání původního zvuku</string>
<string name="revanced_force_original_audio_summary_off">Používání výchozího zvuku</string>
<string name="revanced_force_original_audio_not_available">Pro použití této funkce změňte typ klienta streamu na iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1253,6 +1341,8 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
<string name="revanced_custom_playback_speeds_invalid">Vlastní rychlosti musí být menší než %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Neplatné vlastní rychlosti přehrávání</string>
<string name="revanced_custom_playback_speeds_auto">Automaticky</string>
<string name="revanced_speed_tap_and_hold_title">Vlastní rychlost stisknutí a podržení</string>
<string name="revanced_speed_tap_and_hold_summary">Rychlost přehrávání 0 až 8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Pamatovat si změny rychlosti přehrávání</string>
@@ -1297,62 +1387,11 @@ AVC má maximální rozlišení 1080p, zvukový kodek Opus není dostupný a př
<string name="revanced_spoof_video_streams_about_android_summary">"• Chybí nabídka zvukových stop
• Není k dispozici stabilní hlasitost
• Není k dispozici možnost vynucení originálního zvuku"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Žádný video kodek AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Zobrazit ve statistikách pro nadšence</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Typ klienta se zobrazuje ve statistikách pro nadšence</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Klient je skrytý ve statistikách pro nadšence</string>
<string name="revanced_spoof_video_streams_language_title">Výchozí jazyk zvukového streamu ve VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Jazyk účtu</string>
<string name="revanced_spoof_video_streams_language_AR">Arabsky</string>
<string name="revanced_spoof_video_streams_language_AZ">Ázerbájdžánsky</string>
<string name="revanced_spoof_video_streams_language_BG">Bulharsky</string>
<string name="revanced_spoof_video_streams_language_BN">Bengálsky</string>
<string name="revanced_spoof_video_streams_language_CA">Katalánsky</string>
<string name="revanced_spoof_video_streams_language_CS">Česky</string>
<string name="revanced_spoof_video_streams_language_DA">Dánsky</string>
<string name="revanced_spoof_video_streams_language_DE">Německy</string>
<string name="revanced_spoof_video_streams_language_EL">Řecky</string>
<string name="revanced_spoof_video_streams_language_EN">Angličtina</string>
<string name="revanced_spoof_video_streams_language_ES">Španělsky</string>
<string name="revanced_spoof_video_streams_language_ET">Estonsky</string>
<string name="revanced_spoof_video_streams_language_FA">Peršsky</string>
<string name="revanced_spoof_video_streams_language_FI">Finský</string>
<string name="revanced_spoof_video_streams_language_FR">Francouzština</string>
<string name="revanced_spoof_video_streams_language_GU">Gudžarátština</string>
<string name="revanced_spoof_video_streams_language_HI">Hindština</string>
<string name="revanced_spoof_video_streams_language_HR">Chorvatština</string>
<string name="revanced_spoof_video_streams_language_HU">Maďarština</string>
<string name="revanced_spoof_video_streams_language_ID">Indonéština</string>
<string name="revanced_spoof_video_streams_language_IT">Italština</string>
<string name="revanced_spoof_video_streams_language_JA">Japonština</string>
<string name="revanced_spoof_video_streams_language_KK">Kazaština</string>
<string name="revanced_spoof_video_streams_language_KO">Korejština</string>
<string name="revanced_spoof_video_streams_language_LT">Litevština</string>
<string name="revanced_spoof_video_streams_language_LV">Lotyština</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonština</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolština</string>
<string name="revanced_spoof_video_streams_language_MR">Maráthština</string>
<string name="revanced_spoof_video_streams_language_MS">Malajština</string>
<string name="revanced_spoof_video_streams_language_MY">Barmánština</string>
<string name="revanced_spoof_video_streams_language_NL">Nizozemština</string>
<string name="revanced_spoof_video_streams_language_OR">Odijština</string>
<string name="revanced_spoof_video_streams_language_PA">Paňdžábština</string>
<string name="revanced_spoof_video_streams_language_PL">Polština</string>
<string name="revanced_spoof_video_streams_language_PT">Portugalština</string>
<string name="revanced_spoof_video_streams_language_RO">Rumunština</string>
<string name="revanced_spoof_video_streams_language_RU">Ruština</string>
<string name="revanced_spoof_video_streams_language_SK">Slovenština</string>
<string name="revanced_spoof_video_streams_language_SL">Slovinština</string>
<string name="revanced_spoof_video_streams_language_SR">Srbština</string>
<string name="revanced_spoof_video_streams_language_SV">Švédština</string>
<string name="revanced_spoof_video_streams_language_SW">Svahilština</string>
<string name="revanced_spoof_video_streams_language_TA">Tamilština</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thajština</string>
<string name="revanced_spoof_video_streams_language_TR">Turečtina</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrajinština</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamština</string>
<string name="revanced_spoof_video_streams_language_ZH">Čínština</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">ReVanced indstillinger nulstillet til standard</string>
<string name="revanced_settings_import_success">Importerede %d indstillinger</string>
<string name="revanced_settings_import_failure_parse">Import mislykkedes: %s</string>
<string name="revanced_language_title">ReVanced-sprog</string>
<string name="revanced_language_user_dialog_message">"Oversættelser for nogle sprog mangler muligvis eller er ufuldstændige.
For at oversætte til nye sprog skal du besøge translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">App-sprog</string>
<string name="revanced_language_AR">Arabisk</string>
<string name="revanced_language_AZ">Aserbajdsjansk</string>
<string name="revanced_language_BG">Bulgarsk</string>
<string name="revanced_language_BN">Bengalsk</string>
<string name="revanced_language_CA">Katalansk</string>
<string name="revanced_language_CS">Tjekkisk</string>
<string name="revanced_language_DA">Dansk</string>
<string name="revanced_language_DE">Tysk</string>
<string name="revanced_language_EL">Græsk</string>
<string name="revanced_language_EN">Engelsk</string>
<string name="revanced_language_ES">Spansk</string>
<string name="revanced_language_ET">Estisk</string>
<string name="revanced_language_FA">Persisk</string>
<string name="revanced_language_FI">Finsk</string>
<string name="revanced_language_FR">Fransk</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Kroatisk</string>
<string name="revanced_language_HU">Ungarsk</string>
<string name="revanced_language_ID">Indonesisk</string>
<string name="revanced_language_IT">Italiensk</string>
<string name="revanced_language_JA">Japansk</string>
<string name="revanced_language_KK">Kasakhisk</string>
<string name="revanced_language_KO">Koreansk</string>
<string name="revanced_language_LT">Litauisk</string>
<string name="revanced_language_LV">Lettisk</string>
<string name="revanced_language_MK">Makedonsk</string>
<string name="revanced_language_MN">Mongolsk</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malaysisk</string>
<string name="revanced_language_MY">Burmesisk</string>
<string name="revanced_language_NL">Hollandsk</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Punjabi</string>
<string name="revanced_language_PL">Polsk</string>
<string name="revanced_language_PT">Portugisisk</string>
<string name="revanced_language_RO">Rumænsk</string>
<string name="revanced_language_RU">Russisk</string>
<string name="revanced_language_SK">Slovakisk</string>
<string name="revanced_language_SL">Slovensk</string>
<string name="revanced_language_SR">Serbisk</string>
<string name="revanced_language_SV">Svensk</string>
<string name="revanced_language_SW">Kiswahili</string>
<string name="revanced_language_TA">Kithamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thailandsk</string>
<string name="revanced_language_TR">Tyrkisk</string>
<string name="revanced_language_UK">Ukrainsk</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamesisk</string>
<string name="revanced_language_ZH">Kinesisk</string>
<string name="revanced_pref_import_export_title">Import / Eksport</string>
<string name="revanced_pref_import_export_summary">Importer / Eksport ReVanced indstillinger</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Synligheden af swipe overlay baggrund</string>
<string name="revanced_swipe_threshold_title">Stryg størrelse tærskel</string>
<string name="revanced_swipe_threshold_summary">Beløbet for tærskelværdi for stryg der skal ske</string>
<string name="revanced_swipe_change_video_title">Aktivér swipe for at skifte videoer</string>
<string name="revanced_swipe_change_video_summary_on">Strygning i fuldskærmstilstand vil ændre til den næste/forrige video</string>
<string name="revanced_swipe_change_video_summary_off">Strygning i fuldskærmstilstand vil ikke ændre til den næste/forrige video</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Deaktivér auto-billedtekster</string>
@@ -629,9 +688,18 @@ Bemærk: Aktivering af dette skjuler også videoannoncer"</string>
<string name="revanced_shorts_player_screen_summary">Skjul eller vis komponenter i Shorts-afspilleren</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Skjul Shorts i hjemmefeed</string>
<string name="revanced_hide_shorts_home_summary_on">Skjult i startsiden og relaterede videoer</string>
<string name="revanced_hide_shorts_home_summary_off">Vises i startsiden og relaterede videoer</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Skjul Shorts i abonnementsfeed</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Skjult i abonnementsfeedet</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Vises i abonnementsfeedet</string>
<string name="revanced_hide_shorts_search_title">Skjul Shorts i søgeresultater</string>
<string name="revanced_hide_shorts_search_summary_on">Skjult i søgeresultater</string>
<string name="revanced_hide_shorts_search_summary_off">Vises i søgeresultater</string>
<string name="revanced_hide_shorts_history_title">Skjul shorts i historik</string>
<string name="revanced_hide_shorts_history_summary_on">Skjult i historikken</string>
<string name="revanced_hide_shorts_history_summary_off">Vises i historik</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Skjul tilmeldingsknap</string>
<string name="revanced_hide_shorts_join_button_summary_on">Deltag-knappen er skjult</string>
@@ -733,6 +801,13 @@ Bemærk: Aktivering af dette skjuler også videoannoncer"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Spiller popup paneler er skjult</string>
<string name="revanced_hide_player_popup_panels_summary_off">Spiller popup paneler vises</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Afslut fuldskærmstilstand ved videoens afslutning</string>
<string name="revanced_exit_fullscreen_entry_1">Deaktiveret</string>
<string name="revanced_exit_fullscreen_entry_2">Portræt</string>
<string name="revanced_exit_fullscreen_entry_3">Landskab</string>
<string name="revanced_exit_fullscreen_entry_4">Portræt og landskab</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Åbn videoer i fuldskærm portræt</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videoer åbne fuld skærm</string>
@@ -1001,6 +1076,23 @@ Er du klar til at indsende?"</string>
<string name="revanced_sb_reset">Nulstil</string>
<string name="revanced_sb_about">Om</string>
<string name="revanced_sb_about_api_sum">Data leveres af SponsorBlock API. Tryk her for at få flere oplysninger og se downloads til andre platforme</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Layout-formfaktor</string>
<string name="revanced_change_form_factor_entry_1">Standard</string>
<string name="revanced_change_form_factor_entry_2">Telefon</string>
<string name="revanced_change_form_factor_entry_3">Tablet</string>
<string name="revanced_change_form_factor_entry_4">Bil</string>
<string name="revanced_change_form_factor_user_dialog_message">"Ændringer omfatter:
Tabletlayout
• Fællesindlæg er skjult
Bil layout
• Se historik-menuen er skjult
• Udforsk-fanen er gendannet
• Shorts åbnes i den almindelige afspiller
• Feedet er organiseret efter emner og kanal"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Spoof app-version</string>
@@ -1015,6 +1107,7 @@ Hvis det senere slås fra, anbefales det at rydde app-dataene for at forhindre U
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Spoof app version mål</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Gendan gamle Shorts player ikoner</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Gendan gamle navigations- og værktøjslinjeikoner</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Gendan RYD på Shorts inkognitotilstand</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Gendan bred video hastighed &amp; kvalitet menu</string>
@@ -1058,12 +1151,6 @@ Hvis det senere slås fra, anbefales det at rydde app-dataene for at forhindre U
<string name="revanced_shorts_autoplay_background_summary_on">Shorts i baggrunden afspilles automatisk</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts i baggrunden gentages</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Aktivér tabletlayout</string>
<string name="revanced_tablet_layout_summary_on">Tablet layout er aktiveret</string>
<string name="revanced_tablet_layout_summary_off">Tablet layout er deaktiveret</string>
<string name="revanced_tablet_layout_user_dialog_message">Fællesskabsindlæg vises ikke på tabletlayouts</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Mini-afspiller</string>
<string name="revanced_miniplayer_screen_summary">Ændre stilen for den i app minimeret afspiller</string>
@@ -1227,6 +1314,7 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
<string name="revanced_force_original_audio_title">Tving original lyd</string>
<string name="revanced_force_original_audio_summary_on">Brug original lyd</string>
<string name="revanced_force_original_audio_summary_off">Brug standard lyd</string>
<string name="revanced_force_original_audio_not_available">Tilføj musik til denne historie</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1254,6 +1342,8 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
<string name="revanced_custom_playback_speeds_invalid">Brugerdefinerede hastigheder skal være mindre end %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Ugyldige brugerdefinerede afspilningshastigheder</string>
<string name="revanced_custom_playback_speeds_auto">Automatisk</string>
<string name="revanced_speed_tap_and_hold_title">Brugerdefineret hastighed, når du holder den nede</string>
<string name="revanced_speed_tap_and_hold_summary">Afspilningshastighed mellem 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Husk ændringer i afspilningshastighed</string>
@@ -1296,61 +1386,11 @@ Videoafspilning virker muligvis ikke"</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• Lydspormenu mangler
• Stabil lydstyrke er ikke tilgængelig
• Gennemtving original lyd er ikke tilgængelig"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Intet AV1-videokodek</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Vis i Statistik for nørder</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Klienttypen vises i Statistik for nørder</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Klienten er skjult i Statistik for nørder</string>
<string name="revanced_spoof_video_streams_language_title">VR-standardsprog for lydstrømme</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisk</string>
<string name="revanced_spoof_video_streams_language_AZ">Aserbajdsjansk</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarsk</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalsk</string>
<string name="revanced_spoof_video_streams_language_CA">Catalansk</string>
<string name="revanced_spoof_video_streams_language_CS">Tjekkisk</string>
<string name="revanced_spoof_video_streams_language_DA">Dansk</string>
<string name="revanced_spoof_video_streams_language_DE">Tysk</string>
<string name="revanced_spoof_video_streams_language_EL">Græsk</string>
<string name="revanced_spoof_video_streams_language_EN">Engelsk</string>
<string name="revanced_spoof_video_streams_language_ES">Spansk</string>
<string name="revanced_spoof_video_streams_language_ET">Estisk</string>
<string name="revanced_spoof_video_streams_language_FA">Persisk</string>
<string name="revanced_spoof_video_streams_language_FI">Finsk</string>
<string name="revanced_spoof_video_streams_language_FR">Fransk</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatisk</string>
<string name="revanced_spoof_video_streams_language_HU">Ungarsk</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesisk</string>
<string name="revanced_spoof_video_streams_language_IT">Italiensk</string>
<string name="revanced_spoof_video_streams_language_JA">Japansk</string>
<string name="revanced_spoof_video_streams_language_KK">Kasakhisk</string>
<string name="revanced_spoof_video_streams_language_KO">Koreansk</string>
<string name="revanced_spoof_video_streams_language_LT">Litauisk</string>
<string name="revanced_spoof_video_streams_language_LV">Lettisk</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonsk</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolsk</string>
<string name="revanced_spoof_video_streams_language_MR">Marathisk</string>
<string name="revanced_spoof_video_streams_language_MS">Malaysisk</string>
<string name="revanced_spoof_video_streams_language_MY">Burmesisk</string>
<string name="revanced_spoof_video_streams_language_NL">Hollandsk</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polsk</string>
<string name="revanced_spoof_video_streams_language_PT">Portugisisk</string>
<string name="revanced_spoof_video_streams_language_RO">Rumænsk</string>
<string name="revanced_spoof_video_streams_language_RU">Russisk</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakisk</string>
<string name="revanced_spoof_video_streams_language_SL">Slovensk</string>
<string name="revanced_spoof_video_streams_language_SR">Serbisk</string>
<string name="revanced_spoof_video_streams_language_SV">Svensk</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thailandsk</string>
<string name="revanced_spoof_video_streams_language_TR">Tyrkisk</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainsk</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamesisk</string>
<string name="revanced_spoof_video_streams_language_ZH">Kinesisk</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">ReVanced Einstellungen auf Standard zurückgesetzt</string>
<string name="revanced_settings_import_success">%d Einstellungen importiert</string>
<string name="revanced_settings_import_failure_parse">Import fehlgeschlagen: %s</string>
<string name="revanced_language_title">ReVanced-Sprache</string>
<string name="revanced_language_user_dialog_message">"Übersetzungen für einige Sprachen fehlen möglicherweise oder sind unvollständig.
Um neue Sprachen zu übersetzen, besuchen Sie translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Sprache der App</string>
<string name="revanced_language_AR">Arabisch</string>
<string name="revanced_language_AZ">Aserbaidschanisch</string>
<string name="revanced_language_BG">Bulgarisch</string>
<string name="revanced_language_BN">Bengalisch</string>
<string name="revanced_language_CA">Katalanisch</string>
<string name="revanced_language_CS">Tschechisch</string>
<string name="revanced_language_DA">Dänisch</string>
<string name="revanced_language_DE">Deutsch</string>
<string name="revanced_language_EL">Griechisch</string>
<string name="revanced_language_EN">Englisch</string>
<string name="revanced_language_ES">Spanisch</string>
<string name="revanced_language_ET">Estnisch</string>
<string name="revanced_language_FA">Persisch</string>
<string name="revanced_language_FI">Finnisch</string>
<string name="revanced_language_FR">Französisch</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Kroatisch</string>
<string name="revanced_language_HU">Ungarisch</string>
<string name="revanced_language_ID">Indonesisch</string>
<string name="revanced_language_IT">Italienisch</string>
<string name="revanced_language_JA">Japanisch</string>
<string name="revanced_language_KK">Kasachisch</string>
<string name="revanced_language_KO">Koreanisch</string>
<string name="revanced_language_LT">Litauisch</string>
<string name="revanced_language_LV">Lettisch</string>
<string name="revanced_language_MK">Mazedonisch</string>
<string name="revanced_language_MN">Mongolisch</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malaiisch</string>
<string name="revanced_language_MY">Birmanisch</string>
<string name="revanced_language_NL">Niederländisch</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Pandschabi</string>
<string name="revanced_language_PL">Polnisch</string>
<string name="revanced_language_PT">Portugiesisch</string>
<string name="revanced_language_RO">Rumänisch</string>
<string name="revanced_language_RU">Russisch</string>
<string name="revanced_language_SK">Slowakisch</string>
<string name="revanced_language_SL">Slowenisch</string>
<string name="revanced_language_SR">Serbisch</string>
<string name="revanced_language_SV">Schwedisch</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thailändisch</string>
<string name="revanced_language_TR">Türkisch</string>
<string name="revanced_language_UK">Ukrainisch</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamesisch</string>
<string name="revanced_language_ZH">Chinesisch</string>
<string name="revanced_pref_import_export_title">Importieren / Exportieren</string>
<string name="revanced_pref_import_export_summary">ReVanced Einstellungen importieren / exportieren</string>
<!-- Settings about dialog. -->
@@ -440,6 +496,9 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Die Sichtbarkeit des Wischüberlagerhintergrunds</string>
<string name="revanced_swipe_threshold_title">Wischgrößenschwelle</string>
<string name="revanced_swipe_threshold_summary">Der Schwellenwert für Wischen</string>
<string name="revanced_swipe_change_video_title">Mit Wischen wechseln Sie zu den Videos</string>
<string name="revanced_swipe_change_video_summary_on">Im Vollbildmodus wischen, um zum nächsten/vorherigen Video zu wechseln</string>
<string name="revanced_swipe_change_video_summary_off">Im Vollbildmodus wischen, um nicht zum nächsten/vorherigen Video zu wechseln</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Autounterschriften deaktivieren</string>
@@ -623,9 +682,18 @@ Hinweis: Durch Aktivieren dieser Option wird auch die Videowerbung zwangsweise a
<string name="revanced_shorts_player_screen_summary">Komponenten im Shorts Spieler ausblenden oder anzeigen</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Shorts im Home Feed ausblenden</string>
<string name="revanced_hide_shorts_home_summary_on">Im Startbild- und Info-Feed sowie in zugehörigen Videos ausgeblendet</string>
<string name="revanced_hide_shorts_home_summary_off">Im Startbild- und Info-Feed sowie in zugehörigen Videos eingeblendet</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Shorts im Abonnement-Feed ausblenden</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">In der Abo-Feed versteckt</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">In der Abo-Feed angezeigt</string>
<string name="revanced_hide_shorts_search_title">Shorts in den Suchergebnissen ausblenden</string>
<string name="revanced_hide_shorts_search_summary_on">In Suchergebnissen versteckt</string>
<string name="revanced_hide_shorts_search_summary_off">In den Suchergebnissen angezeigt</string>
<string name="revanced_hide_shorts_history_title">Shorts im Verlauf verstecken</string>
<string name="revanced_hide_shorts_history_summary_on">Im Verlauf versteckt</string>
<string name="revanced_hide_shorts_history_summary_off">Im Verlauf angezeigt</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Beitritts-Button ausblenden</string>
<string name="revanced_hide_shorts_join_button_summary_on">Join Button ist ausgeblendet</string>
@@ -727,6 +795,13 @@ Hinweis: Durch Aktivieren dieser Option wird auch die Videowerbung zwangsweise a
<string name="revanced_hide_player_popup_panels_summary_on">Player-Popup-Fenster sind ausgeblendet</string>
<string name="revanced_hide_player_popup_panels_summary_off">Player-Popup-Fenster werden angezeigt</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Beenden Sie den Vollbildmodus am Ende des Videos</string>
<string name="revanced_exit_fullscreen_entry_1">Deaktiviert</string>
<string name="revanced_exit_fullscreen_entry_2">Hochformat</string>
<string name="revanced_exit_fullscreen_entry_3">Querformat</string>
<string name="revanced_exit_fullscreen_entry_4">Hoch- und Querformat</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Videos im Vollbild-Hochformat öffnen</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videos im Vollbild öffnen</string>
@@ -995,6 +1070,23 @@ Bereit zum Einreichen?"</string>
<string name="revanced_sb_reset">Zurücksetzen</string>
<string name="revanced_sb_about">Über</string>
<string name="revanced_sb_about_api_sum">Daten werden von der SponsorBlock API bereitgestellt. Tippe hier, um mehr zu erfahren und Downloads für andere Plattformen zu sehen</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Anordnungsformfactor</string>
<string name="revanced_change_form_factor_entry_1">Standard</string>
<string name="revanced_change_form_factor_entry_2">Telefon</string>
<string name="revanced_change_form_factor_entry_3">Tablet</string>
<string name="revanced_change_form_factor_entry_4">Automobil</string>
<string name="revanced_change_form_factor_user_dialog_message">"Änderungen umfassen:
Tablet-Layout
• Community-Beiträge werden ausgeblendet
Auto-Layout
• Der Verlaufsmenü ist ausgeblendet
• Der Explore-Tab wird wiederhergestellt
• Shorts werden im regulären Player geöffnet
• Der Feed ist nach Themen und Kanälen organisiert"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Spoof-App-Version</string>
@@ -1009,6 +1101,7 @@ Wenn Sie die Funktion später deaktivieren, wird empfohlen, die App-Daten zu lö
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Spoof-App-Versionsziel</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Alte Shorts Spielersymbole wiederherstellen</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Alte Navigations- und Toolbar-Symbole wiederherstellen</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - RYD auf Shorts Inkognito-Modus wiederherstellen</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Wiederherstellen der breiten Videogeschwindigkeit &amp; Qualitätsmenü</string>
@@ -1052,12 +1145,6 @@ Wenn Sie die Funktion später deaktivieren, wird empfohlen, die App-Daten zu lö
<string name="revanced_shorts_autoplay_background_summary_on">Shorts-Hintergrund spielen wird automatisch abgespielt</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts-Hintergrundwiedergabe wiederholt sich</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Tablet Layout aktivieren</string>
<string name="revanced_tablet_layout_summary_on">Tablet Layout ist aktiviert</string>
<string name="revanced_tablet_layout_summary_off">Tablet Layout ist deaktiviert</string>
<string name="revanced_tablet_layout_user_dialog_message">Community-Beiträge werden nicht auf Tablet Layouts angezeigt</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Miniplayer</string>
<string name="revanced_miniplayer_screen_summary">Ändere den Stil des in App minimierten Players</string>
@@ -1221,6 +1308,7 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
<string name="revanced_force_original_audio_title">Original Audio erzwingen</string>
<string name="revanced_force_original_audio_summary_on">Originales Audio verwenden</string>
<string name="revanced_force_original_audio_summary_off">Standardaudio verwenden</string>
<string name="revanced_force_original_audio_not_available">Um diese Funktion zu nutzen, ändern Sie das Stream-Spoofing auf den iOS-Clienttyp.</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1248,6 +1336,8 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
<string name="revanced_custom_playback_speeds_invalid">Benutzerdefinierte Geschwindigkeiten müssen kleiner als %s sein</string>
<string name="revanced_custom_playback_speeds_parse_exception">Ungültige benutzerdefinierte Wiedergabegeschwindigkeiten</string>
<string name="revanced_custom_playback_speeds_auto">Autom</string>
<string name="revanced_speed_tap_and_hold_title">Benutzerdefinierte Geschwindigkeit bei Tippen und Halten</string>
<string name="revanced_speed_tap_and_hold_summary">Abspielgeschwindigkeit zwischen 0-8x</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Änderungen der Wiedergabegeschwindigkeit merken</string>
@@ -1292,62 +1382,11 @@ AVC hat eine maximale Auflösung von 1080p, Opus-Audiocodec ist nicht verfügbar
<string name="revanced_spoof_video_streams_about_android_summary">"• Audiospur-Menü fehlt
• Stabile Lautstärke ist nicht verfügbar
• Original-Audio erzwingen ist nicht verfügbar"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Kein AV1-Videocodec</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">In Statistiken für Nerds anzeigen</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Der Client-Typ wird in den Statistiken für Nerds angezeigt</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Der Client wird in den Statistiken für Nerds ausgeblendet</string>
<string name="revanced_spoof_video_streams_language_title">Standard-Audiostreamsprache für VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App-Sprache</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisch</string>
<string name="revanced_spoof_video_streams_language_AZ">Aserbaidschan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarisch</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalisch</string>
<string name="revanced_spoof_video_streams_language_CA">Katalanisch</string>
<string name="revanced_spoof_video_streams_language_CS">Tschechisch</string>
<string name="revanced_spoof_video_streams_language_DA">Dänisch</string>
<string name="revanced_spoof_video_streams_language_DE">Deutsch</string>
<string name="revanced_spoof_video_streams_language_EL">Griechisch</string>
<string name="revanced_spoof_video_streams_language_EN">Englisch</string>
<string name="revanced_spoof_video_streams_language_ES">Spanisch</string>
<string name="revanced_spoof_video_streams_language_ET">Estnisch</string>
<string name="revanced_spoof_video_streams_language_FA">Persisch</string>
<string name="revanced_spoof_video_streams_language_FI">Finnisch</string>
<string name="revanced_spoof_video_streams_language_FR">Französisch</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hannah</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatisch</string>
<string name="revanced_spoof_video_streams_language_HU">Ungarisch</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesisch</string>
<string name="revanced_spoof_video_streams_language_IT">Italienisch</string>
<string name="revanced_spoof_video_streams_language_JA">Japanisch</string>
<string name="revanced_spoof_video_streams_language_KK">Kasachisch</string>
<string name="revanced_spoof_video_streams_language_KO">Koreanisch</string>
<string name="revanced_spoof_video_streams_language_LT">Litauisch</string>
<string name="revanced_spoof_video_streams_language_LV">Lettisch</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonisch</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolisch</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malaiisch</string>
<string name="revanced_spoof_video_streams_language_MY">Burmesisch</string>
<string name="revanced_spoof_video_streams_language_NL">Niederländisch</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Pandschabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polnisch</string>
<string name="revanced_spoof_video_streams_language_PT">Portugiesisch</string>
<string name="revanced_spoof_video_streams_language_RO">Rumänisch</string>
<string name="revanced_spoof_video_streams_language_RU">Russisch</string>
<string name="revanced_spoof_video_streams_language_SK">Slowakisch</string>
<string name="revanced_spoof_video_streams_language_SL">Slowenisch</string>
<string name="revanced_spoof_video_streams_language_SR">Serbisch</string>
<string name="revanced_spoof_video_streams_language_SV">Schwedisch</string>
<string name="revanced_spoof_video_streams_language_SW">Suaheli</string>
<string name="revanced_spoof_video_streams_language_TA">Tamilisch</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thailändisch</string>
<string name="revanced_spoof_video_streams_language_TR">Türkisch</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainische</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamesisch</string>
<string name="revanced_spoof_video_streams_language_ZH">Chinesisch</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ 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_language_title">Γλώσσα ρυθμίσεων ReVanced</string>
<string name="revanced_language_user_dialog_message">"Οι μεταφράσεις για κάποιες γλώσσες ενδέχεται να λείπουν ή να είναι ελλιπείς.
Για να μεταφράσετε νέες γλώσσες, επισκεφθείτε τη διεύθυνση translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Γλώσσα εφαρμογής</string>
<string name="revanced_language_AR">Αραβικά</string>
<string name="revanced_language_AZ">Αζερμπαϊτζάν</string>
<string name="revanced_language_BG">Βουλγαρικά</string>
<string name="revanced_language_BN">Βεγγαλικά</string>
<string name="revanced_language_CA">Καταλανικά</string>
<string name="revanced_language_CS">Τσεχικά</string>
<string name="revanced_language_DA">Δανικά</string>
<string name="revanced_language_DE">Γερμανικά</string>
<string name="revanced_language_EL">Ελληνικά</string>
<string name="revanced_language_EN">Αγγλικά</string>
<string name="revanced_language_ES">Ισπανικά</string>
<string name="revanced_language_ET">Εσθονικά</string>
<string name="revanced_language_FA">Περσικά</string>
<string name="revanced_language_FI">Φινλανδικά</string>
<string name="revanced_language_FR">Γαλλικά</string>
<string name="revanced_language_GU">Γκουτζαρατικά</string>
<string name="revanced_language_HI">Χίντι</string>
<string name="revanced_language_HR">Κροατικά</string>
<string name="revanced_language_HU">Ουγγρικά</string>
<string name="revanced_language_ID">Ινδονησιακά</string>
<string name="revanced_language_IT">Ιταλικά</string>
<string name="revanced_language_JA">Ιαπωνικά</string>
<string name="revanced_language_KK">Καζακικά</string>
<string name="revanced_language_KO">Κορεάτικα</string>
<string name="revanced_language_LT">Λιθουανικά</string>
<string name="revanced_language_LV">Λετονικά</string>
<string name="revanced_language_MK">Σλαβομακεδονικά</string>
<string name="revanced_language_MN">Μογγολικά</string>
<string name="revanced_language_MR">Μαράτι</string>
<string name="revanced_language_MS">Μαλαισιανά</string>
<string name="revanced_language_MY">Βιρμανικά</string>
<string name="revanced_language_NL">Ολλανδικά</string>
<string name="revanced_language_OR">Οντία</string>
<string name="revanced_language_PA">Παντζάμπι</string>
<string name="revanced_language_PL">Πολωνικά</string>
<string name="revanced_language_PT">Πορτογαλικά</string>
<string name="revanced_language_RO">Ρουμανικά</string>
<string name="revanced_language_RU">Ρώσικα</string>
<string name="revanced_language_SK">Σλοβακικά</string>
<string name="revanced_language_SL">Σλοβενικά</string>
<string name="revanced_language_SR">Σέρβικα</string>
<string name="revanced_language_SV">Σουηδικά</string>
<string name="revanced_language_SW">Σουαχίλι</string>
<string name="revanced_language_TA">Ταμίλ</string>
<string name="revanced_language_TE">Τελούγκου</string>
<string name="revanced_language_TH">Ταϊλανδικά</string>
<string name="revanced_language_TR">Τουρκικά</string>
<string name="revanced_language_UK">Ουκρανικά</string>
<string name="revanced_language_UR">Ουρντού</string>
<string name="revanced_language_VI">Βιετναμέζικα</string>
<string name="revanced_language_ZH">Κινέζικα</string>
<string name="revanced_pref_import_export_title">Εισαγωγή / Εξαγωγή</string>
<string name="revanced_pref_import_export_summary">Εισαγωγή / Εξαγωγή ρυθμίσεων ReVanced</string>
<!-- Settings about dialog. -->
@@ -206,7 +262,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_playables_title">Παιχνίδια YouTube</string>
<string name="revanced_hide_playables_summary_on">Κρυμμένα</string>
<string name="revanced_hide_playables_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_quick_actions_title">Γρήγορες ενέργειες σε πλήρη οθόνη</string>
<string name="revanced_hide_quick_actions_title">Γρήγορες ενέργειες στην πλήρη οθόνη</string>
<string name="revanced_hide_quick_actions_summary_on">Εμφανίζονται</string>
<string name="revanced_hide_quick_actions_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_related_videos_title">Σχετικά βίντεο στις γρήγορες ενέργειες</string>
@@ -257,7 +313,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Εμφανίζεται</string>
<string name="revanced_comments_screen_title">Σχόλια</string>
<string name="revanced_comments_screen_summary">Απόκρυψη ή εμφάνιση στοιχείων στα σχόλια</string>
<string name="revanced_hide_comments_chat_summary_title">Σύνοψη συνομιλίας</string>
<string name="revanced_hide_comments_chat_summary_title">Σύνοψη συζήτησης</string>
<string name="revanced_hide_comments_chat_summary_summary_on">Κρυμμένη</string>
<string name="revanced_hide_comments_chat_summary_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_by_members_header_title">Ετικέτα «Σχόλια από μέλη»</string>
@@ -448,6 +504,9 @@ Second \"item\" text"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Η ορατότητα του πλαισίου σάρωσης στο παρασκήνιο</string>
<string name="revanced_swipe_threshold_title">Κατώτατο όριο μεγέθους σάρωσης</string>
<string name="revanced_swipe_threshold_summary">Η ελάχιστη απόσταση που θα διανύσετε με το δάκτυλο σας για να είναι αναγνωρίσιμη η χειρονομία σάρωσης</string>
<string name="revanced_swipe_change_video_title">Χειρονομία εναλλαγής βίντεο στην πλήρη οθόνη</string>
<string name="revanced_swipe_change_video_summary_on">Σάρωση αριστερά/δεξιά κατά τη λειτουργία πλήρους οθόνης για αλλαγή σε επόμενο/προηγούμενο βίντεο</string>
<string name="revanced_swipe_change_video_summary_off">Η χειρονομία αλλαγής βίντεο κατά τη λειτουργία πλήρους οθόνης είναι ανενεργή</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Απενεργοποίηση αυτόματων υπότιτλων</string>
@@ -631,9 +690,18 @@ Second \"item\" text"</string>
<string name="revanced_shorts_player_screen_summary">Απόκρυψη ή εμφάνιση στοιχείων στην οθόνη αναπαραγωγής Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Shorts στην αρχική σελίδα</string>
<string name="revanced_hide_shorts_home_summary_on">Κρυμμένα</string>
<string name="revanced_hide_shorts_home_summary_off">Εμφανίζονται</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Shorts στην καρτέλα εγγραφών</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Κρυμμένα</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_shorts_search_title">Shorts στα αποτελέσματα αναζήτησης</string>
<string name="revanced_hide_shorts_search_summary_on">Κρυμμένα</string>
<string name="revanced_hide_shorts_search_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_shorts_history_title">Shorts στο ιστορικό παρακολούθησης</string>
<string name="revanced_hide_shorts_history_summary_on">Κρυμμένα</string>
<string name="revanced_hide_shorts_history_summary_off">Εμφανίζονται</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Κουμπί «Συμμετοχή»</string>
<string name="revanced_hide_shorts_join_button_summary_on">Κρυμμένο</string>
@@ -735,6 +803,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Κρυμμένα</string>
<string name="revanced_hide_player_popup_panels_summary_off">Εμφανίζονται</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Έξοδος από την λειτουργία πλήρους οθόνης στο τέλος του βίντεο</string>
<string name="revanced_exit_fullscreen_entry_1">Ανενεργό</string>
<string name="revanced_exit_fullscreen_entry_2">Κατακόρυφα</string>
<string name="revanced_exit_fullscreen_entry_3">Οριζόντια</string>
<string name="revanced_exit_fullscreen_entry_4">Κατακόρυφα και οριζόντια</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Άνοιγμα των βίντεο σε πλήρη οθόνη με κατακόρυφη προβολή</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Τα βίντεο ανοίγουν σε λειτουργία πλήρους οθόνης</string>
@@ -1002,6 +1077,23 @@ Second \"item\" text"</string>
<string name="revanced_sb_reset">Επαναφορά</string>
<string name="revanced_sb_about">Σχετικά με</string>
<string name="revanced_sb_about_api_sum">Τα δεδομένα παρέχονται από το SponsorBlock API. Πατήστε για να μάθετε περισσότερα και να δείτε λήψεις για άλλες πλατφόρμες</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Αλλαγή μορφής διάταξης</string>
<string name="revanced_change_form_factor_entry_1">Προεπιλογή</string>
<string name="revanced_change_form_factor_entry_2">Τηλέφωνο</string>
<string name="revanced_change_form_factor_entry_3">Ταμπλετ</string>
<string name="revanced_change_form_factor_entry_4">Αυτοκίνητο</string>
<string name="revanced_change_form_factor_user_dialog_message">"Οι αλλαγές στη διάταξη περιλαμβάνουν τα παρακάτω:
Διάταξη ταμπλετ
Οι δημοσιεύσεις κοινότητας είναι κρυμμένες
Διάταξη αυτοκινήτου
• Το μενού ιστορικού παρακολούθησης είναι κρυμμένο
Η καρτέλα «Εξερεύνηση» επαναφέρεται
Τα Shorts ανοίγουν στην κανονική οθόνη αναπαραγωγής
• Η ροή οργανώνεται ανά θέματα και κανάλι"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Τροποποίηση έκδοσης εφαρμογής</string>
@@ -1016,6 +1108,7 @@ Second \"item\" text"</string>
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Έκδοση τροποποίησης της εφαρμογής</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Επαναφορά των παλιών εικονιδίων της οθόνης αναπαραγωγής Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Επαναφορά παλιών εικονιδίων πλοήγησης και γραμμής εργαλείων</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Επαναφορά λειτουργικότητας του RYD στα Shorts σε λειτουργία ανώνυμης περιήγησης</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Επαναφορά ευρύτερου μενού ταχύτητας &amp; ποιότητας βίντεο</string>
@@ -1031,7 +1124,7 @@ Second \"item\" text"</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_liked_videos">Βίντεο που σας αρέσουν</string>
<string name="revanced_change_start_page_entry_live">Άμεση</string>
<string name="revanced_change_start_page_entry_live">Live</string>
<string name="revanced_change_start_page_entry_movies">Ταινίες</string>
<string name="revanced_change_start_page_entry_music">Μουσική</string>
<string name="revanced_change_start_page_entry_search">Αναζήτηση</string>
@@ -1059,17 +1152,11 @@ Second \"item\" text"</string>
<string name="revanced_shorts_autoplay_background_summary_on">Τα επόμενα Shorts θα αναπαράγονται αυτόματα στο παρασκήνιο</string>
<string name="revanced_shorts_autoplay_background_summary_off">Τα Shorts στο παρασκήνιο θα επαναλαμβάνονται</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Λειτουργία διεπαφής τάμπλετ</string>
<string name="revanced_tablet_layout_summary_on">Η διεπαφή τάμπλετ είναι ενεργοποιημένη</string>
<string name="revanced_tablet_layout_summary_off">Η διεπαφή τάμπλετ είναι απενεργοποιημένη</string>
<string name="revanced_tablet_layout_user_dialog_message">Οι δημοσιεύσεις κοινότητας δεν εμφανίζονται στη διεπαφή τάμπλετ</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Ελαχιστοποιημένη οθόνη αναπαραγωγής</string>
<string name="revanced_miniplayer_screen_summary">Αλλάξτε το στυλ της ελαχιστοποιημένης οθόνης αναπαραγωγής</string>
<string name="revanced_miniplayer_type_title">Τύπος ελαχιστοποιημένης οθόνης αναπαραγωγής</string>
<string name="revanced_miniplayer_type_entry_0">Ανενεργή</string>
<string name="revanced_miniplayer_type_entry_0">Απενεργοποιημένη</string>
<string name="revanced_miniplayer_type_entry_1">Προεπιλογή</string>
<string name="revanced_miniplayer_type_entry_2">Ελάχιστη</string>
<string name="revanced_miniplayer_type_entry_3">Ταμπλετ</string>
@@ -1226,6 +1313,7 @@ Second \"item\" text"</string>
<string name="revanced_force_original_audio_title">Εξαναγκασμός αρχικού ήχου</string>
<string name="revanced_force_original_audio_summary_on">Χρήση αρχικού ήχου</string>
<string name="revanced_force_original_audio_summary_off">Χρήση προεπιλεγμένου ήχου</string>
<string name="revanced_force_original_audio_not_available">Για να χρησιμοποιήσετε αυτήν τη δυνατότητα, αλλάξτε τον τύπο παραποίησης ροών βίντεο σε iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1253,6 +1341,8 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Οι ταχύτητες πρέπει να είναι μικρότερες από %sx</string>
<string name="revanced_custom_playback_speeds_parse_exception">Μη έγκυρες προσαρμοσμένες ταχύτητες αναπαραγωγής</string>
<string name="revanced_custom_playback_speeds_auto">Αυτόματη</string>
<string name="revanced_speed_tap_and_hold_title">Προσαρμοσμένη ταχύτητα παρατεταμένου πατήματος</string>
<string name="revanced_speed_tap_and_hold_summary">Ταχύτητα αναπαραγωγής μεταξύ 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Απομνημόνευση αλλαγών ταχύτητας αναπαραγωγής</string>
@@ -1284,12 +1374,12 @@ Second \"item\" text"</string>
<!-- 'no auth' means no authentication -->
<string name="revanced_spoof_video_streams_client_type_android_vr_no_auth">Android VR (χωρίς auth)</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)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Ο κωδικοποιητής βίντεο έχει οριστεί υποχρεωτικά σε AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Ο κωδικοποιητής βίντεο ορίζεται αυτόματα</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"Η ενεργοποίηση αυτής της λειτουργίας ενδέχεται να βελτιώσει τη διάρκεια ζωής της μπαταρίας και να διορθώσει κολλήματα αναπαραγωγής.
Ο AVC έχει μέγιστη ανάλυση 1080p, ο κωδικοποιητής ήχου Opus δεν είναι διαθέσιμος και η αναπαραγωγή βίντεο θα χρησιμοποιεί περισσότερα δεδομένα ίντερνετ από τον VP9 ή τον AV1."</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">Παρενέργειες παραποίησης iOS</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">Παρενέργειες παραποίησης σε iOS</string>
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• Οι ταινίες ή τα επί πληρωμή βίντεο ενδέχεται να μην αναπαράγονται
Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη
Τα βίντεο τελειώνουν 1 δευτερόλεπτο νωρίτερα"</string>
@@ -1297,62 +1387,11 @@ Second \"item\" text"</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• Το μενού «Κομμάτι ήχου» λείπει
Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη
Η λειτουργία «Εξαναγκασμός αρχικού ήχου» δεν είναι διαθέσιμη"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Δεν υπάρχει ο κωδικοποιητής βίντεο AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Εμφάνιση στο μενού «Στατιστικά για σπασίκλες»</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Το πρόγραμμα πελάτη εμφανίζεται στο μενού «Στατιστικά για σπασίκλες»</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Το πρόγραμμα πελάτη δεν εμφανίζεται στο μενού «Στατιστικά για σπασίκλες»</string>
<string name="revanced_spoof_video_streams_language_title">Προεπιλεγμένη γλώσσα ροής ήχου VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Γλώσσα λογαριασμού</string>
<string name="revanced_spoof_video_streams_language_AR">Αραβικά</string>
<string name="revanced_spoof_video_streams_language_AZ">Αζερμπαϊτζανικά</string>
<string name="revanced_spoof_video_streams_language_BG">Βουλγαρικά</string>
<string name="revanced_spoof_video_streams_language_BN">Βεγγαλικά</string>
<string name="revanced_spoof_video_streams_language_CA">Καταλανικά</string>
<string name="revanced_spoof_video_streams_language_CS">Τσέχικα</string>
<string name="revanced_spoof_video_streams_language_DA">Δανέζικα</string>
<string name="revanced_spoof_video_streams_language_DE">Γερμανικά</string>
<string name="revanced_spoof_video_streams_language_EL">Ελληνικά</string>
<string name="revanced_spoof_video_streams_language_EN">Αγγλικά</string>
<string name="revanced_spoof_video_streams_language_ES">Ισπανικά</string>
<string name="revanced_spoof_video_streams_language_ET">Εσθονικά</string>
<string name="revanced_spoof_video_streams_language_FA">Περσικά</string>
<string name="revanced_spoof_video_streams_language_FI">Φινλανδικά</string>
<string name="revanced_spoof_video_streams_language_FR">Γαλλικά</string>
<string name="revanced_spoof_video_streams_language_GU">Γκουτζαρατικά</string>
<string name="revanced_spoof_video_streams_language_HI">Χίντι</string>
<string name="revanced_spoof_video_streams_language_HR">Κροατικά</string>
<string name="revanced_spoof_video_streams_language_HU">Ουγγρικά</string>
<string name="revanced_spoof_video_streams_language_ID">Ινδονησιακά</string>
<string name="revanced_spoof_video_streams_language_IT">Ιταλικά</string>
<string name="revanced_spoof_video_streams_language_JA">Ιαπωνικά</string>
<string name="revanced_spoof_video_streams_language_KK">Καζακικά</string>
<string name="revanced_spoof_video_streams_language_KO">Κορεάτικα</string>
<string name="revanced_spoof_video_streams_language_LT">Λιθουανικά</string>
<string name="revanced_spoof_video_streams_language_LV">Λετονικά</string>
<string name="revanced_spoof_video_streams_language_MK">Μακεδονικά</string>
<string name="revanced_spoof_video_streams_language_MN">Μογγολικά</string>
<string name="revanced_spoof_video_streams_language_MR">Μαράτι</string>
<string name="revanced_spoof_video_streams_language_MS">Μαλαισιανά</string>
<string name="revanced_spoof_video_streams_language_MY">Βιρμανικά</string>
<string name="revanced_spoof_video_streams_language_NL">Ολλανδικά</string>
<string name="revanced_spoof_video_streams_language_OR">Όντια</string>
<string name="revanced_spoof_video_streams_language_PA">Παντζάμπι</string>
<string name="revanced_spoof_video_streams_language_PL">Πολωνικά</string>
<string name="revanced_spoof_video_streams_language_PT">Πορτογαλικά</string>
<string name="revanced_spoof_video_streams_language_RO">Ρουμανικά</string>
<string name="revanced_spoof_video_streams_language_RU">Ρωσικά</string>
<string name="revanced_spoof_video_streams_language_SK">Σλοβακικά</string>
<string name="revanced_spoof_video_streams_language_SL">Σλοβενικά</string>
<string name="revanced_spoof_video_streams_language_SR">Σερβικά</string>
<string name="revanced_spoof_video_streams_language_SV">Σουηδικά</string>
<string name="revanced_spoof_video_streams_language_SW">Σουαχίλι</string>
<string name="revanced_spoof_video_streams_language_TA">Ταμιλικά</string>
<string name="revanced_spoof_video_streams_language_TE">Τελούγκου</string>
<string name="revanced_spoof_video_streams_language_TH">Ταϊλανδικά</string>
<string name="revanced_spoof_video_streams_language_TR">Τουρκικά</string>
<string name="revanced_spoof_video_streams_language_UK">Ουκρανικά</string>
<string name="revanced_spoof_video_streams_language_UR">Ουρντού</string>
<string name="revanced_spoof_video_streams_language_VI">Βιετναμέζικα</string>
<string name="revanced_spoof_video_streams_language_ZH">Κινέζικα</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">Configuración ReVanced restablecida por defecto</string>
<string name="revanced_settings_import_success">Configuración importada de %d</string>
<string name="revanced_settings_import_failure_parse">Error de importación: %s</string>
<string name="revanced_language_title">Idioma de ReVanced</string>
<string name="revanced_language_user_dialog_message">"Las traducciones para algunos idiomas pueden faltar o estar incompletas.
Para traducir nuevos idiomas, visita translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Idioma de la aplicación</string>
<string name="revanced_language_AR">Árabe</string>
<string name="revanced_language_AZ">Azerbaiyano</string>
<string name="revanced_language_BG">Búlgaro</string>
<string name="revanced_language_BN">Bengalí</string>
<string name="revanced_language_CA">Catalán</string>
<string name="revanced_language_CS">Checo</string>
<string name="revanced_language_DA">Danés</string>
<string name="revanced_language_DE">Alemán</string>
<string name="revanced_language_EL">Griego</string>
<string name="revanced_language_EN">Inglés</string>
<string name="revanced_language_ES">Español</string>
<string name="revanced_language_ET">Estonio</string>
<string name="revanced_language_FA">Persa</string>
<string name="revanced_language_FI">Finlandés</string>
<string name="revanced_language_FR">Francés</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Croata</string>
<string name="revanced_language_HU">Húngaro</string>
<string name="revanced_language_ID">Indonesio</string>
<string name="revanced_language_IT">Italiano</string>
<string name="revanced_language_JA">Japonés</string>
<string name="revanced_language_KK">Kazajo</string>
<string name="revanced_language_KO">Coreano</string>
<string name="revanced_language_LT">Lituano</string>
<string name="revanced_language_LV">Letón</string>
<string name="revanced_language_MK">Macedonio</string>
<string name="revanced_language_MN">Mongol</string>
<string name="revanced_language_MR">Maratí</string>
<string name="revanced_language_MS">Malayo</string>
<string name="revanced_language_MY">Birmano</string>
<string name="revanced_language_NL">Holandés</string>
<string name="revanced_language_OR">Oriya</string>
<string name="revanced_language_PA">Panyabí</string>
<string name="revanced_language_PL">Polaco</string>
<string name="revanced_language_PT">Portugués</string>
<string name="revanced_language_RO">Rumano</string>
<string name="revanced_language_RU">Ruso</string>
<string name="revanced_language_SK">Eslovaco</string>
<string name="revanced_language_SL">Esloveno</string>
<string name="revanced_language_SR">Serbio</string>
<string name="revanced_language_SV">Sueco</string>
<string name="revanced_language_SW">Suajili</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Tailandés</string>
<string name="revanced_language_TR">Turco</string>
<string name="revanced_language_UK">Ucraniano</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamita</string>
<string name="revanced_language_ZH">Chino</string>
<string name="revanced_pref_import_export_title">Importar / Exportar</string>
<string name="revanced_pref_import_export_summary">Importar / Exportar ajustes de ReVanced</string>
<!-- Settings about dialog. -->
@@ -436,6 +492,9 @@ Esta función solo está disponible para dispositivos antiguos"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Visibilidad del fondo del deslizamiento</string>
<string name="revanced_swipe_threshold_title">Umbral de magnitud del deslizamiento</string>
<string name="revanced_swipe_threshold_summary">La cantidad de umbral para que se desliza</string>
<string name="revanced_swipe_change_video_title">Habilita el deslizamiento para cambiar videos</string>
<string name="revanced_swipe_change_video_summary_on">Deslizar en modo de pantalla completa cambiará al video siguiente/anterior</string>
<string name="revanced_swipe_change_video_summary_off">Deslizar en modo de pantalla completa no cambiará al video siguiente/anterior</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Desactivar auto subtítulos</string>
@@ -619,9 +678,18 @@ Nota: Habilitar esto también oculta a la fuerza los anuncios de vídeo"</string
<string name="revanced_shorts_player_screen_summary">Oculta o muestra componentes en el reproductor de Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Ocultar Shorts en el Inicio</string>
<string name="revanced_hide_shorts_home_summary_on">Oculto en el feed de inicio y videos relacionados</string>
<string name="revanced_hide_shorts_home_summary_off">Se muestra en el feed de inicio y videos relacionados</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Ocultar Shorts en las suscripciones</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Ocultar</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Mostrar</string>
<string name="revanced_hide_shorts_search_title">Ocultar Shorts en los resultados de búsqueda</string>
<string name="revanced_hide_shorts_search_summary_on">Ocultos en los resultados de búsqueda</string>
<string name="revanced_hide_shorts_search_summary_off">Mostrar en los resultados de búsqueda</string>
<string name="revanced_hide_shorts_history_title">Ocultar Shorts en el historial de visualización</string>
<string name="revanced_hide_shorts_history_summary_on">Oculto en el historial de visualización</string>
<string name="revanced_hide_shorts_history_summary_off">Mostrado en el historial de visualización</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Ocultar botón de unirse</string>
<string name="revanced_hide_shorts_join_button_summary_on">Botón de unión oculto</string>
@@ -723,6 +791,13 @@ Nota: Habilitar esto también oculta a la fuerza los anuncios de vídeo"</string
<string name="revanced_hide_player_popup_panels_summary_on">Los paneles emergentes del jugador están ocultos</string>
<string name="revanced_hide_player_popup_panels_summary_off">Se muestran paneles emergentes del jugador</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Salir del modo de pantalla completa al final del vídeo</string>
<string name="revanced_exit_fullscreen_entry_1">Desactivado</string>
<string name="revanced_exit_fullscreen_entry_2">Salir de pantalla completa</string>
<string name="revanced_exit_fullscreen_entry_3">Paisaje</string>
<string name="revanced_exit_fullscreen_entry_4">Retrato y paisaje</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Abrir vídeos en el retrato de pantalla completa</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videos abiertos a pantalla completa</string>
@@ -982,6 +1057,23 @@ Ya existe"</string>
<string name="revanced_sb_reset">Restablecer</string>
<string name="revanced_sb_about">Acerca de</string>
<string name="revanced_sb_about_api_sum">Los datos son proporcionados por la API de SponsorBlock. Pulsa aquí para aprender más y ver las descargas para otras plataformas</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Diseño del diseño factor</string>
<string name="revanced_change_form_factor_entry_1">Defecto</string>
<string name="revanced_change_form_factor_entry_2">Teléfono</string>
<string name="revanced_change_form_factor_entry_3">Tableta</string>
<string name="revanced_change_form_factor_entry_4">Automotriz</string>
<string name="revanced_change_form_factor_user_dialog_message">"Los cambios incluyen:
Diseño para tablets
• Las publicaciones de la comunidad están ocultas
Diseño para automóviles
• El menú del historial de reproducciones está oculto
• Se restauró la pestaña de Explorar
• Se abren los Shorts en el reproductor normal
• El feed está organizado por temas y canal"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Versión de la aplicación Spoof</string>
@@ -994,8 +1086,9 @@ Esto cambiará la apariencia y las características de la aplicación, pero pued
Si se desactiva posteriormente, se recomienda borrar los datos de la aplicación para evitar errores en la interfaz de usuario."</string>
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Destino de versión de la aplicación Spoof</string>
<string name="revanced_spoof_app_version_target_title">Versión de aplicación falsa de destino</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Restaurar iconos antiguos del reproductor de Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Restaurar los iconos antiguos de navegación y barra de herramientas</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurar RYD en Shorts de modo incógnito</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurar la velocidad de vídeo ancha &amp; menú de calidad</string>
@@ -1039,12 +1132,6 @@ Si se desactiva posteriormente, se recomienda borrar los datos de la aplicación
<string name="revanced_shorts_autoplay_background_summary_on">Los Shorts se reproducirán automáticamente en segundo plano</string>
<string name="revanced_shorts_autoplay_background_summary_off">Los Shorts se repetirán en segundo plano</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Habilitar diseño de tablet</string>
<string name="revanced_tablet_layout_summary_on">Diseño de tablet habilitado</string>
<string name="revanced_tablet_layout_summary_off">Diseño de tablet deshabilitado</string>
<string name="revanced_tablet_layout_user_dialog_message">Los mensajes de la comunidad no se muestran en los diseños de tablet</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minireproductor</string>
<string name="revanced_miniplayer_screen_summary">Cambiar el estilo del reproductor minimizado de la aplicación</string>
@@ -1208,6 +1295,7 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
<string name="revanced_force_original_audio_title">Forzar audio original</string>
<string name="revanced_force_original_audio_summary_on">Utilizando audio original</string>
<string name="revanced_force_original_audio_summary_off">Utilizando audio predeterminado</string>
<string name="revanced_force_original_audio_not_available">Para usar esta función, cambia la suplantación de stream al tipo de cliente iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1235,6 +1323,8 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
<string name="revanced_custom_playback_speeds_invalid">Las velocidades personalizadas deben ser menores que %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocidades de reproducción personalizadas no válidas</string>
<string name="revanced_custom_playback_speeds_auto">Automático</string>
<string name="revanced_speed_tap_and_hold_title">Velocidad personalizada al tocar y mantener</string>
<string name="revanced_speed_tap_and_hold_summary">Velocidad de reproducción entre 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Recordar cambios de velocidad de reproducción</string>
@@ -1279,62 +1369,11 @@ AVC tiene una resolución máxima de 1080p, el códec de audio Opus no está dis
<string name="revanced_spoof_video_streams_about_android_summary">"• Falta el menú de la pista de audio
• El volumen estable no está disponible
• Forzar el audio original no está disponible"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• No AV1 códec de vídeo</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Mostrar en Estadísticas para nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">El tipo de cliente se muestra en Estadísticas para nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">El cliente está oculto en Estadísticas para nerds</string>
<string name="revanced_spoof_video_streams_language_title">Idioma de la transmisión de audio por defecto de VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Idioma de la aplicación</string>
<string name="revanced_spoof_video_streams_language_AR">Árabe</string>
<string name="revanced_spoof_video_streams_language_AZ">Бессия</string>
<string name="revanced_spoof_video_streams_language_BG">Búlgaro</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalí</string>
<string name="revanced_spoof_video_streams_language_CA">Catalán</string>
<string name="revanced_spoof_video_streams_language_CS">Checo</string>
<string name="revanced_spoof_video_streams_language_DA">Danés</string>
<string name="revanced_spoof_video_streams_language_DE">Alemán</string>
<string name="revanced_spoof_video_streams_language_EL">Griego</string>
<string name="revanced_spoof_video_streams_language_EN">Inglés</string>
<string name="revanced_spoof_video_streams_language_ES">Español</string>
<string name="revanced_spoof_video_streams_language_ET">Estonio</string>
<string name="revanced_spoof_video_streams_language_FA">Persa</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandés</string>
<string name="revanced_spoof_video_streams_language_FR">Francés</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindú</string>
<string name="revanced_spoof_video_streams_language_HR">Croata</string>
<string name="revanced_spoof_video_streams_language_HU">Húngaro</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesio/a</string>
<string name="revanced_spoof_video_streams_language_IT">Italiano</string>
<string name="revanced_spoof_video_streams_language_JA">Japonés</string>
<string name="revanced_spoof_video_streams_language_KK">Kazajo</string>
<string name="revanced_spoof_video_streams_language_KO">Coreano</string>
<string name="revanced_spoof_video_streams_language_LT">Lituano</string>
<string name="revanced_spoof_video_streams_language_LV">Letón</string>
<string name="revanced_spoof_video_streams_language_MK">Macedonio</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Maratí</string>
<string name="revanced_spoof_video_streams_language_MS">Malayo</string>
<string name="revanced_spoof_video_streams_language_MY">Birmano</string>
<string name="revanced_spoof_video_streams_language_NL">Holandés</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polaco</string>
<string name="revanced_spoof_video_streams_language_PT">Portugués</string>
<string name="revanced_spoof_video_streams_language_RO">Rumano</string>
<string name="revanced_spoof_video_streams_language_RU">Ruso</string>
<string name="revanced_spoof_video_streams_language_SK">Eslovaco</string>
<string name="revanced_spoof_video_streams_language_SL">Esloveno</string>
<string name="revanced_spoof_video_streams_language_SR">Serbio</string>
<string name="revanced_spoof_video_streams_language_SV">Sueco</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandés</string>
<string name="revanced_spoof_video_streams_language_TR">Turco</string>
<string name="revanced_spoof_video_streams_language_UK">Ucraniano</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamita</string>
<string name="revanced_spoof_video_streams_language_ZH">Chino</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">ReVancedi seaded on lähtestatud</string>
<string name="revanced_settings_import_success">Imporditi %d seadet</string>
<string name="revanced_settings_import_failure_parse">Importimine ebaõnnestus: %s</string>
<string name="revanced_language_title">Revancedi keel</string>
<string name="revanced_language_user_dialog_message">"Mõnede keelte tõlked võivad olla puudulikud või ebatäielikud.
Uute keelte tõlkimiseks külastage saiti translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Rakenduse keel</string>
<string name="revanced_language_AR">Araabia</string>
<string name="revanced_language_AZ">Aserbaidžaani</string>
<string name="revanced_language_BG">Bulgaaria</string>
<string name="revanced_language_BN">Bengali</string>
<string name="revanced_language_CA">Katalaani</string>
<string name="revanced_language_CS">Tšehhi</string>
<string name="revanced_language_DA">Taani</string>
<string name="revanced_language_DE">Saksa</string>
<string name="revanced_language_EL">Kreeka</string>
<string name="revanced_language_EN">Inglise</string>
<string name="revanced_language_ES">Hispaania</string>
<string name="revanced_language_ET">Eesti</string>
<string name="revanced_language_FA">Pärsia</string>
<string name="revanced_language_FI">Soome</string>
<string name="revanced_language_FR">Prantsuse</string>
<string name="revanced_language_GU">Gudžarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Horvaatia</string>
<string name="revanced_language_HU">Ungari</string>
<string name="revanced_language_ID">Indoneesia</string>
<string name="revanced_language_IT">Itaalia</string>
<string name="revanced_language_JA">Jaapani</string>
<string name="revanced_language_KK">Kasahhi</string>
<string name="revanced_language_KO">Korea</string>
<string name="revanced_language_LT">Leedu</string>
<string name="revanced_language_LV">Läti</string>
<string name="revanced_language_MK">Makedoonia</string>
<string name="revanced_language_MN">Mongoolia</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malaisia</string>
<string name="revanced_language_MY">Birma</string>
<string name="revanced_language_NL">Hollandi</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Pandžabi</string>
<string name="revanced_language_PL">Poola</string>
<string name="revanced_language_PT">Portugali</string>
<string name="revanced_language_RO">Rumeenia</string>
<string name="revanced_language_RU">Vene</string>
<string name="revanced_language_SK">Slovaki</string>
<string name="revanced_language_SL">Sloveeni</string>
<string name="revanced_language_SR">Serbia</string>
<string name="revanced_language_SV">Rootsi</string>
<string name="revanced_language_SW">Suahiili</string>
<string name="revanced_language_TA">Tamili</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Tai</string>
<string name="revanced_language_TR">Türgi</string>
<string name="revanced_language_UK">Ukraina</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnami</string>
<string name="revanced_language_ZH">Hiina</string>
<string name="revanced_pref_import_export_title">Impordi / Ekspordi</string>
<string name="revanced_pref_import_export_summary">Impordi / Ekspordi ReVanced seadeteid</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Pühkimise katte tausta nähtavus</string>
<string name="revanced_swipe_threshold_title">Pühkimise suuruse lävi</string>
<string name="revanced_swipe_threshold_summary">Lävi väärtus pühkimise toimimiseks</string>
<string name="revanced_swipe_change_video_title">Luba pühkimine videote vahetamiseks</string>
<string name="revanced_swipe_change_video_summary_on">Täisekraanrežiimis pühkimine vahetab järgmise/eelmise video</string>
<string name="revanced_swipe_change_video_summary_off">Täisekraanrežiimis pühkimine ei vaheta järgmise/eelmise video</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Keela automaatsed pealdised</string>
@@ -629,9 +688,18 @@ Märkus: selle lubamine peidab ka sunniviisiliselt video reklaamid"</string>
<string name="revanced_shorts_player_screen_summary">Peida või näita komponente Shorts esitusprogrammis</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Peida Shorts algmenüüs</string>
<string name="revanced_hide_shorts_home_summary_on">Peidetud avalehe- ja seotud videotes</string>
<string name="revanced_hide_shorts_home_summary_off">Näidatud avalehe- ja seotud videotes</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Peida Shorts tellimuste voogus</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Peidetud tellimuste voogudes</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Näidatud tellimuste voogudes</string>
<string name="revanced_hide_shorts_search_title">Peida Shorts otsingutulemustes</string>
<string name="revanced_hide_shorts_search_summary_on">Peida otsingutulemustest</string>
<string name="revanced_hide_shorts_search_summary_off">Näidatud otsingutulemustes</string>
<string name="revanced_hide_shorts_history_title">Peida Shortsid vaatamisaegadust</string>
<string name="revanced_hide_shorts_history_summary_on">Peidetud vaatamise ajaloos</string>
<string name="revanced_hide_shorts_history_summary_off">Näidatud vaatamisaegadus</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Peida liitumisnupp</string>
<string name="revanced_hide_shorts_join_button_summary_on">Liitumisnupp on peidetud</string>
@@ -733,6 +801,13 @@ Märkus: selle lubamine peidab ka sunniviisiliselt video reklaamid"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Esitaja hüpikaknad on peidetud</string>
<string name="revanced_hide_player_popup_panels_summary_off">Esitaja hüpikaknad on nähtavad</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Video lõpus välju täisekraanirežiimist</string>
<string name="revanced_exit_fullscreen_entry_1">Keelatud</string>
<string name="revanced_exit_fullscreen_entry_2">Portree</string>
<string name="revanced_exit_fullscreen_entry_3">Maastiku</string>
<string name="revanced_exit_fullscreen_entry_4">Portree ja maastiku</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Ava videod täisekraani portreerežiimis</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videod avanevad täisekraani režiimis</string>
@@ -1001,6 +1076,23 @@ Kas olete esitamiseks valmis?"</string>
<string name="revanced_sb_reset">Lähtesta</string>
<string name="revanced_sb_about">Teave</string>
<string name="revanced_sb_about_api_sum">Andmed on pärit SponsorBlock API-st. Puudutage siia, et saada lisateavet ja vaadata allalaadimisi teistele platvormidele</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Paigutuse vormitegur</string>
<string name="revanced_change_form_factor_entry_1">Vaikimisi</string>
<string name="revanced_change_form_factor_entry_2">Telefon</string>
<string name="revanced_change_form_factor_entry_3">Tahvelarvuti</string>
<string name="revanced_change_form_factor_entry_4">Automotiiv</string>
<string name="revanced_change_form_factor_user_dialog_message">"Muudatused hõlmavad:
Tahvelarvuti paigutus
• Ühenduse postitused on peidetud
Automotiivi paigutus
• Vaatamisloendi menüü on peidetud
• Uudista vaheleht on taastatud
• Lühivideod avanevad tavalises pleieris
• Sööt on korraldatud teemade ja kanalite kaupa"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Võltsitud rakenduse versioon</string>
@@ -1015,6 +1107,7 @@ Kui see hiljem välja lülitatakse, on soovitatav rakenduse andmed kustutada, et
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Võltsitud rakenduse versiooni siht</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Taastage vanad Shortsi esitajaikoonid</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Taastage vanad navigeerimis- ja tööriistariba ikoonid</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Taastage RYD Shortsi incognito režiimis</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Taasta lai video kiiruse ja kvaliteedi menüü</string>
@@ -1058,12 +1151,6 @@ Kui see hiljem välja lülitatakse, on soovitatav rakenduse andmed kustutada, et
<string name="revanced_shorts_autoplay_background_summary_on">Shortsi taustal esitamine toimub automaatselt</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shortsi taustal esitamine korratakse</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Lülita tahvelarvuti paigutus sisse</string>
<string name="revanced_tablet_layout_summary_on">Tahvelarvuti paigutus on lubatud</string>
<string name="revanced_tablet_layout_summary_off">Tahvelarvuti paigutus on keelatud</string>
<string name="revanced_tablet_layout_user_dialog_message">Kogukonna postitused ei kuvata tahvelarvuti paigutustes</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minimängija</string>
<string name="revanced_miniplayer_screen_summary">Muuda rakenduses minimeeritud esitaja stiili</string>
@@ -1228,6 +1315,7 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
<string name="revanced_force_original_audio_title">Sunni originaalheli</string>
<string name="revanced_force_original_audio_summary_on">Kasutatakse originaalheli</string>
<string name="revanced_force_original_audio_summary_off">Kasutan vaikeheli</string>
<string name="revanced_force_original_audio_not_available">Selle funktsiooni kasutamiseks muutke voo esindamine iOS-i kliendi tüübiks</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1255,6 +1343,8 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
<string name="revanced_custom_playback_speeds_invalid">Kohandatud kiirused peavad olema alla %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Kehtetud kohandatud video taasesituse kiirused</string>
<string name="revanced_custom_playback_speeds_auto">Auto</string>
<string name="revanced_speed_tap_and_hold_title">Kohandatud puuduta ja hoia kiiruse tase</string>
<string name="revanced_speed_tap_and_hold_summary">Taasesituse kiirus vahemikus 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Määle taasesituse kiiruse muudatused meelde</string>
@@ -1299,62 +1389,11 @@ AVC-l on maksimaalne eraldusvõime 1080p, Opus-i heli kodek pole saadaval ning v
<string name="revanced_spoof_video_streams_about_android_summary">"• Heliraja menüü puudub
• Stabiilset helitugevust pole saadaval
• Sunnitud originaalheli pole saadaval"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Puuduv AV1 videokoodek</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Kuva statistikas \"Nerdide jaoks\"</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Klienditüüp on statistikas \"Nerdide jaoks\" nähtav</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Klient on statistikas \"Nerdide jaoks\" peidetud</string>
<string name="revanced_spoof_video_streams_language_title">VR vaikeväärtus heli voo keelele</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Rakenduse keel</string>
<string name="revanced_spoof_video_streams_language_AR">Araabia keel</string>
<string name="revanced_spoof_video_streams_language_AZ">Aserbaidžaani keel</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaaria keel</string>
<string name="revanced_spoof_video_streams_language_BN">Bengaali keel</string>
<string name="revanced_spoof_video_streams_language_CA">Katalaani keel</string>
<string name="revanced_spoof_video_streams_language_CS">Tšehhi keel</string>
<string name="revanced_spoof_video_streams_language_DA">Taani keel</string>
<string name="revanced_spoof_video_streams_language_DE">Saksa keel</string>
<string name="revanced_spoof_video_streams_language_EL">Kreeka keel</string>
<string name="revanced_spoof_video_streams_language_EN">Inglise</string>
<string name="revanced_spoof_video_streams_language_ES">Hispaania keel</string>
<string name="revanced_spoof_video_streams_language_ET">Eesti keel</string>
<string name="revanced_spoof_video_streams_language_FA">Pärsia keel</string>
<string name="revanced_spoof_video_streams_language_FI">Soome</string>
<string name="revanced_spoof_video_streams_language_FR">Prantsuse</string>
<string name="revanced_spoof_video_streams_language_GU">Gudžarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Horvaadi</string>
<string name="revanced_spoof_video_streams_language_HU">Ungari</string>
<string name="revanced_spoof_video_streams_language_ID">Indoneesia</string>
<string name="revanced_spoof_video_streams_language_IT">Itaalia</string>
<string name="revanced_spoof_video_streams_language_JA">Jaapani</string>
<string name="revanced_spoof_video_streams_language_KK">Kasahhi</string>
<string name="revanced_spoof_video_streams_language_KO">Korea</string>
<string name="revanced_spoof_video_streams_language_LT">Leedu</string>
<string name="revanced_spoof_video_streams_language_LV">Läti</string>
<string name="revanced_spoof_video_streams_language_MK">Makedoonia</string>
<string name="revanced_spoof_video_streams_language_MN">Mongoolia</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malaisi</string>
<string name="revanced_spoof_video_streams_language_MY">Birma</string>
<string name="revanced_spoof_video_streams_language_NL">Hollandi</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Pandžabi</string>
<string name="revanced_spoof_video_streams_language_PL">Poola</string>
<string name="revanced_spoof_video_streams_language_PT">Portugali</string>
<string name="revanced_spoof_video_streams_language_RO">Rumeenia</string>
<string name="revanced_spoof_video_streams_language_RU">Vene</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakkia</string>
<string name="revanced_spoof_video_streams_language_SL">Sloveenia</string>
<string name="revanced_spoof_video_streams_language_SR">Serbia</string>
<string name="revanced_spoof_video_streams_language_SV">Rootsi</string>
<string name="revanced_spoof_video_streams_language_SW">Suahiili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamiili</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tai</string>
<string name="revanced_spoof_video_streams_language_TR">Türgi</string>
<string name="revanced_spoof_video_streams_language_UK">Ukraina</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnami</string>
<string name="revanced_spoof_video_streams_language_ZH">Hiina</string>
</patch>
</app>
<app id="twitch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">Revanced-asetukset nollattiin</string>
<string name="revanced_settings_import_success">Tuodut %d-asetukset</string>
<string name="revanced_settings_import_failure_parse">Tuonti epäonnistui: %s</string>
<string name="revanced_language_title">ReVancedin kieli</string>
<string name="revanced_language_user_dialog_message">"Joidenkin kielten käännökset saattavat puuttua tai olla puutteellisia.
Voit auttaa uusien kielten kääntämisessä osoitteessa translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Sovelluksen kieli</string>
<string name="revanced_language_AR">Arabia</string>
<string name="revanced_language_AZ">Azeri</string>
<string name="revanced_language_BG">Bulgaria</string>
<string name="revanced_language_BN">Bengali</string>
<string name="revanced_language_CA">Katalaani</string>
<string name="revanced_language_CS">Tšekki</string>
<string name="revanced_language_DA">Tanska</string>
<string name="revanced_language_DE">Saksa</string>
<string name="revanced_language_EL">Kreikka</string>
<string name="revanced_language_EN">Englanti</string>
<string name="revanced_language_ES">Espanja</string>
<string name="revanced_language_ET">Viro</string>
<string name="revanced_language_FA">Persia</string>
<string name="revanced_language_FI">Suomi</string>
<string name="revanced_language_FR">Ranska</string>
<string name="revanced_language_GU">Gudžarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Kroatia</string>
<string name="revanced_language_HU">Unkari</string>
<string name="revanced_language_ID">Indonesia</string>
<string name="revanced_language_IT">Italia</string>
<string name="revanced_language_JA">Japani</string>
<string name="revanced_language_KK">Kazakki</string>
<string name="revanced_language_KO">Korea</string>
<string name="revanced_language_LT">Liettua</string>
<string name="revanced_language_LV">Latvia</string>
<string name="revanced_language_MK">Makedonia</string>
<string name="revanced_language_MN">Mongolia</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malaiji</string>
<string name="revanced_language_MY">Burma</string>
<string name="revanced_language_NL">Hollanti</string>
<string name="revanced_language_OR">Orija</string>
<string name="revanced_language_PA">Pandžabi</string>
<string name="revanced_language_PL">Puola</string>
<string name="revanced_language_PT">Portugali</string>
<string name="revanced_language_RO">Romania</string>
<string name="revanced_language_RU">Venäjä</string>
<string name="revanced_language_SK">Slovakki</string>
<string name="revanced_language_SL">Sloveeni</string>
<string name="revanced_language_SR">Serbia</string>
<string name="revanced_language_SV">Ruotsi</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamili</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thai</string>
<string name="revanced_language_TR">Turkki</string>
<string name="revanced_language_UK">Ukraina</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnam</string>
<string name="revanced_language_ZH">Kiina</string>
<string name="revanced_pref_import_export_title">Tuonti/vienti</string>
<string name="revanced_pref_import_export_summary">Tuo/vie ReVanced-asetukset</string>
<!-- Settings about dialog. -->
@@ -165,7 +221,7 @@ Et saa ilmoitusta odottamattomista tapahtumista."</string>
<string name="revanced_hide_chips_shelf_title">Piilota siruhylly</string>
<string name="revanced_hide_chips_shelf_summary_on">Siruhylly on piilotettu</string>
<string name="revanced_hide_chips_shelf_summary_off">Siruhylly näytetään</string>
<string name="revanced_hide_expandable_chip_title">Piilota laajennettava osio videoiden alle</string>
<string name="revanced_hide_expandable_chip_title">Piilota laajennettava osio videoiden alla</string>
<string name="revanced_hide_expandable_chip_summary_on">Laajennettavat osiot on piilotettu</string>
<string name="revanced_hide_expandable_chip_summary_off">Laajennettavat osiot näytetään</string>
<string name="revanced_hide_community_posts_title">Piilota yhteisöpostaukset</string>
@@ -446,6 +502,9 @@ Tämä ominaisuus on saatavilla vain vanhemmissa laitteissa"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Pyyhkäisyikkunan taustan näkyvyys</string>
<string name="revanced_swipe_threshold_title">Pyyhkäisyn kynnysraja</string>
<string name="revanced_swipe_threshold_summary">Pyyhkäisyä varten tarvittavan kynnyksen määrä</string>
<string name="revanced_swipe_change_video_title">Ota käyttöön videon vaihto pyyhkäisemällä</string>
<string name="revanced_swipe_change_video_summary_on">Pyyhkäisemällä kokoruututilassa siirrytään seuraavaan/edelliseen videoon</string>
<string name="revanced_swipe_change_video_summary_off">Pyyhkäisemällä kokoruututilassa ei siirrytä seuraavaan/edelliseen videoon</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Poista automaattiset tekstitykset käytöstä</string>
@@ -628,10 +687,19 @@ Huomaa: Tämä ottaa pakolla pois myös videomainokset"</string>
<string name="revanced_shorts_player_screen_title">Shorts-soitin</string>
<string name="revanced_shorts_player_screen_summary">Piilota tai näytä Shorts-soittimen osia</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Piilota Shortsit koti-syötteessä</string>
<string name="revanced_hide_shorts_home_title">Piilota Shortsit kotisyötteessä</string>
<string name="revanced_hide_shorts_home_summary_on">Piilotettu kotisyötteessä ja liittyvissä videoissa</string>
<string name="revanced_hide_shorts_home_summary_off">Näytetään kotisyötteessä ja liittyvissä videoissa</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Piilota Shortsit tilaukset-syötteessä</string>
<string name="revanced_hide_shorts_subscriptions_title">Piilota Shortsit tilaussyötteessä</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Piilotettu tilaussyötteessä</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Näytetään tilaussyötteessä</string>
<string name="revanced_hide_shorts_search_title">Piilota Shortsit hakutuloksissa</string>
<string name="revanced_hide_shorts_search_summary_on">Piilotettu hakutuloksissa</string>
<string name="revanced_hide_shorts_search_summary_off">Näytetään hakutuloksissa</string>
<string name="revanced_hide_shorts_history_title">Piilota Shortsit katseluhistoriassa</string>
<string name="revanced_hide_shorts_history_summary_on">Piilotettu katseluhistoriassa</string>
<string name="revanced_hide_shorts_history_summary_off">Näytetään katseluhistoriassa</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Piilota liity-painike</string>
<string name="revanced_hide_shorts_join_button_summary_on">Liity-painike on piilotettu</string>
@@ -719,7 +787,7 @@ Huomaa: Tämä ottaa pakolla pois myös videomainokset"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigointipalkki näytetään</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Poista videoehdotukset-loppunäyttö käytöstä</string>
<string name="revanced_disable_suggested_video_end_screen_title">Poista loppunäytön videoehdotukset käytöstä</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Ehdotetut videot on piilotettu</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Ehdotetut videot näytetään</string>
</patch>
@@ -733,6 +801,13 @@ Huomaa: Tämä ottaa pakolla pois myös videomainokset"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Soittimen ponnahdusikkunat on piilotettu</string>
<string name="revanced_hide_player_popup_panels_summary_off">Soittimen ponnahdusikkunat näytetään</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Poistu kokoruututilasta videon lopussa</string>
<string name="revanced_exit_fullscreen_entry_1">Pois käytöstä</string>
<string name="revanced_exit_fullscreen_entry_2">Pysty</string>
<string name="revanced_exit_fullscreen_entry_3">Vaaka</string>
<string name="revanced_exit_fullscreen_entry_4">Pysty ja vaaka</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Avaa videot koko näytöllä pystyasennossa</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videot avataan kokoruututilassa</string>
@@ -763,7 +838,7 @@ Rajoitus: Ei pidätyksiä ei ehkä näy inkognitotilassa"</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Ei-tykkäykset näytetään prosenttina</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Ei-tykkäykset näytetään numerona</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">Kompakti tykkäyspainike</string>
<string name="revanced_ryd_compact_layout_title">Kompakti tykkää-painike</string>
<string name="revanced_ryd_compact_layout_summary_on">Tykkää-painike on muotoiltu mahdollisimman kapeaksi</string>
<string name="revanced_ryd_compact_layout_summary_off">Tykkää-painike on muotoiltu parhaan näköiseksi</string>
<string name="revanced_ryd_toast_on_connection_error_title">Näytä ponnahdusilmoitus, jos API ei ole käytettävissä</string>
@@ -817,12 +892,12 @@ Tämä ominaisuus toimii parhaiten 720p tai alhaisemman laatuisilla videoilla ja
<string name="revanced_sb_enable_voting_sum_on">Osion äänestyspainike näytetään</string>
<string name="revanced_sb_enable_voting_sum_off">Osion äänestyspainiketta ei näytetä</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_enable_compact_skip_button">Käytä pientä ohituspainiketta</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">Ohituspainike on muotoiltu mahdollisimman kapeaksi</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">Ohituspainike on muotoiltu parhaan näköiseksi</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Piilota ohituspainike automaattisesti</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Ohituspainike piiloutuu muutaman sekunnin jälkeen</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Ohituspainike näytetään koko osion ajan</string>
<string name="revanced_sb_enable_compact_skip_button">Käytä kompaktia ohita-painiketta</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">Ohita-painike on muotoiltu mahdollisimman kapeaksi</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">Ohita-painike on muotoiltu parhaan näköiseksi</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Piilota ohita-painike automaattisesti</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Ohita-painike piiloutuu muutaman sekunnin kuluttua</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Ohita-painike näytetään koko osion ajan</string>
<string name="revanced_sb_general_skiptoast">Näytä ponnahdusilmoitus automaattisesti ohitettaessa</string>
<string name="revanced_sb_general_skiptoast_sum_on">Ponnahdusilmoitus näytetään, kun osio ohitetaan automaattisesti. Napauta tästä nähdäksesi esimerkin</string>
<string name="revanced_sb_general_skiptoast_sum_off">Ponnahdusilmoitusta ei näytetä. Napauta tästä nähdäksesi esimerkin</string>
@@ -924,7 +999,7 @@ Käyttäjätunnus on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_skipped_multiple_segments">Ohitettiin useita osioita</string>
<string name="revanced_sb_skip_automatically">Ohita automaattisesti</string>
<string name="revanced_sb_skip_automatically_once">Ohita automaattisesti kerran</string>
<string name="revanced_sb_skip_showbutton">Näytä ohituspainike</string>
<string name="revanced_sb_skip_showbutton">Näytä ohita-painike</string>
<string name="revanced_sb_skip_seekbaronly">Näytä liukusäätimessä</string>
<string name="revanced_sb_skip_ignore">Poista käytöstä</string>
<string name="revanced_sb_submit_failed_invalid">Osiota ei voitu lähettää: %s</string>
@@ -1001,6 +1076,23 @@ Haluatko lähettää?"</string>
<string name="revanced_sb_reset">Nollaa</string>
<string name="revanced_sb_about">Tietoja</string>
<string name="revanced_sb_about_api_sum">Tiedot tarjoaa SponsorBlock API. Napauta tätä saadaksesi lisätietoja ja nähdäksesi lataukset muille alustoille</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Ulkoasun asettelu</string>
<string name="revanced_change_form_factor_entry_1">Oletus</string>
<string name="revanced_change_form_factor_entry_2">Puhelin</string>
<string name="revanced_change_form_factor_entry_3">Tabletti</string>
<string name="revanced_change_form_factor_entry_4">Ajoneuvo</string>
<string name="revanced_change_form_factor_user_dialog_message">"Muutokset sisältävät:
Tabletti-asettelu
• Yhteisöpostaukset on piilotettu
Ajoneuvo-asettelu
• Katseluhistoriavalikko on piilotettu
• Tutustu-välilehti on palautettu
• Shortsit avautuvat tavallisessa soittimessa
• Syöte on järjestetty aiheiden ja kanavien mukaan"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Naamioi sovellusversio</string>
@@ -1015,6 +1107,7 @@ Jos tämä ominaisuus kytketään myöhemmin pois, on suositeltavaa tyhjentää
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Naamioitava kohdeversio</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Palauta vanhat Shorts-soittimen kuvakkeet</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Palauta vanhat navigointi- ja työkalupalkin kuvakkeet</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Palauta laaja videonopeus- ja laatuvalikko</string>
@@ -1058,12 +1151,6 @@ Jos tämä ominaisuus kytketään myöhemmin pois, on suositeltavaa tyhjentää
<string name="revanced_shorts_autoplay_background_summary_on">Shortsit toistetaan automaattisesti myös taustalla</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shortsit toistuvat uudelleen taustatoiston aikana</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Ota tablettiasettelu käyttöön</string>
<string name="revanced_tablet_layout_summary_on">Tablettiasettelu on käytössä</string>
<string name="revanced_tablet_layout_summary_off">Tablettiasettelu ei ole käytössä</string>
<string name="revanced_tablet_layout_user_dialog_message">Yhteisöpostaukset eivät näy tablettiasettelussa</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minisoitin</string>
<string name="revanced_miniplayer_screen_summary">Muuta sovelluksen tyyliä pienennetyssä soittimessa</string>
@@ -1227,6 +1314,7 @@ Tämä voi avata korkealaatuisemmat videot"</string>
<string name="revanced_force_original_audio_title">Pakota alkuperäinen ääni</string>
<string name="revanced_force_original_audio_summary_on">Käytetään alkuperäistä ääntä</string>
<string name="revanced_force_original_audio_summary_off">Käytetään oletusääntä</string>
<string name="revanced_force_original_audio_not_available">Käyttääksesi tätä ominaisuutta, vaihda virtanaamiointi iOS-asiakastyyppiiin</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1254,6 +1342,8 @@ Tämä voi avata korkealaatuisemmat videot"</string>
<string name="revanced_custom_playback_speeds_invalid">Mukautetut nopeudet on oltava alle %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Virheelliset mukautetut toiston nopeudet</string>
<string name="revanced_custom_playback_speeds_auto">Automaattinen</string>
<string name="revanced_speed_tap_and_hold_title">Mukautettu napauta ja pidä pohjassa -nopeus</string>
<string name="revanced_speed_tap_and_hold_summary">Toistonopeus 08 välillä</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Muista toistonopeuden muutokset</string>
@@ -1290,66 +1380,19 @@ Videon toisto ei välttämättä toimi"</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"Tämän käyttöönotto voi parantaa akun kestoa ja korjata toiston tökkimisen.
AVC:n maksimiresoluutio on 1080p, Opus-äänikoodekki ei ole käytettävissä, ja videon toisto käyttää enemmän Internet-dataa kuin VP9 tai AV1."</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">iOS-naamioinnin haittavaikutukset</string>
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• Elokuvat tai maksulliset videot eivät välttämättä toistu
• Tasainen äänenvoimakkuus ei ole käytettävissä
• Videot päättyvät 1 sekuntia etuajassa"</string>
<string name="revanced_spoof_video_streams_about_android_title">Android-naamioinnin haittavaikutukset</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• Ääniraitavalikko puuttuu
• Tasainen äänenvoimakkuus ei ole käytettävissä
• Alkuperäisen äänen pakotus ei ole käytettävissä"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Ei AV1-videokoodekkia</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Näytä teknisissä tiedoissa</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Asiakastyyppi näytetään teknisissä tiedoissa</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Asiakastyyppi on piilotettu teknisissä tiedoissa</string>
<string name="revanced_spoof_video_streams_language_title">VR-äänivirran oletuskieli</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Tilaus kieli</string>
<string name="revanced_spoof_video_streams_language_AR">Arabia</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaidžan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaria</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalin</string>
<string name="revanced_spoof_video_streams_language_CA">Katalaani</string>
<string name="revanced_spoof_video_streams_language_CS">Tšekki</string>
<string name="revanced_spoof_video_streams_language_DA">Tanska</string>
<string name="revanced_spoof_video_streams_language_DE">Saksa</string>
<string name="revanced_spoof_video_streams_language_EL">Kreikka</string>
<string name="revanced_spoof_video_streams_language_EN">Englanti</string>
<string name="revanced_spoof_video_streams_language_ES">Espanja</string>
<string name="revanced_spoof_video_streams_language_ET">Viro</string>
<string name="revanced_spoof_video_streams_language_FA">Persia</string>
<string name="revanced_spoof_video_streams_language_FI">Suomi</string>
<string name="revanced_spoof_video_streams_language_FR">Ranska</string>
<string name="revanced_spoof_video_streams_language_GU">Gudžarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatia</string>
<string name="revanced_spoof_video_streams_language_HU">Unkari</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesialainen</string>
<string name="revanced_spoof_video_streams_language_IT">Italia</string>
<string name="revanced_spoof_video_streams_language_JA">Japani</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakki</string>
<string name="revanced_spoof_video_streams_language_KO">Korealainen</string>
<string name="revanced_spoof_video_streams_language_LT">Liettua</string>
<string name="revanced_spoof_video_streams_language_LV">Latvia</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonia</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolia</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malaiji</string>
<string name="revanced_spoof_video_streams_language_MY">Myanmar</string>
<string name="revanced_spoof_video_streams_language_NL">Hollanti</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Puola</string>
<string name="revanced_spoof_video_streams_language_PT">Portugali</string>
<string name="revanced_spoof_video_streams_language_RO">Romania</string>
<string name="revanced_spoof_video_streams_language_RU">Venäjä</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakki</string>
<string name="revanced_spoof_video_streams_language_SL">Sloveeni</string>
<string name="revanced_spoof_video_streams_language_SR">Serbia</string>
<string name="revanced_spoof_video_streams_language_SV">Ruotsi</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamili</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thaimaalainen</string>
<string name="revanced_spoof_video_streams_language_TR">Turkki</string>
<string name="revanced_spoof_video_streams_language_UK">Ukraina</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnam</string>
<string name="revanced_spoof_video_streams_language_ZH">Kiina</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">I-reset ang mga ReVanced na setting sa default</string>
<string name="revanced_settings_import_success">Na-import ang %d na mga setting</string>
<string name="revanced_settings_import_failure_parse">Nabigo ang pag-import: %s</string>
<string name="revanced_language_title">Wika ng ReVanced</string>
<string name="revanced_language_user_dialog_message">"Ang mga pagsasalin para sa ilang mga wika ay maaaring nawawala o hindi kumpleto.
Upang magsalin ng mga bagong wika, bisitahin ang translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Wika ng app</string>
<string name="revanced_language_AR">Arabe</string>
<string name="revanced_language_AZ">Azerbaijani</string>
<string name="revanced_language_BG">Bulgarian</string>
<string name="revanced_language_BN">Bengali</string>
<string name="revanced_language_CA">Katalan</string>
<string name="revanced_language_CS">Czech</string>
<string name="revanced_language_DA">Danish</string>
<string name="revanced_language_DE">German</string>
<string name="revanced_language_EL">Greek</string>
<string name="revanced_language_EN">English</string>
<string name="revanced_language_ES">Spanish</string>
<string name="revanced_language_ET">Estonian</string>
<string name="revanced_language_FA">Persian</string>
<string name="revanced_language_FI">Finnish</string>
<string name="revanced_language_FR">French</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Croatian</string>
<string name="revanced_language_HU">Hungarian</string>
<string name="revanced_language_ID">Indonesian</string>
<string name="revanced_language_IT">Italian</string>
<string name="revanced_language_JA">Japanese</string>
<string name="revanced_language_KK">Kazakh</string>
<string name="revanced_language_KO">Korean</string>
<string name="revanced_language_LT">Lithuanian</string>
<string name="revanced_language_LV">Latvian</string>
<string name="revanced_language_MK">Macedonian</string>
<string name="revanced_language_MN">Mongolian</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malay</string>
<string name="revanced_language_MY">Burmese</string>
<string name="revanced_language_NL">Dutch</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Punjabi</string>
<string name="revanced_language_PL">Polish</string>
<string name="revanced_language_PT">Portuguese</string>
<string name="revanced_language_RO">Romanian</string>
<string name="revanced_language_RU">Russian</string>
<string name="revanced_language_SK">Slovak</string>
<string name="revanced_language_SL">Slovene</string>
<string name="revanced_language_SR">Serbian</string>
<string name="revanced_language_SV">Swedish</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thai</string>
<string name="revanced_language_TR">Turkish</string>
<string name="revanced_language_UK">Ukrainian</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamese</string>
<string name="revanced_language_ZH">Chinese</string>
<string name="revanced_pref_import_export_title">Mag-import / Mag-export</string>
<string name="revanced_pref_import_export_summary">I-import / I-export ang mga setting ng ReVanced</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ Ang tampok na ito ay magagamit lamang para sa mga mas lumang device"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Ang visibility ng swipe overlay na background</string>
<string name="revanced_swipe_threshold_title">I-swipe ang magnitude threshold</string>
<string name="revanced_swipe_threshold_summary">Ang halaga ng threshold para sa pag-swipe na magaganap</string>
<string name="revanced_swipe_change_video_title">I-enable ang swipe para magpalit ng mga video</string>
<string name="revanced_swipe_change_video_summary_on">Ang pag-swipe sa full screen mode ay magpapalit sa susunod/nakaraang video</string>
<string name="revanced_swipe_change_video_summary_off">Ang pag-swipe sa full screen ay hindi magpapalit sa susunod/nakaraang video</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Huwag paganahin ang mga auto caption</string>
@@ -629,15 +688,18 @@ Tandaan: Ang pagpapagana nito ay nagtatago rin ng mga ad ng video"</string>
<string name="revanced_shorts_player_screen_summary">Itago o ipakita ang mga sangkap sa Shorts player</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Itago ang Shorts sa home feed</string>
<string name="revanced_hide_shorts_home_summary_on">Nakatago ang home feed at mga kaugnay na video</string>
<string name="revanced_hide_shorts_home_summary_off">Ipinakita ang home feed at mga kaugnay na video</string>
<string name="revanced_hide_shorts_home_summary_on">Nakatago sa home feed at mga kaugnay na video</string>
<string name="revanced_hide_shorts_home_summary_off">Ipinakita sa home feed at mga kaugnay na video</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Itago ang Shorts sa feed ng subscription</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Nakatago sa feed ng subscription</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Ipinakita sa feed ng subscription</string>
<string name="revanced_hide_shorts_search_title">Itago ang Shorts sa mga resulta ng paghahanap</string>
<string name="revanced_hide_shorts_search_summary_on">Nakatago sa mga resulta ng paghahanap</string>
<string name="revanced_hide_shorts_search_summary_off">Ipinakita sa mga resulta ng paghahanap</string>
<string name="revanced_hide_shorts_history_title">Itago ang Shorts sa watch history</string>
<string name="revanced_hide_shorts_history_summary_on">Nakatago sa kasaysayan ng panonood</string>
<string name="revanced_hide_shorts_history_summary_off">Ipinapakita sa watch history</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Itago ang button na sumali</string>
<string name="revanced_hide_shorts_join_button_summary_on">Nakatago ang button na sumali</string>
@@ -739,6 +801,13 @@ Tandaan: Ang pagpapagana nito ay nagtatago rin ng mga ad ng video"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Nakatago ang mga popup panel ng player</string>
<string name="revanced_hide_player_popup_panels_summary_off">Ipinapakita ang mga popup panel ng player</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Lumabas sa fullscreen mode sa katapusan ng video</string>
<string name="revanced_exit_fullscreen_entry_1">Na-disable</string>
<string name="revanced_exit_fullscreen_entry_2">Portrait</string>
<string name="revanced_exit_fullscreen_entry_3">Landscape</string>
<string name="revanced_exit_fullscreen_entry_4">Portrait at landscape</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Buksan ang mga video sa fullscreen portrait</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Binubuksan ang mga video sa fullscreen</string>
@@ -1007,6 +1076,19 @@ Isumite na ba?"</string>
<string name="revanced_sb_reset">I-reset</string>
<string name="revanced_sb_about">Tungkol</string>
<string name="revanced_sb_about_api_sum">Ang data ay ibinibigay ng SponsorBlock API. Mag-tap dito para matuto pa at makakita ng mga download para sa iba pang platform</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_entry_4">Awtomatiko</string>
<string name="revanced_change_form_factor_user_dialog_message">"Kasama sa mga pagbabago:
Layout ng tablet
• Nakatago ang mga post ng komunidad
Layout ng Automotive
• Nakatago ang menu ng history ng panonood
• Ibinabalik ang tab ng pagtuklas
• Bubukas ang Shorts sa regular na manlalaro
• Inaayos ang feed ayon sa mga paksa at channel"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Spoof na bersyon ng app</string>
@@ -1021,6 +1103,7 @@ Kung mamaya ay patayin, inirerekumenda na i-clear ang data ng app upang maiwasan
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Target na bersyon ng Spoof app</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Ibalik ang mga lumang icon ng Shorts player</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Ibalik ang mga lumang icon ng navigation at toolbar</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Ibalik ang RYD sa incognito mode ng Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Ibalik ang malawak na bilis ng video &amp; kalidad na menu</string>
@@ -1064,12 +1147,6 @@ Kung mamaya ay patayin, inirerekumenda na i-clear ang data ng app upang maiwasan
<string name="revanced_shorts_autoplay_background_summary_on">Awtomatikong magpa-play ang mga Shorts sa background</string>
<string name="revanced_shorts_autoplay_background_summary_off">Uulitin ang mga Shorts sa background</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Paganahin ang layout ng tablet</string>
<string name="revanced_tablet_layout_summary_on">Naka-enable ang layout ng tablet</string>
<string name="revanced_tablet_layout_summary_off">Naka-disable ang layout ng tablet</string>
<string name="revanced_tablet_layout_user_dialog_message">Hindi lumalabas ang mga post sa komunidad sa mga layout ng tablet</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Miniplayer</string>
<string name="revanced_miniplayer_screen_summary">Baguhin ang istilo ng in app minimized na player</string>
@@ -1234,6 +1311,7 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
<string name="revanced_force_original_audio_title">Pilitin ang original audio</string>
<string name="revanced_force_original_audio_summary_on">Gumagamit ng original audio</string>
<string name="revanced_force_original_audio_summary_off">Gumagamit ng default audio</string>
<string name="revanced_force_original_audio_not_available">Upang magamit ang tampok na ito, baguhin ang stream spoofing sa uri ng kliyente ng iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1261,6 +1339,8 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
<string name="revanced_custom_playback_speeds_invalid">Ang mga custom na bilis ay dapat na mas mababa sa %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Hindi wastong custom na bilis ng paglalaro</string>
<string name="revanced_custom_playback_speeds_auto">Awtomatik</string>
<string name="revanced_speed_tap_and_hold_title">Custom speed para sa pag-tap at pag-hold</string>
<string name="revanced_speed_tap_and_hold_summary">Tugtugin ang bilis ng playback sa pagitan ng 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Tandaan ang mga pagbabago sa bilis ng pag-playback</string>
@@ -1305,62 +1385,11 @@ Ang AVC ay may pinakamataas na resolusyon na 1080p, ang codec ng audio ng Opus a
<string name="revanced_spoof_video_streams_about_android_summary">"• Nawawala ang menu ng audio track
• Hindi magagamit ang stable na volume
• Hindi magagamit ang pagpilit sa orihinal na audio"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Walang AV1 video codec</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Ipakita sa Mga Istatistika para sa mga nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Ipinapakita ang uri ng kliyente sa Mga Istatistika para sa mga nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Nakatago ang kliyente sa Mga Istatistika para sa mga nerds</string>
<string name="revanced_spoof_video_streams_language_title">Wika ng default na audio stream ng VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Wika ng account</string>
<string name="revanced_spoof_video_streams_language_AR">Arabe</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaijani</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarian</string>
<string name="revanced_spoof_video_streams_language_BN">Bengali</string>
<string name="revanced_spoof_video_streams_language_CA">Catalan</string>
<string name="revanced_spoof_video_streams_language_CS">Czech</string>
<string name="revanced_spoof_video_streams_language_DA">Danish</string>
<string name="revanced_spoof_video_streams_language_DE">Aleman</string>
<string name="revanced_spoof_video_streams_language_EL">Griyego</string>
<string name="revanced_spoof_video_streams_language_EN">Ingles</string>
<string name="revanced_spoof_video_streams_language_ES">Espanyol</string>
<string name="revanced_spoof_video_streams_language_ET">Estonian</string>
<string name="revanced_spoof_video_streams_language_FA">Persian</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandes</string>
<string name="revanced_spoof_video_streams_language_FR">Pranses</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatiyano</string>
<string name="revanced_spoof_video_streams_language_HU">Hungarian</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesian</string>
<string name="revanced_spoof_video_streams_language_IT">Italyano</string>
<string name="revanced_spoof_video_streams_language_JA">Hapones</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Koreano</string>
<string name="revanced_spoof_video_streams_language_LT">Lithuanian</string>
<string name="revanced_spoof_video_streams_language_LV">Latvian</string>
<string name="revanced_spoof_video_streams_language_MK">Macedonian</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolian</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malay</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Olandes</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polish</string>
<string name="revanced_spoof_video_streams_language_PT">Portuges</string>
<string name="revanced_spoof_video_streams_language_RO">Romanian</string>
<string name="revanced_spoof_video_streams_language_RU">Ruso</string>
<string name="revanced_spoof_video_streams_language_SK">Slovak</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbian</string>
<string name="revanced_spoof_video_streams_language_SV">Suweko</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thai</string>
<string name="revanced_spoof_video_streams_language_TR">Turko</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainian</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Intsik</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">Paramètres ReVanced réinitialisés par défaut</string>
<string name="revanced_settings_import_success">%d paramètres importés</string>
<string name="revanced_settings_import_failure_parse">Échec de l\'importation : %s</string>
<string name="revanced_language_title">Langue ReVanced</string>
<string name="revanced_language_user_dialog_message">"Les traductions pour certaines langues peuvent être manquantes ou incomplètes.
Pour traduire de nouvelles langues, visitez translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Langue de l\'application</string>
<string name="revanced_language_AR">Arabe</string>
<string name="revanced_language_AZ">Azéri</string>
<string name="revanced_language_BG">Bulgare</string>
<string name="revanced_language_BN">Bengali</string>
<string name="revanced_language_CA">Catalan</string>
<string name="revanced_language_CS">Tchèque</string>
<string name="revanced_language_DA">Danois</string>
<string name="revanced_language_DE">Allemand</string>
<string name="revanced_language_EL">Grec</string>
<string name="revanced_language_EN">Anglais</string>
<string name="revanced_language_ES">Espagnol</string>
<string name="revanced_language_ET">Estonien</string>
<string name="revanced_language_FA">Persan</string>
<string name="revanced_language_FI">Finnois</string>
<string name="revanced_language_FR">Français</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Croate</string>
<string name="revanced_language_HU">Hongrois</string>
<string name="revanced_language_ID">Indonésien</string>
<string name="revanced_language_IT">Italien</string>
<string name="revanced_language_JA">Japonais</string>
<string name="revanced_language_KK">Kazakh</string>
<string name="revanced_language_KO">Coréen</string>
<string name="revanced_language_LT">Lituanien</string>
<string name="revanced_language_LV">Letton</string>
<string name="revanced_language_MK">Macédonien</string>
<string name="revanced_language_MN">Mongol</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malais</string>
<string name="revanced_language_MY">Birman</string>
<string name="revanced_language_NL">Néerlandais</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Pendjabi</string>
<string name="revanced_language_PL">Polonais</string>
<string name="revanced_language_PT">Portugais</string>
<string name="revanced_language_RO">Roumain</string>
<string name="revanced_language_RU">Russe</string>
<string name="revanced_language_SK">Slovaque</string>
<string name="revanced_language_SL">Slovène</string>
<string name="revanced_language_SR">Serbe</string>
<string name="revanced_language_SV">Suédois</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamoul</string>
<string name="revanced_language_TE">Télougou</string>
<string name="revanced_language_TH">Thaï</string>
<string name="revanced_language_TR">Turc</string>
<string name="revanced_language_UK">Ukrainien</string>
<string name="revanced_language_UR">Ourdou</string>
<string name="revanced_language_VI">Vietnamien</string>
<string name="revanced_language_ZH">Chinois</string>
<string name="revanced_pref_import_export_title">Importer/Exporter</string>
<string name="revanced_pref_import_export_summary">Importer/Exporter les paramètres ReVanced</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ Cette fonctionnalité est uniquement disponible pour les appareils plus anciens"
<string name="revanced_swipe_overlay_background_alpha_summary">La visibilité de l\'overlay en arrière-plan lors des gestes</string>
<string name="revanced_swipe_threshold_title">Intensité des gestes</string>
<string name="revanced_swipe_threshold_summary">L\'intensité du mouvement à effectuer pour que les gestes se produise</string>
<string name="revanced_swipe_change_video_title">Activer glisser pour changer de vidéo</string>
<string name="revanced_swipe_change_video_summary_on">En mode plein écran, le glissement permet de passer à la vidéo suivante/précédente</string>
<string name="revanced_swipe_change_video_summary_off">En mode plein écran, le glissement ne permet pas de passer à la vidéo suivante/précédente</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Désactiver les sous-titres automatiques</string>
@@ -629,9 +688,18 @@ Remarque : l'activation de cette option masque également de force les annonces
<string name="revanced_shorts_player_screen_summary">Cacher ou afficher les composants dans le joueur Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Cacher les Shorts dans la page d\'accueil</string>
<string name="revanced_hide_shorts_home_summary_on">Masqué dans le flux d\'accueil et les vidéos associées</string>
<string name="revanced_hide_shorts_home_summary_off">Affiché dans le flux d\'accueil et les vidéos associées</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Cacher les Shorts dans le flux d\'abonnement</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Masqué dans le flux des abonnements</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Affiché dans le flux des abonnements</string>
<string name="revanced_hide_shorts_search_title">Cacher les Shorts dans les résultats de recherche</string>
<string name="revanced_hide_shorts_search_summary_on">Masqué dans les résultats de recherche</string>
<string name="revanced_hide_shorts_search_summary_off">Affiché dans les résultats de recherche</string>
<string name="revanced_hide_shorts_history_title">Masquer les Shorts dans l\'historique de visionnage</string>
<string name="revanced_hide_shorts_history_summary_on">Masqué dans l\'historique de visionnage</string>
<string name="revanced_hide_shorts_history_summary_off">Affichages dans l\'historique de visionnage</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Masquer le bouton de jointure</string>
<string name="revanced_hide_shorts_join_button_summary_on">Le bouton \"Rejoindre\" est masqué</string>
@@ -733,6 +801,13 @@ Remarque : l'activation de cette option masque également de force les annonces
<string name="revanced_hide_player_popup_panels_summary_on">Les panneaux contextuels du lecteur sont masqués</string>
<string name="revanced_hide_player_popup_panels_summary_off">Les panneaux contextuels du lecteur sont affichés</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Sortir du mode plein écran à la fin de la vidéo</string>
<string name="revanced_exit_fullscreen_entry_1">Désactivé</string>
<string name="revanced_exit_fullscreen_entry_2">Quitter le mode plein écran</string>
<string name="revanced_exit_fullscreen_entry_3">Paysage</string>
<string name="revanced_exit_fullscreen_entry_4">Portrait et paysage</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Ouvrir les vidéos en plein écran en mode portrait</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Les vidéos s\'ouvrent en plein écran</string>
@@ -1001,6 +1076,23 @@ Déjà existant"</string>
<string name="revanced_sb_reset">Réinitialiser</string>
<string name="revanced_sb_about">À propos</string>
<string name="revanced_sb_about_api_sum">Les données sont fournies par l\'API SponsorBlock. Appuyez ici pour en savoir plus et voir les téléchargements pour d\'autres plates-formes</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Facteur de forme de la mise en page</string>
<string name="revanced_change_form_factor_entry_1">Défaut</string>
<string name="revanced_change_form_factor_entry_2">Téléphone</string>
<string name="revanced_change_form_factor_entry_3">Tablette</string>
<string name="revanced_change_form_factor_entry_4">Automobile</string>
<string name="revanced_change_form_factor_user_dialog_message">"Les modifications incluent :
Disposition pour tablette
• Les publications de la communauté sont masquées
Disposition pour automobile
• Le menu de lhistorique de visionnement est masqué
• Longlet Explorer est restauré
• Les Shorts souvrent dans le lecteur habituel
• Le fil dactualité est organisé par sujet et par chaîne"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Usurpation de la version de l\'appli</string>
@@ -1015,6 +1107,7 @@ Si cette option est désactivée par la suite, il est recommandé de vider les d
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Cible pour usurper la version de l\'application</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Restaure les anciennes icônes du lecteur de Shorts </string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Restaurer les anciennes icônes de navigation et de la barre d\'outils</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaure RYD en mode Shorts incognito</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaure le menu de vitesse &amp; de qualité de la vidéo large</string>
@@ -1058,12 +1151,6 @@ Si cette option est désactivée par la suite, il est recommandé de vider les d
<string name="revanced_shorts_autoplay_background_summary_on">La lecture en arrière-plan des Shorts sera automatique</string>
<string name="revanced_shorts_autoplay_background_summary_off">La lecture en arrière-plan des Shorts se répétera</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Activer la disposition de la tablette</string>
<string name="revanced_tablet_layout_summary_on">La mise en page tablette est activée</string>
<string name="revanced_tablet_layout_summary_off">La disposition de la tablette est désactivée</string>
<string name="revanced_tablet_layout_user_dialog_message">Les messages de la communauté n\'apparaissent pas sur la disposition de la tablette</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Lecteur réduit</string>
<string name="revanced_miniplayer_screen_summary">Changer le style du lecteur réduit dans l\'application</string>
@@ -1204,7 +1291,7 @@ L'activation de cette option peut déverrouiller des qualités vidéo plus élev
<string name="microg_settings_summary">Paramètres de GmsCore</string>
</patch>
<patch id="misc.links.bypassURLRedirectsPatch">
<string name="revanced_bypass_url_redirects_title">URL yönlendirmelerini atla</string>
<string name="revanced_bypass_url_redirects_title">Contourner les redirections d\'URL</string>
<string name="revanced_bypass_url_redirects_summary_on">Les redirections d\'URL sont contournées</string>
<string name="revanced_bypass_url_redirects_summary_off">Les redirections d\'URL ne sont pas contournées</string>
</patch>
@@ -1227,6 +1314,7 @@ L'activation de cette option peut déverrouiller des qualités vidéo plus élev
<string name="revanced_force_original_audio_title">Force audio dorigine</string>
<string name="revanced_force_original_audio_summary_on">Utilisation de la piste audio d\'origine</string>
<string name="revanced_force_original_audio_summary_off">Utilisation de l\'audio par défaut</string>
<string name="revanced_force_original_audio_not_available">Pour utiliser cette fonction, changez le type d\'usurpation du flux en type client iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1254,6 +1342,8 @@ L'activation de cette option peut déverrouiller des qualités vidéo plus élev
<string name="revanced_custom_playback_speeds_invalid">Les vitesses personnalisées doivent être inférieures à %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Vitesses de lecture personnalisées non valides</string>
<string name="revanced_custom_playback_speeds_auto">Automatique</string>
<string name="revanced_speed_tap_and_hold_title">Vitesse de la lecture tactile</string>
<string name="revanced_speed_tap_and_hold_summary">Vitesse de lecture entre 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Se souvenir des changements de vitesse de lecture</string>
@@ -1294,66 +1384,15 @@ AVC a une résolution maximale de 1080p, le codec audio Opus n'est pas disponibl
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• Les films ou les vidéos payantes risquent de ne pas être lus
• Le volume stable n'est pas disponible
• Les vidéos se terminent 1 seconde plus tôt"</string>
<string name="revanced_spoof_video_streams_about_android_title">Effets secondaires du hameçonnage Android</string>
<string name="revanced_spoof_video_streams_about_android_title">Effets secondaires de l\'usurpation d\'identité Android</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• Le menu des pistes audio est manquant
• Le volume stable n'est pas disponible
• Forcer l'audio d'origine n'est pas disponible"</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Afficher dans Stats pour les nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Le type de client est affiché dans Stats pour les nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Le client est caché dans Stats pour les nerds</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Aucun codec vidéo AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Afficher les Stats pour les nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Le type de client est affiché dans les Stats pour les nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Le client est caché dans les Stats pour les nerds</string>
<string name="revanced_spoof_video_streams_language_title">Langue du flux audio par défaut VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Langue de l\'application</string>
<string name="revanced_spoof_video_streams_language_AR">Arabe</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaïdjanais</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgare</string>
<string name="revanced_spoof_video_streams_language_BN">Bengali</string>
<string name="revanced_spoof_video_streams_language_CA">Catalan</string>
<string name="revanced_spoof_video_streams_language_CS">Tchèque</string>
<string name="revanced_spoof_video_streams_language_DA">Danois</string>
<string name="revanced_spoof_video_streams_language_DE">Allemand</string>
<string name="revanced_spoof_video_streams_language_EL">Grecque</string>
<string name="revanced_spoof_video_streams_language_EN">Anglais</string>
<string name="revanced_spoof_video_streams_language_ES">Espagnol</string>
<string name="revanced_spoof_video_streams_language_ET">Estonien</string>
<string name="revanced_spoof_video_streams_language_FA">Perse</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandais</string>
<string name="revanced_spoof_video_streams_language_FR">Français</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croate</string>
<string name="revanced_spoof_video_streams_language_HU">Hongrois</string>
<string name="revanced_spoof_video_streams_language_ID">Indonésien</string>
<string name="revanced_spoof_video_streams_language_IT">Italien</string>
<string name="revanced_spoof_video_streams_language_JA">Japonais</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Coréen</string>
<string name="revanced_spoof_video_streams_language_LT">Lituanien</string>
<string name="revanced_spoof_video_streams_language_LV">Lettonie</string>
<string name="revanced_spoof_video_streams_language_MK">Macédonien</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malais</string>
<string name="revanced_spoof_video_streams_language_MY">Birman</string>
<string name="revanced_spoof_video_streams_language_NL">Néerlandais</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Pendjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polonais</string>
<string name="revanced_spoof_video_streams_language_PT">Portugais</string>
<string name="revanced_spoof_video_streams_language_RO">Roumain</string>
<string name="revanced_spoof_video_streams_language_RU">Russe</string>
<string name="revanced_spoof_video_streams_language_SK">Slovaque</string>
<string name="revanced_spoof_video_streams_language_SL">Slovène</string>
<string name="revanced_spoof_video_streams_language_SR">Serbe</string>
<string name="revanced_spoof_video_streams_language_SV">Suédois</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamoul</string>
<string name="revanced_spoof_video_streams_language_TE">Télougou</string>
<string name="revanced_spoof_video_streams_language_TH">Thaï</string>
<string name="revanced_spoof_video_streams_language_TR">Turc</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainien</string>
<string name="revanced_spoof_video_streams_language_UR">Ourdou</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamien</string>
<string name="revanced_spoof_video_streams_language_ZH">Chinois</string>
</patch>
</app>
<app id="twitch">

View File

@@ -28,8 +28,8 @@ Second \"item\" text"</string>
<string name="revanced_check_environment_failed_message">&lt;h5&gt;Is cosúil nach bhfuil an aip seo paiteanta agat.&lt;/h5&gt;&lt;br&gt;Seans nach bhfeidhmeoidh an aip seo i gceart, &lt;b&gt;d\'fhéadfadh sé a bheith díobhálach nó fiú contúirteach le húsáid&lt;/b&gt;&lt; br&gt;&lt;br&gt;Tugann na seiceálacha seo le tuiscint go bhfuil an aip seo réamhphatáilte nó faighte ó dhuine éigin eile:&lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt; &lt;b&gt;díshuiteáil an aip seo agus paiste tú féin&lt;/b&gt; chun a chinntiú go bhfuil tú ag úsáid aip atá bailíochtaithe agus slán.&lt;p&gt;&lt;br&gt;Má dhéantar neamhaird de, ní thaispeánfar an rabhadh seo ach faoi dhó.</string>
<string name="revanced_check_environment_not_same_patching_device">Paisteáilte ar ghléas eile</string>
<string name="revanced_check_environment_manager_not_expected_installer">Gan a bheith suiteáilte ag ReVanced Manager</string>
<string name="revanced_check_environment_not_near_patch_time">Patched níos mó ná 10 nóiméad ó shin</string>
<string name="revanced_check_environment_not_near_patch_time_days">Patáilte %s lá ó shin</string>
<string name="revanced_check_environment_not_near_patch_time">Paisteáilte níos mó ná 10 nóiméad ó shin</string>
<string name="revanced_check_environment_not_near_patch_time_days">Paisteáilte %s lá ó shin</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">Tá dáta tógála APK truaillithe</string>
</patch>
<patch id="misc.settings.settingsResourcePatch">
@@ -38,11 +38,67 @@ Second \"item\" text"</string>
<string name="revanced_settings_reset">Athshocraigh</string>
<string name="revanced_settings_restart_title">Athnuachan agus atosaigh</string>
<string name="revanced_settings_restart">Athosaigh</string>
<string name="revanced_settings_import">Allmhairiú</string>
<string name="revanced_settings_import">Iompórtáil</string>
<string name="revanced_settings_import_copy">Cóipeáil</string>
<string name="revanced_settings_import_reset">Athshocraigh socruithe ReVanced go réamhshocrú</string>
<string name="revanced_settings_import_success">Socruithe %d allmhairithe</string>
<string name="revanced_settings_import_success">Iompórtáladh %d socruithe</string>
<string name="revanced_settings_import_failure_parse">Theip ar allmhairiú: %s</string>
<string name="revanced_language_title">Teanga ReVanced</string>
<string name="revanced_language_user_dialog_message">"D'fhéadfadh aistriúcháin do roinnt teangacha a bheith ar iarraidh nó mí-iomlán.
Chun teangacha nua a aistriú, tabhair cuairt ar translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Teanga aip</string>
<string name="revanced_language_AR">Araibis</string>
<string name="revanced_language_AZ">Asarbaiseáinis</string>
<string name="revanced_language_BG">Bulgáiris</string>
<string name="revanced_language_BN">Beangáilis</string>
<string name="revanced_language_CA">Catalóinis</string>
<string name="revanced_language_CS">Seicis</string>
<string name="revanced_language_DA">Danmhairgis</string>
<string name="revanced_language_DE">Gearmáinis</string>
<string name="revanced_language_EL">Gréigis</string>
<string name="revanced_language_EN">Béarla</string>
<string name="revanced_language_ES">Spáinnis</string>
<string name="revanced_language_ET">Eastóinis</string>
<string name="revanced_language_FA">Peirsis</string>
<string name="revanced_language_FI">Fionlainnis</string>
<string name="revanced_language_FR">Fraincis</string>
<string name="revanced_language_GU">Gúisearáitis</string>
<string name="revanced_language_HI">Hiondúis</string>
<string name="revanced_language_HR">Cróitis</string>
<string name="revanced_language_HU">Ungáiris</string>
<string name="revanced_language_ID">Indonéisis</string>
<string name="revanced_language_IT">Iodáilis</string>
<string name="revanced_language_JA">Seapáinis</string>
<string name="revanced_language_KK">Casaicis</string>
<string name="revanced_language_KO">Cóiréis</string>
<string name="revanced_language_LT">Liotuáinis</string>
<string name="revanced_language_LV">Laitvis</string>
<string name="revanced_language_MK">Macadóinis</string>
<string name="revanced_language_MN">Mongóilis</string>
<string name="revanced_language_MR">Maráitis</string>
<string name="revanced_language_MS">Malaeis</string>
<string name="revanced_language_MY">Burmais</string>
<string name="revanced_language_NL">Ollainnis</string>
<string name="revanced_language_OR">Odais</string>
<string name="revanced_language_PA">Puinseáibis</string>
<string name="revanced_language_PL">Polainnis</string>
<string name="revanced_language_PT">Portaingéilis</string>
<string name="revanced_language_RO">Rómáinis</string>
<string name="revanced_language_RU">Rúisis</string>
<string name="revanced_language_SK">Slóvaicis</string>
<string name="revanced_language_SL">Slóivéinis</string>
<string name="revanced_language_SR">Seirbis</string>
<string name="revanced_language_SV">Sualainnis</string>
<string name="revanced_language_SW">Svahaílis</string>
<string name="revanced_language_TA">Tamailis</string>
<string name="revanced_language_TE">Teileagúis</string>
<string name="revanced_language_TH">Téalainnis</string>
<string name="revanced_language_TR">Tuircis</string>
<string name="revanced_language_UK">Úcráinis</string>
<string name="revanced_language_UR">Urdúis</string>
<string name="revanced_language_VI">Vientaimis</string>
<string name="revanced_language_ZH">Sínis</string>
<string name="revanced_pref_import_export_title">Iompórtáil / Easpórtáil</string>
<string name="revanced_pref_import_export_summary">Iompórtáil / Easpórtáil socruithe ReVanced</string>
<!-- Settings about dialog. -->
@@ -55,8 +111,8 @@ Second \"item\" text"</string>
</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">Níl microG GMScore suiteáilte. Suiteáil é.</string>
<string name="gms_core_dialog_title">Gníomhaíocht a theast</string>
<string name="gms_core_toast_not_installed_message">Níl MicroG GmsCore suiteáilte. Suiteáil é.</string>
<string name="gms_core_dialog_title">Gníomh riachtanach</string>
<string name="gms_core_dialog_not_whitelisted_not_allowed_in_background_message">"Níl cead ag MicroG GmsCore rith sa chúlra.
Lean an treoir \"Ná maraigh mo aip\" do do ghuthán, agus cuir na treoracha i bhfeidhm ar do shuiteáil MicroG.
@@ -77,16 +133,16 @@ Brúigh an cnaipe leanúnaí agus ligean athruithe optúimíochta."</string>
<string name="revanced_settings_screen_01_ads_title">Fógraí</string>
<string name="revanced_settings_screen_02_alt_thumbnails_title">Mionsamhlacha malartacha</string>
<string name="revanced_settings_screen_03_feed_title">Fotha</string>
<string name="revanced_settings_screen_04_player_title">Imreoir</string>
<string name="revanced_settings_screen_04_player_title">Seinnteoir</string>
<string name="revanced_settings_screen_05_general_title">Leagan amach ginearálta</string>
<string name="revanced_settings_screen_06_shorts_title">Shorts</string>
<string name="revanced_settings_screen_07_seekbar_title">Barr Seardaigh</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Rialuithe Swipe</string>
<string name="revanced_settings_screen_11_misc_title">Ilghnóthach</string>
<string name="revanced_settings_screen_07_seekbar_title">Barra Cuardaigh</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Rialuithe Svaidhpeála</string>
<string name="revanced_settings_screen_11_misc_title">Ilchineálach</string>
<string name="revanced_settings_screen_12_video_title">Físeán</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
<string name="revanced_shorts_disable_background_playback_title">Díchumasaigh súgradh cúlra Shorts</string>
<string name="revanced_shorts_disable_background_playback_title">Díchumasaigh seinnte Cúlra Shorts</string>
<string name="revanced_shorts_disable_background_playback_summary_on">Tá súgradh cúlra Shorts díchumasaithe</string>
<string name="revanced_shorts_disable_background_playback_summary_off">Tá súgradh cúlra Shorts cumasaithe</string>
</patch>
@@ -110,17 +166,17 @@ Brúigh an cnaipe leanúnaí agus ligean athruithe optúimíochta."</string>
Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Díchumasaigh cosúil/liostáil chnaipe glow</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">ghlacfaidh an cnaipe Like agus Liostáil nuair a luaitear</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Taispeánfaidh an cnaipe Like agus Liostáil nuair a luait</string>
<string name="revanced_disable_like_subscribe_glow_title">Díchumasaigh lonradh na cnaipí Cosúil / Liostáil</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">lonróidh an cnaipe \'Cosúil\' agus \'Liostáil\' nuair a luafaí</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Lonróidh an cnaipe Cosúil agus Liostáil nuair a luaitear</string>
<string name="revanced_hide_album_cards_title">Folaigh cártaí albam</string>
<string name="revanced_hide_album_cards_summary_on">Tá cártaí albam i bhfolach</string>
<string name="revanced_hide_album_cards_summary_off">Taispeántar cártaí albam</string>
<string name="revanced_hide_crowdfunding_box_title">Folaigh bosca slua-mhaoiniú</string>
<string name="revanced_hide_crowdfunding_box_summary_on">Tá bosca crowdfunding i bhfolach</string>
<string name="revanced_hide_crowdfunding_box_summary_on">Tá bosca slua-mhaoiniú i bhfolach</string>
<string name="revanced_hide_crowdfunding_box_summary_off">Taispeántar bosca slua-mhaoiniú</string>
<string name="revanced_hide_floating_microphone_button_title">Cnaipe micreafón ar snámh</string>
<string name="revanced_hide_floating_microphone_button_summary_on">Cnaipe micreafón folach</string>
<string name="revanced_hide_floating_microphone_button_title">Folaigh an cnaipe micreafón ar snámh</string>
<string name="revanced_hide_floating_microphone_button_summary_on">Cnaipe micreafón i bhfolach</string>
<string name="revanced_hide_floating_microphone_button_summary_off">Taispeántar an cnaipe micreafón</string>
<string name="revanced_hide_channel_watermark_title">Folaigh comhartha uisce cainéal</string>
<string name="revanced_hide_channel_watermark_summary_on">Tá comhartha uisce i bhfolach</string>
@@ -148,7 +204,7 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
<string name="revanced_hide_notify_me_button_summary_on">Tá an cnaipe i bhfolach</string>
<string name="revanced_hide_notify_me_button_summary_off">Taispeántar an cnaipe</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">Folaigh moltaí \'D\'fhéach daoine freastalaí\'</string>
<string name="revanced_hide_search_result_recommendations_title">Folaigh moltaí \'Chonaic daoine eile freisin\'</string>
<string name="revanced_hide_search_result_recommendations_summary_on">Tá moltaí i bhfolach</string>
<string name="revanced_hide_search_result_recommendations_summary_off">Taispeántar moltaí</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
@@ -177,12 +233,12 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
<string name="revanced_hide_movies_section_title">Folaigh rannán scannáin</string>
<string name="revanced_hide_movies_section_summary_on">Tá an chuid Scannáin i bhfolach</string>
<string name="revanced_hide_movies_section_summary_off">Taispeántar an rannán scannáin</string>
<string name="revanced_hide_feed_survey_title">Folaigh suirbhéanna beatha</string>
<string name="revanced_hide_feed_survey_summary_on">Tá suirbhéanna beatha i bhfolach</string>
<string name="revanced_hide_feed_survey_summary_off">Taispeántar suirbhéanna beatha</string>
<string name="revanced_hide_feed_survey_title">Folaigh suirbhéanna na fotha</string>
<string name="revanced_hide_feed_survey_summary_on">Tá suirbhéanna fotha i bhfolach</string>
<string name="revanced_hide_feed_survey_summary_off">Taispeántar suirbhéanna fotha</string>
<string name="revanced_hide_community_guidelines_title">Folaigh treoirlínte pobail</string>
<string name="revanced_hide_community_guidelines_summary_on">Tá treoirlínte pobail i bhfolach</string>
<string name="revanced_hide_community_guidelines_summary_off">Léirítear treoirlínte pobail</string>
<string name="revanced_hide_community_guidelines_summary_off">Taispeántar treoirlínte pobail</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Folaigh treoirlínte pobail do shíntiúsóirí</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Tá treoirlínte pobail síntiúsóirí i bhfolach</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Taispeántar treoirlínte pobail do shíntiúsóirí</string>
@@ -202,20 +258,20 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
<string name="revanced_hide_channel_bar_summary_on">Tá barra cainéal i bhfolach</string>
<string name="revanced_hide_channel_bar_summary_off">Taispeántar barra cainéal</string>
<string name="revanced_hide_playables_title">Folaigh Rudaí Inimeartha</string>
<string name="revanced_hide_playables_summary_on">míreanna súgartha i bhfolach</string>
<string name="revanced_hide_playables_summary_off">Taispeántar míreanna inimeartha</string>
<string name="revanced_hide_playables_summary_on">rudaí inimeartha i bhfolach</string>
<string name="revanced_hide_playables_summary_off">Taispeántar rudaí inimeartha</string>
<string name="revanced_hide_quick_actions_title">Folaigh gníomhartha gasta i lánscáileán</string>
<string name="revanced_hide_quick_actions_summary_on">Tá gníomhartha gasta i bhfolach</string>
<string name="revanced_hide_quick_actions_summary_off">Taispeántar gníomhartha tapa</string>
<string name="revanced_hide_related_videos_title">Folaigh físeáin gaolmhara i ngníomhartha</string>
<string name="revanced_hide_related_videos_summary_on">Tá físeáin bhainteacha i bhfolach</string>
<string name="revanced_hide_related_videos_summary_on">Tá físeáin ghaolmhara i bhfolach</string>
<string name="revanced_hide_related_videos_summary_off">Taispeántar físeáin gaolmhara</string>
<string name="revanced_hide_image_shelf_title">Folaigh seilf íomhá sna torthaí cuardaigh</string>
<string name="revanced_hide_image_shelf_summary_on">Tá seilf íomhá i bhfolach</string>
<string name="revanced_hide_image_shelf_summary_off">Taispeántar seilf íomhá</string>
<string name="revanced_hide_latest_posts_ads_title">Folaigh na postanna is déanaí</string>
<string name="revanced_hide_latest_posts_ads_summary_on">Tá poist is déanaí i bhfolach</string>
<string name="revanced_hide_latest_posts_ads_summary_off">Taispeántar na poist is déanaí</string>
<string name="revanced_hide_latest_posts_ads_summary_on">Tá postanna is déanaí i bhfolach</string>
<string name="revanced_hide_latest_posts_ads_summary_off">Taispeántar na postálacha is déanaí</string>
<string name="revanced_hide_mix_playlists_title">Folaigh seinmliostaí meascán</string>
<string name="revanced_hide_mix_playlists_summary_on">Tá seinmliostaí measctha i bhfolach</string>
<string name="revanced_hide_mix_playlists_summary_off">Taispeántar seinmliostaí measctha</string>
@@ -227,7 +283,7 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
<string name="revanced_hide_attributes_section_summary_off">Taispeántar \'Áiteanna faoi Thrácht\', rannóga Cluichí agus Ceoil</string>
<string name="revanced_hide_chapters_section_title">Folaigh alt na gCaibidlí</string>
<string name="revanced_hide_chapters_section_summary_on">Tá an chuid Caibidil i bhfolach</string>
<string name="revanced_hide_chapters_section_summary_off">Taispeántar cuid na Caibidlí</string>
<string name="revanced_hide_chapters_section_summary_off">Taispeántar alt na gcaibidlí</string>
<string name="revanced_hide_podcast_section_title">Folaigh an chuid \'Déan iniúchadh ar an bpodchraoladh \'</string>
<string name="revanced_hide_podcast_section_summary_on">Tá an chuid \'Iniúchadh ar an podchraoladh \'i bhfolach</string>
<string name="revanced_hide_podcast_section_summary_off">Taispeántar an chuid \'Déan iniúchadh ar an bpodchraoladh \'</string>
@@ -239,7 +295,7 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
<string name="revanced_hide_key_concepts_section_summary_off">Taispeántar alt Príomhchoincheapa</string>
<string name="revanced_hide_transcript_section_title">Folaigh an chuid Trasscríbhinne</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 tras-scríbhinn</string>
<string name="revanced_hide_transcript_section_summary_off">Taispeántar alt an trasscríbhinne</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>
@@ -255,9 +311,9 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</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_hide_comments_chat_summary_title">Cuir \'Achoimre tráchta\' i bhfolach</string>
<string name="revanced_hide_comments_chat_summary_summary_on">\'\'Folaíodh \'Achoimre cainte\'</string>
<string name="revanced_hide_comments_chat_summary_summary_off">\'\'Taispeántar \'Achoimre cainte\'</string>
<string name="revanced_hide_comments_chat_summary_title">Folaigh \'achoimre comhrá\'</string>
<string name="revanced_hide_comments_chat_summary_summary_on">achoimre comhrá i bhfolach</string>
<string name="revanced_hide_comments_chat_summary_summary_off">Taispeántar achoimre comhrá</string>
<string name="revanced_hide_comments_by_members_header_title">Folaigh ceanntásc \'Tuairimí ag baill \'</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Tá ceanntásc \'Tuairimí ag comhaltaí \'i bhfolach</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Taispeántar ceanntásc \'Tuairimí ag comhaltaí\'</string>
@@ -279,7 +335,7 @@ Ní bheidh a fhios agat faoi aon imeachtaí neamhghnácha."</string>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">Folaigh YouTube Doodles</string>
<string name="revanced_hide_doodles_summary_on">Barra cuardaigh Tá Doodles i bhfolach</string>
<string name="revanced_hide_doodles_summary_off">Barra cuardaigh Taispeántar Doodles</string>
<string name="revanced_hide_doodles_summary_off">Taispeántar Doodles an bharra cuardaigh</string>
<string name="revanced_hide_doodles_user_dialog_message">"Taispeántar Doodles ó YouTube cúpla lá gach bliain.
Má tá Doodle á thaispeáint faoi láthair i do réigiún agus má tá an tsuíomh seo a chumasc, ansin cuirfear an barra scagaire faoin bharra cuardaigh i bhfolach freisin."</string>
@@ -297,10 +353,10 @@ Má tá Doodle á thaispeáint faoi láthair i do réigiún agus má tá an tsu
<string name="revanced_hide_keyword_content_home_title">Folaigh físeáin bhaile de réir eochair</string>
<string name="revanced_hide_keyword_content_home_summary_on">Scagtar físeáin sa chluaisín baile de réir eochairfhocail</string>
<string name="revanced_hide_keyword_content_home_summary_off">Ní scagtar físeáin sa chluaisín baile de réir eochairfhocail</string>
<string name="revanced_hide_keyword_content_subscriptions_title">Folaigh físeáin síntiúis ag eochair</string>
<string name="revanced_hide_keyword_content_subscriptions_title">Folaigh físeáin síntiúis de réir eochairfhocail</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_on">Déantar físeáin sa chluaisín síntiús a scagadh de réir eochairfhocail</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_off">Ní scagtar físeáin sa chluaisín síntiúis ag eochairfhocail</string>
<string name="revanced_hide_keyword_content_search_title">Folaigh torthaí cuardaigh de réir eochair</string>
<string name="revanced_hide_keyword_content_search_title">Folaigh torthaí cuardaigh de réir eochairfhocail</string>
<string name="revanced_hide_keyword_content_search_summary_on">Déantar torthaí cuardaigh a scagadh de réir eochairfhocail</string>
<string name="revanced_hide_keyword_content_search_summary_off">Ní scagtar torthaí cuardaigh ag eochairfhocail</string>
<string name="revanced_hide_keyword_content_phrases_title">Eochairfhocail le cur i bhfolach</string>
@@ -323,9 +379,9 @@ Teorainneacha
<string name="revanced_hide_keyword_content_about_whole_words_summary">Má bhaineann tú eochairfhocal/frása le comharthaí athfhriotail dhúbailte, cuirfear cosc ar mheaitseáil pháirteach de theidil físeáin agus ainmneacha cainéal&lt;br&gt;&lt;br&gt;Mar shampla,&lt;br&gt;&lt;b&gt;\"ai\"&lt;/b&gt; ceilteoidh sé an físeán: &lt;b&gt;Conas a oibríonn AI?&lt;/b&gt;&lt;br&gt;ach ní cheiltfidh sé: &lt;b&gt;Cad is brí le hainm féinig?&lt;/b&gt;</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_hide_keyword_toast_invalid_common">Ní féidir eochairfhocal a úsáid: %s</string>
<string name="revanced_hide_keyword_toast_invalid_common_whole_word_required">Cuir comharthaí athfhriotail leis le húsáid eochairfhocal: %s</string>
<string name="revanced_hide_keyword_toast_invalid_common_whole_word_required">Cuir luachana leis chun an eochairfhocal a úsáid: %s</string>
<string name="revanced_hide_keyword_toast_invalid_conflicting">Tá dearbhuithe contrártha ag eochairfhocal: %s</string>
<string name="revanced_hide_keyword_toast_invalid_length">Tá an eochairfhocal ró-ghearr agus teastaíonn comharthaí athfhriotail: %s</string>
<string name="revanced_hide_keyword_toast_invalid_length">Eochairfhocal ró-ghearr, teastaíonn luachana: %s</string>
<string name="revanced_hide_keyword_toast_invalid_broad">Folaigh eochairfhocal gach físeán: %s</string>
</patch>
<patch id="ad.general.hideAdsResourcePatch">
@@ -446,6 +502,9 @@ Níl an ghné seo ar fáil ach do ghléasanna níos sine"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Infheictheacht an chúlra forleagan swipe</string>
<string name="revanced_swipe_threshold_title">Tairseach méid swipe</string>
<string name="revanced_swipe_threshold_summary">Méid an tairseach le haghaidh sruthú tarlú</string>
<string name="revanced_swipe_change_video_title">Cumasaigh swipe chun físeáin a athrú</string>
<string name="revanced_swipe_change_video_summary_on">Achlaigh i mód lán-scáile chun athrú go dtí an físeán chéanna/arís</string>
<string name="revanced_swipe_change_video_summary_off">Ní athróidh achlaigh i mód lán-scáile go dtí an físeán chéanna/arís</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Díchumasaigh fotheidil uathoibríoch</string>
@@ -629,9 +688,18 @@ Nóta: Trí é seo a chumasú, cuirtear fógraí físeáin i bhfolach freisin"</
<string name="revanced_shorts_player_screen_summary">Folaigh nó taispeáin comhpháirteanna san seinnteoir Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Folaigh Shorts i mbeatha baile</string>
<string name="revanced_hide_shorts_home_summary_on">Foluithe i bhforfheid na bhféachtraanna baile agus na bhífsclippianna gaolmhara</string>
<string name="revanced_hide_shorts_home_summary_off">Taispeántar i bhforfheid na bhféachtraanna baile agus na bhífsclippianna gaolmhara</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Folaigh Shorts i mbeatha síntiúis</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Folaithe sa fheadán síscribhte</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Tá ar taispeáint sa fheadán síscribhte</string>
<string name="revanced_hide_shorts_search_title">Folaigh Shorts i dtorthaí cuardaigh</string>
<string name="revanced_hide_shorts_search_summary_on">Folaithe i dtorthaí cuardaigh</string>
<string name="revanced_hide_shorts_search_summary_off">Tá ar taispeáint sna torthaí cuardaigh</string>
<string name="revanced_hide_shorts_history_title">Folaigh Shorts i stair féachana</string>
<string name="revanced_hide_shorts_history_summary_on">Faolithe sa stair féachana</string>
<string name="revanced_hide_shorts_history_summary_off">Taispeántar i stair féachana</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Folaigh cnaipe ceangail</string>
<string name="revanced_hide_shorts_join_button_summary_on">Tá an cnaipe Bí i bhfolach</string>
@@ -733,6 +801,13 @@ Nóta: Trí é seo a chumasú, cuirtear fógraí físeáin i bhfolach freisin"</
<string name="revanced_hide_player_popup_panels_summary_on">Tá painéil aníos imreoirí i bhfolach</string>
<string name="revanced_hide_player_popup_panels_summary_off">Taispeántar painéil aníos imreoirí</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Baint á âmód éadaéin iomlán lán iomlán ar deireadh na físe</string>
<string name="revanced_exit_fullscreen_entry_1">Déchumasaithe</string>
<string name="revanced_exit_fullscreen_entry_2">Portait</string>
<string name="revanced_exit_fullscreen_entry_3">Téacscaoileadh</string>
<string name="revanced_exit_fullscreen_entry_4">Portait agus téacscaoileadh</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Oscail físeáin i módh scáileáin iomláin portráit</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Osclaítear físeáin i scáileán iomlán</string>
@@ -1001,6 +1076,23 @@ Maithe chun cur isteach?"</string>
<string name="revanced_sb_reset">Athshocraigh</string>
<string name="revanced_sb_about">Maidir</string>
<string name="revanced_sb_about_api_sum">Soláthraíonn an API SponsorBlock sonraí. Tapáil anseo chun níos mó a fhoghlaim agus íoslódálacha a fheiceáil d\'ardáin eile</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Fábos fóirmeanna foirmiúin</string>
<string name="revanced_change_form_factor_entry_1">Réamhshocrúch</string>
<string name="revanced_change_form_factor_entry_2">Fón</string>
<string name="revanced_change_form_factor_entry_3">Táibhléad</string>
<string name="revanced_change_form_factor_entry_4">Gluaisrothar</string>
<string name="revanced_change_form_factor_user_dialog_message">"Áirítear na hathruithe seo a leanas:
Leagan amach na táibléad
• Tá poist an phobail curtha i bhfolach
Leagan amach na ngluaisteán
• Tá roghchlár stair féachana curtha i bhfolach
• Tá an táb eolais arís ann
• Osclóidh Shorts sa seinnteoir gnáth
• Tá an foraois eagraithe de réir ábhar agus cainéal"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Leagan aip spoof</string>
@@ -1015,6 +1107,7 @@ Má dhiúltaítear é níos déanaí, moltar sonraí an aip a ghlanadh chun buga
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Sprioc leagan aip spoof</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Athchóirigh sean-deilbhíní imreoir Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Seanghreannacha loingseoireachta agus greille is sine a athchóirigh</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Athchóirigh RYD ar mhodh incognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Athchóirigh luas leathan físe &amp; roghchlár cáilíochta</string>
@@ -1058,12 +1151,6 @@ Má dhiúltaítear é níos déanaí, moltar sonraí an aip a ghlanadh chun buga
<string name="revanced_shorts_autoplay_background_summary_on">Déanfar súgradh cúlra Shorts go huathoibríoch</string>
<string name="revanced_shorts_autoplay_background_summary_off">Athdhéanfar súgradh cúlra Shorts</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Cumasaigh leagan amach na táibléad</string>
<string name="revanced_tablet_layout_summary_on">Tá leagan amach an táibléad cumasaithe</string>
<string name="revanced_tablet_layout_summary_off">Tá leagan amach an táibléad díchumasaithe</string>
<string name="revanced_tablet_layout_user_dialog_message">Ní thaispeánann poist phobail ar leagan amach táibléad</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minipléir</string>
<string name="revanced_miniplayer_screen_summary">Athraigh stíl an imreora íoslaghdaithe san aip</string>
@@ -1228,6 +1315,7 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
<string name="revanced_force_original_audio_title">Fórsaigh fuaim bunaidh</string>
<string name="revanced_force_original_audio_summary_on">Ag úsáid fuaim bunaidh</string>
<string name="revanced_force_original_audio_summary_off">Ag úsáid fuaim réamhshocraithe</string>
<string name="revanced_force_original_audio_not_available">Chun an ghné seo a úsáid, athraigh spoofing srutha chuig cineál cliant iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1255,6 +1343,8 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
<string name="revanced_custom_playback_speeds_invalid">Ní mór luas saincheaptha a bheith níos lú ná %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Luasanna athsheinm saincheaptha neamhbhailí</string>
<string name="revanced_custom_playback_speeds_auto">Uathoibríoch</string>
<string name="revanced_speed_tap_and_hold_title">Luas tap is agus greim</string>
<string name="revanced_speed_tap_and_hold_summary">Luas athsheinm eatarthu 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Cuimhnigh athruithe ar luas athsheinm</string>
@@ -1299,62 +1389,11 @@ Tá réiteach uasmhéideach 1080p ag AVC, níl códú fuaime Opus ar fáil, agus
<string name="revanced_spoof_video_streams_about_android_summary">"• Tá roghchlár na bhfuaimeanna ar iarraidh
• Níl imfhálú cobhsaí ar fáil
• Níl an fhuaim bhunúsach ar fáil"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Níl aon chóidéir físe AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Taispeáin i Staitisticí do nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Taispeántar cineál an chliaint i Staitisticí do nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Tá an cliant curtha i bhfolach i Staitisticí do nerds</string>
<string name="revanced_spoof_video_streams_language_title">Teanga an sreafa fuaime réamhshocraithe VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Teanga na feidhmchláir</string>
<string name="revanced_spoof_video_streams_language_AR">Araibis</string>
<string name="revanced_spoof_video_streams_language_AZ">Asarbaiseáinis</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgáiris</string>
<string name="revanced_spoof_video_streams_language_BN">Beangáilis</string>
<string name="revanced_spoof_video_streams_language_CA">Catalóinis</string>
<string name="revanced_spoof_video_streams_language_CS">Seicis</string>
<string name="revanced_spoof_video_streams_language_DA">Danmhairgis</string>
<string name="revanced_spoof_video_streams_language_DE">Gearmáinis</string>
<string name="revanced_spoof_video_streams_language_EL">Gréigis</string>
<string name="revanced_spoof_video_streams_language_EN">Béarla</string>
<string name="revanced_spoof_video_streams_language_ES">Spáinnis</string>
<string name="revanced_spoof_video_streams_language_ET">Eastóinis</string>
<string name="revanced_spoof_video_streams_language_FA">Peirsis</string>
<string name="revanced_spoof_video_streams_language_FI">Fionlainnis</string>
<string name="revanced_spoof_video_streams_language_FR">Fraincis</string>
<string name="revanced_spoof_video_streams_language_GU">Gúisearáitis</string>
<string name="revanced_spoof_video_streams_language_HI">Hiondúis</string>
<string name="revanced_spoof_video_streams_language_HR">Cróitis</string>
<string name="revanced_spoof_video_streams_language_HU">Ungáiris</string>
<string name="revanced_spoof_video_streams_language_ID">Indinéisis</string>
<string name="revanced_spoof_video_streams_language_IT">Iodáilis</string>
<string name="revanced_spoof_video_streams_language_JA">Seapáinis</string>
<string name="revanced_spoof_video_streams_language_KK">Casacais</string>
<string name="revanced_spoof_video_streams_language_KO">Cóiréis</string>
<string name="revanced_spoof_video_streams_language_LT">Liotuáinis</string>
<string name="revanced_spoof_video_streams_language_LV">Laotháinis</string>
<string name="revanced_spoof_video_streams_language_MK">Macadóinis</string>
<string name="revanced_spoof_video_streams_language_MN">Mongóilis</string>
<string name="revanced_spoof_video_streams_language_MR">Maraitis</string>
<string name="revanced_spoof_video_streams_language_MS">Malaíseach</string>
<string name="revanced_spoof_video_streams_language_MY">Burmais</string>
<string name="revanced_spoof_video_streams_language_NL">Ollainnis</string>
<string name="revanced_spoof_video_streams_language_OR">Odais</string>
<string name="revanced_spoof_video_streams_language_PA">Painseáibis</string>
<string name="revanced_spoof_video_streams_language_PL">Polainnis</string>
<string name="revanced_spoof_video_streams_language_PT">Portaingéilis</string>
<string name="revanced_spoof_video_streams_language_RO">Rúmáinis</string>
<string name="revanced_spoof_video_streams_language_RU">Rúisis</string>
<string name="revanced_spoof_video_streams_language_SK">Slovaicis</string>
<string name="revanced_spoof_video_streams_language_SL">Sloivéinis</string>
<string name="revanced_spoof_video_streams_language_SR">Seirbis</string>
<string name="revanced_spoof_video_streams_language_SV">Sualainnis</string>
<string name="revanced_spoof_video_streams_language_SW">Svahillis</string>
<string name="revanced_spoof_video_streams_language_TA">Tamoilis</string>
<string name="revanced_spoof_video_streams_language_TE">Teileagúis</string>
<string name="revanced_spoof_video_streams_language_TH">Téalainnis</string>
<string name="revanced_spoof_video_streams_language_TR">Tuircis</string>
<string name="revanced_spoof_video_streams_language_UK">Úcráinis</string>
<string name="revanced_spoof_video_streams_language_UR">Urdais</string>
<string name="revanced_spoof_video_streams_language_VI">Vítneamais</string>
<string name="revanced_spoof_video_streams_language_ZH">Sínis</string>
</patch>
</app>
<app id="twitch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">A ReVanced beállítások visszaállnak az alapértelmezettre</string>
<string name="revanced_settings_import_success">%d beállítás importálva</string>
<string name="revanced_settings_import_failure_parse">Sikertelen importálás: %s</string>
<string name="revanced_language_title">ReVanced nyelve</string>
<string name="revanced_language_user_dialog_message">"A fordítások hiányozhatnak vagy hiányosak lehetnek néhány nyelven.
Új nyelvek lefordításához látogasson el ide: translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Alkalmazás nyelve</string>
<string name="revanced_language_AR">Arab</string>
<string name="revanced_language_AZ">Azeri</string>
<string name="revanced_language_BG">Bolgár</string>
<string name="revanced_language_BN">Bengáli</string>
<string name="revanced_language_CA">Katalán</string>
<string name="revanced_language_CS">Cseh</string>
<string name="revanced_language_DA">Dán</string>
<string name="revanced_language_DE">Német</string>
<string name="revanced_language_EL">Görög</string>
<string name="revanced_language_EN">Angol</string>
<string name="revanced_language_ES">Spanyol</string>
<string name="revanced_language_ET">Észt</string>
<string name="revanced_language_FA">Perzsa</string>
<string name="revanced_language_FI">Finn</string>
<string name="revanced_language_FR">Francia</string>
<string name="revanced_language_GU">Gudzsaráti</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Horvát</string>
<string name="revanced_language_HU">Magyar</string>
<string name="revanced_language_ID">Indonéz</string>
<string name="revanced_language_IT">Olasz</string>
<string name="revanced_language_JA">Japán</string>
<string name="revanced_language_KK">Kazah</string>
<string name="revanced_language_KO">Koreai</string>
<string name="revanced_language_LT">Litván</string>
<string name="revanced_language_LV">Lett</string>
<string name="revanced_language_MK">Macedón</string>
<string name="revanced_language_MN">Mongol</string>
<string name="revanced_language_MR">Maráthi</string>
<string name="revanced_language_MS">Maláj</string>
<string name="revanced_language_MY">Burmai</string>
<string name="revanced_language_NL">Holland</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Pandzsábi</string>
<string name="revanced_language_PL">Lengyel</string>
<string name="revanced_language_PT">Portugál</string>
<string name="revanced_language_RO">Román</string>
<string name="revanced_language_RU">Orosz</string>
<string name="revanced_language_SK">Szlovák</string>
<string name="revanced_language_SL">Szlovén</string>
<string name="revanced_language_SR">Szerb</string>
<string name="revanced_language_SV">Svéd</string>
<string name="revanced_language_SW">Szuahéli</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thai</string>
<string name="revanced_language_TR">Török</string>
<string name="revanced_language_UK">Ukrán</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnami</string>
<string name="revanced_language_ZH">Kínai</string>
<string name="revanced_pref_import_export_title">Importálás / exportálás</string>
<string name="revanced_pref_import_export_summary">ReVanced beállítások importálása / exportálása</string>
<!-- Settings about dialog. -->
@@ -445,6 +501,9 @@ Ez a funkció csak régebbi eszközökön érhető el"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">A csúsztatási átfedés hátterének láthatósága</string>
<string name="revanced_swipe_threshold_title">A csúsztatás küszöbértéke</string>
<string name="revanced_swipe_threshold_summary">A csúsztatáshoz szükséges küszöbérték</string>
<string name="revanced_swipe_change_video_title">Engedélyezze az ujjbegyújtással történő videóváltást</string>
<string name="revanced_swipe_change_video_summary_on">Teljes képernyős módban történő ujjbegyújtás megváltoztatja a következő/előző videóra</string>
<string name="revanced_swipe_change_video_summary_off">Teljes képernyős módban történő ujjbegyújtás nem változtatja meg a következő/előző videóra</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Automatikus feliratok letiltása</string>
@@ -628,9 +687,18 @@ Megjegyzés: Ez a beállítás a videóhirdetések kényszerű elrejtését is m
<string name="revanced_shorts_player_screen_summary">Összetevők elrejtése vagy megjelenítése a Shorts lejátszóban</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Shorts elrejtése a Kezdőlap feedben</string>
<string name="revanced_hide_shorts_home_summary_on">Elrejtve a főoldalon és a kapcsolódó videókban</string>
<string name="revanced_hide_shorts_home_summary_off">Megjelenítve a főoldalon és a kapcsolódó videókban</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Shortsok elrejtése a Feliratkozások feedben</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Elrejtve az előfizetési hírfolyamban</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Megjelenik az előfizetési hírfolyamban</string>
<string name="revanced_hide_shorts_search_title">Shortsok elrejtése a keresési eredményekben</string>
<string name="revanced_hide_shorts_search_summary_on">A keresési eredmények között elrejtve</string>
<string name="revanced_hide_shorts_search_summary_off">Megjelenik a keresési eredmények között</string>
<string name="revanced_hide_shorts_history_title">Shorts elrejtése a megtekintési előzményekben</string>
<string name="revanced_hide_shorts_history_summary_on">Elrejtve a megtekintési előzményekben</string>
<string name="revanced_hide_shorts_history_summary_off">Megjelenik a megtekintési előzményekben</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Csatlakozás gomb elrejtése</string>
<string name="revanced_hide_shorts_join_button_summary_on">A csatlakozás gomb el van rejtve</string>
@@ -732,6 +800,13 @@ Megjegyzés: Ez a beállítás a videóhirdetések kényszerű elrejtését is m
<string name="revanced_hide_player_popup_panels_summary_on">A lejátszó előugró panelei el vannak rejtve</string>
<string name="revanced_hide_player_popup_panels_summary_off">A lejátszó előugró panelei megjelennek</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Kilépés a teljes képernyőből</string>
<string name="revanced_exit_fullscreen_entry_1">Letiltva</string>
<string name="revanced_exit_fullscreen_entry_2">Portré</string>
<string name="revanced_exit_fullscreen_entry_3">Tájkép</string>
<string name="revanced_exit_fullscreen_entry_4">Portré és tájkép</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Nyissa meg a videókat teljes képernyős portréban</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">A videók teljes képernyőn nyílnak meg</string>
@@ -999,6 +1074,23 @@ Készen állsz a beküldésre?"</string>
<string name="revanced_sb_reset">Visszaállítás</string>
<string name="revanced_sb_about">Rólunk</string>
<string name="revanced_sb_about_api_sum">Az adatokat a SponsorBlock API biztosítja. Koppintson ide, ha többet szeretne megtudni és megtekintené a letöltéseket más platformokra</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Elrendezési űrlap faktor</string>
<string name="revanced_change_form_factor_entry_1">Alapértelmezett</string>
<string name="revanced_change_form_factor_entry_2">Telefon</string>
<string name="revanced_change_form_factor_entry_3">Tablet</string>
<string name="revanced_change_form_factor_entry_4">Autóipari</string>
<string name="revanced_change_form_factor_user_dialog_message">"Módosítások:
Tablet elrendezés
• A közösségi bejegyzések el vannak rejtve
Autóipari elrendezés
• Az előzmények menü el van rejtve
• A Felfedezés fül visszaáll
• A Shorts a szokásos lejátszóban nyílik meg
• A feed témák és csatornák szerint van rendezve"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Alkalmazásverzió hamisítása</string>
@@ -1013,6 +1105,7 @@ Ha később kikapcsolja, akkor ajánlott az alkalmazás adatait törölni, hogy
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Hamisított alkalmazásverzió célja</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - A régi Shorts lejátszó ikonok visszaállítása</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - A régi navigációs és eszköztári ikonok visszaállítása</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - RYD visszaállítása Shorts inkognitó módban</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Széles videósebesség és minőség menü visszaállítása</string>
@@ -1056,12 +1149,6 @@ Ha később kikapcsolja, akkor ajánlott az alkalmazás adatait törölni, hogy
<string name="revanced_shorts_autoplay_background_summary_on">Shorts automatikusan elindul a háttérben</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts háttérben történő lejátszása megismétlődik</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Táblagépes elrendezés engedélyezése</string>
<string name="revanced_tablet_layout_summary_on">Táblagépes elrendezés engedélyezve</string>
<string name="revanced_tablet_layout_summary_off">Táblagépes elrendezés letiltva</string>
<string name="revanced_tablet_layout_user_dialog_message">A közösségi posztok nem jelennek meg táblagépes elrendezésben</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minilejátszó</string>
<string name="revanced_miniplayer_screen_summary">Módosítsa az alkalmazáson belüli kisméretű lejátszó stílusát</string>
@@ -1225,6 +1312,7 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"</s
<string name="revanced_force_original_audio_title">Eredeti hang kikényszerítése</string>
<string name="revanced_force_original_audio_summary_on">Eredeti hang használata</string>
<string name="revanced_force_original_audio_summary_off">Alapértelmezett hang használata</string>
<string name="revanced_force_original_audio_not_available">Ezt a funkciót iOS klienstípusra állított adatfolyam-hamisítással használhatja</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1252,6 +1340,8 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"</s
<string name="revanced_custom_playback_speeds_invalid">Az egyéni sebességeknek kevesebbnek kell lenniük, mint %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Érvénytelen egyéni lejátszási sebességek</string>
<string name="revanced_custom_playback_speeds_auto">Automatikus</string>
<string name="revanced_speed_tap_and_hold_title">Egyéni koppintás és tartás sebesség</string>
<string name="revanced_speed_tap_and_hold_summary">Lejátszási sebesség 0-8 között</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Lejátszási sebesség módosításainak megjegyzése</string>
@@ -1288,69 +1378,19 @@ A videólejátszás nem működhet"</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"Ennek engedélyezése javíthatja az akkumulátor élettartamát és kijavíthatja a lejátszás akadozását.
Az AVC maximális felbontása 1080p, az Opus audiokodek nem érhető el, és a videolejátszás több internetes adatot használ, mint a VP9 vagy az AV1."</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">Az iOS-spoofing mellékhatásai</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">iOS hamisítási mellékhatások</string>
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• Előfordulhat, hogy a filmeket és a fizetős videókat nem lehet lejátszani
• Nem áll rendelkezésre stabil hangerő
• A videók 1 másodperccel korábban érnek véget"</string>
<string name="revanced_spoof_video_streams_about_android_title">Android hamisítási mellékhatások</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• Hiányzik a hangsáv menü
• Nem áll rendelkezésre stabil hangerő
• Az eredeti hang kényszerítése nem érhető el"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nincs AV1 videokodek</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Megjelenítés a Statisztikákban</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">A kliens típusa a Statisztikákban látható</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">A kliens el van rejtve a Statisztikákban</string>
<string name="revanced_spoof_video_streams_language_title">VR alapértelmezett audio adatfolyam nyelve</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Fiók nyelve</string>
<string name="revanced_spoof_video_streams_language_AR">Arab</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbajdzsáni</string>
<string name="revanced_spoof_video_streams_language_BG">Bolgár</string>
<string name="revanced_spoof_video_streams_language_BN">Bengáli</string>
<string name="revanced_spoof_video_streams_language_CA">Katalán</string>
<string name="revanced_spoof_video_streams_language_CS">Cseh</string>
<string name="revanced_spoof_video_streams_language_DA">Dán</string>
<string name="revanced_spoof_video_streams_language_DE">Német</string>
<string name="revanced_spoof_video_streams_language_EL">Görög</string>
<string name="revanced_spoof_video_streams_language_EN">Angol</string>
<string name="revanced_spoof_video_streams_language_ES">Spanyol</string>
<string name="revanced_spoof_video_streams_language_ET">Észt</string>
<string name="revanced_spoof_video_streams_language_FA">Perzsa</string>
<string name="revanced_spoof_video_streams_language_FI">Finn</string>
<string name="revanced_spoof_video_streams_language_FR">Francia</string>
<string name="revanced_spoof_video_streams_language_GU">Gudzsaráti</string>
<string name="revanced_spoof_video_streams_language_HI">hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Horvát</string>
<string name="revanced_spoof_video_streams_language_HU">Magyar</string>
<string name="revanced_spoof_video_streams_language_ID">Indonéz</string>
<string name="revanced_spoof_video_streams_language_IT">Olasz</string>
<string name="revanced_spoof_video_streams_language_JA">Japán</string>
<string name="revanced_spoof_video_streams_language_KK">Kazah</string>
<string name="revanced_spoof_video_streams_language_KO">Koreai</string>
<string name="revanced_spoof_video_streams_language_LT">Litván</string>
<string name="revanced_spoof_video_streams_language_LV">Lett</string>
<string name="revanced_spoof_video_streams_language_MK">Macedón</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Maráthi</string>
<string name="revanced_spoof_video_streams_language_MS">Maláj</string>
<string name="revanced_spoof_video_streams_language_MY">Burmai</string>
<string name="revanced_spoof_video_streams_language_NL">Holland</string>
<string name="revanced_spoof_video_streams_language_OR">odia</string>
<string name="revanced_spoof_video_streams_language_PA">Pandzsábi</string>
<string name="revanced_spoof_video_streams_language_PL">Lengyel</string>
<string name="revanced_spoof_video_streams_language_PT">Portugál</string>
<string name="revanced_spoof_video_streams_language_RO">Román</string>
<string name="revanced_spoof_video_streams_language_RU">Orosz</string>
<string name="revanced_spoof_video_streams_language_SK">Szlovák</string>
<string name="revanced_spoof_video_streams_language_SL">Szlovén</string>
<string name="revanced_spoof_video_streams_language_SR">Szerb</string>
<string name="revanced_spoof_video_streams_language_SV">Svéd</string>
<string name="revanced_spoof_video_streams_language_SW">Szuahéli</string>
<string name="revanced_spoof_video_streams_language_TA">tamil</string>
<string name="revanced_spoof_video_streams_language_TE">telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tháj</string>
<string name="revanced_spoof_video_streams_language_TR">Török</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrán</string>
<string name="revanced_spoof_video_streams_language_UR">urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnámi</string>
<string name="revanced_spoof_video_streams_language_ZH">Kínai</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">ReVanced կարգավորումները վերադրվել են դեֆոլտային</string>
<string name="revanced_settings_import_success">Import %d կարգավորում</string>
<string name="revanced_settings_import_failure_parse">Import-ը ձախողվել է։ %s</string>
<string name="revanced_language_title">ReVanced լեզվի</string>
<string name="revanced_language_user_dialog_message">"Որոշ լեզուների թարգմանությունները կարող են լինել բացակայուն կամ անավարտ:
Նոր լեզուներ թարգմանելու համար այցելեք translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Հավելվածի լեզու</string>
<string name="revanced_language_AR">Արաբերեն</string>
<string name="revanced_language_AZ">Ադրբեջաներեն</string>
<string name="revanced_language_BG">Բուլղարերեն</string>
<string name="revanced_language_BN">Բենգալերեն</string>
<string name="revanced_language_CA">Կատալաներեն</string>
<string name="revanced_language_CS">Չեխերեն</string>
<string name="revanced_language_DA">Դանիերեն</string>
<string name="revanced_language_DE">Գերմաներեն</string>
<string name="revanced_language_EL">Հունարեն</string>
<string name="revanced_language_EN">Անգլերեն</string>
<string name="revanced_language_ES">Իսպաներեն</string>
<string name="revanced_language_ET">Էստոներեն</string>
<string name="revanced_language_FA">Պարսկերեն</string>
<string name="revanced_language_FI">Ֆիններեն</string>
<string name="revanced_language_FR">Ֆրանսերեն</string>
<string name="revanced_language_GU">Գուջարաթի</string>
<string name="revanced_language_HI">Հինդի</string>
<string name="revanced_language_HR">Խորվաթերեն</string>
<string name="revanced_language_HU">Հունգարերեն</string>
<string name="revanced_language_ID">Ինդոնեզերեն</string>
<string name="revanced_language_IT">Իտալերեն</string>
<string name="revanced_language_JA">Ճապոներեն</string>
<string name="revanced_language_KK">Ղազախերեն</string>
<string name="revanced_language_KO">Կորեերեն</string>
<string name="revanced_language_LT">Լիտվերեն</string>
<string name="revanced_language_LV">Լատվիերեն</string>
<string name="revanced_language_MK">Մակեդոներեն</string>
<string name="revanced_language_MN">Մոնղոլերեն</string>
<string name="revanced_language_MR">Մարաթի</string>
<string name="revanced_language_MS">Մալայերեն</string>
<string name="revanced_language_MY">Բիրմաներեն</string>
<string name="revanced_language_NL">Նիդերլանդերեն</string>
<string name="revanced_language_OR">Օդիա</string>
<string name="revanced_language_PA">Փանջաբի</string>
<string name="revanced_language_PL">Լեհերեն</string>
<string name="revanced_language_PT">Պորտուգալերեն</string>
<string name="revanced_language_RO">Ռումիներեն</string>
<string name="revanced_language_RU">Ռուսերեն</string>
<string name="revanced_language_SK">Սլովակերեն</string>
<string name="revanced_language_SL">Սլովեներեն</string>
<string name="revanced_language_SR">Սերբերեն</string>
<string name="revanced_language_SV">Շվեդերեն</string>
<string name="revanced_language_SW">Սվահիլի</string>
<string name="revanced_language_TA">Թամիլերեն</string>
<string name="revanced_language_TE">Թելուգու</string>
<string name="revanced_language_TH">Թաիլանդերեն</string>
<string name="revanced_language_TR">Թուրքերեն</string>
<string name="revanced_language_UK">Ուկրաիներեն</string>
<string name="revanced_language_UR">Ուրդու</string>
<string name="revanced_language_VI">Վիետնամերեն</string>
<string name="revanced_language_ZH">Չինարեն</string>
<string name="revanced_pref_import_export_title">Ներմուծում/Արտահանում</string>
<string name="revanced_pref_import_export_summary">Import / Export ReVanced կարգավորումներ</string>
<!-- Settings about dialog. -->
@@ -446,6 +502,9 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_swipe_overlay_background_alpha_summary">Սահմանման վերածման ֆոնի տեսանելիությունը</string>
<string name="revanced_swipe_threshold_title">Սահմանման վերածման չափը</string>
<string name="revanced_swipe_threshold_summary">Սահմանման վերածման չափը</string>
<string name="revanced_swipe_change_video_title">Վայրէջքով տեսանյութերը փոխելու ակտիվացում</string>
<string name="revanced_swipe_change_video_summary_on">Լիարժեք ռեժիմով վայրէջքը կփոխվի հաջորդ / նախորդ տեսանյութին</string>
<string name="revanced_swipe_change_video_summary_off">Լիարժեք ռեժիմով վայրէջքը չի փոխվի հաջորդ / նախորդ տեսանյութին</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Անջատել ավտոմատ ենթագրերը</string>
@@ -631,7 +690,14 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_shorts_home_title">Թաքցնել Shorts-ը գլխավոր էջում</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Թաքցնել Shorts-ը բաժանորդագրության էջում</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Թաքնված է բաժանորդագրման կերակրման մեջ</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Ցուցադրված է բաժանորդագրման կերակրման մեջ</string>
<string name="revanced_hide_shorts_search_title">Թաքցնել Shorts-ը որոնման արդյունքներում</string>
<string name="revanced_hide_shorts_search_summary_on">Որոնման արդյունքներում թաքնված է</string>
<string name="revanced_hide_shorts_search_summary_off">Ցուցադրված է որոնման արդյունքներում</string>
<string name="revanced_hide_shorts_history_title">Թաքցնել շորտերը դիտման պատմության մեջ</string>
<string name="revanced_hide_shorts_history_summary_on">Թաքնված է դիտման պատմության մեջ</string>
<string name="revanced_hide_shorts_history_summary_off">Ցուցադրվում է դիտման պատմության մեջ</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Միանալու կոճակը թաքցնել</string>
<string name="revanced_hide_shorts_join_button_summary_on">Միանալու կոճակը թաքցված է</string>
@@ -733,6 +799,13 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_player_popup_panels_summary_on">Հաղորդակցման վահանակների ելնող պատուհանները թաքցված են</string>
<string name="revanced_hide_player_popup_panels_summary_off">Հաղորդակցման վահանակների ելնող պատուհանները երևում են</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Տեսանյութի ավարտին դուրս գալ լիաէկրան ռեժիմից</string>
<string name="revanced_exit_fullscreen_entry_1">Անջատված</string>
<string name="revanced_exit_fullscreen_entry_2">Դիմանկար</string>
<string name="revanced_exit_fullscreen_entry_3">Լանդշաֆտ</string>
<string name="revanced_exit_fullscreen_entry_4">Դիմանկար և լանդշաֆտ</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Բացել տեսանյութերը լի էկրանի պորտրետային ռեժիմով</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Տեսանյութերը բացվում են լի էկրանով</string>
@@ -1001,6 +1074,23 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ
<string name="revanced_sb_reset">Վերագործարկել</string>
<string name="revanced_sb_about">Ծրագրի մասին</string>
<string name="revanced_sb_about_api_sum">Տվյալները մատուցվում են SponsorBlock API-ի կողմից։ Սեղմեք այստեղ՝ ավելի շատ իմանալու և այլ հարթակների համար ներբեռնումները տեսնելու</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Ձևաչափի փոփոխություն</string>
<string name="revanced_change_form_factor_entry_1">Ընտրված</string>
<string name="revanced_change_form_factor_entry_2">Հեռախոս</string>
<string name="revanced_change_form_factor_entry_3">Պլանշետ</string>
<string name="revanced_change_form_factor_entry_4">Ավտոմոբիլային</string>
<string name="revanced_change_form_factor_user_dialog_message">"Փոփոխությունները ներառում են.
Պլանշետի ինտերֆեյս
• Թաքցված են համայնքի հրապարակումները
Ավտոմոբիլային ինտերֆեյս
• Թաքցված է դիտումների պատմության ընտրանին
• Վերականգնված է ուսումնասիրել էջը
• Հոլովակները բացվում են ստանդարտ նվագարկչում
• Նորությունները կազմակերպված են ըստ թեմաների և ալիքների"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Կեղծել հավելվածի տարբերակը</string>
@@ -1015,6 +1105,7 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Spoof-ի կիրառության տարբերակի նպատակ</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Վերականգնել հին Shorts պլեյերի պատկերակները</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Հին նավիգացիայի և գործիքների պատկերներ վերականգնել</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Վերականգնել RYD-ը Shorts անանուն ռեժիմում</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Վերականգնել լայն տեսանյութի արագության &amp; որակի ընտրացանկը</string>
@@ -1058,12 +1149,6 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ
<string name="revanced_shorts_autoplay_background_summary_on">Shorts-ի ֆոնային վերարտադրումը կվերարտադրվի ավտոմատ կերպով</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts-ի ֆոնային վերարտադրումը կկրկնվի</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Աктиվացնել планшетի կառուցվածքը</string>
<string name="revanced_tablet_layout_summary_on">Планшетի կառուցվածքը ակտիվացված է</string>
<string name="revanced_tablet_layout_summary_off">Планшетի կառուցվածքը անջատված է</string>
<string name="revanced_tablet_layout_user_dialog_message">Համայնքի հրապարակումները չեն ցուցադրվում планшетի կառուցվածքներում</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Մինի նվագարկիչ</string>
<string name="revanced_miniplayer_screen_summary">Փոխել կիրառության մեջ փոքրացված պլեյերի ոճը</string>
@@ -1227,6 +1312,7 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
<string name="revanced_force_original_audio_title">Բնօրինակ ձայն օգտագործել</string>
<string name="revanced_force_original_audio_summary_on">Բնօրինակ ձայն օգտագործվում է</string>
<string name="revanced_force_original_audio_summary_off">Վերջնական ձայն օգտագործվում է</string>
<string name="revanced_force_original_audio_not_available">Անեի սյօւյր դա ժյրդեք ռասրունաքն ամ Java զեմե, սիուի կյադ եյ չոն մաiOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1254,6 +1340,8 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
<string name="revanced_custom_playback_speeds_invalid">Պատրաստված արագությունները պետք է լինեն ավելի քիչ քան %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Չի աշխատում պատրաստված վերարտադրման արագությունները։</string>
<string name="revanced_custom_playback_speeds_auto">Ավտո</string>
<string name="revanced_speed_tap_and_hold_title">Զգայական վերահսկում՝ անվանափոխման համար</string>
<string name="revanced_speed_tap_and_hold_summary">Վերարտադրման արագությունը 0-8 միջակայքում</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Հիշել տեսանյութի վերարտադրման արագության փոփոխությունները</string>
@@ -1298,62 +1386,11 @@ AVC-ի առավելագույն թույլտվությունը 1080p է, Opus ա
<string name="revanced_spoof_video_streams_about_android_summary">"• Ձայնի գրառման ընտրացանկը բացակայում է
• Ստաբիլ ձայն չկա
• Իրական ձայնի ընտրությունը հասանելի չէ"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Հեռացված բոլոր AV1 վիդեո կոդեկները</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Ցուցադրել վիճակագրության ակնոցներում</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Հաճախորդի տեսակը ցուցադրվում է վիճակագրության ակնոցներում</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Հաճախորդը թաքնված է վիճակագրության ակնոցներում</string>
<string name="revanced_spoof_video_streams_language_title">VR-ի համար նախապես ընտրված ձայնի գրառման լեզու</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Հաշվի լեզու</string>
<string name="revanced_spoof_video_streams_language_AR">Արաբերեն</string>
<string name="revanced_spoof_video_streams_language_AZ">Ադրբեջաներեն</string>
<string name="revanced_spoof_video_streams_language_BG">Բուլղարերեն</string>
<string name="revanced_spoof_video_streams_language_BN">Բենգալերեն</string>
<string name="revanced_spoof_video_streams_language_CA">Կատալաներեն</string>
<string name="revanced_spoof_video_streams_language_CS">Չեխերեն</string>
<string name="revanced_spoof_video_streams_language_DA">Դանիերեն</string>
<string name="revanced_spoof_video_streams_language_DE">Գերմաներեն</string>
<string name="revanced_spoof_video_streams_language_EL">Հունարեն</string>
<string name="revanced_spoof_video_streams_language_EN">Անգլերեն</string>
<string name="revanced_spoof_video_streams_language_ES">Իսպաներեն</string>
<string name="revanced_spoof_video_streams_language_ET">Էստոներեն</string>
<string name="revanced_spoof_video_streams_language_FA">Պարսկերեն</string>
<string name="revanced_spoof_video_streams_language_FI">Ֆիննական</string>
<string name="revanced_spoof_video_streams_language_FR">Ֆրանսերեն</string>
<string name="revanced_spoof_video_streams_language_GU">Գուջարերեն</string>
<string name="revanced_spoof_video_streams_language_HI">Հնդկերեն</string>
<string name="revanced_spoof_video_streams_language_HR">Խորվաթերեն</string>
<string name="revanced_spoof_video_streams_language_HU">Հունգարերեն</string>
<string name="revanced_spoof_video_streams_language_ID">Ինդոնեզերեն</string>
<string name="revanced_spoof_video_streams_language_IT">Իտալերեն</string>
<string name="revanced_spoof_video_streams_language_JA">Ճապոներեն</string>
<string name="revanced_spoof_video_streams_language_KK">Ղազախերեն</string>
<string name="revanced_spoof_video_streams_language_KO">Կորեերեն</string>
<string name="revanced_spoof_video_streams_language_LT">Լիտվական</string>
<string name="revanced_spoof_video_streams_language_LV">Լատվիական</string>
<string name="revanced_spoof_video_streams_language_MK">Մակեդոնական</string>
<string name="revanced_spoof_video_streams_language_MN">Մոնղոլերեն</string>
<string name="revanced_spoof_video_streams_language_MR">Մարաթի</string>
<string name="revanced_spoof_video_streams_language_MS">Մալայերեն</string>
<string name="revanced_spoof_video_streams_language_MY">Բիրմայերեն</string>
<string name="revanced_spoof_video_streams_language_NL">Հոլանդերեն</string>
<string name="revanced_spoof_video_streams_language_OR">Օդիական</string>
<string name="revanced_spoof_video_streams_language_PA">Փենջաբերեն</string>
<string name="revanced_spoof_video_streams_language_PL">Լեհերեն</string>
<string name="revanced_spoof_video_streams_language_PT">Պորտուգալերեն</string>
<string name="revanced_spoof_video_streams_language_RO">Ռումիներեն</string>
<string name="revanced_spoof_video_streams_language_RU">Ռուսերեն</string>
<string name="revanced_spoof_video_streams_language_SK">Սլովակերեն</string>
<string name="revanced_spoof_video_streams_language_SL">Սլովենական</string>
<string name="revanced_spoof_video_streams_language_SR">Սերբերեն</string>
<string name="revanced_spoof_video_streams_language_SV">Շվեդերեն</string>
<string name="revanced_spoof_video_streams_language_SW">Սուահիլի</string>
<string name="revanced_spoof_video_streams_language_TA">Թամիլերեն</string>
<string name="revanced_spoof_video_streams_language_TE">Թելուգու</string>
<string name="revanced_spoof_video_streams_language_TH">Թաիլանդերեն</string>
<string name="revanced_spoof_video_streams_language_TR">Թուրքերեն</string>
<string name="revanced_spoof_video_streams_language_UK">Ուկրաինական</string>
<string name="revanced_spoof_video_streams_language_UR">Ուրդու</string>
<string name="revanced_spoof_video_streams_language_VI">Վիետնամերեն</string>
<string name="revanced_spoof_video_streams_language_ZH">Չինական</string>
</patch>
</app>
<app id="twitch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">Pengaturan ReVanced diatur ke setelan awal</string>
<string name="revanced_settings_import_success">Mengimpor setelan %d</string>
<string name="revanced_settings_import_failure_parse">Impor gagal: %s</string>
<string name="revanced_language_title">Bahasa ReVanced</string>
<string name="revanced_language_user_dialog_message">"Terjemahan untuk beberapa bahasa mungkin hilang atau tidak lengkap.
Untuk menerjemahkan bahasa baru kunjungi translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Bahasa Aplikasi</string>
<string name="revanced_language_AR">Arab</string>
<string name="revanced_language_AZ">Azerbaijan</string>
<string name="revanced_language_BG">Bulgaria</string>
<string name="revanced_language_BN">Benggala</string>
<string name="revanced_language_CA">Katalan</string>
<string name="revanced_language_CS">Ceko</string>
<string name="revanced_language_DA">Denmark</string>
<string name="revanced_language_DE">Jerman</string>
<string name="revanced_language_EL">Yunani</string>
<string name="revanced_language_EN">Inggris</string>
<string name="revanced_language_ES">Spanyol</string>
<string name="revanced_language_ET">Estonia</string>
<string name="revanced_language_FA">Persia</string>
<string name="revanced_language_FI">Finlandia</string>
<string name="revanced_language_FR">Prancis</string>
<string name="revanced_language_GU">Gujarat</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Kroasia</string>
<string name="revanced_language_HU">Hungaria</string>
<string name="revanced_language_ID">Indonesia</string>
<string name="revanced_language_IT">Italia</string>
<string name="revanced_language_JA">Jepang</string>
<string name="revanced_language_KK">Kazakh</string>
<string name="revanced_language_KO">Korea</string>
<string name="revanced_language_LT">Lituania</string>
<string name="revanced_language_LV">Latvia</string>
<string name="revanced_language_MK">Makedonia</string>
<string name="revanced_language_MN">Mongolia</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Melayu</string>
<string name="revanced_language_MY">Burma</string>
<string name="revanced_language_NL">Belanda</string>
<string name="revanced_language_OR">Oriya</string>
<string name="revanced_language_PA">Punjab</string>
<string name="revanced_language_PL">Polandia</string>
<string name="revanced_language_PT">Portugis</string>
<string name="revanced_language_RO">Rumania</string>
<string name="revanced_language_RU">Rusia</string>
<string name="revanced_language_SK">Slovakia</string>
<string name="revanced_language_SL">Slovenia</string>
<string name="revanced_language_SR">Serbia</string>
<string name="revanced_language_SV">Swedia</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thai</string>
<string name="revanced_language_TR">Turki</string>
<string name="revanced_language_UK">Ukraina</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnam</string>
<string name="revanced_language_ZH">Tiongkok</string>
<string name="revanced_pref_import_export_title">Impor / Ekspor</string>
<string name="revanced_pref_import_export_summary">Impor / Ekspor setelan ReVanced</string>
<!-- Settings about dialog. -->
@@ -80,7 +136,7 @@ Ketuk tombol lanjutkan dan izinkan perubahan pengoptimalan."</string>
<string name="revanced_settings_screen_04_player_title">Pemutar</string>
<string name="revanced_settings_screen_05_general_title">Layout umum</string>
<string name="revanced_settings_screen_07_seekbar_title">Seekbar</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Kontrol geser</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Kontrol usap</string>
<string name="revanced_settings_screen_11_misc_title">Lain-lain</string>
<string name="revanced_settings_screen_12_video_title">Video</string>
</patch>
@@ -424,9 +480,9 @@ Fitur ini hanya tersedia untuk perangkat yang lebih lama"</string>
<string name="revanced_swipe_volume_title">Aktifkan gerakan volume</string>
<string name="revanced_swipe_volume_summary_on">Sapuan volume diaktifkan</string>
<string name="revanced_swipe_volume_summary_off">Sapuan volume dinonaktifkan</string>
<string name="revanced_swipe_press_to_engage_title">Aktifkan gerakan tekan-untuk-menggeser</string>
<string name="revanced_swipe_press_to_engage_summary_on">Tekan-untuk-menggeser diaktifkan</string>
<string name="revanced_swipe_press_to_engage_summary_off">Tekan-untuk-menggeser dinonaktifkan</string>
<string name="revanced_swipe_press_to_engage_title">Aktifkan gerakan tekan-untuk-mengusap</string>
<string name="revanced_swipe_press_to_engage_summary_on">Tekan-untuk-mengusap diaktifkan</string>
<string name="revanced_swipe_press_to_engage_summary_off">Tekan-untuk-mengusap dinonaktifkan</string>
<string name="revanced_swipe_haptic_feedback_title">Aktifkan umpan balik sentuhan</string>
<string name="revanced_swipe_haptic_feedback_summary_on">Umpan balik sentuhan diaktifkan</string>
<string name="revanced_swipe_haptic_feedback_summary_off">Umpan balik sentuhan dinonaktifkan</string>
@@ -437,14 +493,17 @@ Fitur ini hanya tersedia untuk perangkat yang lebih lama"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Mengusap ke bawah ke nilai terendah dari gerakan kecerahan akan menyalakan kecerahan otomatis</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Mengusap ke bawah ke nilai terendah tidak mengaktifkan kecerahan otomatis</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Otomatis</string>
<string name="revanced_swipe_overlay_timeout_title">Batas waktu hamparan geser</string>
<string name="revanced_swipe_overlay_timeout_title">Batas waktu hamparan usap</string>
<string name="revanced_swipe_overlay_timeout_summary">Jumlah milidetik hamparan terlihat</string>
<string name="revanced_swipe_text_overlay_size_title">Ukuran teks hamparan geser</string>
<string name="revanced_swipe_text_overlay_size_summary">Ukuran teks untuk hamparan geser</string>
<string name="revanced_swipe_overlay_background_alpha_title">Visibilitas latar belakang geser</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Visibilitas latar belakang hamparan geser</string>
<string name="revanced_swipe_threshold_title">Ambang batas magnitudo geser</string>
<string name="revanced_swipe_threshold_summary">Jumlah ambang batas untuk terjadinya geser</string>
<string name="revanced_swipe_text_overlay_size_title">Ukuran teks hamparan usap</string>
<string name="revanced_swipe_text_overlay_size_summary">Ukuran teks untuk hamparan usap</string>
<string name="revanced_swipe_overlay_background_alpha_title">Visibilitas latar belakang usap</string>
<string name="revanced_swipe_overlay_background_alpha_summary">Visibilitas latar belakang hamparan usap</string>
<string name="revanced_swipe_threshold_title">Ambang batas magnitudo usap</string>
<string name="revanced_swipe_threshold_summary">Jumlah ambang batas untuk terjadinya usapan</string>
<string name="revanced_swipe_change_video_title">Aktifkan usapan untuk beralih video</string>
<string name="revanced_swipe_change_video_summary_on">Mengusap dalam mode layar penuh akan beralih ke video berikutnya/sebelumnya</string>
<string name="revanced_swipe_change_video_summary_off">Mengusap dalam mode layar penuh tidak akan beralih ke video berikutnya/sebelumnya</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Matikan teks otomatis</string>
@@ -628,9 +687,18 @@ Catatan: Mengaktifkan ini juga akan memaksa menyembunyikan iklan video"</string>
<string name="revanced_shorts_player_screen_summary">Sembunyikan atau tampilkan komponen di pemutar Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Sembunyikan Shorts di feed beranda</string>
<string name="revanced_hide_shorts_home_summary_on">Tersembunyi di beranda dan video terkait</string>
<string name="revanced_hide_shorts_home_summary_off">Ditampilkan di beranda dan video terkait</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Sembunyikan Shorts di feed langganan</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Disembunyikan dalam umpan langganan</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Ditampilkan dalam umpan langganan</string>
<string name="revanced_hide_shorts_search_title">Sembunyikan Shorts di hasil pencarian</string>
<string name="revanced_hide_shorts_search_summary_on">Disembunyikan dalam hasil penelusuran</string>
<string name="revanced_hide_shorts_search_summary_off">Ditampilkan dalam hasil penelusuran</string>
<string name="revanced_hide_shorts_history_title">Sembunyikan Shorts dalam riwayat tontonan</string>
<string name="revanced_hide_shorts_history_summary_on">Disembunyikan dalam riwayat tontonan</string>
<string name="revanced_hide_shorts_history_summary_off">Ditampilkan dalam riwayat tontonan</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Sembunyikan tombol gabung</string>
<string name="revanced_hide_shorts_join_button_summary_on">Tombol gabung disembunyikan</string>
@@ -732,6 +800,13 @@ Catatan: Mengaktifkan ini juga akan memaksa menyembunyikan iklan video"</string>
<string name="revanced_hide_player_popup_panels_summary_on">Panel popup pemutar disembunyikan</string>
<string name="revanced_hide_player_popup_panels_summary_off">Panel popup pemutar ditampilkan</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Keluar dari mode layar penuh di akhir video</string>
<string name="revanced_exit_fullscreen_entry_1">Nonaktif</string>
<string name="revanced_exit_fullscreen_entry_2">Potret</string>
<string name="revanced_exit_fullscreen_entry_3">Lanskap</string>
<string name="revanced_exit_fullscreen_entry_4">Potret dan lanskap</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Buka video dalam potret layar penuh</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Video terbuka dalam layar penuh</string>
@@ -804,7 +879,7 @@ Keterbatasan: Dislike mungkin tidak muncul dalam mode penyamaran"</string>
Thumbnail seekbar akan menggunakan kualitas yang sama dengan video saat ini.
Fitur ini bekerja paling baik dengan kualitas video 720p atau lebih rendah dan saat menggunakan sambungan internet yang sangat cepat."</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">Kembalikan thumbnail seekbar yang lama</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">Pulihkan thumbnail seekbar yang lama</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">Thumbnail seekbar akan muncul di atas seekbar</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">Thumbnail seekbar akan muncul di layar penuh</string>
</patch>
@@ -999,6 +1074,23 @@ Siap mengirim?"</string>
<string name="revanced_sb_reset">Setel ulang</string>
<string name="revanced_sb_about">Tentang</string>
<string name="revanced_sb_about_api_sum">Data disediakan oleh API SponsorBlock. Tekan di sini untuk mempelajari lebih lanjut dan melihat hasil pengunduhan untuk platform lain</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Faktor bentuk tata letak</string>
<string name="revanced_change_form_factor_entry_1">Bawaan</string>
<string name="revanced_change_form_factor_entry_2">Ponsel</string>
<string name="revanced_change_form_factor_entry_3">Tablet</string>
<string name="revanced_change_form_factor_entry_4">Otomotif</string>
<string name="revanced_change_form_factor_user_dialog_message">"Perubahan meliputi:
Tata letak Tablet
• Postingan Komunitas disembunyikan
Tata letak Otomotif
• Menu riwayat tontonan disembunyikan
• Tab Jelajahi dipulihkan
• Shorts terbuka di pemutar reguler
• Umpan diatur menurut topik dan saluran"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Palsukan versi app</string>
@@ -1013,6 +1105,7 @@ Jika kemudian dimatikan, disarankan untuk menghapus data aplikasi untuk mencegah
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Target versi app yang dipalsukan</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Pulihkan ikon pemutar Shorts lama</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Pulihkan ikon navigasi dan bilah alat lama</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Pulihkan RYD pada mode penyamaran Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Pulihkan menu kecepatan &amp; kualitas video lebar</string>
@@ -1056,12 +1149,6 @@ Jika kemudian dimatikan, disarankan untuk menghapus data aplikasi untuk mencegah
<string name="revanced_shorts_autoplay_background_summary_on">Pemutaran latar belakang Shorts akan diputar otomatis</string>
<string name="revanced_shorts_autoplay_background_summary_off">Pemutaran latar belakang Shorts akan diulangi</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Aktifkan tata letak tablet</string>
<string name="revanced_tablet_layout_summary_on">Tata letak tablet diaktifkan</string>
<string name="revanced_tablet_layout_summary_off">Tata letak tablet dinonaktifkan</string>
<string name="revanced_tablet_layout_user_dialog_message">Postingan komunitas tidak muncul pada tata letak tablet</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Pemutar Mini</string>
<string name="revanced_miniplayer_screen_summary">Mengubah gaya pemutar aplikasi saat diciuitkan</string>
@@ -1098,7 +1185,7 @@ Miniplayer dapat diseret keluar layar ke kiri atau kanan"</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_title">Sembunyikan perbesar dan tutup</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_on">"Tombol disembunyikan
Geser untuk memperluas atau menutup"</string>
Usap untuk memperluas atau menutup"</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">Tombol bentang dan tutup ditampilkan</string>
<string name="revanced_miniplayer_hide_subtext_title">Sembunyikan subteks</string>
<string name="revanced_miniplayer_hide_subtext_summary_on">Subteks disembunyikan</string>
@@ -1225,6 +1312,7 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi"</string>
<string name="revanced_force_original_audio_title">Paksa audio asli</string>
<string name="revanced_force_original_audio_summary_on">Menggunakan audio asli</string>
<string name="revanced_force_original_audio_summary_off">Menggunakan audio bawaan</string>
<string name="revanced_force_original_audio_not_available">Untuk menggunakan fitur ini, ubah pemalsuan aliran ke jenis klien iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1252,6 +1340,8 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi"</string>
<string name="revanced_custom_playback_speeds_invalid">Kecepatan khusus harus kurang dari %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Kecepatan pemutaran khusus tidak valid</string>
<string name="revanced_custom_playback_speeds_auto">Otomatis</string>
<string name="revanced_speed_tap_and_hold_title">Kecepatan ketuk dan tahan khusus</string>
<string name="revanced_speed_tap_and_hold_summary">Kecepatan pemutaran antara 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Ingat perubahan kecepatan pemutaran</string>
@@ -1288,7 +1378,7 @@ Pemutaran video mungkin tidak berfungsi"</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">"Mengaktifkan ini mungkin dapat meningkatkan daya tahan baterai dan memperbaiki masalah pemutaran.
AVC memiliki resolusi maksimum 1080p, codec audio Opus tidak tersedia, dan pemutaran video akan menggunakan lebih banyak data internet daripada VP9 atau AV1."</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">Efek samping pemalsuan iOS TV</string>
<string name="revanced_spoof_video_streams_about_ios_tv_title">Efek samping pemalsuan iOS</string>
<string name="revanced_spoof_video_streams_about_ios_tv_summary">"• Film atau video berbayar mungkin tidak dapat diputar
• Volume stabil tidak tersedia
• Video berakhir 1 detik lebih awal"</string>
@@ -1296,62 +1386,11 @@ AVC memiliki resolusi maksimum 1080p, codec audio Opus tidak tersedia, dan pemut
<string name="revanced_spoof_video_streams_about_android_summary">"• Menu trek audio tidak ada
• Volume stabil tidak tersedia
• Paksa audio asli tidak tersedia"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Tidak ada codec video AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Tampilkan di Statistik untuk nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Jenis klien ditampilkan di Statistik untuk nerds</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Klien disembunyikan di Statistik untuk nerds</string>
<string name="revanced_spoof_video_streams_language_title">Bahasa aliran audio bawaan VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Bahasa akun</string>
<string name="revanced_spoof_video_streams_language_AR">Arab</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaijan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaria</string>
<string name="revanced_spoof_video_streams_language_BN">Bengali</string>
<string name="revanced_spoof_video_streams_language_CA">Katalan</string>
<string name="revanced_spoof_video_streams_language_CS">Ceko</string>
<string name="revanced_spoof_video_streams_language_DA">Denmark</string>
<string name="revanced_spoof_video_streams_language_DE">Jerman</string>
<string name="revanced_spoof_video_streams_language_EL">Yunani</string>
<string name="revanced_spoof_video_streams_language_EN">Inggris</string>
<string name="revanced_spoof_video_streams_language_ES">Spanyol</string>
<string name="revanced_spoof_video_streams_language_ET">Estonia</string>
<string name="revanced_spoof_video_streams_language_FA">Persia</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandia</string>
<string name="revanced_spoof_video_streams_language_FR">Perancis</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarat</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroasia</string>
<string name="revanced_spoof_video_streams_language_HU">Hungaria</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesia</string>
<string name="revanced_spoof_video_streams_language_IT">Italia</string>
<string name="revanced_spoof_video_streams_language_JA">Jepang</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Korea</string>
<string name="revanced_spoof_video_streams_language_LT">Lithuania</string>
<string name="revanced_spoof_video_streams_language_LV">Latvia</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonia</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolia</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Melayu</string>
<string name="revanced_spoof_video_streams_language_MY">Myanmar</string>
<string name="revanced_spoof_video_streams_language_NL">Belanda</string>
<string name="revanced_spoof_video_streams_language_OR">Oriya</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polandia</string>
<string name="revanced_spoof_video_streams_language_PT">Portugis</string>
<string name="revanced_spoof_video_streams_language_RO">Rumania</string>
<string name="revanced_spoof_video_streams_language_RU">Rusia</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakia</string>
<string name="revanced_spoof_video_streams_language_SL">Slovenia</string>
<string name="revanced_spoof_video_streams_language_SR">Serbia</string>
<string name="revanced_spoof_video_streams_language_SV">Swedia</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thai</string>
<string name="revanced_spoof_video_streams_language_TR">Turki</string>
<string name="revanced_spoof_video_streams_language_UK">Ukraina</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnam</string>
<string name="revanced_spoof_video_streams_language_ZH">China</string>
</patch>
</app>
<app id="twitch">

View File

@@ -136,6 +136,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -155,6 +157,8 @@ Second \"item\" text"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
@@ -168,8 +172,6 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
</patch>
<patch id="layout.theme.themePatch">

View File

@@ -43,6 +43,62 @@ Second \"item\" text"</string>
<string name="revanced_settings_import_reset">Reimposta le impostazioni di ReVanced a quelle predefinite</string>
<string name="revanced_settings_import_success">Importate %d impostazioni</string>
<string name="revanced_settings_import_failure_parse">Importazione non riuscita: %s</string>
<string name="revanced_language_title">Lingua di ReVanced</string>
<string name="revanced_language_user_dialog_message">"Le traduzioni per alcune lingue potrebbero essere mancanti o incomplete.
Per tradurre nuove lingue visita translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Lingua dell\'app</string>
<string name="revanced_language_AR">Arabo</string>
<string name="revanced_language_AZ">Azero</string>
<string name="revanced_language_BG">Bulgaro</string>
<string name="revanced_language_BN">Bengalese</string>
<string name="revanced_language_CA">Catalano</string>
<string name="revanced_language_CS">Ceco</string>
<string name="revanced_language_DA">Danese</string>
<string name="revanced_language_DE">Tedesco</string>
<string name="revanced_language_EL">Greco</string>
<string name="revanced_language_EN">Inglese</string>
<string name="revanced_language_ES">Spagnolo</string>
<string name="revanced_language_ET">Estone</string>
<string name="revanced_language_FA">Persiano</string>
<string name="revanced_language_FI">Finlandese</string>
<string name="revanced_language_FR">Francese</string>
<string name="revanced_language_GU">Gujarati</string>
<string name="revanced_language_HI">Hindi</string>
<string name="revanced_language_HR">Croato</string>
<string name="revanced_language_HU">Ungherese</string>
<string name="revanced_language_ID">Indonesiano</string>
<string name="revanced_language_IT">Italiano</string>
<string name="revanced_language_JA">Giapponese</string>
<string name="revanced_language_KK">Kazako</string>
<string name="revanced_language_KO">Coreano</string>
<string name="revanced_language_LT">Lituano</string>
<string name="revanced_language_LV">Lettone</string>
<string name="revanced_language_MK">Macedone</string>
<string name="revanced_language_MN">Mongolo</string>
<string name="revanced_language_MR">Marathi</string>
<string name="revanced_language_MS">Malese</string>
<string name="revanced_language_MY">Birmano</string>
<string name="revanced_language_NL">Olandese</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Punjabi</string>
<string name="revanced_language_PL">Polacco</string>
<string name="revanced_language_PT">Portoghese</string>
<string name="revanced_language_RO">Rumeno</string>
<string name="revanced_language_RU">Russo</string>
<string name="revanced_language_SK">Slovacco</string>
<string name="revanced_language_SL">Sloveno</string>
<string name="revanced_language_SR">Serbo</string>
<string name="revanced_language_SV">Svedese</string>
<string name="revanced_language_SW">Swahili</string>
<string name="revanced_language_TA">Tamil</string>
<string name="revanced_language_TE">Telugu</string>
<string name="revanced_language_TH">Thai</string>
<string name="revanced_language_TR">Turco</string>
<string name="revanced_language_UK">Ucraino</string>
<string name="revanced_language_UR">Urdu</string>
<string name="revanced_language_VI">Vietnamita</string>
<string name="revanced_language_ZH">Cinese</string>
<string name="revanced_pref_import_export_title">Importa / Esporta</string>
<string name="revanced_pref_import_export_summary">Importa / Esporta impostazioni ReVanced</string>
<!-- Settings about dialog. -->
@@ -445,6 +501,9 @@ Questa funzione è disponibile solo per i dispositivi più vecchi"</string>
<string name="revanced_swipe_overlay_background_alpha_summary">La visibilità dello sfondo in sovrapposizione durante lo scorrimento</string>
<string name="revanced_swipe_threshold_title">Ampiezza limite della soglia di scorrimento</string>
<string name="revanced_swipe_threshold_summary">Il limite di ampiezza entro cui deve avvenire lo scorrimento</string>
<string name="revanced_swipe_change_video_title">Attiva il gesto per cambiare video</string>
<string name="revanced_swipe_change_video_summary_on">Lo scorrimento in modalità a schermo intero passerà al video successivo/precedente</string>
<string name="revanced_swipe_change_video_summary_off">Lo scorrimento in modalità schermo intero non cambierà al video successivo/precedente</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Disabilita i sottotitoli automatici </string>
@@ -628,9 +687,18 @@ Nota: Abilitare questa opzione nasconde anche le pubblicità video"</string>
<string name="revanced_shorts_player_screen_summary">Mostra o nascondi i componenti nel player Shorts</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Nascondi Shorts nella scheda Home</string>
<string name="revanced_hide_shorts_home_summary_on">Nascosto nella scheda Home e nei video correlati</string>
<string name="revanced_hide_shorts_home_summary_off">Visibile nella scheda Home e nei video correlati</string>
<!-- 'subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_hide_shorts_subscriptions_title">Nascondi gli Shorts nella scheda Iscrizioni</string>
<string name="revanced_hide_shorts_subscriptions_summary_on">Nascosti nel feed delle mie iscrizioni</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">Mostrati nel feed delle mie iscrizioni</string>
<string name="revanced_hide_shorts_search_title">Nascondi gli Shorts dei risultati di ricerca</string>
<string name="revanced_hide_shorts_search_summary_on">Nascosti nei risultati di ricerca</string>
<string name="revanced_hide_shorts_search_summary_off">Mostrati nei risultati di ricerca</string>
<string name="revanced_hide_shorts_history_title">Nascondi Shorts nella cronologia</string>
<string name="revanced_hide_shorts_history_summary_on">Nascosti nella cronologia di visualizzazione</string>
<string name="revanced_hide_shorts_history_summary_off">Mostrato nella cronologia</string>
<!-- 'join' should be translated using the same localized wording YouTube displays for the button. -->
<string name="revanced_hide_shorts_join_button_title">Nascondi il pulsante Abbonati</string>
<string name="revanced_hide_shorts_join_button_summary_on">Il pulsante Abbonati è nascosto</string>
@@ -732,6 +800,13 @@ Nota: Abilitare questa opzione nasconde anche le pubblicità video"</string>
<string name="revanced_hide_player_popup_panels_summary_on">I pannelli popup del player sono nascosti</string>
<string name="revanced_hide_player_popup_panels_summary_off">I pannelli popup del player sono visibili</string>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string name="revanced_exit_fullscreen_title">Esci dalla modalità schermo intero al termine del video</string>
<string name="revanced_exit_fullscreen_entry_1">Disabilitato</string>
<string name="revanced_exit_fullscreen_entry_2">Verticale</string>
<string name="revanced_exit_fullscreen_entry_3">Orizzontale</string>
<string name="revanced_exit_fullscreen_entry_4">Verticale e orizzontale</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Apri i video in verticale a schermo intero</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">I video vengono aperti a schermo intero</string>
@@ -999,6 +1074,23 @@ Pronto per l'invio?"</string>
<string name="revanced_sb_reset">Reimposta</string>
<string name="revanced_sb_about">Informazioni</string>
<string name="revanced_sb_about_api_sum">I dati sono forniti dall\'API di SponsorBlock. Tocca qui per saperne di più e vedere i download per altre piattaforme</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
<string name="revanced_change_form_factor_title">Fattore di forma del layout</string>
<string name="revanced_change_form_factor_entry_1">Predefinito</string>
<string name="revanced_change_form_factor_entry_2">Telefono</string>
<string name="revanced_change_form_factor_entry_3">Tablet</string>
<string name="revanced_change_form_factor_entry_4">Automotive</string>
<string name="revanced_change_form_factor_user_dialog_message">"Le modifiche includono:
Layout tablet
• I post della community sono nascosti
Layout automotive
• Il menu della cronologia è nascosto
• La scheda Esplora è ripristinata
• Gli Shorts si aprono nel lettore normale
• Il feed è organizzato per argomenti e canali"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Simula la versione dell\'app</string>
@@ -1013,6 +1105,7 @@ Se in seguito verrà disattivato, si consiglia di cancellare i dati dell'app per
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Target della versione dell\'app desiderata</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Ripristinare le vecchie icone del player Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">19.26.42 - Ripristina le vecchie icone di navigazione e barra degli strumenti</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Ripristina RYD negli Shorts in modalità incognito</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Ripristina velocità video larga &amp; menu qualità</string>
@@ -1056,12 +1149,6 @@ Se in seguito verrà disattivato, si consiglia di cancellare i dati dell'app per
<string name="revanced_shorts_autoplay_background_summary_on">Gli Short in background verranno riprodotti automaticamente</string>
<string name="revanced_shorts_autoplay_background_summary_off">Gli Short in background si ripeteranno</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Attiva l\'interfaccia da tablet</string>
<string name="revanced_tablet_layout_summary_on">Il layout da tablet è abilitato</string>
<string name="revanced_tablet_layout_summary_off">Il layout del tablet è disabilitato</string>
<string name="revanced_tablet_layout_user_dialog_message">I post della comunità non vengono visualizzati sui layout dei tablet</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Miniplayer</string>
<string name="revanced_miniplayer_screen_summary">Cambia lo stile del miniplayer nell\'app</string>
@@ -1139,7 +1226,7 @@ Abilitare questa opzione può risolvere le immagini mancanti che sono bloccate i
<!-- 'Subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_alt_thumbnail_subscription_title">Scheda Iscrizioni</string>
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (library) tab. -->
<string name="revanced_alt_thumbnail_library_title">Scheda Per Te</string>
<string name="revanced_alt_thumbnail_library_title">Scheda Tu</string>
<string name="revanced_alt_thumbnail_player_title">Playlist e video consigliati</string>
<string name="revanced_alt_thumbnail_search_title">Risultati della ricerca</string>
<string name="revanced_alt_thumbnail_options_entry_1">Miniature originali</string>
@@ -1225,6 +1312,7 @@ Abilitare questa opzione può sbloccare qualità video più elevate"</string>
<string name="revanced_force_original_audio_title">Forza l\'audio originale</string>
<string name="revanced_force_original_audio_summary_on">Utilizzo audio originale</string>
<string name="revanced_force_original_audio_summary_off">Utilizzo audio predefinito</string>
<string name="revanced_force_original_audio_not_available">Per utilizzare questa funzione, cambia la simulazione dello stream nel tipo di client iOS</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->
@@ -1252,6 +1340,8 @@ Abilitare questa opzione può sbloccare qualità video più elevate"</string>
<string name="revanced_custom_playback_speeds_invalid">Le velocità personalizzate devono essere inferiori a %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocità di riproduzione personalizzata non valida</string>
<string name="revanced_custom_playback_speeds_auto">Automatico</string>
<string name="revanced_speed_tap_and_hold_title">Velocità personalizzata di tocca e tieni premuto</string>
<string name="revanced_speed_tap_and_hold_summary">Velocità di riproduzione tra 0-8</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Ricorda le modifiche della velocità di riproduzione</string>
@@ -1296,62 +1386,11 @@ AVC ha una risoluzione massima di 1080p, il codec audio Opus non è disponibile
<string name="revanced_spoof_video_streams_about_android_summary">"• Il menu traccia audio è mancante
• Il volume stabile non è disponibile
• Forza l'audio originale non è disponibile"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nessun codec video AV1</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">Mostra nelle statistiche per nerd</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_on">Il tipo di client è mostrato nelle statistiche per nerd</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_summary_off">Il client è nascosto nelle statistiche per nerd</string>
<string name="revanced_spoof_video_streams_language_title">Lingua predefinita del flusso audio VR</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Lingua dell\'account</string>
<string name="revanced_spoof_video_streams_language_AR">Arabo</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaigiano</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaro</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalese</string>
<string name="revanced_spoof_video_streams_language_CA">Catalano</string>
<string name="revanced_spoof_video_streams_language_CS">Ceco</string>
<string name="revanced_spoof_video_streams_language_DA">Danese</string>
<string name="revanced_spoof_video_streams_language_DE">Tedesco</string>
<string name="revanced_spoof_video_streams_language_EL">Greco</string>
<string name="revanced_spoof_video_streams_language_EN">Inglese</string>
<string name="revanced_spoof_video_streams_language_ES">Spagnolo</string>
<string name="revanced_spoof_video_streams_language_ET">Estone</string>
<string name="revanced_spoof_video_streams_language_FA">Persiano</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandese</string>
<string name="revanced_spoof_video_streams_language_FR">Francese</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croato</string>
<string name="revanced_spoof_video_streams_language_HU">Ungherese</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesiano</string>
<string name="revanced_spoof_video_streams_language_IT">Italiano</string>
<string name="revanced_spoof_video_streams_language_JA">Giapponese</string>
<string name="revanced_spoof_video_streams_language_KK">Kazako</string>
<string name="revanced_spoof_video_streams_language_KO">Coreano</string>
<string name="revanced_spoof_video_streams_language_LT">Lituano</string>
<string name="revanced_spoof_video_streams_language_LV">Lettone</string>
<string name="revanced_spoof_video_streams_language_MK">Macedone</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolo</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malese</string>
<string name="revanced_spoof_video_streams_language_MY">Birmano</string>
<string name="revanced_spoof_video_streams_language_NL">Olandese</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polacco</string>
<string name="revanced_spoof_video_streams_language_PT">Portoghese</string>
<string name="revanced_spoof_video_streams_language_RO">Rumeno</string>
<string name="revanced_spoof_video_streams_language_RU">Russo</string>
<string name="revanced_spoof_video_streams_language_SK">Slovacco</string>
<string name="revanced_spoof_video_streams_language_SL">Sloveno</string>
<string name="revanced_spoof_video_streams_language_SR">Serbo</string>
<string name="revanced_spoof_video_streams_language_SV">Svedese</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandese</string>
<string name="revanced_spoof_video_streams_language_TR">Turco</string>
<string name="revanced_spoof_video_streams_language_UK">Ucraino</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamita</string>
<string name="revanced_spoof_video_streams_language_ZH">Cinese</string>
</patch>
</app>
<app id="twitch">

View File

@@ -279,6 +279,8 @@ Mלות עם אותיות גדולות באמצע צריכות להיכנס עם
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
@@ -384,6 +386,8 @@ Mלות עם אותיות גדולות באמצע צריכות להיכנס עם
<string name="revanced_sb_reset">איפוס</string>
<string name="revanced_sb_about">אודות</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_user_dialog_message">"גרסת האפליקציה תזויף לגרסה ישנה יותר של YouTube.
@@ -403,8 +407,6 @@ Mלות עם אותיות גדולות באמצע צריכות להיכנס עם
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_type_entry_0">הושבת</string>
<string name="revanced_miniplayer_type_entry_1">ברירת מחדל</string>
@@ -492,8 +494,6 @@ Mלות עם אותיות גדולות באמצע צריכות להיכנס עם
ייתכן שהשמעת וידאו לא תעבוד"</string>
<!-- 'no auth' means no authentication -->
<string name="revanced_spoof_video_streams_language_EN">אנגלית</string>
<string name="revanced_spoof_video_streams_language_FR">צרפתית</string>
</patch>
</app>
<app id="twitch">

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