Compare commits

...

65 Commits

Author SHA1 Message Date
semantic-release-bot
9a5c102c0d chore: Release v5.37.0-dev.6 [skip ci]
# [5.37.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.5...v5.37.0-dev.6) (2025-09-15)

### Bug Fixes

* **Instagram - Hide navigation buttons:** Add constrain to known working version ([e6c79f1](e6c79f1383))
2025-09-15 06:40:30 +00:00
LisoUseInAIKyrios
e6c79f1383 fix(Instagram - Hide navigation buttons): Add constrain to known working version 2025-09-15 10:36:57 +04:00
semantic-release-bot
2a582eced8 chore: Release v5.37.0-dev.5 [skip ci]
# [5.37.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.4...v5.37.0-dev.5) (2025-09-15)

### Bug Fixes

* **Viber - Hide ads:** Add constrain to known working version ([2db0948](2db0948bea))
2025-09-15 06:29:31 +00:00
LisoUseInAIKyrios
2db0948bea fix(Viber - Hide ads): Add constrain to known working version 2025-09-15 10:26:30 +04:00
semantic-release-bot
a3ba92e742 chore: Release v5.37.0-dev.4 [skip ci]
# [5.37.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.3...v5.37.0-dev.4) (2025-09-14)

### Bug Fixes

* **YouTube Music - Spoof streaming data:** Fix audio playback stuttering ([#5839](https://github.com/ReVanced/revanced-patches/issues/5839)) ([2a85a3b](2a85a3b290))
2025-09-14 18:22:57 +00:00
LisoUseInAIKyrios
2a85a3b290 fix(YouTube Music - Spoof streaming data): Fix audio playback stuttering (#5839) 2025-09-14 22:19:13 +04:00
semantic-release-bot
eee72208dd chore: Release v5.37.0-dev.3 [skip ci]
# [5.37.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.2...v5.37.0-dev.3) (2025-09-14)

### Bug Fixes

* **Spotify:** Remove broken `Spoof client` patch ([#5833](https://github.com/ReVanced/revanced-patches/issues/5833)) ([dcd4245](dcd42454bd))
2025-09-14 17:15:28 +00:00
LisoUseInAIKyrios
dcd42454bd fix(Spotify): Remove broken Spoof client patch (#5833) 2025-09-14 21:11:15 +04:00
LisoUseInAIKyrios
782353c18a refactor(Spoof video streams): Handle migration of default spoof client for users upgrading from very old patches 2025-09-14 18:06:40 +04:00
semantic-release-bot
b53b870e8f chore: Release v5.37.0-dev.2 [skip ci]
# [5.37.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.1...v5.37.0-dev.2) (2025-09-14)

### Bug Fixes

* Resolve patching with dev branch ([09b941a](09b941abf0))
2025-09-14 12:00:38 +00:00
LisoUseInAIKyrios
09b941abf0 fix: Resolve patching with dev branch 2025-09-14 15:58:05 +04:00
semantic-release-bot
678ef4052e chore: Release v5.37.0-dev.1 [skip ci]
# [5.37.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.36.0...v5.37.0-dev.1) (2025-09-14)

### Features

* **Viber:** Add `Hide ads` patch ([#5826](https://github.com/ReVanced/revanced-patches/issues/5826)) ([0abfab7](0abfab79d7))
2025-09-14 11:52:21 +00:00
Samo Hribar
0abfab79d7 feat(Viber): Add Hide ads patch (#5826) 2025-09-14 15:49:52 +04:00
LisoUseInAIKyrios
61cadf72cd refactor(Spoof video streams): Back port code from v22 branch to support patching the latest YT Music. Using any target above 7.49.52 is untested and only recommended for experimental or development purposes. 2025-09-14 15:49:35 +04:00
github-actions[bot]
e12359b94f chore: Sync translations (#5829) 2025-09-14 15:46:32 +04:00
semantic-release-bot
c001daba4a chore: Release v5.36.0 [skip ci]
# [5.36.0](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0) (2025-09-14)

### Bug Fixes

* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](88b47ef414))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](8cd8e59bbc))
* **YouTube Music:** Resolve playback issues, change recommended app target to `7.29.52` ([#5813](https://github.com/ReVanced/revanced-patches/issues/5813)) ([a53b00d](a53b00dd51))

### Features

* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](9d4aa5cd16))
2025-09-14 06:56:22 +00:00
LisoUseInAIKyrios
e136f62d6e chore: Merge branch dev to main (#5800) 2025-09-14 10:53:28 +04:00
semantic-release-bot
8ec405a359 chore: Release v5.36.0-dev.1 [skip ci]
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-13)

### Bug Fixes

* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](88b47ef414))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](8cd8e59bbc))
* **YouTube Music:** Resolve playback issues, change recommended app target to `7.29.52` ([#5813](https://github.com/ReVanced/revanced-patches/issues/5813)) ([a53b00d](a53b00dd51))

### Features

* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](9d4aa5cd16))
2025-09-13 15:31:54 +00:00
github-actions[bot]
2f4b3a887b chore: Sync translations (#5821) 2025-09-13 19:28:15 +04:00
semantic-release-bot
d1fabb242b chore: Release v5.36.0-dev.1 [skip ci]
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-13)

### Bug Fixes

* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](88b47ef414))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](8cd8e59bbc))
* **YouTube Music:** Resolve playback issues, change recommended app target to `7.29.52` ([#5813](https://github.com/ReVanced/revanced-patches/issues/5813)) ([a53b00d](a53b00dd51))

### Features

* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](9d4aa5cd16))
2025-09-13 15:15:40 +00:00
LisoUseInAIKyrios
a53b00dd51 fix(YouTube Music): Resolve playback issues, change recommended app target to 7.29.52 (#5813) 2025-09-13 19:12:00 +04:00
semantic-release-bot
850c13e98e chore: Release v5.36.0-dev.1 [skip ci]
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-13)

### Bug Fixes

* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](88b47ef414))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](8cd8e59bbc))

### Features

* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](9d4aa5cd16))
2025-09-13 07:00:16 +00:00
LisoUseInAIKyrios
4310789a26 chore: Fix api 2025-09-13 10:56:43 +04:00
semantic-release-bot
c4a720fbd3 chore: Release v5.36.0-dev.1 [skip ci]
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-12)

### Bug Fixes

* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](88b47ef414))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](8cd8e59bbc))

### Features

* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](9d4aa5cd16))
2025-09-12 15:08:03 +00:00
LisoUseInAIKyrios
3bdb8dbce0 chore(YouTube - SponsorBlock): Adjust strings for consistency / clarity
Strings taken from https://github.com/ajayyy/ExtensionTranslations/blob/master/en/messages.json
2025-09-12 18:49:34 +04:00
LisoUseInAIKyrios
4894f33c96 chore: fix compilation 2025-09-12 18:49:33 +04:00
semantic-release-bot
7f6093ee66 chore: Release v5.36.0-dev.1 [skip ci]
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.1-dev.1...v5.36.0-dev.1) (2025-09-12)

### Features

* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](9d4aa5cd16))
2025-09-12 01:59:47 +00:00
LisoUseInAIKyrios
9d4aa5cd16 feat(YouTube - SponsorBlock): Add 'Hook' segment category (#5783) 2025-09-12 05:56:50 +04:00
oSumAtrIX
5ace6f587c chore: Add ads.fund verification file [skip ci] (#5786) 2025-09-11 16:00:24 +02:00
semantic-release-bot
796f56745e chore: Release v5.35.1-dev.1 [skip ci]
## [5.35.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.35.1-dev.1) (2025-09-11)

### Bug Fixes

* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](88b47ef414))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](8cd8e59bbc))
2025-09-11 01:29:16 +00:00
hoodles
88b47ef414 fix(Duolingo - Disable ads): Support latest app target (#5782) 2025-09-11 03:26:28 +02:00
LisoUseInAIKyrios
8cd8e59bbc fix(YouTube - Hide layout components): Hide new type of Playable shelf 2025-09-11 03:24:09 +02:00
LisoUseInAIKyrios
6e72b14d07 refactor(YouTube - Video Quality): Handle extremely slow internet connections that initially can use -1 quality index 2025-09-11 02:58:33 +02:00
LisoUseInAIKyrios
52b088327b chore: Fix api dump 2025-09-10 21:58:27 +02:00
semantic-release-bot
8e934cc56b chore: Release v5.35.0 [skip ci]
# [5.35.0](https://github.com/ReVanced/revanced-patches/compare/v5.34.0...v5.35.0) (2025-09-09)

### Bug Fixes

* **Instagram - Hide navigation buttons:** Fix Manager patching error ([0a8cd7a](0a8cd7a7db))
* **Proton mail:** Constrain patches to last working app target ([1895291](189529151a))
* Revert dependency updates to fix Manager pre-release patching ([9256aa4](9256aa4548))
* **Spotify - Unlock Premium:** Make compatible with latest versions again by fixing fingerprint ([#5684](https://github.com/ReVanced/revanced-patches/issues/5684)) ([23496c7](23496c7c36))
* **YouTube - Hide layout components:** Hide Playable shelf header ([1473db0](1473db0bef))

### Features

* **BaconReader:** Add `Fix Redgifs API` patch ([#5761](https://github.com/ReVanced/revanced-patches/issues/5761)) ([144af2f](144af2f07e))
* **Boost/Sync for Reddit:** Add `Fix Redgifs` patch  ([#5725](https://github.com/ReVanced/revanced-patches/issues/5725)) ([c66c42e](c66c42e946))
* **Instagram:** Add `Hide navigation buttons` patch ([#5678](https://github.com/ReVanced/revanced-patches/issues/5678)) ([1dbc2d4](1dbc2d4057))
* **Instagram:** Add `Hide Stories from Home` patch ([#5756](https://github.com/ReVanced/revanced-patches/issues/5756)) ([b8629aa](b8629aacb6))
2025-09-09 19:38:18 +00:00
LisoUseInAIKyrios
b3140d909b chore: Merge branch dev to main (#5691) 2025-09-09 21:34:30 +02:00
github-actions[bot]
97645aa9f4 chore: Sync translations (#5777) 2025-09-09 21:32:56 +02:00
semantic-release-bot
603e2d018c chore: Release v5.35.0-dev.5 [skip ci]
# [5.35.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.4...v5.35.0-dev.5) (2025-09-06)

### Features

* **BaconReader:** Add `Fix Redgifs API` patch ([#5761](https://github.com/ReVanced/revanced-patches/issues/5761)) ([144af2f](144af2f07e))
* **Instagram:** Add `Hide Stories from Home` patch ([#5756](https://github.com/ReVanced/revanced-patches/issues/5756)) ([b8629aa](b8629aacb6))
2025-09-06 10:56:54 +00:00
Eric Ahn
144af2f07e feat(BaconReader): Add Fix Redgifs API patch (#5761) 2025-09-06 12:53:26 +02:00
PainfulPaladins
b8629aacb6 feat(Instagram): Add Hide Stories from Home patch (#5756) 2025-09-06 12:53:08 +02:00
github-actions[bot]
3951527f51 chore: Sync translations (#5768) 2025-09-06 12:52:48 +02:00
semantic-release-bot
7a8b618c4e chore: Release v5.35.0-dev.4 [skip ci]
# [5.35.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.3...v5.35.0-dev.4) (2025-09-04)

### Features

* **Boost/Sync for Reddit:** Add `Fix Redgifs` patch  ([#5725](https://github.com/ReVanced/revanced-patches/issues/5725)) ([c66c42e](c66c42e946))
2025-09-04 21:33:33 +00:00
Eric Ahn
c66c42e946 feat(Boost/Sync for Reddit): Add Fix Redgifs patch (#5725) 2025-09-04 23:29:58 +02:00
semantic-release-bot
b340769cf3 chore: Release v5.35.0-dev.3 [skip ci]
# [5.35.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.2...v5.35.0-dev.3) (2025-09-04)

### Bug Fixes

* **Instagram - Hide navigation buttons:** Fix Manager patching error ([0a8cd7a](0a8cd7a7db))
2025-09-04 14:06:03 +00:00
LisoUseInAIKyrios
0a8cd7a7db fix(Instagram - Hide navigation buttons): Fix Manager patching error 2025-09-04 16:01:50 +02:00
semantic-release-bot
39f90e4b11 chore: Release v5.35.0-dev.2 [skip ci]
# [5.35.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.1...v5.35.0-dev.2) (2025-09-04)

### Bug Fixes

* Revert dependency updates to fix Manager pre-release patching ([9256aa4](9256aa4548))
2025-09-04 10:27:39 +00:00
LisoUseInAIKyrios
9256aa4548 fix: Revert dependency updates to fix Manager pre-release patching 2025-09-04 12:23:56 +02:00
semantic-release-bot
7973c75552 chore: Release v5.35.0-dev.1 [skip ci]
# [5.35.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.34.1-dev.3...v5.35.0-dev.1) (2025-09-03)

### Features

* **Instagram:** Add `Hide navigation buttons` patch ([#5678](https://github.com/ReVanced/revanced-patches/issues/5678)) ([1dbc2d4](1dbc2d4057))
2025-09-03 17:43:47 +00:00
github-actions[bot]
2b2307416a chore: Sync translations (#5755) 2025-09-03 19:41:04 +02:00
PainfulPaladins
1dbc2d4057 feat(Instagram): Add Hide navigation buttons patch (#5678)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2025-09-03 19:39:25 +02:00
dependabot[bot]
f6917dc361 chore(deps): Bump com.google.protobuf:protoc from 4.31.1 to 4.32.0 (#5751) 2025-09-02 18:28:15 +02:00
dependabot[bot]
d2f043e11a chore(deps): Bump com.google.protobuf:protobuf-javalite from 4.31.1 to 4.32.0 (#5750) 2025-09-02 17:10:45 +02:00
dependabot[bot]
a392bc0dfd chore(deps): Bump actions/setup-java from 4 to 5 (#5746) 2025-09-02 12:43:12 +02:00
dependabot[bot]
dfc127048a chore(deps): Bump actions/attest-build-provenance from 2 to 3 (#5743) 2025-09-02 12:42:08 +02:00
dependabot[bot]
ed31d0cab6 chore(deps): Bump actions/checkout from 4 to 5 (#5745) 2025-09-02 12:41:29 +02:00
dependabot[bot]
0df6315f9c chore(deps): Bump cycjimmy/semantic-release-action from 4 to 5 (#5741) 2025-09-02 12:40:08 +02:00
semantic-release-bot
f14259f9ef chore: Release v5.34.1-dev.3 [skip ci]
## [5.34.1-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.34.1-dev.2...v5.34.1-dev.3) (2025-08-24)

### Bug Fixes

* **YouTube - Hide layout components:** Hide Playable shelf header ([1473db0](1473db0bef))
2025-08-24 03:30:00 +00:00
LisoUseInAIKyrios
1473db0bef fix(YouTube - Hide layout components): Hide Playable shelf header 2025-08-23 23:26:02 -04:00
github-actions[bot]
829ca58a55 chore: Sync translations (#5707) 2025-08-23 23:23:49 -04:00
semantic-release-bot
aace741e25 chore: Release v5.34.1-dev.2 [skip ci]
## [5.34.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.34.1-dev.1...v5.34.1-dev.2) (2025-08-22)

### Bug Fixes

* **Proton mail:** Constrain patches to last working app target ([1895291](189529151a))
2025-08-22 04:12:59 +00:00
LisoUseInAIKyrios
189529151a fix(Proton mail): Constrain patches to last working app target 2025-08-22 00:10:03 -04:00
semantic-release-bot
51237c177a chore: Release v5.34.1-dev.1 [skip ci]
## [5.34.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.34.0...v5.34.1-dev.1) (2025-08-21)

### Bug Fixes

* **Spotify - Unlock Premium:** Make compatible with latest versions again by fixing fingerprint ([#5684](https://github.com/ReVanced/revanced-patches/issues/5684)) ([23496c7](23496c7c36))
2025-08-21 19:20:39 +00:00
Nuckyz
23496c7c36 fix(Spotify - Unlock Premium): Make compatible with latest versions again by fixing fingerprint (#5684) 2025-08-21 15:17:29 -04:00
semantic-release-bot
e6823d8924 chore: Release v5.34.0 [skip ci]
# [5.34.0](https://github.com/ReVanced/revanced-patches/compare/v5.33.0...v5.34.0) (2025-08-19)

### Bug Fixes

* **Backdrops:** Remove broken patch that is no longer supported ([#5627](https://github.com/ReVanced/revanced-patches/issues/5627)) ([c3e571e](c3e571e765))
* **pixiv - Hide ads:** Constrain patch to last working app target ([b702dce](b702dceda0))
* **Twitch:** Constrain patches to last working app targets ([#5373](https://github.com/ReVanced/revanced-patches/issues/5373)) ([d7eb6e8](d7eb6e87a5))
* **YouTube - Hide layout components:** Do not hide community posts on channel profiles ([#5634](https://github.com/ReVanced/revanced-patches/issues/5634)) ([61824ad](61824ade23))
* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([150bee2](150bee2833))
* **YouTube - SponsorBlock:** Do not hide voting or create button when the video ends ([25470ba](25470baeee))
* **YouTube - Video playback:** Disable HDR video does not disable Dolby Vision HDR ([#5661](https://github.com/ReVanced/revanced-patches/issues/5661)) ([4aaa7ca](4aaa7ca895))
* **YouTube - Video quality:** Fix additional incorrect quality resolutions used by YouTube ([6bd9e49](6bd9e49c7a))
* **YouTube - Video quality:** Show FHD+ icon for 1080p 60fps enhanced bitrate ([e579c56](e579c56921))
* **YouTube:** Use correct fade out animation when tapping to dismiss the video overlay ([#5670](https://github.com/ReVanced/revanced-patches/issues/5670)) ([01a04c3](01a04c338c))

### Features

* **Instagram:** Support latest app version ([#5611](https://github.com/ReVanced/revanced-patches/issues/5611)) ([562e005](562e005772))
* **NU.nl:** Support latest app version ([#5643](https://github.com/ReVanced/revanced-patches/issues/5643)) ([1bb8c53](1bb8c53ed3))
* **YouTube - Hide player flyout menu items:** Add option to hide quality flyout menu ([809e013](809e013c4e))
* **YouTube - Hide video action buttons:** Add "Hide Hype button" setting ([fe66bae](fe66baedb7))
* **YouTube - Hide video action buttons:** Add "Hide Promote button" setting ([40ac8e1](40ac8e1142))
* **YouTube - Playback speed:** Show current playback speed on player speed dialog button ([#5607](https://github.com/ReVanced/revanced-patches/issues/5607)) ([30176a3](30176a3318))
* **YouTube:** Add `Disable sign in to TV popup` patch ([#5639](https://github.com/ReVanced/revanced-patches/issues/5639)) ([56fbd8c](56fbd8cce0))
2025-08-19 15:12:22 +00:00
LisoUseInAIKyrios
43597dab21 chore: Merge branch dev to main (#5617) 2025-08-19 11:08:46 -04:00
122 changed files with 2109 additions and 998 deletions

View File

@@ -1,3 +1,231 @@
# [5.37.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.5...v5.37.0-dev.6) (2025-09-15)
### Bug Fixes
* **Instagram - Hide navigation buttons:** Add constrain to known working version ([e6c79f1](https://github.com/ReVanced/revanced-patches/commit/e6c79f13834c83fef04e4dee5e628cb0b9a27765))
# [5.37.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.4...v5.37.0-dev.5) (2025-09-15)
### Bug Fixes
* **Viber - Hide ads:** Add constrain to known working version ([2db0948](https://github.com/ReVanced/revanced-patches/commit/2db0948beaf2b68391a1fe7f21e92d31c7df61e7))
# [5.37.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.3...v5.37.0-dev.4) (2025-09-14)
### Bug Fixes
* **YouTube Music - Spoof streaming data:** Fix audio playback stuttering ([#5839](https://github.com/ReVanced/revanced-patches/issues/5839)) ([2a85a3b](https://github.com/ReVanced/revanced-patches/commit/2a85a3b29092729ae16d1fd93803634ce5f08e95))
# [5.37.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.2...v5.37.0-dev.3) (2025-09-14)
### Bug Fixes
* **Spotify:** Remove broken `Spoof client` patch ([#5833](https://github.com/ReVanced/revanced-patches/issues/5833)) ([dcd4245](https://github.com/ReVanced/revanced-patches/commit/dcd42454bd5f87dddd720534f6120c4ef90063a3))
# [5.37.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.37.0-dev.1...v5.37.0-dev.2) (2025-09-14)
### Bug Fixes
* Resolve patching with dev branch ([09b941a](https://github.com/ReVanced/revanced-patches/commit/09b941abf0e8029999565082b02a88b5de507ec4))
# [5.37.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.36.0...v5.37.0-dev.1) (2025-09-14)
### Features
* **Viber:** Add `Hide ads` patch ([#5826](https://github.com/ReVanced/revanced-patches/issues/5826)) ([0abfab7](https://github.com/ReVanced/revanced-patches/commit/0abfab79d7cda15bf17c53679fbfffb021662649))
# [5.36.0](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0) (2025-09-14)
### Bug Fixes
* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](https://github.com/ReVanced/revanced-patches/commit/88b47ef414cd073ec3800258b32aceb6f383a411))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](https://github.com/ReVanced/revanced-patches/commit/8cd8e59bbc3a878269276b8ae5f627b044d157f0))
* **YouTube Music:** Resolve playback issues, change recommended app target to `7.29.52` ([#5813](https://github.com/ReVanced/revanced-patches/issues/5813)) ([a53b00d](https://github.com/ReVanced/revanced-patches/commit/a53b00dd514dbe2b3406f3c1013a4f58a7f481c5))
### Features
* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](https://github.com/ReVanced/revanced-patches/commit/9d4aa5cd16a6f9e95cf7c626351b46b86ca80efe))
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-13)
### Bug Fixes
* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](https://github.com/ReVanced/revanced-patches/commit/88b47ef414cd073ec3800258b32aceb6f383a411))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](https://github.com/ReVanced/revanced-patches/commit/8cd8e59bbc3a878269276b8ae5f627b044d157f0))
* **YouTube Music:** Resolve playback issues, change recommended app target to `7.29.52` ([#5813](https://github.com/ReVanced/revanced-patches/issues/5813)) ([a53b00d](https://github.com/ReVanced/revanced-patches/commit/a53b00dd514dbe2b3406f3c1013a4f58a7f481c5))
### Features
* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](https://github.com/ReVanced/revanced-patches/commit/9d4aa5cd16a6f9e95cf7c626351b46b86ca80efe))
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-13)
### Bug Fixes
* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](https://github.com/ReVanced/revanced-patches/commit/88b47ef414cd073ec3800258b32aceb6f383a411))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](https://github.com/ReVanced/revanced-patches/commit/8cd8e59bbc3a878269276b8ae5f627b044d157f0))
* **YouTube Music:** Resolve playback issues, change recommended app target to `7.29.52` ([#5813](https://github.com/ReVanced/revanced-patches/issues/5813)) ([a53b00d](https://github.com/ReVanced/revanced-patches/commit/a53b00dd514dbe2b3406f3c1013a4f58a7f481c5))
### Features
* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](https://github.com/ReVanced/revanced-patches/commit/9d4aa5cd16a6f9e95cf7c626351b46b86ca80efe))
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-13)
### Bug Fixes
* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](https://github.com/ReVanced/revanced-patches/commit/88b47ef414cd073ec3800258b32aceb6f383a411))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](https://github.com/ReVanced/revanced-patches/commit/8cd8e59bbc3a878269276b8ae5f627b044d157f0))
### Features
* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](https://github.com/ReVanced/revanced-patches/commit/9d4aa5cd16a6f9e95cf7c626351b46b86ca80efe))
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.36.0-dev.1) (2025-09-12)
### Bug Fixes
* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([88b47ef](https://github.com/ReVanced/revanced-patches/commit/88b47ef414cd073ec3800258b32aceb6f383a411))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([8cd8e59](https://github.com/ReVanced/revanced-patches/commit/8cd8e59bbc3a878269276b8ae5f627b044d157f0))
### Features
* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([9d4aa5c](https://github.com/ReVanced/revanced-patches/commit/9d4aa5cd16a6f9e95cf7c626351b46b86ca80efe))
# [5.36.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.1-dev.1...v5.36.0-dev.1) (2025-09-12)
### Features
* **YouTube - SponsorBlock:** Add 'Hook' segment category ([#5783](https://github.com/ReVanced/revanced-patches/issues/5783)) ([2e042c4](https://github.com/ReVanced/revanced-patches/commit/2e042c4b3366fa3daf991d5560fcae991d00ad12))
## [5.35.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.35.0...v5.35.1-dev.1) (2025-09-11)
### Bug Fixes
* **Duolingo - Disable ads:** Support latest app target ([#5782](https://github.com/ReVanced/revanced-patches/issues/5782)) ([8491516](https://github.com/ReVanced/revanced-patches/commit/849151637389b8f399356d0d331bb74482f3f05d))
* **YouTube - Hide layout components:** Hide new type of Playable shelf ([3af4126](https://github.com/ReVanced/revanced-patches/commit/3af41265338ddaab52d009f53370c57abddd4599))
# [5.35.0](https://github.com/ReVanced/revanced-patches/compare/v5.34.0...v5.35.0) (2025-09-09)
### Bug Fixes
* **Instagram - Hide navigation buttons:** Fix Manager patching error ([0d10e94](https://github.com/ReVanced/revanced-patches/commit/0d10e94663283fac09f3efc57c9b9805c38c4e13))
* **Proton mail:** Constrain patches to last working app target ([21c34b9](https://github.com/ReVanced/revanced-patches/commit/21c34b908e07a97de8c31c7c828b44a8cc4739b6))
* Revert dependency updates to fix Manager pre-release patching ([4c7a1a8](https://github.com/ReVanced/revanced-patches/commit/4c7a1a8554c67797bf663e5230f566c5a9b229af))
* **Spotify - Unlock Premium:** Make compatible with latest versions again by fixing fingerprint ([#5684](https://github.com/ReVanced/revanced-patches/issues/5684)) ([30dcff1](https://github.com/ReVanced/revanced-patches/commit/30dcff13a56883efc499b71faadb403877cd1c67))
* **YouTube - Hide layout components:** Hide Playable shelf header ([fbb5046](https://github.com/ReVanced/revanced-patches/commit/fbb50463f0e3f533a278c5251cfbce59f09ce641))
### Features
* **BaconReader:** Add `Fix Redgifs API` patch ([#5761](https://github.com/ReVanced/revanced-patches/issues/5761)) ([08868c0](https://github.com/ReVanced/revanced-patches/commit/08868c00d3c4f1f37f4a77f333a03ca5a3259b59))
* **Boost/Sync for Reddit:** Add `Fix Redgifs` patch ([#5725](https://github.com/ReVanced/revanced-patches/issues/5725)) ([c5e8079](https://github.com/ReVanced/revanced-patches/commit/c5e8079eab08075a72078cd0fa79f3beb1f75d98))
* **Instagram:** Add `Hide navigation buttons` patch ([#5678](https://github.com/ReVanced/revanced-patches/issues/5678)) ([415cf0f](https://github.com/ReVanced/revanced-patches/commit/415cf0fb5b9b3dcaf4592943a69eea1c10447b07))
* **Instagram:** Add `Hide Stories from Home` patch ([#5756](https://github.com/ReVanced/revanced-patches/issues/5756)) ([3ae3251](https://github.com/ReVanced/revanced-patches/commit/3ae3251dc0317b6ced136fe9aa14be369642f203))
# [5.35.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.4...v5.35.0-dev.5) (2025-09-06)
### Features
* **BaconReader:** Add `Fix Redgifs API` patch ([#5761](https://github.com/ReVanced/revanced-patches/issues/5761)) ([08868c0](https://github.com/ReVanced/revanced-patches/commit/08868c00d3c4f1f37f4a77f333a03ca5a3259b59))
* **Instagram:** Add `Hide Stories from Home` patch ([#5756](https://github.com/ReVanced/revanced-patches/issues/5756)) ([3ae3251](https://github.com/ReVanced/revanced-patches/commit/3ae3251dc0317b6ced136fe9aa14be369642f203))
# [5.35.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.3...v5.35.0-dev.4) (2025-09-04)
### Features
* **Boost/Sync for Reddit:** Add `Fix Redgifs` patch ([#5725](https://github.com/ReVanced/revanced-patches/issues/5725)) ([c5e8079](https://github.com/ReVanced/revanced-patches/commit/c5e8079eab08075a72078cd0fa79f3beb1f75d98))
# [5.35.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.2...v5.35.0-dev.3) (2025-09-04)
### Bug Fixes
* **Instagram - Hide navigation buttons:** Fix Manager patching error ([0d10e94](https://github.com/ReVanced/revanced-patches/commit/0d10e94663283fac09f3efc57c9b9805c38c4e13))
# [5.35.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.35.0-dev.1...v5.35.0-dev.2) (2025-09-04)
### Bug Fixes
* Revert dependency updates to fix Manager pre-release patching ([4c7a1a8](https://github.com/ReVanced/revanced-patches/commit/4c7a1a8554c67797bf663e5230f566c5a9b229af))
# [5.35.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.34.1-dev.3...v5.35.0-dev.1) (2025-09-03)
### Features
* **Instagram:** Add `Hide navigation buttons` patch ([#5678](https://github.com/ReVanced/revanced-patches/issues/5678)) ([415cf0f](https://github.com/ReVanced/revanced-patches/commit/415cf0fb5b9b3dcaf4592943a69eea1c10447b07))
## [5.34.1-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.34.1-dev.2...v5.34.1-dev.3) (2025-08-24)
### Bug Fixes
* **YouTube - Hide layout components:** Hide Playable shelf header ([fbb5046](https://github.com/ReVanced/revanced-patches/commit/fbb50463f0e3f533a278c5251cfbce59f09ce641))
## [5.34.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.34.1-dev.1...v5.34.1-dev.2) (2025-08-22)
### Bug Fixes
* **Proton mail:** Constrain patches to last working app target ([21c34b9](https://github.com/ReVanced/revanced-patches/commit/21c34b908e07a97de8c31c7c828b44a8cc4739b6))
## [5.34.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.34.0...v5.34.1-dev.1) (2025-08-21)
### Bug Fixes
* **Spotify - Unlock Premium:** Make compatible with latest versions again by fixing fingerprint ([#5684](https://github.com/ReVanced/revanced-patches/issues/5684)) ([30dcff1](https://github.com/ReVanced/revanced-patches/commit/30dcff13a56883efc499b71faadb403877cd1c67))
# [5.34.0](https://github.com/ReVanced/revanced-patches/compare/v5.33.0...v5.34.0) (2025-08-19)
### Bug Fixes
* **Backdrops:** Remove broken patch that is no longer supported ([#5627](https://github.com/ReVanced/revanced-patches/issues/5627)) ([ebb8332](https://github.com/ReVanced/revanced-patches/commit/ebb83320838aa99dd4417d45a50333dd42c1218a))
* **pixiv - Hide ads:** Constrain patch to last working app target ([d8ea56c](https://github.com/ReVanced/revanced-patches/commit/d8ea56ca4be47df1c43f96ec41b91c800f1d9daf))
* **Twitch:** Constrain patches to last working app targets ([#5373](https://github.com/ReVanced/revanced-patches/issues/5373)) ([29a4748](https://github.com/ReVanced/revanced-patches/commit/29a47481c4efa209a3a53df60613b59a73adbe07))
* **YouTube - Hide layout components:** Do not hide community posts on channel profiles ([#5634](https://github.com/ReVanced/revanced-patches/issues/5634)) ([9e3d5a2](https://github.com/ReVanced/revanced-patches/commit/9e3d5a2b36106479470f3f69920518b57e8c4dca))
* **YouTube - Player Controls:** Fix chapter title overlapping the bottom buttons ([#5673](https://github.com/ReVanced/revanced-patches/issues/5673)) ([09ccee7](https://github.com/ReVanced/revanced-patches/commit/09ccee71384df338bbf8acc1097f619a372c4868))
* **YouTube - SponsorBlock:** Do not hide voting or create button when the video ends ([6aba4e2](https://github.com/ReVanced/revanced-patches/commit/6aba4e284de9bb94b49eea8be2baf2870eecbbcf))
* **YouTube - Video playback:** Disable HDR video does not disable Dolby Vision HDR ([#5661](https://github.com/ReVanced/revanced-patches/issues/5661)) ([6dab988](https://github.com/ReVanced/revanced-patches/commit/6dab98810645b96bd0387ba7d607e5d8ffb1b5bb))
* **YouTube - Video quality:** Fix additional incorrect quality resolutions used by YouTube ([a2a1fbe](https://github.com/ReVanced/revanced-patches/commit/a2a1fbe2959be8334c54cfc3426c24a960c55c8f))
* **YouTube - Video quality:** Show FHD+ icon for 1080p 60fps enhanced bitrate ([76bed37](https://github.com/ReVanced/revanced-patches/commit/76bed3734093713af24ef065d5ffc5b1cd83f29a))
* **YouTube:** Use correct fade out animation when tapping to dismiss the video overlay ([#5670](https://github.com/ReVanced/revanced-patches/issues/5670)) ([cce6737](https://github.com/ReVanced/revanced-patches/commit/cce6737f627fc7621bbde50a5653b6af14c6f31a))
### Features
* **Instagram:** Support latest app version ([#5611](https://github.com/ReVanced/revanced-patches/issues/5611)) ([26fe690](https://github.com/ReVanced/revanced-patches/commit/26fe690dfbefe6c412c5f81f208a3b1d2fbd7a0a))
* **NU.nl:** Support latest app version ([#5643](https://github.com/ReVanced/revanced-patches/issues/5643)) ([7338e4a](https://github.com/ReVanced/revanced-patches/commit/7338e4a5a99f913256120d0d58fede3aa4ee8922))
* **YouTube - Hide player flyout menu items:** Add option to hide quality flyout menu ([eb55068](https://github.com/ReVanced/revanced-patches/commit/eb5506856a2eaf2a8585e598868ddba3e1429159))
* **YouTube - Hide video action buttons:** Add "Hide Hype button" setting ([f13f377](https://github.com/ReVanced/revanced-patches/commit/f13f3770e7c4fd5bff8f3e224fb1b1ead50a3c18))
* **YouTube - Hide video action buttons:** Add "Hide Promote button" setting ([1959396](https://github.com/ReVanced/revanced-patches/commit/1959396a53f4c07b94acddc5c0ee6cdf7ade7c7b))
* **YouTube - Playback speed:** Show current playback speed on player speed dialog button ([#5607](https://github.com/ReVanced/revanced-patches/issues/5607)) ([279436a](https://github.com/ReVanced/revanced-patches/commit/279436a3657b50f98bb4cc64dc88dc14e422f204))
* **YouTube:** Add `Disable sign in to TV popup` patch ([#5639](https://github.com/ReVanced/revanced-patches/issues/5639)) ([d0e5bd0](https://github.com/ReVanced/revanced-patches/commit/d0e5bd0479a8910b081c483ed2a6ab4d7134e3c3))
# [5.34.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.34.0-dev.12...v5.34.0-dev.13) (2025-08-19)

8
adsfund.json Normal file
View File

@@ -0,0 +1,8 @@
{
"info": "This is verification file for ads.fund project",
"project": {
"name": "Revanced Patches",
"walletAddress": "0x7ab4091e00363654bf84B34151225742cd92FCE5",
"tokenAddress": "0xadf325f255083a3f3d9a9d01ffb3db52a148d802"
}
}

View File

@@ -0,0 +1,5 @@
dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(libs.annotation)
compileOnly(libs.okhttp)
}

View File

@@ -0,0 +1 @@
<manifest/>

View File

@@ -0,0 +1,22 @@
package app.revanced.extension.baconreader;
import app.revanced.extension.shared.fixes.redgifs.BaseFixRedgifsApiPatch;
import okhttp3.OkHttpClient;
/**
* @noinspection unused
*/
public class FixRedgifsApiPatch extends BaseFixRedgifsApiPatch {
static {
INSTANCE = new FixRedgifsApiPatch();
}
public String getDefaultUserAgent() {
// BaconReader uses a static user agent for Redgifs API calls
return "BaconReader";
}
public static OkHttpClient install(OkHttpClient.Builder builder) {
return builder.addInterceptor(INSTANCE).build();
}
}

View File

@@ -1,4 +1,6 @@
dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:boostforreddit:stub"))
compileOnly(libs.annotation)
compileOnly(libs.okhttp)
}

View File

@@ -0,0 +1,22 @@
package app.revanced.extension.boostforreddit;
import app.revanced.extension.shared.fixes.redgifs.BaseFixRedgifsApiPatch;
import okhttp3.OkHttpClient;
/**
* @noinspection unused
*/
public class FixRedgifsApiPatch extends BaseFixRedgifsApiPatch {
static {
INSTANCE = new FixRedgifsApiPatch();
}
public String getDefaultUserAgent() {
// Boost uses a static user agent for Redgifs API calls
return "Boost";
}
public static OkHttpClient createClient() {
return new OkHttpClient.Builder().addInterceptor(INSTANCE).build();
}
}

View File

@@ -1,3 +1,9 @@
dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:youtube:stub"))
compileOnly(libs.annotation)
}
android {
defaultConfig {
minSdk = 26

View File

@@ -0,0 +1,23 @@
package app.revanced.extension.music.patches.spoof;
import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_43_32;
import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_61_48;
import app.revanced.extension.shared.spoof.ClientType;
import app.revanced.extension.shared.spoof.requests.StreamingDataRequest;
@SuppressWarnings("unused")
public class SpoofVideoStreamsPatch {
/**
* Injection point.
*/
public static void setClientOrderToUse() {
ClientType[] availableClients = {
ANDROID_VR_1_43_32,
ANDROID_VR_1_61_48,
};
StreamingDataRequest.setClientOrderToUse(availableClients, ANDROID_VR_1_43_32);
}
}

View File

@@ -1,27 +0,0 @@
package app.revanced.extension.music.spoof;
/**
* @noinspection unused
*/
public class SpoofClientPatch {
private static final int CLIENT_TYPE_ID = 26;
private static final String CLIENT_VERSION = "6.21";
private static final String DEVICE_MODEL = "iPhone16,2";
private static final String OS_VERSION = "17.7.2.21H221";
public static int getClientId() {
return CLIENT_TYPE_ID;
}
public static String getClientVersion() {
return CLIENT_VERSION;
}
public static String getClientModel() {
return DEVICE_MODEL;
}
public static String getOsVersion() {
return OS_VERSION;
}
}

View File

@@ -1,3 +1,4 @@
dependencies {
implementation(project(":extensions:shared:library"))
compileOnly(libs.okhttp)
}

View File

@@ -18,4 +18,5 @@ android {
dependencies {
compileOnly(libs.annotation)
compileOnly(libs.okhttp)
}

View File

@@ -0,0 +1,71 @@
package app.revanced.extension.shared.fixes.redgifs;
import androidx.annotation.NonNull;
import org.json.JSONException;
import java.io.IOException;
import java.net.HttpURLConnection;
import app.revanced.extension.shared.Logger;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.Protocol;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
public abstract class BaseFixRedgifsApiPatch implements Interceptor {
protected static BaseFixRedgifsApiPatch INSTANCE;
public abstract String getDefaultUserAgent();
@NonNull
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
Request request = chain.request();
if (!request.url().host().equals("api.redgifs.com")) {
return chain.proceed(request);
}
String userAgent = getDefaultUserAgent();
if (request.header("Authorization") != null) {
Response response = chain.proceed(request.newBuilder().header("User-Agent", userAgent).build());
if (response.isSuccessful()) {
return response;
}
// It's possible that the user agent is being overwritten later down in the interceptor
// chain, so make sure we grab the new user agent from the request headers.
userAgent = response.request().header("User-Agent");
response.close();
}
try {
RedgifsTokenManager.RedgifsToken token = RedgifsTokenManager.refreshToken(userAgent);
// Emulate response for old OAuth endpoint
if (request.url().encodedPath().equals("/v2/oauth/client")) {
String responseBody = RedgifsTokenManager.getEmulatedOAuthResponseBody(token);
return new Response.Builder()
.message("OK")
.code(HttpURLConnection.HTTP_OK)
.protocol(Protocol.HTTP_1_1)
.request(request)
.header("Content-Type", "application/json")
.body(ResponseBody.create(
responseBody, MediaType.get("application/json")))
.build();
}
Request modifiedRequest = request.newBuilder()
.header("Authorization", "Bearer " + token.getAccessToken())
.header("User-Agent", userAgent)
.build();
return chain.proceed(modifiedRequest);
} catch (JSONException ex) {
Logger.printException(() -> "Could not parse Redgifs response", ex);
throw new IOException(ex);
}
}
}

View File

@@ -0,0 +1,94 @@
package app.revanced.extension.shared.fixes.redgifs;
import static app.revanced.extension.shared.requests.Route.Method.GET;
import androidx.annotation.GuardedBy;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import app.revanced.extension.shared.requests.Requester;
/**
* Manages Redgifs token lifecycle.
*/
public class RedgifsTokenManager {
public static class RedgifsToken {
// Expire after 23 hours to provide some breathing room
private static final long EXPIRY_SECONDS = 23 * 60 * 60;
private final String accessToken;
private final long refreshTimeInSeconds;
public RedgifsToken(String accessToken, long refreshTime) {
this.accessToken = accessToken;
this.refreshTimeInSeconds = refreshTime;
}
public String getAccessToken() {
return accessToken;
}
public long getExpiryTimeInSeconds() {
return refreshTimeInSeconds + EXPIRY_SECONDS;
}
public boolean isValid() {
if (accessToken == null) return false;
return getExpiryTimeInSeconds() >= System.currentTimeMillis() / 1000;
}
}
public static final String REDGIFS_API_HOST = "https://api.redgifs.com";
private static final String GET_TEMPORARY_TOKEN = REDGIFS_API_HOST + "/v2/auth/temporary";
@GuardedBy("itself")
private static final Map<String, RedgifsToken> tokenMap = new HashMap<>();
private static String getToken(String userAgent) throws IOException, JSONException {
HttpURLConnection connection = (HttpURLConnection) new URL(GET_TEMPORARY_TOKEN).openConnection();
connection.setFixedLengthStreamingMode(0);
connection.setRequestMethod(GET.name());
connection.setRequestProperty("User-Agent", userAgent);
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setUseCaches(false);
JSONObject responseObject = Requester.parseJSONObject(connection);
return responseObject.getString("token");
}
public static RedgifsToken refreshToken(String userAgent) throws IOException, JSONException {
synchronized(tokenMap) {
// Reference: https://github.com/JeffreyCA/Apollo-ImprovedCustomApi/pull/67
RedgifsToken token = tokenMap.get(userAgent);
if (token != null && token.isValid()) {
return token;
}
// Copy user agent from original request if present because Redgifs verifies
// that the user agent in subsequent requests matches the one in the OAuth token.
String accessToken = getToken(userAgent);
long refreshTime = System.currentTimeMillis() / 1000;
token = new RedgifsToken(accessToken, refreshTime);
tokenMap.put(userAgent, token);
return token;
}
}
public static String getEmulatedOAuthResponseBody(RedgifsToken token) throws JSONException {
// Reference: https://github.com/JeffreyCA/Apollo-ImprovedCustomApi/pull/67
JSONObject responseObject = new JSONObject();
responseObject.put("access_token", token.accessToken);
responseObject.put("expiry_time", token.getExpiryTimeInSeconds() - (System.currentTimeMillis() / 1000));
responseObject.put("scope", "read");
responseObject.put("token_type", "Bearer");
return responseObject.toString();
}
}

View File

@@ -34,6 +34,5 @@ public class BaseSettings {
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());
// Client type must be last spoof setting due to cyclic references.
public static final EnumSetting<ClientType> SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_UNPLUGGED, true, parent(SPOOF_VIDEO_STREAMS));
public static final EnumSetting<ClientType> SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_61_48, true, parent(SPOOF_VIDEO_STREAMS));
}

View File

@@ -12,7 +12,7 @@ import app.revanced.extension.shared.settings.BaseSettings;
public enum ClientType {
// https://dumps.tadiphone.dev/dumps/oculus/eureka
ANDROID_VR_NO_AUTH(
ANDROID_VR_1_61_48(
28,
"ANDROID_VR",
"com.google.android.apps.youtube.vr.oculus",
@@ -27,7 +27,7 @@ public enum ClientType {
"1.61.48",
false,
false,
"Android VR No auth"
"Android VR 1.61"
),
// Chromecast with Google TV 4K.
// https://dumps.tadiphone.dev/dumps/google/kirkwood
@@ -97,21 +97,25 @@ public enum ClientType {
? "iOS TV Force AVC"
: "iOS TV"
),
ANDROID_VR_AUTH(
ANDROID_VR_NO_AUTH.id,
ANDROID_VR_NO_AUTH.clientName,
ANDROID_VR_NO_AUTH.packageName,
ANDROID_VR_NO_AUTH.deviceMake,
ANDROID_VR_NO_AUTH.deviceModel,
ANDROID_VR_NO_AUTH.osName,
ANDROID_VR_NO_AUTH.osVersion,
ANDROID_VR_NO_AUTH.androidSdkVersion,
ANDROID_VR_NO_AUTH.buildId,
ANDROID_VR_NO_AUTH.cronetVersion,
ANDROID_VR_NO_AUTH.clientVersion,
ANDROID_VR_NO_AUTH.requiresAuth,
true,
"Android VR Auth"
/**
* Uses non adaptive bitrate, which fixes audio stuttering with YT Music.
* Uses VP9 and not AV1.
*/
ANDROID_VR_1_43_32(
ANDROID_VR_1_61_48.id,
ANDROID_VR_1_61_48.clientName,
ANDROID_VR_1_61_48.packageName,
ANDROID_VR_1_61_48.deviceMake,
ANDROID_VR_1_61_48.deviceModel,
ANDROID_VR_1_61_48.osName,
ANDROID_VR_1_61_48.osVersion,
ANDROID_VR_1_61_48.androidSdkVersion,
ANDROID_VR_1_61_48.buildId,
"107.0.5284.2",
"1.43.32",
ANDROID_VR_1_61_48.requiresAuth,
ANDROID_VR_1_61_48.useAuth,
"Android VR 1.43"
);
private static boolean forceAVC() {

View File

@@ -252,8 +252,9 @@ public class SpoofVideoStreamsPatch {
public static final class AudioStreamLanguageOverrideAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
ClientType clientType = BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
return BaseSettings.SPOOF_VIDEO_STREAMS.get()
&& BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_VR_NO_AUTH;
&& (clientType == ClientType.ANDROID_VR_1_61_48 || clientType == ClientType.ANDROID_VR_1_43_32);
}
}

View File

@@ -42,7 +42,8 @@ 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();
Locale streamLocale = userSelectedClient == ClientType.ANDROID_VR_NO_AUTH
Locale streamLocale = (userSelectedClient == ClientType.ANDROID_VR_1_61_48
|| userSelectedClient == ClientType.ANDROID_VR_1_43_32)
? BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get().getLocale()
: Locale.getDefault();

View File

@@ -35,21 +35,22 @@ import app.revanced.extension.shared.spoof.ClientType;
*/
public class StreamingDataRequest {
private static final ClientType[] CLIENT_ORDER_TO_USE;
private static volatile ClientType[] clientOrderToUse = ClientType.values();
static {
ClientType[] allClientTypes = ClientType.values();
ClientType preferredClient = BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
public static void setClientOrderToUse(ClientType[] availableClients, ClientType preferredClient) {
Objects.requireNonNull(availableClients);
CLIENT_ORDER_TO_USE = new ClientType[allClientTypes.length];
CLIENT_ORDER_TO_USE[0] = preferredClient;
clientOrderToUse = new ClientType[availableClients.length];
clientOrderToUse[0] = preferredClient;
int i = 1;
for (ClientType c : allClientTypes) {
for (ClientType c : availableClients) {
if (c != preferredClient) {
CLIENT_ORDER_TO_USE[i++] = c;
clientOrderToUse[i++] = c;
}
}
Logger.printDebug(() -> "Available spoof clients: " + Arrays.toString(clientOrderToUse));
}
private static final String AUTHORIZATION_HEADER = "Authorization";
@@ -193,9 +194,9 @@ public class StreamingDataRequest {
// Retry with different client if empty response body is received.
int i = 0;
for (ClientType clientType : CLIENT_ORDER_TO_USE) {
for (ClientType clientType : clientOrderToUse) {
// Show an error if the last client type fails, or if debug is enabled then show for all attempts.
final boolean showErrorToast = (++i == CLIENT_ORDER_TO_USE.length) || debugEnabled;
final boolean showErrorToast = (++i == clientOrderToUse.length) || debugEnabled;
HttpURLConnection connection = send(clientType, videoId, playerHeaders, showErrorToast);
if (connection != null) {

View File

@@ -2,4 +2,5 @@ dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:syncforreddit:stub"))
compileOnly(libs.annotation)
compileOnly(libs.okhttp)
}

View File

@@ -0,0 +1,22 @@
package app.revanced.extension.syncforreddit;
import app.revanced.extension.shared.fixes.redgifs.BaseFixRedgifsApiPatch;
import okhttp3.OkHttpClient;
/**
* @noinspection unused
*/
public class FixRedgifsApiPatch extends BaseFixRedgifsApiPatch {
static {
INSTANCE = new FixRedgifsApiPatch();
}
public String getDefaultUserAgent() {
// To be filled in by patch
return "";
}
public static OkHttpClient install(OkHttpClient.Builder builder) {
return builder.addInterceptor(INSTANCE).build();
}
}

View File

@@ -513,6 +513,9 @@ public final class VideoInformation {
Logger.printDebug(() -> "VideoQualities: " + Arrays.toString(currentQualities));
}
// On extremely slow internet connections the index can initially be -1
originalQualityIndex = Math.max(0, originalQualityIndex);
VideoQuality updatedCurrentQuality = qualities[originalQualityIndex];
if (updatedCurrentQuality.patch_getResolution() != AUTOMATIC_VIDEO_QUALITY_VALUE
&& (currentQuality == null || currentQuality != updatedCurrentQuality)) {

View File

@@ -45,6 +45,7 @@ public final class LayoutComponentsFilter extends Filter {
private final StringFilterGroup chipBar;
private final StringFilterGroup channelProfile;
private final ByteArrayFilterGroupList channelProfileBuffer;
private final ByteArrayFilterGroup playablesBuffer;
public LayoutComponentsFilter() {
exceptions.addPatterns(
@@ -190,6 +191,12 @@ public final class LayoutComponentsFilter extends Filter {
"mini_game_card.eml"
);
// Playable horizontal shelf header.
playablesBuffer = new ByteArrayFilterGroup(
Settings.HIDE_PLAYABLES,
"FEmini_app_destination"
);
final var quickActions = new StringFilterGroup(
Settings.HIDE_QUICK_ACTIONS,
"quick_actions"
@@ -342,7 +349,9 @@ public final class LayoutComponentsFilter extends Filter {
}
if (matchedGroup == horizontalShelves) {
return contentIndex == 0 && (hideShelves() || ticketShelf.check(buffer).isFiltered());
return contentIndex == 0 && (hideShelves()
|| ticketShelf.check(buffer).isFiltered()
|| playablesBuffer.check(buffer).isFiltered());
}
if (matchedGroup == chipBar) {

View File

@@ -0,0 +1,29 @@
package app.revanced.extension.youtube.patches.spoof;
import static app.revanced.extension.shared.spoof.ClientType.ANDROID_CREATOR;
import static app.revanced.extension.shared.spoof.ClientType.ANDROID_UNPLUGGED;
import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_61_48;
import static app.revanced.extension.shared.spoof.ClientType.IOS_UNPLUGGED;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.spoof.ClientType;
import app.revanced.extension.shared.spoof.requests.StreamingDataRequest;
@SuppressWarnings("unused")
public class SpoofVideoStreamsPatch {
/**
* Injection point.
*/
public static void setClientOrderToUse() {
ClientType[] availableClients = {
ANDROID_VR_1_61_48,
ANDROID_UNPLUGGED,
ANDROID_CREATOR,
IOS_UNPLUGGED
};
StreamingDataRequest.setClientOrderToUse(availableClients,
BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get());
}
}

View File

@@ -436,6 +436,9 @@ public class Settings extends BaseSettings {
public static final StringSetting SB_CATEGORY_HIGHLIGHT = new StringSetting("sb_highlight", MANUAL_SKIP.reVancedKeyValue);
public static final StringSetting SB_CATEGORY_HIGHLIGHT_COLOR = new StringSetting("sb_highlight_color", "#FF1684");
public static final FloatSetting SB_CATEGORY_HIGHLIGHT_OPACITY = new FloatSetting("sb_highlight_opacity", 0.8f);
public static final StringSetting SB_CATEGORY_HOOK = new StringSetting("sb_hook", IGNORE.reVancedKeyValue);
public static final StringSetting SB_CATEGORY_HOOK_COLOR = new StringSetting("sb_hook_color", "#395699");
public static final FloatSetting SB_CATEGORY_HOOK_OPACITY = new FloatSetting("sb_hook_opacity", 0.8f);
public static final StringSetting SB_CATEGORY_INTRO = new StringSetting("sb_intro", MANUAL_SKIP.reVancedKeyValue);
public static final StringSetting SB_CATEGORY_INTRO_COLOR = new StringSetting("sb_intro_color", "#00FFFF");
public static final FloatSetting SB_CATEGORY_INTRO_OPACITY = new FloatSetting("sb_intro_opacity", 0.8f);

View File

@@ -86,7 +86,8 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference {
String summary = str(key + "_summary");
// Android VR supports AV1 but all other clients do not.
if (clientType != ClientType.ANDROID_VR_AUTH && clientType != ClientType.ANDROID_VR_NO_AUTH) {
if (clientType != ClientType.ANDROID_VR_1_61_48
&& clientType != ClientType.ANDROID_VR_1_43_32) {
summary += '\n' + str("revanced_spoof_video_streams_about_no_av1");
}

View File

@@ -15,6 +15,7 @@ import android.graphics.drawable.shapes.RoundRectShape;
import android.text.TextUtils;
import android.util.Range;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
@@ -167,6 +168,11 @@ public class SegmentPlaybackController {
*/
private static WeakReference<Dialog> toastDialogRef = new WeakReference<>(null);
/**
* Visibility of the ad progress UI component.
*/
private static volatile int adProgressTextVisibility = -1;
static {
// Dismiss toast if app changes to PiP while undo skip is shown.
PlayerType.getOnChange().addObserver((PlayerType type) -> {
@@ -336,6 +342,7 @@ public class SegmentPlaybackController {
*/
static void executeDownloadSegments(String videoId) {
Objects.requireNonNull(videoId);
Utils.verifyOffMainThread();
SponsorSegment[] segments = SBRequester.getSegments(videoId);
@@ -367,6 +374,35 @@ public class SegmentPlaybackController {
});
}
/**
* Injection point.
*/
@SuppressWarnings("unused")
public static void setAdProgressTextVisibility(int visibility) {
if (adProgressTextVisibility != visibility) {
adProgressTextVisibility = visibility;
Logger.printDebug(() -> {
String visibilityMessage = switch (visibility) {
case View.VISIBLE -> "VISIBLE";
case View.GONE -> "GONE";
case View.INVISIBLE -> "INVISIBLE";
default -> "UNKNOWN";
};
return "AdProgressText visibility changed to: " + visibilityMessage;
});
}
}
/**
* When a video ad is playing in a regular video player, segments or the Skip button should be hidden.
* @return Whether the Ad Progress TextView is visible in the regular video player.
*/
public static boolean isAdProgressTextVisible() {
return adProgressTextVisibility == View.VISIBLE;
}
/**
* Injection point.
* Updates SponsorBlock every 1000ms.
@@ -376,7 +412,8 @@ public class SegmentPlaybackController {
try {
if (!Settings.SB_ENABLED.get()
|| PlayerType.getCurrent().isNoneOrHidden() // Shorts playback.
|| segments == null || segments.length == 0) {
|| segments == null || segments.length == 0
|| isAdProgressTextVisible()) {
return;
}
Logger.printDebug(() -> "setVideoTime: " + millis);
@@ -671,7 +708,14 @@ public class SegmentPlaybackController {
// Check for any smaller embedded segments, and count those as auto-skipped.
final boolean showSkipToast = Settings.SB_TOAST_ON_SKIP.get();
for (SponsorSegment otherSegment : Objects.requireNonNull(segments)) {
if (segmentToSkip.end < otherSegment.start) {
if (otherSegment.end <= segmentToSkip.start) {
// Other segment does not overlap, and is before this skipped segment.
// This situation can only happen if a video is opened and adjusted to
// a later time in the video where earlier auto skip segments
// have not been encountered yet.
continue;
}
if (segmentToSkip.end <= otherSegment.start) {
break; // No other segments can be contained.
}
@@ -922,7 +966,8 @@ public class SegmentPlaybackController {
public static String appendTimeWithoutSegments(String totalTime) {
try {
if (Settings.SB_ENABLED.get() && Settings.SB_VIDEO_LENGTH_WITHOUT_SEGMENTS.get()
&& !TextUtils.isEmpty(totalTime) && !TextUtils.isEmpty(timeWithoutSegments)) {
&& !TextUtils.isEmpty(totalTime) && !TextUtils.isEmpty(timeWithoutSegments)
&& !isAdProgressTextVisible()) {
// Force LTR layout, to match the same LTR video time/length layout YouTube uses for all languages
return "\u202D" + totalTime + timeWithoutSegments; // u202D = left to right override
}
@@ -983,7 +1028,7 @@ public class SegmentPlaybackController {
@SuppressWarnings("unused")
public static void drawSponsorTimeBars(final Canvas canvas, final float posY) {
try {
if (segments == null) return;
if (segments == null || isAdProgressTextVisible()) return;
final long videoLength = VideoInformation.getVideoLength();
if (videoLength <= 0) return;

View File

@@ -52,6 +52,8 @@ public enum SegmentCategory {
sf("revanced_sb_skip_button_preview_beginning"), sf("revanced_sb_skip_button_preview_middle"), sf("revanced_sb_skip_button_preview_end"),
sf("revanced_sb_skipped_preview_beginning"), sf("revanced_sb_skipped_preview_middle"), sf("revanced_sb_skipped_preview_end"),
SB_CATEGORY_PREVIEW, SB_CATEGORY_PREVIEW_COLOR, SB_CATEGORY_PREVIEW_OPACITY),
HOOK("hook", sf("revanced_sb_segments_hook"), sf("revanced_sb_segments_hook_sum"), sf("revanced_sb_skip_button_hook"), sf("revanced_sb_skipped_hook"),
SB_CATEGORY_HOOK, SB_CATEGORY_HOOK_COLOR, SB_CATEGORY_HOOK_OPACITY),
FILLER("filler", sf("revanced_sb_segments_filler"), sf("revanced_sb_segments_filler_sum"), sf("revanced_sb_skip_button_filler"), sf("revanced_sb_skipped_filler"),
SB_CATEGORY_FILLER, SB_CATEGORY_FILLER_COLOR, SB_CATEGORY_FILLER_OPACITY),
MUSIC_OFFTOPIC("music_offtopic", sf("revanced_sb_segments_nomusic"), sf("revanced_sb_segments_nomusic_sum"), sf("revanced_sb_skip_button_nomusic"), sf("revanced_sb_skipped_nomusic"),
@@ -69,6 +71,7 @@ public enum SegmentCategory {
INTRO,
OUTRO,
PREVIEW,
HOOK,
FILLER,
MUSIC_OFFTOPIC,
};
@@ -81,6 +84,7 @@ public enum SegmentCategory {
INTRO,
OUTRO,
PREVIEW,
HOOK,
FILLER,
MUSIC_OFFTOPIC,
};

View File

@@ -6,6 +6,7 @@ import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
@SuppressWarnings("unused")
@@ -26,7 +27,7 @@ public class CreateSegmentButton {
controlsView,
"revanced_sb_create_segment_button",
null,
CreateSegmentButton::shouldBeShown,
CreateSegmentButton::isButtonEnabled,
v -> SponsorBlockViewController.toggleNewSegmentLayoutVisibility(),
null
);
@@ -56,7 +57,8 @@ public class CreateSegmentButton {
if (instance != null) instance.setVisibility(visible, animated);
}
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get();
private static boolean isButtonEnabled() {
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get()
&& !SegmentPlaybackController.isAdProgressTextVisible();
}
}

View File

@@ -28,7 +28,7 @@ public class VotingButton {
controlsView,
"revanced_sb_voting_button",
null,
VotingButton::shouldBeShown,
VotingButton::isButtonEnabled,
v -> SponsorBlockUtils.onVotingClicked(v.getContext()),
null
);
@@ -58,8 +58,9 @@ public class VotingButton {
if (instance != null) instance.setVisibility(visible, animated);
}
private static boolean shouldBeShown() {
private static boolean isButtonEnabled() {
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
&& SegmentPlaybackController.videoHasSegments();
&& SegmentPlaybackController.videoHasSegments()
&& !SegmentPlaybackController.isAdProgressTextVisible();
}
}

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.34.0-dev.13
version = 5.37.0-dev.6

View File

@@ -11,8 +11,8 @@ appcompat = "1.7.0"
okhttp = "5.0.0-alpha.14"
retrofit = "2.11.0"
guava = "33.4.0-jre"
protobuf-javalite = "4.31.1"
protoc = "4.31.1"
protobuf-javalite = "4.32.0"
protoc = "4.32.0"
protobuf = "0.9.5"
antlr4 = "4.13.2"
nanohttpd = "2.3.1"

View File

@@ -264,6 +264,14 @@ public final class app/revanced/patches/instagram/ads/HideAdsPatchKt {
public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/instagram/hide/navigation/HideNavigationButtonsKt {
public static final fun getHideNavigationButtonsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/instagram/hide/stories/HideStoriesKt {
public static final fun getHideStoriesPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/instagram/misc/signature/SignatureCheckPatchKt {
public static final fun getSignatureCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -384,14 +392,21 @@ public final class app/revanced/patches/music/misc/gms/GmsCoreSupportPatchKt {
public static final fun getGmsCoreSupportPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/music/misc/spoof/SpoofClientPatchKt {
public static final fun getSpoofClientPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
public final class app/revanced/patches/music/misc/spoof/SpoofVideoStreamsKt {
public static final fun getSpoofVideoStreamsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/music/misc/spoof/UserAgentClientSpoofPatchKt {
public static final fun getUserAgentClientSpoofPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/music/playservice/VersionCheckPatchKt {
public static final fun getVersionCheckPatch ()Lapp/revanced/patcher/patch/ResourcePatch;
public static final fun is_7_33_or_greater ()Z
public static final fun is_8_11_or_greater ()Z
public static final fun is_8_15_or_greater ()Z
}
public final class app/revanced/patches/myexpenses/misc/pro/UnlockProPatchKt {
public static final fun getUnlockProPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -508,6 +523,13 @@ public final class app/revanced/patches/reddit/ad/general/HideAdsPatchKt {
public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/FixRedgifsApiPatchKt {
public static final field CREATE_NEW_CLIENT_METHOD Ljava/lang/String;
public static final field INSTALL_NEW_CLIENT_METHOD Ljava/lang/String;
public static final fun fixRedgifsApiPatch (Lapp/revanced/patcher/patch/Patch;Lkotlin/jvm/functions/Function1;)Lapp/revanced/patcher/patch/BytecodePatch;
public static synthetic fun fixRedgifsApiPatch$default (Lapp/revanced/patcher/patch/Patch;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/FixSLinksPatchKt {
public static final field RESOLVE_S_LINK_METHOD Ljava/lang/String;
public static final field SET_ACCESS_TOKEN_METHOD Ljava/lang/String;
@@ -524,6 +546,14 @@ public final class app/revanced/patches/reddit/customclients/baconreader/api/Spo
public static final fun getSpoofClientPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/baconreader/fix/redgifs/FixRedgifsApiPatchKt {
public static final fun getFixRedgifsApi ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/baconreader/misc/extension/SharedExtensionPatchKt {
public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/boostforreddit/ads/DisableAdsPatchKt {
public static final fun getDisableAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -536,6 +566,10 @@ public final class app/revanced/patches/reddit/customclients/boostforreddit/fix/
public static final fun getFixAudioMissingInDownloadsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/boostforreddit/fix/redgifs/FixRedgifsApiPatchKt {
public static final fun getFixRedgifsApi ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/boostforreddit/fix/slink/FixSLinksPatchKt {
public static final field EXTENSION_CLASS_DESCRIPTOR Ljava/lang/String;
public static final fun getFixSlinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
@@ -606,6 +640,10 @@ public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/
public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/redgifs/FixRedgifsApiPatchKt {
public static final fun getFixRedgifsApi ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/slink/FixSLinksPatchKt {
public static final field EXTENSION_CLASS_DESCRIPTOR Ljava/lang/String;
public static final fun getFixSLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
@@ -952,10 +990,6 @@ public final class app/revanced/patches/spotify/lite/ondemand/OnDemandPatchKt {
public static final fun getOnDemandPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/spotify/misc/UnlockPremiumPatchKt {
public static final fun getUnlockPremiumPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/spotify/misc/extension/ExtensionPatchKt {
public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1208,6 +1242,10 @@ public final class app/revanced/patches/twitter/misc/links/SanitizeSharingLinksP
public static final fun getSanitizeSharingLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/viber/ads/HideAdsPatchKt {
public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/vsco/misc/pro/UnlockProPatchKt {
public static final fun getUnlockProPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}

View File

@@ -19,14 +19,16 @@ val disableAdsPatch = bytecodePatch(
// SharedPreferences has a debug boolean value with key "disable_ads", which maps to "DebugCategory.DISABLE_ADS".
//
// MonetizationDebugSettings seems to be the most general setting to work fine.
initializeMonetizationDebugSettingsFingerprint.method.apply {
val insertIndex = initializeMonetizationDebugSettingsFingerprint.patternMatch!!.startIndex
val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA
initializeMonetizationDebugSettingsFingerprint
.match(monetizationDebugSettingsToStringFingerprint.classDef)
.method.apply {
val insertIndex = initializeMonetizationDebugSettingsFingerprint.patternMatch!!.startIndex
val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA
addInstructions(
insertIndex,
"const/4 v$register, 0x1",
)
}
addInstructions(
insertIndex,
"const/4 v$register, 0x1",
)
}
}
}

View File

@@ -7,13 +7,11 @@ import com.android.tools.smali.dexlib2.Opcode
internal val initializeMonetizationDebugSettingsFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
returns("V")
parameters(
"Z", // disableAds
"Z", // useDebugBilling
"Z", // showManageSubscriptions
"Z", // alwaysShowSuperAds
// matches "Lcom/duolingo/debug/FamilyQuestOverride;" or "Lcom/duolingo/data/debug/monetization/FamilyQuestOverride;"
"Lcom/duolingo/",
)
// Parameters have not been reliable for fingerprinting between versions.
opcodes(Opcode.IPUT_BOOLEAN)
}
internal val monetizationDebugSettingsToStringFingerprint = fingerprint {
strings("MonetizationDebugSettings(") // Partial string match.
custom { method, _ -> method.name == "toString" }
}

View File

@@ -0,0 +1,29 @@
package app.revanced.patches.instagram.hide.navigation
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.Opcode
internal val tabCreateButtonsLoopStartFingerprint = fingerprint {
returns("V")
strings("InstagramMainActivity.createTabButtons")
opcodes(
//Loop Start
Opcode.IF_GE, // Check if index is finished (index, size)
//Injection
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT_OBJECT
)
}
internal val tabCreateButtonsLoopEndFingerprint = fingerprint {
returns("V")
strings("InstagramMainActivity.createTabButtons")
opcodes(
Opcode.IPUT_OBJECT,
// Injection Jump
Opcode.ADD_INT_LIT8, //Increase Index
Opcode.GOTO_16 // Jump to loopStart
// LoopEnd
)
}

View File

@@ -0,0 +1,80 @@
package app.revanced.patches.instagram.hide.navigation
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.booleanOption
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.util.findFreeRegister
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import java.util.logging.Logger
@Suppress("unused")
val hideNavigationButtonsPatch = bytecodePatch(
name = "Hide navigation buttons",
description = "Hides navigation bar buttons, such as the Reels and Create button.",
use = false
) {
compatibleWith("com.instagram.android"("396.0.0.46.242"))
val hideReels by booleanOption(
key = "hideReels",
default = true,
title = "Hide Reels",
description = "Permanently hides the Reels button."
)
val hideCreate by booleanOption(
key = "hideCreate",
default = true,
title = "Hide Create",
description = "Permanently hides the Create button."
)
execute {
if (!hideReels!! && !hideCreate!!) {
return@execute Logger.getLogger(this::class.java.name).warning(
"No hide navigation buttons options are enabled. No changes made."
)
}
tabCreateButtonsLoopStartFingerprint.method.apply {
// Check the current loop index, and skip over adding the
// navigation button view if the index matches a given button.
val startIndex = tabCreateButtonsLoopStartFingerprint.patternMatch!!.startIndex
val endIndex = tabCreateButtonsLoopEndFingerprint.patternMatch!!.endIndex
val insertIndex = startIndex + 1
val loopIndexRegister = getInstruction<TwoRegisterInstruction>(startIndex).registerA
val freeRegister = findFreeRegister(insertIndex, loopIndexRegister)
val instruction = getInstruction(endIndex - 1)
var instructions = buildString {
if (hideCreate!!) {
appendLine(
"""
const v$freeRegister, 0x2
if-eq v$freeRegister, v$loopIndexRegister, :skipAddView
"""
)
}
if (hideReels!!) {
appendLine(
"""
const v$freeRegister, 0x3
if-eq v$freeRegister, v$loopIndexRegister, :skipAddView
"""
)
}
}
addInstructionsWithLabels(
insertIndex,
instructions,
ExternalLabel("skipAddView", instruction)
)
}
}
}

View File

@@ -0,0 +1,17 @@
package app.revanced.patches.instagram.hide.stories
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.Opcode
internal val getOrCreateAvatarViewFingerprint = fingerprint {
parameters()
returns("L")
custom { method, classDef ->
classDef.type == "Lcom/instagram/reels/ui/views/reelavatar/RecyclerReelAvatarView;"
}
opcodes(
Opcode.INVOKE_VIRTUAL,
Opcode.IPUT_OBJECT,
Opcode.INVOKE_VIRTUAL // Add View (Story)
)
}

View File

@@ -0,0 +1,20 @@
package app.revanced.patches.instagram.hide.stories
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.patch.bytecodePatch
@Suppress("unused")
val hideStoriesPatch = bytecodePatch(
name = "Hide Stories from Home",
description = "Hides Stories from the main page, by removing the buttons.",
use = false
) {
compatibleWith("com.instagram.android")
execute {
val addStoryMethod = getOrCreateAvatarViewFingerprint.method // Creates Story
val addStoryEndIndex = getOrCreateAvatarViewFingerprint.patternMatch!!.endIndex
// Remove addView of Story.
addStoryMethod.removeInstruction(addStoryEndIndex)
}
}

View File

@@ -8,7 +8,11 @@ val hideVideoAdsPatch = bytecodePatch(
name = "Hide music video ads",
description = "Hides ads that appear while listening to or streaming music videos, podcasts, or songs.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
navigate(showVideoAdsParentFingerprint.originalMethod)

View File

@@ -8,7 +8,11 @@ val enableExclusiveAudioPlaybackPatch = bytecodePatch(
name = "Enable exclusive audio playback",
description = "Enables the option to play audio without video.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
allowExclusiveAudioPlaybackFingerprint.method.returnEarly(true)

View File

@@ -11,7 +11,11 @@ val permanentRepeatPatch = bytecodePatch(
description = "Permanently remember your repeating preference even if the playlist ends or another track is played.",
use = false,
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
val startIndex = repeatTrackFingerprint.patternMatch!!.endIndex

View File

@@ -9,7 +9,11 @@ val permanentShufflePatch = bytecodePatch(
description = "Permanently remember your shuffle preference " +
"even if the playlist ends or another track is played."
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
disableShuffleFingerprint.method.addInstruction(0, "return-void")

View File

@@ -12,7 +12,11 @@ val hideCategoryBar = bytecodePatch(
description = "Hides the category bar at the top of the homepage.",
use = false,
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
constructCategoryBarFingerprint.method.apply {

View File

@@ -11,7 +11,11 @@ val hideGetPremiumPatch = bytecodePatch(
name = "Hide 'Get Music Premium' label",
description = "Hides the \"Get Music Premium\" label from the account menu and settings.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
hideGetPremiumFingerprint.method.apply {

View File

@@ -18,7 +18,11 @@ val removeUpgradeButtonPatch = bytecodePatch(
name = "Remove upgrade button",
description = "Removes the upgrade tab from the pivot bar.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
pivotBarConstructorFingerprint.method.apply {

View File

@@ -8,7 +8,11 @@ val bypassCertificateChecksPatch = bytecodePatch(
name = "Bypass certificate checks",
description = "Bypasses certificate checks which prevent YouTube Music from working on Android Auto.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
checkCertificateFingerprint.method.returnEarly(true)

View File

@@ -8,7 +8,11 @@ val backgroundPlaybackPatch = bytecodePatch(
name = "Remove background playback restrictions",
description = "Removes restrictions on background playback, including playing kids videos in the background.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
execute {
kidsBackgroundPlaybackPolicyControllerFingerprint.method.addInstruction(

View File

@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.Option
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.patches.music.misc.gms.Constants.MUSIC_PACKAGE_NAME
import app.revanced.patches.music.misc.gms.Constants.REVANCED_MUSIC_PACKAGE_NAME
import app.revanced.patches.music.misc.spoof.spoofClientPatch
import app.revanced.patches.music.misc.spoof.spoofVideoStreamsPatch
import app.revanced.patches.shared.castContextFetchFingerprint
import app.revanced.patches.shared.misc.gms.gmsCoreSupportPatch
import app.revanced.patches.shared.primeMethodFingerprint
@@ -21,7 +21,7 @@ val gmsCoreSupportPatch = gmsCoreSupportPatch(
extensionPatch = sharedExtensionPatch,
gmsCoreSupportResourcePatchFactory = ::gmsCoreSupportResourcePatch,
) {
dependsOn(spoofClientPatch)
dependsOn(spoofVideoStreamsPatch)
compatibleWith(MUSIC_PACKAGE_NAME)
}

View File

@@ -1,39 +0,0 @@
package app.revanced.patches.music.misc.spoof
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val playerRequestConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
strings("player")
}
/**
* Matches using the class found in [playerRequestConstructorFingerprint].
*/
internal val createPlayerRequestBodyFingerprint = fingerprint {
parameters("L")
returns("V")
opcodes(
Opcode.CHECK_CAST,
Opcode.IGET,
Opcode.AND_INT_LIT16,
)
strings("ms")
}
/**
* Used to get a reference to other clientInfo fields.
*/
internal val setClientInfoFieldsFingerprint = fingerprint {
returns("L")
strings("Google Inc.")
}
/**
* Used to get a reference to the clientInfo and clientInfo.clientVersion field.
*/
internal val setClientInfoClientVersionFingerprint = fingerprint {
strings("10.29")
}

View File

@@ -1,105 +0,0 @@
package app.revanced.patches.music.misc.spoof
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.bytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.util.getReference
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.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.TypeReference
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/music/spoof/SpoofClientPatch;"
// TODO: Replace this patch with spoofVideoStreamsPatch once possible.
val spoofClientPatch = bytecodePatch(
name = "Spoof client",
description = "Spoofs the client to fix playback.",
) {
compatibleWith("com.google.android.apps.youtube.music")
dependsOn(
sharedExtensionPatch,
// TODO: Add settingsPatch
userAgentClientSpoofPatch,
)
execute {
val playerRequestClass = playerRequestConstructorFingerprint.classDef
val createPlayerRequestBodyMatch = createPlayerRequestBodyFingerprint.match(playerRequestClass)
val clientInfoContainerClass = createPlayerRequestBodyMatch.method
.getInstruction(createPlayerRequestBodyMatch.patternMatch!!.startIndex)
.getReference<TypeReference>()!!.type
val clientInfoField = setClientInfoClientVersionFingerprint.method.instructions.first {
it.opcode == Opcode.IPUT_OBJECT && it.getReference<FieldReference>()!!.definingClass == clientInfoContainerClass
}.getReference<FieldReference>()!!
val setClientInfoFieldInstructions = setClientInfoFieldsFingerprint.method.instructions.filter {
(it.opcode == Opcode.IPUT_OBJECT || it.opcode == Opcode.IPUT) &&
it.getReference<FieldReference>()!!.definingClass == clientInfoField.type
}.map { it.getReference<FieldReference>()!! }
// Offsets are known for the fields in the clientInfo object.
val clientIdField = setClientInfoFieldInstructions[0]
val clientModelField = setClientInfoFieldInstructions[5]
val osVersionField = setClientInfoFieldInstructions[7]
val clientVersionField = setClientInfoClientVersionFingerprint.method
.getInstruction(setClientInfoClientVersionFingerprint.stringMatches!!.first().index + 1)
.getReference<FieldReference>()
// Helper method to spoof the client info.
val spoofClientInfoMethod = ImmutableMethod(
playerRequestClass.type,
"spoofClientInfo",
listOf(ImmutableMethodParameter(clientInfoContainerClass, null, null)),
"V",
AccessFlags.PRIVATE.value or AccessFlags.STATIC.value,
null,
null,
MutableMethodImplementation(3),
).toMutable().also(playerRequestClass.methods::add).apply {
addInstructions(
"""
iget-object v0, p0, $clientInfoField
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getClientId()I
move-result v1
iput v1, v0, $clientIdField
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getClientModel()Ljava/lang/String;
move-result-object v1
iput-object v1, v0, $clientModelField
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getClientVersion()Ljava/lang/String;
move-result-object v1
iput-object v1, v0, $clientVersionField
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getOsVersion()Ljava/lang/String;
move-result-object v1
iput-object v1, v0, $osVersionField
return-void
""",
)
}
createPlayerRequestBodyMatch.method.apply {
val checkCastIndex = createPlayerRequestBodyMatch.patternMatch!!.startIndex
val clientInfoContainerRegister = getInstruction<OneRegisterInstruction>(checkCastIndex).registerA
addInstruction(checkCastIndex + 1, "invoke-static {v$clientInfoContainerRegister}, $spoofClientInfoMethod")
}
}
}

View File

@@ -0,0 +1,33 @@
package app.revanced.patches.music.misc.spoof
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.patches.music.misc.gms.musicActivityOnCreateFingerprint
import app.revanced.patches.music.playservice.is_7_33_or_greater
import app.revanced.patches.music.playservice.is_8_11_or_greater
import app.revanced.patches.music.playservice.is_8_15_or_greater
import app.revanced.patches.music.playservice.versionCheckPatch
import app.revanced.patches.shared.misc.spoof.spoofVideoStreamsPatch
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch;"
val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
fixMediaFetchHotConfigChanges = { true },
fixMediaFetchHotConfigAlternativeChanges = { is_8_11_or_greater && !is_8_15_or_greater },
fixParsePlaybackResponseFeatureFlag = { is_7_33_or_greater },
block = {
compatibleWith(
"com.google.android.apps.youtube.music"(
"7.29.52"
)
)
dependsOn(sharedExtensionPatch, versionCheckPatch, userAgentClientSpoofPatch)
},
executeBlock = {
musicActivityOnCreateFingerprint.method.addInstruction(
1, // Must use 1 index so context is set by extension patch.
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientOrderToUse()V"
)
}
)

View File

@@ -0,0 +1,28 @@
@file:Suppress("ktlint:standard:property-naming")
package app.revanced.patches.music.playservice
import app.revanced.patcher.patch.resourcePatch
import app.revanced.util.findPlayStoreServicesVersion
var is_7_33_or_greater = false
private set
var is_8_11_or_greater = false
private set
var is_8_15_or_greater = false
private set
val versionCheckPatch = resourcePatch(
description = "Uses the Play Store service version to find the major/minor version of the YouTube Music target app.",
) {
execute {
// The app version is missing from the decompiled manifest,
// so instead use the Google Play services version and compare against specific releases.
val playStoreServicesVersion = findPlayStoreServicesVersion()
// All bug fix releases always seem to use the same play store version as the minor version.
is_7_33_or_greater = 245199000 <= playStoreServicesVersion
is_8_11_or_greater = 251199000 <= playStoreServicesVersion
is_8_15_or_greater = 251530000 <= playStoreServicesVersion
}
}

View File

@@ -8,7 +8,7 @@ val removeFreeAccountsLimitPatch = resourcePatch(
name = "Remove free accounts limit",
description = "Removes the limit for maximum free accounts logged in.",
) {
compatibleWith("ch.protonmail.android")
compatibleWith("ch.protonmail.android"("4.15.0"))
execute {
document("res/values/integers.xml").use { document ->

View File

@@ -10,7 +10,7 @@ val removeSentFromSignaturePatch = resourcePatch(
name = "Remove 'Sent from' signature",
description = "Removes the 'Sent from Proton Mail mobile' signature from emails.",
) {
compatibleWith("ch.protonmail.android")
compatibleWith("ch.protonmail.android"("4.15.0"))
execute {
val stringResourceFiles = mutableListOf<File>()

View File

@@ -0,0 +1,17 @@
package app.revanced.patches.reddit.customclients
import app.revanced.patcher.patch.BytecodePatchBuilder
import app.revanced.patcher.patch.Patch
import app.revanced.patcher.patch.bytecodePatch
const val INSTALL_NEW_CLIENT_METHOD = "install(Lokhttp3/OkHttpClient${'$'}Builder;)Lokhttp3/OkHttpClient;"
const val CREATE_NEW_CLIENT_METHOD = "createClient()Lokhttp3/OkHttpClient;"
fun fixRedgifsApiPatch(
extensionPatch: Patch<*>,
block: BytecodePatchBuilder.() -> Unit = {},
) = bytecodePatch(name = "Fix Redgifs API") {
dependsOn(extensionPatch)
block()
}

View File

@@ -0,0 +1,13 @@
package app.revanced.patches.reddit.customclients.baconreader.fix.redgifs
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val getOkHttpClientFingerprint = fingerprint {
returns("Lokhttp3/OkHttpClient;")
parameters()
custom { method, classDef ->
classDef.type == "Lcom/onelouder/baconreader/media/gfycat/RedGifsManager;" && method.name == "getOkhttpClient"
}
}

View File

@@ -0,0 +1,53 @@
package app.revanced.patches.reddit.customclients.baconreader.fix.redgifs
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patches.reddit.customclients.INSTALL_NEW_CLIENT_METHOD
import app.revanced.patches.reddit.customclients.baconreader.misc.extension.sharedExtensionPatch
import app.revanced.patches.reddit.customclients.fixRedgifsApiPatch
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.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.iface.reference.TypeReference
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/baconreader/FixRedgifsApiPatch;"
@Suppress("unused")
val fixRedgifsApi = fixRedgifsApiPatch(
extensionPatch = sharedExtensionPatch
) {
compatibleWith(
"com.onelouder.baconreader",
"com.onelouder.baconreader.premium",
)
execute {
// region Patch Redgifs OkHttp3 client.
getOkHttpClientFingerprint.method.apply {
// Remove conflicting OkHttp interceptors.
val originalInterceptorInstallIndex = indexOfFirstInstructionOrThrow {
opcode == Opcode.NEW_INSTANCE && getReference<TypeReference>()?.type == "Lcom/onelouder/baconreader/media/gfycat/RedGifsManager\$HeaderInterceptor;"
}
removeInstructions(originalInterceptorInstallIndex, 5)
val index = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.name == "build" && reference.definingClass == "Lokhttp3/OkHttpClient\$Builder;"
}
val register = getInstruction<FiveRegisterInstruction>(index).registerC
replaceInstruction(
index,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->$INSTALL_NEW_CLIENT_METHOD
"""
)
}
// endregion
}
}

View File

@@ -0,0 +1,6 @@
package app.revanced.patches.reddit.customclients.baconreader.misc.extension
import app.revanced.patches.reddit.customclients.baconreader.misc.extension.hooks.initHook
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
val sharedExtensionPatch = sharedExtensionPatch("baconreader", initHook)

View File

@@ -0,0 +1,9 @@
package app.revanced.patches.reddit.customclients.baconreader.misc.extension.hooks
import app.revanced.patches.shared.misc.extension.extensionHook
internal val initHook = extensionHook {
custom { method, _ ->
method.definingClass == "Lcom/onelouder/baconreader/BaconReader;" && method.name == "onCreate"
}
}

View File

@@ -0,0 +1,20 @@
package app.revanced.patches.reddit.customclients.boostforreddit.fix.redgifs
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val createOkHttpClientFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE)
opcodes(
Opcode.NEW_INSTANCE,
Opcode.INVOKE_DIRECT,
Opcode.NEW_INSTANCE,
Opcode.INVOKE_DIRECT,
Opcode.NEW_INSTANCE,
Opcode.INVOKE_DIRECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT
)
custom { _, classDef -> classDef.sourceFile == "RedGifsAPIv2.java" }
}

View File

@@ -0,0 +1,38 @@
package app.revanced.patches.reddit.customclients.boostforreddit.fix.redgifs
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patches.reddit.customclients.CREATE_NEW_CLIENT_METHOD
import app.revanced.patches.reddit.customclients.boostforreddit.misc.extension.sharedExtensionPatch
import app.revanced.patches.reddit.customclients.fixRedgifsApiPatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/boostforreddit/FixRedgifsApiPatch;"
@Suppress("unused")
val fixRedgifsApi = fixRedgifsApiPatch(
extensionPatch = sharedExtensionPatch
) {
compatibleWith("com.rubenmayayo.reddit")
execute {
// region Patch Redgifs OkHttp3 client.
createOkHttpClientFingerprint.method.apply {
val index = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.name == "build" && reference.definingClass == "Lokhttp3/OkHttpClient\$Builder;"
}
replaceInstruction(
index,
"""
invoke-static { }, ${EXTENSION_CLASS_DESCRIPTOR}->$CREATE_NEW_CLIENT_METHOD
"""
)
}
// endregion
}
}

View File

@@ -0,0 +1,39 @@
package app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.redgifs
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.fingerprint
import app.revanced.util.indexOfFirstInstruction
import app.revanced.util.writeRegister
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction11n
internal val createOkHttpClientFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("V")
parameters()
custom { method, classDef ->
// There are four functions (each creating a client) defined in this file with very similar fingerprints.
// We're looking for the one that only creates one object (the builder) and sets client options true
// (thus never reloading the register with a 0).
classDef.sourceFile == "OkHttpHelper.java" &&
method.instructions.count { it.opcode == Opcode.NEW_INSTANCE } == 1 &&
method.indexOfFirstInstruction {
opcode == Opcode.CONST_4 && writeRegister == 1 && (this as Instruction11n).narrowLiteral == 0
} == -1
}
}
internal val getDefaultUserAgentFingerprint = fingerprint {
custom { method, classDef ->
method.name == "getDefaultUserAgent" && classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}
internal val getOriginalUserAgentFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Ljava/lang/String;")
parameters()
custom { _, classDef -> classDef.sourceFile == "AccountSingleton.java" }
}

View File

@@ -0,0 +1,56 @@
package app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.redgifs
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patches.reddit.customclients.INSTALL_NEW_CLIENT_METHOD
import app.revanced.patches.reddit.customclients.fixRedgifsApiPatch
import app.revanced.patches.reddit.customclients.sync.syncforreddit.extension.sharedExtensionPatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/syncforreddit/FixRedgifsApiPatch;"
@Suppress("unused")
val fixRedgifsApi = fixRedgifsApiPatch(
extensionPatch = sharedExtensionPatch
) {
compatibleWith(
"com.laurencedawson.reddit_sync",
"com.laurencedawson.reddit_sync.pro",
"com.laurencedawson.reddit_sync.dev",
)
execute {
// region Patch Redgifs OkHttp3 client.
createOkHttpClientFingerprint.method.apply {
val index = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.name == "build" && reference.definingClass == "Lokhttp3/OkHttpClient\$Builder;"
}
val register = getInstruction<FiveRegisterInstruction>(index).registerC
replaceInstruction(
index,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->$INSTALL_NEW_CLIENT_METHOD
"""
)
}
getDefaultUserAgentFingerprint.method.apply {
addInstructions(
0,
"""
invoke-static { }, ${getOriginalUserAgentFingerprint.method}
move-result-object v0
return-object v0
"""
)
}
// endregion
}
}

View File

@@ -1,9 +1,12 @@
package app.revanced.patches.shared.misc.spoof
import app.revanced.patcher.fingerprint
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstruction
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal val buildInitPlaybackRequestFingerprint = fingerprint {
returns("Lorg/chromium/net/UrlRequest\$Builder;")
@@ -35,8 +38,15 @@ internal val buildPlayerRequestURIFingerprint = fingerprint {
internal val buildRequestFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Lorg/chromium/net/UrlRequest;")
returns("Lorg/chromium/net/UrlRequest") // UrlRequest; or UrlRequest$Builder;
custom { methodDef, _ ->
if (methodDef.indexOfFirstInstruction {
val reference = getReference<MethodReference>()
reference?.name == "newUrlRequestBuilder"
} < 0) {
return@custom false
}
// Different targets have slightly different parameters
// Earlier targets have parameters:
@@ -58,12 +68,22 @@ internal val buildRequestFingerprint = fingerprint {
// Lorg/chromium/net/UrlRequest\$Callback;
// L
// 20.16+ uses a refactored and extracted method:
// L
// Ljava/util/Map;
// [B
// L
// Lorg/chromium/net/UrlRequest$Callback;
// L
val parameterTypes = methodDef.parameterTypes
(parameterTypes.size == 7 || parameterTypes.size == 8) &&
parameterTypes[1] == "Ljava/util/Map;" // URL headers.
val parameterTypesSize = parameterTypes.size
(parameterTypesSize == 6 || parameterTypesSize == 7 || parameterTypesSize == 8) &&
parameterTypes[1] == "Ljava/util/Map;" // URL headers.
}
}
internal val protobufClassParseByteBufferFingerprint = fingerprint {
accessFlags(AccessFlags.PROTECTED, AccessFlags.STATIC)
returns("L")
@@ -148,7 +168,8 @@ internal val mediaFetchHotConfigFingerprint = fingerprint {
literal { MEDIA_FETCH_HOT_CONFIG_FEATURE_FLAG }
}
// 20.10+
// YT 20.10+, YT Music 8.11 - 8.14.
// Flag is missing in YT Music 8.15+, and it is not known if a replacement flag/feature exists.
internal const val MEDIA_FETCH_HOT_CONFIG_ALTERNATIVE_FEATURE_FLAG = 45683169L
internal val mediaFetchHotConfigAlternativeFingerprint = fingerprint {
@@ -162,7 +183,6 @@ internal val mediaFetchHotConfigAlternativeFingerprint = fingerprint {
internal const val PLAYBACK_START_CHECK_ENDPOINT_USED_FEATURE_FLAG = 45665455L
internal val playbackStartDescriptorFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters()
returns("Z")
literal { PLAYBACK_START_CHECK_ENDPOINT_USED_FEATURE_FLAG }

View File

@@ -10,6 +10,7 @@ import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.util.findFreeRegister
import app.revanced.util.findInstructionIndicesReversedOrThrow
import app.revanced.util.getReference
@@ -53,9 +54,8 @@ fun spoofVideoStreamsPatch(
// region Block /initplayback requests to fall back to /get_watch requests.
val moveUriStringIndex = buildInitPlaybackRequestFingerprint.patternMatch!!.startIndex
buildInitPlaybackRequestFingerprint.method.apply {
val moveUriStringIndex = buildInitPlaybackRequestFingerprint.patternMatch!!.startIndex
val targetRegister = getInstruction<OneRegisterInstruction>(moveUriStringIndex).registerA
addInstructions(
@@ -63,7 +63,7 @@ fun spoofVideoStreamsPatch(
"""
invoke-static { v$targetRegister }, $EXTENSION_CLASS_DESCRIPTOR->blockInitPlaybackRequest(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$targetRegister
""",
"""
)
}
@@ -71,9 +71,8 @@ fun spoofVideoStreamsPatch(
// region Block /get_watch requests to fall back to /player requests.
val invokeToStringIndex = buildPlayerRequestURIFingerprint.patternMatch!!.startIndex
buildPlayerRequestURIFingerprint.method.apply {
val invokeToStringIndex = buildPlayerRequestURIFingerprint.patternMatch!!.startIndex
val uriRegister = getInstruction<FiveRegisterInstruction>(invokeToStringIndex).registerC
addInstructions(
@@ -81,7 +80,7 @@ fun spoofVideoStreamsPatch(
"""
invoke-static { v$uriRegister }, $EXTENSION_CLASS_DESCRIPTOR->blockGetWatchRequest(Landroid/net/Uri;)Landroid/net/Uri;
move-result-object v$uriRegister
""",
"""
)
}
@@ -178,9 +177,9 @@ fun spoofVideoStreamsPatch(
:disabled
return-void
""",
"""
)
},
}
)
}
@@ -199,17 +198,17 @@ fun spoofVideoStreamsPatch(
addInstructions(
targetIndex,
"""
# Field a: Stream uri.
# Field c: Http method.
# Field d: Post data.
move-object v0, p0 # method has over 15 registers and must copy p0 to a lower register.
iget-object v1, v0, $definingClass->a:Landroid/net/Uri;
iget v2, v0, $definingClass->c:I
iget-object v3, v0, $definingClass->d:[B
invoke-static { v1, v2, v3 }, $EXTENSION_CLASS_DESCRIPTOR->removeVideoPlaybackPostBody(Landroid/net/Uri;I[B)[B
move-result-object v1
iput-object v1, v0, $definingClass->d:[B
""",
# Field a: Stream uri.
# Field c: Http method.
# Field d: Post data.
move-object v0, p0 # method has over 15 registers and must copy p0 to a lower register.
iget-object v1, v0, $definingClass->a:Landroid/net/Uri;
iget v2, v0, $definingClass->c:I
iget-object v3, v0, $definingClass->d:[B
invoke-static { v1, v2, v3 }, $EXTENSION_CLASS_DESCRIPTOR->removeVideoPlaybackPostBody(Landroid/net/Uri;I[B)[B
move-result-object v1
iput-object v1, v0, $definingClass->d:[B
"""
)
}

View File

@@ -187,11 +187,16 @@ val customThemePatch = resourcePatch(
}
// Login screen gradient.
document("res/drawable/start_screen_gradient.xml").use { document ->
val gradientNode = document.getElementsByTagName("gradient").item(0) as Element
try {
document("res/drawable/start_screen_gradient.xml").use { document ->
val gradientNode = document.getElementsByTagName("gradient").item(0) as Element
gradientNode.setAttribute("android:startColor", "@color/gray_7")
gradientNode.setAttribute("android:endColor", "@color/gray_7")
gradientNode.setAttribute("android:startColor", "@color/gray_7")
gradientNode.setAttribute("android:endColor", "@color/gray_7")
}
} catch (_: Exception) {
// Fails for 9.0.66+
// printWarn("Failed to locate start_screen_gradient.xml, skipping modification.")
}
}
}

View File

@@ -1,145 +0,0 @@
package app.revanced.patches.spotify.misc
import app.revanced.patcher.fingerprint
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.iface.reference.TypeReference
context(BytecodePatchContext)
internal val accountAttributeFingerprint get() = fingerprint {
custom { _, classDef -> classDef.type == "Lcom/spotify/remoteconfig/internal/AccountAttribute;" }
}
context(BytecodePatchContext)
internal val productStateProtoGetMapFingerprint get() = fingerprint {
returns("Ljava/util/Map;")
custom { _, classDef -> classDef.type == "Lcom/spotify/remoteconfig/internal/ProductStateProto;" }
}
internal val buildQueryParametersFingerprint = fingerprint {
strings("trackRows", "device_type:tablet")
}
internal val contextMenuViewModelClassFingerprint = fingerprint {
strings("ContextMenuViewModel(header=")
}
/**
* Used in versions older than "9.0.60.128".
*/
internal val oldContextMenuViewModelAddItemFingerprint = fingerprint {
parameters("L")
returns("V")
custom { method, _ ->
method.indexOfFirstInstruction {
getReference<MethodReference>()?.name == "add"
} >= 0
}
}
internal val contextMenuViewModelConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
}
/**
* Used to find the interface name of a context menu item.
*/
internal val removeAdsContextMenuItemClassFingerprint = fingerprint {
strings("remove_ads_item", "ui_navigate")
}
internal const val CONTEXT_MENU_ITEM_CLASS_DESCRIPTOR_PLACEHOLDER = "Lapp/revanced/ContextMenuItemPlaceholder;"
internal val extensionFilterContextMenuItemsFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Ljava/util/List;")
parameters("Ljava/util/List;")
custom { method, classDef ->
method.name == "filterContextMenuItems" && classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}
internal val getViewModelFingerprint = fingerprint {
custom { method, _ -> method.name == "getViewModel" }
}
internal val contextFromJsonFingerprint = fingerprint {
opcodes(
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_STATIC
)
custom { method, classDef ->
method.name == "fromJson" &&
classDef.type.endsWith("voiceassistants/playermodels/ContextJsonAdapter;")
}
}
internal val readPlayerOptionOverridesFingerprint = fingerprint {
custom { method, classDef ->
method.name == "readPlayerOptionOverrides" &&
classDef.type.endsWith("voiceassistants/playermodels/PreparePlayOptionsJsonAdapter;")
}
}
internal val protobufListsFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
custom { method, _ -> method.name == "emptyProtobufList" }
}
internal val abstractProtobufListEnsureIsMutableFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters()
returns("V")
custom { method, _ ->
method.indexOfFirstInstruction {
getReference<TypeReference>()?.type == "Ljava/lang/UnsupportedOperationException;"
} >= 0
}
}
internal fun structureGetSectionsFingerprint(className: String) = fingerprint {
custom { method, classDef ->
classDef.type.endsWith(className) && method.indexOfFirstInstruction {
opcode == Opcode.IGET_OBJECT && getReference<FieldReference>()?.name == "sections_"
} >= 0
}
}
internal val homeSectionFingerprint = fingerprint {
custom { _, classDef -> classDef.type.endsWith("homeapi/proto/Section;") }
}
internal val homeStructureGetSectionsFingerprint =
structureGetSectionsFingerprint("homeapi/proto/HomeStructure;")
internal val browseSectionFingerprint = fingerprint {
custom { _, classDef-> classDef.type.endsWith("browsita/v1/resolved/Section;") }
}
internal val browseStructureGetSectionsFingerprint =
structureGetSectionsFingerprint("browsita/v1/resolved/BrowseStructure;")
internal fun reactivexFunctionApplyWithClassInitFingerprint(className: String) = fingerprint {
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
custom { method, _ ->
method.name == "apply" && method.indexOfFirstInstruction {
opcode == Opcode.NEW_INSTANCE && getReference<TypeReference>()?.type?.endsWith(className) == true
} >= 0
}
}
internal const val PENDRAGON_JSON_FETCH_MESSAGE_REQUEST_CLASS_NAME = "FetchMessageRequest;"
internal val pendragonJsonFetchMessageRequestFingerprint =
reactivexFunctionApplyWithClassInitFingerprint(PENDRAGON_JSON_FETCH_MESSAGE_REQUEST_CLASS_NAME)
internal const val PENDRAGON_PROTO_FETCH_MESSAGE_LIST_REQUEST_CLASS_NAME = "FetchMessageListRequest;"
internal val pendragonProtoFetchMessageListRequestFingerprint =
reactivexFunctionApplyWithClassInitFingerprint(PENDRAGON_PROTO_FETCH_MESSAGE_LIST_REQUEST_CLASS_NAME)

View File

@@ -12,9 +12,9 @@ import app.revanced.util.returnEarly
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/spotify/misc/fix/SpoofClientPatch;"
@Deprecated("Patch no longer functions")
@Suppress("unused")
val spoofClientPatch = bytecodePatch(
name = "Spoof client",
description = "Spoofs the client to fix various functions of the app.",
) {
val requestListenerPort by intOption(

View File

@@ -1,12 +1,9 @@
package app.revanced.patches.spotify.navbar
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.spotify.misc.unlockPremiumPatch
@Deprecated("Superseded by unlockPremiumPatch", ReplaceWith("unlockPremiumPatch"))
@Deprecated("Obsolete and will be deleted soon")
@Suppress("unused")
val premiumNavbarTabPatch = bytecodePatch(
description = "Hides the premium tab from the navigation bar.",
) {
dependsOn(unlockPremiumPatch)
}
)

View File

@@ -0,0 +1,13 @@
package app.revanced.patches.viber.ads
import app.revanced.patcher.fingerprint
internal val adsFreeFingerprint = fingerprint {
returns("I")
parameters()
custom { method, classDef ->
classDef.type.contains("com/viber/voip/feature/viberplus") &&
classDef.superclass?.contains("com/viber/voip/core/feature") == true && // Must extend com.viber.voip.core.feature.?
classDef.methods.count() == 1
}
}

View File

@@ -0,0 +1,17 @@
package app.revanced.patches.viber.ads
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.returnEarly
@Suppress("unused")
val hideAdsPatch = bytecodePatch(
name = "Hide Ads",
description = "Hides ad banners between chats.",
) {
compatibleWith("com.viber.voip"("25.9.2.0"))
execute {
// Return 1 (true) indicating ads should be disabled.
adsFreeFingerprint.method.returnEarly(1)
}
}

View File

@@ -1,8 +1,11 @@
package app.revanced.patches.youtube.layout.sponsorblock
import app.revanced.patcher.fingerprint
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionReversed
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.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
@@ -56,3 +59,20 @@ internal val rectangleFieldInvalidatorFingerprint = fingerprint {
reference?.parameterTypes?.size == 1 && reference.name == "invalidate" // the reference is the invalidate(..) method
}
}
internal val adProgressTextViewVisibilityFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters("Z")
custom { method, _ ->
indexOfAdProgressTextViewVisibilityInstruction(method) >= 0
}
}
internal fun indexOfAdProgressTextViewVisibilityInstruction(method: Method) =
method.indexOfFirstInstructionReversed {
val reference = getReference<MethodReference>()
reference?.definingClass ==
"Lcom/google/android/libraries/youtube/ads/player/ui/AdProgressTextView;"
&& reference.name =="setVisibility"
}

View File

@@ -252,5 +252,16 @@ val sponsorBlockPatch = bytecodePatch(
}
} ?: throw PatchException("Could not find the method which contains the replaceMeWith* strings")
}
adProgressTextViewVisibilityFingerprint.method.apply {
val index = indexOfAdProgressTextViewVisibilityInstruction(this)
val register = getInstruction<FiveRegisterInstruction>(index).registerD
addInstructionsAtControlFlowLabel(
index,
"invoke-static { v$register }, $EXTENSION_SEGMENT_PLAYBACK_CONTROLLER_CLASS_DESCRIPTOR->setAdProgressTextVisibility(I)V"
)
}
}
}

View File

@@ -3,7 +3,7 @@
package app.revanced.patches.youtube.misc.playservice
import app.revanced.patcher.patch.resourcePatch
import app.revanced.util.findElementByAttributeValueOrThrow
import app.revanced.util.findPlayStoreServicesVersion
@Deprecated("19.34.42 is the lowest supported version")
var is_19_03_or_greater = false
@@ -77,12 +77,7 @@ val versionCheckPatch = resourcePatch(
execute {
// The app version is missing from the decompiled manifest,
// so instead use the Google Play services version and compare against specific releases.
val playStoreServicesVersion = document("res/values/integers.xml").use { document ->
document.documentElement.childNodes.findElementByAttributeValueOrThrow(
"name",
"google_play_services_version",
).textContent.toInt()
}
val playStoreServicesVersion = findPlayStoreServicesVersion()
// All bug fix releases always seem to use the same play store version as the minor version.
is_19_03_or_greater = 240402000 <= playStoreServicesVersion

View File

@@ -1,5 +1,6 @@
package app.revanced.patches.youtube.misc.spoof
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.shared.misc.settings.preference.NonInteractivePreference
@@ -13,56 +14,70 @@ import app.revanced.patches.youtube.misc.playservice.is_20_14_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
compatibleWith(
"com.google.android.youtube"(
"19.34.42",
"19.43.41",
"19.47.53",
"20.07.39",
"20.12.46",
"20.13.41",
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch;"
val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
block = {
compatibleWith(
"com.google.android.youtube"(
"19.34.42",
"19.43.41",
"19.47.53",
"20.07.39",
"20.12.46",
"20.13.41",
)
)
)
dependsOn(
userAgentClientSpoofPatch,
settingsPatch,
versionCheckPatch
)
}, {
is_19_34_or_greater
}, {
// In 20.14 the flag was merged with 20.03 start playback flag.
is_20_10_or_greater && !is_20_14_or_greater
}, {
is_20_03_or_greater
}, {
addResources("youtube", "misc.fix.playback.spoofVideoStreamsPatch")
dependsOn(
userAgentClientSpoofPatch,
settingsPatch,
versionCheckPatch
)
},
fixMediaFetchHotConfigChanges = {
is_19_34_or_greater
},
fixMediaFetchHotConfigAlternativeChanges = {
// In 20.14 the flag was merged with 20.03 start playback flag.
is_20_10_or_greater && !is_20_14_or_greater
},
fixParsePlaybackResponseFeatureFlag = {
is_20_03_or_greater
},
executeBlock = {
addResources("youtube", "misc.fix.playback.spoofVideoStreamsPatch")
PreferenceScreen.MISC.addPreferences(
PreferenceScreenPreference(
key = "revanced_spoof_video_streams_screen",
sorting = PreferenceScreenPreference.Sorting.UNSORTED,
preferences = setOf(
SwitchPreference("revanced_spoof_video_streams"),
ListPreference("revanced_spoof_video_streams_client_type"),
NonInteractivePreference(
// Requires a key and title but the actual text is chosen at runtime.
key = "revanced_spoof_video_streams_about_android",
tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference"
PreferenceScreen.MISC.addPreferences(
PreferenceScreenPreference(
key = "revanced_spoof_video_streams_screen",
sorting = PreferenceScreenPreference.Sorting.UNSORTED,
preferences = setOf(
SwitchPreference("revanced_spoof_video_streams"),
ListPreference("revanced_spoof_video_streams_client_type"),
NonInteractivePreference(
// Requires a key and title but the actual text is chosen at runtime.
key = "revanced_spoof_video_streams_about_android",
tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference"
),
ListPreference(
key = "revanced_spoof_video_streams_language",
// Language strings are declared in Setting patch.
entriesKey = "revanced_language_entries",
entryValuesKey = "revanced_language_entry_values",
tag = "app.revanced.extension.shared.settings.preference.SortedListPreference"
),
SwitchPreference("revanced_spoof_video_streams_ios_force_avc"),
SwitchPreference("revanced_spoof_streaming_data_stats_for_nerds"),
),
ListPreference(
key = "revanced_spoof_video_streams_language",
// Language strings are declared in Setting patch.
entriesKey = "revanced_language_entries",
entryValuesKey = "revanced_language_entry_values",
tag = "app.revanced.extension.shared.settings.preference.SortedListPreference"
),
SwitchPreference("revanced_spoof_video_streams_ios_force_avc"),
SwitchPreference("revanced_spoof_streaming_data_stats_for_nerds"),
),
),
)
})
)
mainActivityOnCreateFingerprint.method.addInstruction(
1, // Must use 1 index so context is set by extension patch.,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientOrderToUse()V"
)
}
)

View File

@@ -132,6 +132,7 @@ internal val Instruction.registersUsed: List<Int>
get() = when (this) {
is FiveRegisterInstruction -> {
when (registerCount) {
0 -> listOf()
1 -> listOf(registerC)
2 -> listOf(registerC, registerD)
3 -> listOf(registerC, registerD, registerE)

View File

@@ -178,3 +178,15 @@ internal fun Element.copyAttributesFrom(oldContainer: Element) {
setAttribute(attr.name, attr.value)
}
}
/**
* @return The play store services version.
*/
internal fun ResourcePatchContext.findPlayStoreServicesVersion(): Int =
document("res/values/integers.xml").use { document ->
document.documentElement.childNodes.findElementByAttributeValueOrThrow(
"name",
"google_play_services_version",
).textContent.toInt()
}

View File

@@ -1075,10 +1075,12 @@ Second \"item\" text"</string>
<string name="revanced_sb_segments_intro_sum">فاصل زمني بدون محتوى فعلي. قد يكون توقفًا مؤقتًا، أو إطارًا ثابتًا، أو رسومًا متحركة متكررة. لا يتضمن انتقالات تحتوي على معلومات</string>
<string name="revanced_sb_segments_outro">الخاتمة / تترات النهاية</string>
<string name="revanced_sb_segments_outro_sum">تتر النهاية أو عندما تظهر بطاقات نهاية YouTube، نهايات غير منطوقة. ليس للاستنتاجات مع المعلومات</string>
<string name="revanced_sb_segments_preview">معاينة/موجز/ربط</string>
<string name="revanced_sb_segments_hook">مقدمة / تحيات</string>
<string name="revanced_sb_segments_hook_sum">مقاطع دعائية مروية للفيديو القادم، تحيات ووداعات. لا تشمل الأقسام التي تضيف محتوى إضافيًا</string>
<string name="revanced_sb_segments_preview">معاينة / ملخص</string>
<string name="revanced_sb_segments_preview_sum">مجموعة من المقاطع التي توضح ما هو قادم أو ما حدث في الفيديو أو في مقاطع فيديو أخرى من السلسلة، حيث تتكرر جميع المعلومات في مكان آخر</string>
<string name="revanced_sb_segments_filler">خارج الموضوع/النكات</string>
<string name="revanced_sb_segments_filler_sum">تم إضافة مشاهد ملتقطة خارج الموضوع أو الفكاهة التي ليست مطلوبة لفهم المحتوى الرئيسي للفيديو. لا تتضمن مقاطع توفر تَعبِير أو تفاصيل الخلفية</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_skip_button_compact">تخطي</string>
@@ -1091,10 +1093,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skip_button_intro_middle">تخطي الفاصل</string>
<string name="revanced_sb_skip_button_intro_end">تخطي الفاصل</string>
<string name="revanced_sb_skip_button_outro">تخطي الخاتمة</string>
<string name="revanced_sb_skip_button_hook">تخطي المقدمة</string>
<string name="revanced_sb_skip_button_preview_beginning">تخطي النظرة العامة</string>
<string name="revanced_sb_skip_button_preview_middle">تخطي النظرة العامة</string>
<string name="revanced_sb_skip_button_preview_end">تخطي الملخص</string>
<string name="revanced_sb_skip_button_filler">تخطي مقطع غير ذي صلة</string>
<string name="revanced_sb_skip_button_filler">تخطي الجزء الجانبي</string>
<string name="revanced_sb_skip_button_nomusic">تخطي غير الموسيقى</string>
<string name="revanced_sb_skip_button_unsubmitted">تخطي المقطع</string>
<string name="revanced_sb_skipped_sponsor">تم تخطي الراعي</string>
@@ -1105,10 +1108,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_intro_middle">تم تخطي الفاصل</string>
<string name="revanced_sb_skipped_intro_end">تم تخطي الفاصل</string>
<string name="revanced_sb_skipped_outro">تم تخطي الخاتمة</string>
<string name="revanced_sb_skipped_hook">تم تخطي المقدمة</string>
<string name="revanced_sb_skipped_preview_beginning">تم تخطي النظرة العامة</string>
<string name="revanced_sb_skipped_preview_middle">تم تخطي النظرة العامة</string>
<string name="revanced_sb_skipped_preview_end">تم تخطي الملخص</string>
<string name="revanced_sb_skipped_filler">تم تخطي مقطع غير ذي صلة</string>
<string name="revanced_sb_skipped_filler">تم تخطي الجزء الجانبي</string>
<string name="revanced_sb_skipped_nomusic">تم تخطي جزء غير موسيقي</string>
<string name="revanced_sb_skipped_unsubmitted">تم تخطي المقطع الغير المرسل</string>
<string name="revanced_sb_skipped_multiple_segments">تم تخطي عدة مقاطع</string>

View File

@@ -1074,10 +1074,12 @@ Sizin istifadəçi Id-niz parol kimidir və heç vaxt paylaşmaq olmaz.
<string name="revanced_sb_segments_intro_sum">Həqiqi məzmunu olmayan aralıq. Fasilə, statik kadr və ya təkrarlanan animasiya ola bilər. Məlumat ehtiva edən keçidlər daxil deyil</string>
<string name="revanced_sb_segments_outro">Son kartlar / Zaminlər</string>
<string name="revanced_sb_segments_outro_sum">Zaminlər və ya YouTube bitiş kartları görünəndə. Məlumat daxil olan nəticələr üçün deyil</string>
<string name="revanced_sb_segments_preview">Önizləmə/Anons/Qısa</string>
<string name="revanced_sb_segments_hook">Giriş / Salamlar</string>
<string name="revanced_sb_segments_hook_sum">Yaxınlaşan video üçün danışılan kadrlar, salamlama və sağollaşma. Əlavə məzmun əlavə edən bölmələr daxil deyil</string>
<string name="revanced_sb_segments_preview">Önizləmə / Anons</string>
<string name="revanced_sb_segments_preview_sum">Videoda və ya seriyanın digər videolarında nə gözlənildiyini və ya baş verdiyini göstərən, bütün məlumatların başqa yerdə təkrarlandığı bölüm toplusu</string>
<string name="revanced_sb_segments_filler">Əlaqəsiz/Zarafatlar</string>
<string name="revanced_sb_segments_filler_sum">Videonun əsas məzmununu başa düşmək tələb olunmayan yalnız əlaqəsiz və ya yumor üçün əlavə edilmiş təsiredici səhnələr. Məzmun və ya arxa plan detallarınıqdim edən bölümlər daxil deyil</string>
<string name="revanced_sb_segments_filler">Əlaqəsiz / Zarafatlar</string>
<string name="revanced_sb_segments_filler_sum">Videonun əsas məzmunun başa düşmək tələb olunmayan əlaqəsiz səhnələr və ya zarafatlar. Məzmun və ya arxa plan təfərrüatlarınımin edən bölmələr daxil deyil</string>
<string name="revanced_sb_segments_nomusic">Musiqi: Musiqi olmayan bölmə</string>
<string name="revanced_sb_segments_nomusic_sum">Yalnız musiqi videolarında istifadə üçün. Artıq başqa kateqoriyaya aid edilməyən musiqisiz musiqi videoları bölmələri</string>
<string name="revanced_sb_skip_button_compact">Ötür</string>
@@ -1090,10 +1092,11 @@ Sizin istifadəçi Id-niz parol kimidir və heç vaxt paylaşmaq olmaz.
<string name="revanced_sb_skip_button_intro_middle">Fasiləni ötür</string>
<string name="revanced_sb_skip_button_intro_end">Fasiləni ötür</string>
<string name="revanced_sb_skip_button_outro">Bitişi ötür</string>
<string name="revanced_sb_skip_button_hook">Girişi ötür</string>
<string name="revanced_sb_skip_button_preview_beginning">Önizləməni ötür</string>
<string name="revanced_sb_skip_button_preview_middle">Önizləməni ötür</string>
<string name="revanced_sb_skip_button_preview_end">Anonsu ötür</string>
<string name="revanced_sb_skip_button_filler">Əlaqəsiz hissəni ötür</string>
<string name="revanced_sb_skip_button_filler">Əlaqəsiz olanı ötür</string>
<string name="revanced_sb_skip_button_nomusic">Musiqisiz hissəni ötür</string>
<string name="revanced_sb_skip_button_unsubmitted">Bölümü ötür</string>
<string name="revanced_sb_skipped_sponsor">Sponsorlu hissə ötürüldü</string>
@@ -1104,10 +1107,11 @@ Sizin istifadəçi Id-niz parol kimidir və heç vaxt paylaşmaq olmaz.
<string name="revanced_sb_skipped_intro_middle">Fasilə ötürüldü</string>
<string name="revanced_sb_skipped_intro_end">Fasilə ötürüldü</string>
<string name="revanced_sb_skipped_outro">Bitiş ötürüldü</string>
<string name="revanced_sb_skipped_hook">Giriş ötürüldü</string>
<string name="revanced_sb_skipped_preview_beginning">Önbaxış ötürüldü</string>
<string name="revanced_sb_skipped_preview_middle">Önbaxış ötürüldü</string>
<string name="revanced_sb_skipped_preview_end">Anons ötürüldü</string>
<string name="revanced_sb_skipped_filler">Əlaqəsiz hissə ötürüldü</string>
<string name="revanced_sb_skipped_filler">Əlaqəsiz ötürüldü</string>
<string name="revanced_sb_skipped_nomusic">Musiqi olmayan bölmə ötürüldü</string>
<string name="revanced_sb_skipped_unsubmitted">Göndərilməmiş bölüm ötürüldü</string>
<string name="revanced_sb_skipped_multiple_segments">Çoxlu bölümlər ötürüldü</string>

View File

@@ -1076,10 +1076,12 @@ Second \"item\" text"</string>
<string name="revanced_sb_segments_intro_sum">Інтэрвал без фактычнага зместу. Гэта можа быць паўза, статычны кадр або паўтаральная анімацыя. Не ўключае пераходы, якія змяшчаюць інфармацыю</string>
<string name="revanced_sb_segments_outro">Канцоўкі / Цітры</string>
<string name="revanced_sb_segments_outro_sum">Крэдыты або калі з\"яўляюцца канцавыя карткі YouTube. Не для высноў з інфармацыяй</string>
<string name="revanced_sb_segments_preview">Папярэдні прагляд/Паўзвядзенне/Хук</string>
<string name="revanced_sb_segments_hook">Уступ / Прывітанні</string>
<string name="revanced_sb_segments_hook_sum">Агучаныя трэйлеры для будучага відэа, прывітанні і развітанні. Не ўключае раздзелы, якія дадаюць дадатковы змест</string>
<string name="revanced_sb_segments_preview">Прадпрагляд / Паўтарэнне</string>
<string name="revanced_sb_segments_preview_sum">Калекцыя кліпаў, якія паказваюць, што адбываецца або што адбылося ў відэа ці ў іншых відэа серыі, дзе ўся інфармацыя паўтараецца ў іншым месцы</string>
<string name="revanced_sb_segments_filler">Філер Тангенс / Жарты</string>
<string name="revanced_sb_segments_filler_sum">Датычныя сцэны дададзены толькі для напаўнення або гумару, якія не патрэбныя для разумення асноўнага зместу відэа. Не ўключае сегменты, якія прадстаўляюць кантэкст або даведку</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_skip_button_compact">Прапусціць</string>
@@ -1092,10 +1094,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skip_button_intro_middle">Прапусціць антракт</string>
<string name="revanced_sb_skip_button_intro_end">Прапусціць антракт</string>
<string name="revanced_sb_skip_button_outro">Прапусціць іншы</string>
<string name="revanced_sb_skip_button_hook">Прапусціць уступ</string>
<string name="revanced_sb_skip_button_preview_beginning">Прапусціць папярэдні прагляд</string>
<string name="revanced_sb_skip_button_preview_middle">Прапусціць папярэдні прагляд</string>
<string name="revanced_sb_skip_button_preview_end">Прапусціць рэзюмэ</string>
<string name="revanced_sb_skip_button_filler">Скіп напаўняльнік</string>
<string name="revanced_sb_skip_button_filler">Прапусціць тангенс</string>
<string name="revanced_sb_skip_button_nomusic">Прапусціць не музыку</string>
<string name="revanced_sb_skip_button_unsubmitted">Прапусціць сегмент</string>
<string name="revanced_sb_skipped_sponsor">Прапусціў спонсара</string>
@@ -1106,10 +1109,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_intro_middle">Прапушчаны антракт</string>
<string name="revanced_sb_skipped_intro_end">Прапушчаны антракт</string>
<string name="revanced_sb_skipped_outro">Прапушчаны выхад</string>
<string name="revanced_sb_skipped_hook">Уступ прапушчаны</string>
<string name="revanced_sb_skipped_preview_beginning">Прапушчаны папярэдні прагляд</string>
<string name="revanced_sb_skipped_preview_middle">Прапушчаны папярэдні прагляд</string>
<string name="revanced_sb_skipped_preview_end">Прапушчаны рэзюмэ</string>
<string name="revanced_sb_skipped_filler">Прапушчаны напаўняльнік</string>
<string name="revanced_sb_skipped_filler">Тангенс прапушчаны</string>
<string name="revanced_sb_skipped_nomusic">Прапусціў немузычны раздзел</string>
<string name="revanced_sb_skipped_unsubmitted">Прапушчаны неадпраўлены сегмент</string>
<string name="revanced_sb_skipped_multiple_segments">Прапушчаны некалькі сегментаў</string>

View File

@@ -1075,10 +1075,12 @@ Second \"item\" text"</string>
<string name="revanced_sb_segments_intro_sum">Интервал без реално съдържание. Може да бъде пауза, статичен кадър, повтаряща се анимация. Това не трябва да се използва за преходи, съдържащи информация</string>
<string name="revanced_sb_segments_outro">Край на клипа / Надписи</string>
<string name="revanced_sb_segments_outro_sum">Информация или когато се показват крайните карти на YouTube. Не за заключения с информация</string>
<string name="revanced_sb_segments_preview">Кратък преглед/Обобщение</string>
<string name="revanced_sb_segments_hook">Начало / Поздрави</string>
<string name="revanced_sb_segments_hook_sum">Озвучени трейлъри за предстоящото видео, поздрави и сбогувания. Не включва секции, които добавят допълнително съдържание</string>
<string name="revanced_sb_segments_preview">Предварителен преглед / Резюме</string>
<string name="revanced_sb_segments_preview_sum">Колекция от клипове, които показват какво предстои в този видеоклип или в други видеоклипове от поредицата, където цялата информация се повтаря по-късно във видеоклипа</string>
<string name="revanced_sb_segments_filler">Пълнеж/Шеги</string>
<string name="revanced_sb_segments_filler_sum">Сцени извън темата, добавени само за пълнеж или хумор, които не са необходими за разбирането на основното съдържание на видеоклипа. Това не трябва да включва сегменти, предоставящи контекст или справочни данни</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_skip_button_compact">Пропусни</string>
@@ -1091,10 +1093,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skip_button_intro_middle">Пропусни пауза</string>
<string name="revanced_sb_skip_button_intro_end">Пропусни пауза</string>
<string name="revanced_sb_skip_button_outro">Пропусни заключение</string>
<string name="revanced_sb_skip_button_hook">Пропускане на увод</string>
<string name="revanced_sb_skip_button_preview_beginning">Пропусни преглед</string>
<string name="revanced_sb_skip_button_preview_middle">Пропусни преглед</string>
<string name="revanced_sb_skip_button_preview_end">Пропуснете обобщението</string>
<string name="revanced_sb_skip_button_filler">Пропусни пълнеж</string>
<string name="revanced_sb_skip_button_filler">Пропускане на отклонение</string>
<string name="revanced_sb_skip_button_nomusic">Пропусни част без музика</string>
<string name="revanced_sb_skip_button_unsubmitted">Пропускане на сегмент</string>
<string name="revanced_sb_skipped_sponsor">Пропуснат спонсор</string>
@@ -1105,10 +1108,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_intro_middle">Пропусни паузи</string>
<string name="revanced_sb_skipped_intro_end">Пропусни паузи</string>
<string name="revanced_sb_skipped_outro">Пропуснато заключение</string>
<string name="revanced_sb_skipped_hook">Пропуснато увод</string>
<string name="revanced_sb_skipped_preview_beginning">Пропуснат преглед</string>
<string name="revanced_sb_skipped_preview_middle">Пропуснат преглед</string>
<string name="revanced_sb_skipped_preview_end">Пропуснато повторение</string>
<string name="revanced_sb_skipped_filler">Пропуснат пълнеж</string>
<string name="revanced_sb_skipped_filler">Пропуснато отклонение</string>
<string name="revanced_sb_skipped_nomusic">Пропусната част без музика</string>
<string name="revanced_sb_skipped_unsubmitted">Пропуснат неизпратен сегмент</string>
<string name="revanced_sb_skipped_multiple_segments">Пропуснати множество части</string>

View File

@@ -1070,10 +1070,12 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন
<string name="revanced_sb_segments_intro_sum">প্রকৃত বিষয়বস্তু ছাড়াই একটি বিরতি। বিরতি, স্থির ফ্রেম, অ্যানিমেশন পুনরাবৃত্তি হতে পারে। এটি তথ্যযুক্ত ট্রানজিশনের জন্য ব্যবহার করা উচিত নয়</string>
<string name="revanced_sb_segments_outro">এন্ডকার্ডস / কৃতজ্ঞতা স্বীকার</string>
<string name="revanced_sb_segments_outro_sum">ক্রেডিট বা যখন ইউটিউব এন্ডকার্ডগুলি উপস্থিত হয়। তথ্য সহ সিদ্ধান্তের জন্য নয়</string>
<string name="revanced_sb_segments_preview">পূর্বরূপ/সংক্ষিপ্তবৃত্তি/হুক</string>
<string name="revanced_sb_segments_hook">হুক / শুভেচ্ছা</string>
<string name="revanced_sb_segments_hook_sum">আসন্ন ভিডিওর জন্য বর্ণিত ট্রেলার, শুভেচ্ছা এবং বিদায়। এমন অংশগুলি অন্তর্ভুক্ত নয় যা অতিরিক্ত সামগ্রী যোগ করে।</string>
<string name="revanced_sb_segments_preview">পূর্বরূপ / সারসংক্ষেপ</string>
<string name="revanced_sb_segments_preview_sum">একটি সমষ্টি ক্লিপ সমূহ যা ভিডিওতে এসে যা হচ্ছে বা অন্য ভিডিও সিরিজে ঘটেছে সেগুলি দেখায় যেখানে সমস্ত তথ্য অন্যত্র পুনরাবৃত্তি করা হয়</string>
<string name="revanced_sb_segments_filler">স্পর্শক/কৌতুক ফিল্টার করুন</string>
<string name="revanced_sb_segments_filler_sum">স্পর্শকাতর দৃশ্যগুলি শুধুমাত্র ফিলার বা হাস্যরসের জন্য যোগ করা হয়েছে যা ভিডিওর মূল বিষয়বস্তু বোঝার প্রয়োজন নেই। প্রসঙ্গ বা পটভূমি বিশদ প্রদানকারী বিভাগগুলি এতে অন্তর্ভুক্ত করা উচিত নয়</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_skip_button_compact">এড়িয়ে যান</string>
@@ -1086,10 +1088,11 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন
<string name="revanced_sb_skip_button_intro_middle">উপসংহার এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_intro_end">উপসংহার এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_outro">শেষ অংশ এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_hook">হুক এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_preview_beginning">প্রিভিউ এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_preview_middle">প্রিভিউ এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_preview_end">সংক্ষিপ্তবৃত্তি এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_filler">ফিল্টার এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_filler">প্রাসঙ্গিকতা এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_nomusic">সঙ্গীত-বিহীন অংশ এড়িয়ে যান</string>
<string name="revanced_sb_skip_button_unsubmitted">সেগমেন্ট এড়িয়ে যান</string>
<string name="revanced_sb_skipped_sponsor">স্পন্সর এড়িয়ে গেছে</string>
@@ -1100,10 +1103,11 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন
<string name="revanced_sb_skipped_intro_middle">উপসংহার এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_intro_end">উপসংহার এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_outro">শেষ অংশ এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_hook">হুক এড়িয়ে যাওয়া হয়েছে</string>
<string name="revanced_sb_skipped_preview_beginning">প্রাকদর্শন এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_preview_middle">প্রাকদর্শন এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_preview_end">সংক্ষিপ্তবৃত্তি এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_filler">ফিল্টার এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_filler">প্রাসঙ্গিকতা এড়িয়ে যাওয়া হয়েছে</string>
<string name="revanced_sb_skipped_nomusic">একটি সঙ্গীতবিহীন অংশ এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_unsubmitted">জমা না হওয়া সেগমেন্ট এড়িয়ে গেছে</string>
<string name="revanced_sb_skipped_multiple_segments">একটানা একাধিক সেগমেন্ট এড়িয়ে গেছে</string>

View File

@@ -1075,10 +1075,12 @@ Vaše ID uživatele je jako heslo a nikdy by nemělo být sdíleno."</string>
<string name="revanced_sb_segments_intro_sum">Interval bez skutečného obsahu. Může to být pauza, statický snímek nebo opakující se animace. Neobsahuje přechody s informacemi</string>
<string name="revanced_sb_segments_outro">Outro / Závěrečné titulky</string>
<string name="revanced_sb_segments_outro_sum">Titulky nebo když se objeví závěrečné karty YouTube. Ne pro závěry s informacemi</string>
<string name="revanced_sb_segments_preview">Náhled/Shrnutí/Háček</string>
<string name="revanced_sb_segments_hook">Úvod / Pozdravy</string>
<string name="revanced_sb_segments_hook_sum">Komentované upoutávky na nadcházející video, pozdravy a rozloučení. Neobsahuje sekce, které přidávají další obsah</string>
<string name="revanced_sb_segments_preview">Náhled / Shrnutí</string>
<string name="revanced_sb_segments_preview_sum">Sbírka klipů, které ukazují, co se chystá nebo co se stalo ve videu nebo v jiných videích série, kde jsou všechny informace opakované jinde</string>
<string name="revanced_sb_segments_filler">Výplň / vtipy</string>
<string name="revanced_sb_segments_filler_sum">Vedlejší scény přidány pouze pro výplň nebo humor, které nejsou nutné pro pochopení hlavního obsahu videa. Neobsahuje segmenty poskytující kontext nebo podrobnosti o pozadí</string>
<string name="revanced_sb_segments_filler">Odbočka / Vtipy</string>
<string name="revanced_sb_segments_filler_sum">Vedlejší scény nebo vtipy, které nejsou nutné k pochopení hlavního obsahu videa. Neobsahuje sekce poskytující kontext nebo podrobnosti na pozadí</string>
<string name="revanced_sb_segments_nomusic">Hudba: nehudební sekce</string>
<string name="revanced_sb_segments_nomusic_sum">Pouze pro použití v hudebních videích. Sekce hudebních videí bez hudby, které nejsou již pokryty jinou kategorií</string>
<string name="revanced_sb_skip_button_compact">Přeskočit</string>
@@ -1091,10 +1093,11 @@ Vaše ID uživatele je jako heslo a nikdy by nemělo být sdíleno."</string>
<string name="revanced_sb_skip_button_intro_middle">Přeskočit přestávku</string>
<string name="revanced_sb_skip_button_intro_end">Přeskočit přestávku</string>
<string name="revanced_sb_skip_button_outro">Přeskočit závěr</string>
<string name="revanced_sb_skip_button_hook">Přeskočit úvod</string>
<string name="revanced_sb_skip_button_preview_beginning">Přeskočit náhled</string>
<string name="revanced_sb_skip_button_preview_middle">Přeskočit náhled</string>
<string name="revanced_sb_skip_button_preview_end">Přeskočit shrnutí</string>
<string name="revanced_sb_skip_button_filler">Přeskočit výplň</string>
<string name="revanced_sb_skip_button_filler">Přeskočit vedlejší část</string>
<string name="revanced_sb_skip_button_nomusic">Přeskočit bez hudby</string>
<string name="revanced_sb_skip_button_unsubmitted">Přeskočit segment</string>
<string name="revanced_sb_skipped_sponsor">Sponzor přeskočen</string>
@@ -1105,10 +1108,11 @@ Vaše ID uživatele je jako heslo a nikdy by nemělo být sdíleno."</string>
<string name="revanced_sb_skipped_intro_middle">Přeskočena přestávka</string>
<string name="revanced_sb_skipped_intro_end">Přeskočena přestávka</string>
<string name="revanced_sb_skipped_outro">Outro přeskočeno</string>
<string name="revanced_sb_skipped_hook">Úvod přeskočen</string>
<string name="revanced_sb_skipped_preview_beginning">Přeskočena ukázka/rekapitulace</string>
<string name="revanced_sb_skipped_preview_middle">Přeskočena ukázka/rekapitulace</string>
<string name="revanced_sb_skipped_preview_end">Přeskočeno shrnutí</string>
<string name="revanced_sb_skipped_filler">Přeskočená nepodstatná výplň videa</string>
<string name="revanced_sb_skipped_filler">Vedlejší část přeskočena</string>
<string name="revanced_sb_skipped_nomusic">Přeskočena nehudební sekce</string>
<string name="revanced_sb_skipped_unsubmitted">Přeskočen neodeslaný segment</string>
<string name="revanced_sb_skipped_multiple_segments">Přeskočeno více segmentů</string>

View File

@@ -1077,10 +1077,12 @@ Dit bruger-id er som en adgangskode, og det må aldrig deles.
<string name="revanced_sb_segments_intro_sum">Et interval uden reelt indhold. Kunne være en pause, statisk ramme eller gentagelse af animation. Omfatter ikke overgange indeholdende information</string>
<string name="revanced_sb_segments_outro">Slutkort / Kredit</string>
<string name="revanced_sb_segments_outro_sum">Medvirkende eller når YouTube-endcards vises. Ikke for konklusioner med information</string>
<string name="revanced_sb_segments_preview">Forhåndsvisning/Genoptag/Krog</string>
<string name="revanced_sb_segments_hook">Intro / Hilsener</string>
<string name="revanced_sb_segments_hook_sum">Fortalte trailere for den kommende video, hilsener og farvel. Indeholder ikke afsnit, der tilføjer yderligere indhold</string>
<string name="revanced_sb_segments_preview">Forhåndsvisning / Resumé</string>
<string name="revanced_sb_segments_preview_sum">Indsamling af klip, der viser, hvad der kommer op, eller hvad der skete i videoen eller i andre videoer af en serie, hvor alle oplysninger gentages andetsteds</string>
<string name="revanced_sb_segments_filler">Fyldstof-tangent/jokes</string>
<string name="revanced_sb_segments_filler_sum">Tangential scener tilføjet kun for fyldstof eller humor, der ikke er forpligtet til at forstå hovedindholdet af videoen. Omfatter ikke segmenter, der giver kontekst- eller baggrundsoplysninger</string>
<string name="revanced_sb_segments_filler">Sidespor / Vittigheder</string>
<string name="revanced_sb_segments_filler_sum">Tangentielle scener eller vittigheder, der ikke er nødvendige for at forstå videoens hovedindhold. Indeholder ikke afsnit, der giver kontekst eller baggrundsoplysninger</string>
<string name="revanced_sb_segments_nomusic">Musik: Ikke-Musik Sektion</string>
<string name="revanced_sb_segments_nomusic_sum">Kun til brug i musikvideoer. Sektioner af musikvideoer uden musik, der ikke allerede er dækket af en anden kategori</string>
<string name="revanced_sb_skip_button_compact">Overspring</string>
@@ -1093,10 +1095,11 @@ Dit bruger-id er som en adgangskode, og det må aldrig deles.
<string name="revanced_sb_skip_button_intro_middle">Spring intermission over</string>
<string name="revanced_sb_skip_button_intro_end">Spring intermission over</string>
<string name="revanced_sb_skip_button_outro">Spring outro over</string>
<string name="revanced_sb_skip_button_hook">Spring hook over</string>
<string name="revanced_sb_skip_button_preview_beginning">Spring forhåndsvisning over</string>
<string name="revanced_sb_skip_button_preview_middle">Spring forhåndsvisning over</string>
<string name="revanced_sb_skip_button_preview_end">Spring resumé over</string>
<string name="revanced_sb_skip_button_filler">Spring filler over</string>
<string name="revanced_sb_skip_button_filler">Spring tangent over</string>
<string name="revanced_sb_skip_button_nomusic">Spring over ikke-musik</string>
<string name="revanced_sb_skip_button_unsubmitted">Overspring segment</string>
<string name="revanced_sb_skipped_sponsor">Sponsor sprunget over</string>
@@ -1107,10 +1110,11 @@ Dit bruger-id er som en adgangskode, og det må aldrig deles.
<string name="revanced_sb_skipped_intro_middle">Intermission sprunget over</string>
<string name="revanced_sb_skipped_intro_end">Intermission sprunget over</string>
<string name="revanced_sb_skipped_outro">Sprunget over outro</string>
<string name="revanced_sb_skipped_hook">Hook sprunget over</string>
<string name="revanced_sb_skipped_preview_beginning">Forklaring sprunget over</string>
<string name="revanced_sb_skipped_preview_middle">Forklaring sprunget over</string>
<string name="revanced_sb_skipped_preview_end">Oversprunget resumé</string>
<string name="revanced_sb_skipped_filler">Fyldstof sprunget over</string>
<string name="revanced_sb_skipped_filler">Tangent sprunget over</string>
<string name="revanced_sb_skipped_nomusic">Oversprunget en ikke-musiksektion over</string>
<string name="revanced_sb_skipped_unsubmitted">Uindsendt segment sprunget over</string>
<string name="revanced_sb_skipped_multiple_segments">Oversprunget over flere segmenter</string>

View File

@@ -61,7 +61,7 @@ Um neue Sprachen zu übersetzen, besuchen Sie translate.revanced.app"</string>
<string name="revanced_pref_import_export_summary">ReVanced-Einstellungen importieren/exportieren</string>
<!-- Settings about dialog. -->
<string name="revanced_settings_about_links_body">Sie verwenden ReVanced-Patches Version &lt;i&gt;%s&lt;/i&gt;</string>
<string name="revanced_settings_about_links_dev_header">Anmerkung</string>
<string name="revanced_settings_about_links_dev_header">Notiz</string>
<string name="revanced_settings_about_links_dev_body">Diese Version ist eine Vorabversion, es kann zu unerwarteten Problemen kommen</string>
<string name="revanced_settings_about_links_header">Offizielle Links</string>
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
@@ -1070,10 +1070,12 @@ Ihre Benutzer-ID ist wie ein Passwort und sollte niemals weitergegeben werden.
<string name="revanced_sb_segments_intro_sum">Ein Intervall ohne aktuellen Inhalt. Kann eine Pause, ein statischer Rahmen oder eine Wiederholung der Animation sein. Enthält keine Übergänge mit Informationen</string>
<string name="revanced_sb_segments_outro">Endkarten / Credits</string>
<string name="revanced_sb_segments_outro_sum">Credits oder wenn die YouTube-Endkarten erscheinen. Nicht für Schlussfolgerungen mit Informationen</string>
<string name="revanced_sb_segments_preview">Vorschau/Recap/Hook</string>
<string name="revanced_sb_segments_hook">Hook / Begrüßungen</string>
<string name="revanced_sb_segments_hook_sum">Erzählte Trailer für das kommende Video, Begrüßungen und Verabschiedungen. Enthält keine Abschnitte, die zusätzlichen Inhalt hinzufügen</string>
<string name="revanced_sb_segments_preview">Vorschau / Rückblick</string>
<string name="revanced_sb_segments_preview_sum">Sammlung von Clips, die zeigen, was im Video oder in anderen Videos einer Serie vor sich geht, wo alle Informationen andernorts wiederholt werden</string>
<string name="revanced_sb_segments_filler">Füller/Witze</string>
<string name="revanced_sb_segments_filler_sum">Tangentielle Szenen, die nur für Füller oder Humor hinzugefügt werden, die nicht erforderlich sind, um den Hauptinhalt des Videos zu verstehen. Enthält keine Segmente mit Kontext oder Hintergrunddetails</string>
<string name="revanced_sb_segments_filler">Abschweifung / Witze</string>
<string name="revanced_sb_segments_filler_sum">Tangentiale Szenen oder Witze, die nicht erforderlich sind, um den Hauptinhalt des Videos zu verstehen. Dies sollte keine Segmente enthalten, die Kontext oder Hintergrunddetails liefern</string>
<string name="revanced_sb_segments_nomusic">Musik: Nicht-Musik-Sektion</string>
<string name="revanced_sb_segments_nomusic_sum">Nur für die Verwendung in Musikvideos. Abschnitte von Musikvideos ohne Musik, die noch nicht von einer anderen Kategorie abgedeckt sind</string>
<string name="revanced_sb_skip_button_compact">Überspringen</string>
@@ -1086,10 +1088,11 @@ Ihre Benutzer-ID ist wie ein Passwort und sollte niemals weitergegeben werden.
<string name="revanced_sb_skip_button_intro_middle">Unterbrechung überspringen</string>
<string name="revanced_sb_skip_button_intro_end">Unterbrechung überspringen</string>
<string name="revanced_sb_skip_button_outro">Überspringen</string>
<string name="revanced_sb_skip_button_hook">Hook überspringen</string>
<string name="revanced_sb_skip_button_preview_beginning">Vorschau überspringen</string>
<string name="revanced_sb_skip_button_preview_middle">Vorschau überspringen</string>
<string name="revanced_sb_skip_button_preview_end">Rückfall überspringen</string>
<string name="revanced_sb_skip_button_filler">Füller überspringen</string>
<string name="revanced_sb_skip_button_filler">Abschweifung überspringen</string>
<string name="revanced_sb_skip_button_nomusic">Nicht-Musik überspringen</string>
<string name="revanced_sb_skip_button_unsubmitted">Segment überspringen</string>
<string name="revanced_sb_skipped_sponsor">Sponsor übersprungen</string>
@@ -1100,10 +1103,11 @@ Ihre Benutzer-ID ist wie ein Passwort und sollte niemals weitergegeben werden.
<string name="revanced_sb_skipped_intro_middle">Übersprungene Unterbrechung</string>
<string name="revanced_sb_skipped_intro_end">Übersprungene Unterbrechung</string>
<string name="revanced_sb_skipped_outro">Outro übersprungen</string>
<string name="revanced_sb_skipped_hook">Hook übersprungen</string>
<string name="revanced_sb_skipped_preview_beginning">Vorschau übersprungen</string>
<string name="revanced_sb_skipped_preview_middle">Vorschau übersprungen</string>
<string name="revanced_sb_skipped_preview_end">Übersprungene Rücklage</string>
<string name="revanced_sb_skipped_filler">Füller übersprungen</string>
<string name="revanced_sb_skipped_filler">Abschweifung übersprungen</string>
<string name="revanced_sb_skipped_nomusic">Nicht-Musik-Sektion übersprungen</string>
<string name="revanced_sb_skipped_unsubmitted">Nicht übermitteltes Segment übersprungen</string>
<string name="revanced_sb_skipped_multiple_segments">Mehrere Segmente übersprungen</string>

View File

@@ -176,7 +176,7 @@ Second \"item\" text"</string>
• Εξερευνήστε περισσότερα κανάλια
• Πιο σχετικά
• Shopping
• Παρακολουθήστε ξανά"</string>
• Παρακολούθηση ξανά"</string>
<string name="revanced_hide_horizontal_shelves_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_image_shelf_title">Ενότητα εικόνων στα αποτελέσματα αναζήτησης</string>
<string name="revanced_hide_image_shelf_summary_on">Κρυμμένη</string>
@@ -1076,10 +1076,12 @@ Second \"item\" text"</string>
<string name="revanced_sb_segments_intro_sum">Χρονικό διάστημα χωρίς πραγματικό περιεχόμενο. Θα μπορούσε να είναι μια παύση, ένα στατικό καρέ ή μια επαναλαμβανόμενη κίνηση. Δεν περιλαμβάνει μεταβάσεις που περιέχουν πληροφορίες</string>
<string name="revanced_sb_segments_outro">Τελική Οθόνη / Συντελεστές</string>
<string name="revanced_sb_segments_outro_sum">Όταν εμφανίζονται οι συντελεστές ή τα προτεινόμενα βίντεο των καναλιών. Όχι για επίλογους που περιέχουν πληροφορίες</string>
<string name="revanced_sb_segments_preview">Προεπισκόπηση/Περίληψη</string>
<string name="revanced_sb_segments_hook">Έναρξη / Χαιρετισμοί</string>
<string name="revanced_sb_segments_hook_sum">Αφηγηματικά τρέιλερ για το επερχόμενο βίντεο, χαιρετισμοί και αποχαιρετισμοί. Δεν περιλαμβάνει τμήματα που προσθέτουν επιπλέον περιεχόμενο</string>
<string name="revanced_sb_segments_preview">Προεπισκόπηση / Περίληψη</string>
<string name="revanced_sb_segments_preview_sum">Συλλογή από κλιπ που δείχνουν τι έρχεται ή τι συνέβη στο βίντεο ή σε άλλα βίντεο μιας σειράς, όπου όλες οι πληροφορίες επαναλαμβάνονται αλλού</string>
<string name="revanced_sb_segments_filler">Σπατάλη Χρόνου/Αστεία</string>
<string name="revanced_sb_segments_filler_sum">Παρεμβατικές σκηνές που προστίθενται μόνο για γέμισμα του βίντεο ή χιούμορ οι οποίες δεν είναι απαραίτητες για την κατανόηση του κύριου περιεχομένου του βίντεο. Δεν περιλαμβάνει τμήματα που παρέχουν συνάφεια ή λεπτομέρειες ως υπόβαθρο</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_skip_button_compact">Παράλειψη</string>
@@ -1092,10 +1094,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skip_button_intro_middle">Παράλειψη διακοπής</string>
<string name="revanced_sb_skip_button_intro_end">Παράλειψη διακοπής</string>
<string name="revanced_sb_skip_button_outro">Παράλειψη επιλόγου</string>
<string name="revanced_sb_skip_button_hook">Παράλειψη έναρξης</string>
<string name="revanced_sb_skip_button_preview_beginning">Παράλειψη προεπισκόπησης</string>
<string name="revanced_sb_skip_button_preview_middle">Παράλειψη προεπισκόπησης</string>
<string name="revanced_sb_skip_button_preview_end">Παράλειψη περίληψης</string>
<string name="revanced_sb_skip_button_filler">Παράλειψη σπατάλης χρόνου</string>
<string name="revanced_sb_skip_button_filler">Παράλειψη παρέκβασης</string>
<string name="revanced_sb_skip_button_nomusic">Παράλειψη μη-μουσικού</string>
<string name="revanced_sb_skip_button_unsubmitted">Παράλειψη τμήματος</string>
<string name="revanced_sb_skipped_sponsor">Παραλείφθηκε ο χορηγός</string>
@@ -1106,10 +1109,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_intro_middle">Παραλείφθηκε η διακοπή</string>
<string name="revanced_sb_skipped_intro_end">Παραλείφθηκε η διακοπή</string>
<string name="revanced_sb_skipped_outro">Παραλείφθηκε ο επίλογος</string>
<string name="revanced_sb_skipped_hook">Παραλείφθηκε η έναρξη</string>
<string name="revanced_sb_skipped_preview_beginning">Παραλείφθηκε η προεπισκόπηση</string>
<string name="revanced_sb_skipped_preview_middle">Παραλείφθηκε η προεπισκόπηση</string>
<string name="revanced_sb_skipped_preview_end">Παραλείφθηκε η περίληψη</string>
<string name="revanced_sb_skipped_filler">Παραλείφθηκε η σπατάλη χρόνου</string>
<string name="revanced_sb_skipped_filler">Παραλείφθηκε η παρέκβαση</string>
<string name="revanced_sb_skipped_nomusic">Παραλείφθηκε τμήμα χωρίς μουσική</string>
<string name="revanced_sb_skipped_unsubmitted">Παραλήφθηκε μη υποβληθέν τμήμα</string>
<string name="revanced_sb_skipped_multiple_segments">Παραλείφθηκαν πολλαπλά τμήματα</string>
@@ -1334,7 +1338,7 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_invalid">Μη έγκυρη τιμή χρώματος γραμμής προόδου</string>
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Λογότυπο κεφαλίδας</string>
<string name="revanced_header_logo_title">Λογότυπο επικεφαλίδας</string>
<string name="revanced_header_logo_entry_1">Προεπιλογή</string>
<string name="revanced_header_logo_entry_2">Κανονικό</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->

View File

@@ -1074,10 +1074,12 @@ Tu ID de usuario es como una contraseña y nunca debe compartirse."</string>
<string name="revanced_sb_segments_intro_sum">Un intervalo sin contenido real. Podría ser una pausa, marco estático o animación de repetición. No incluye transiciones que contengan información</string>
<string name="revanced_sb_segments_outro">Tarjetas finales / Créditos</string>
<string name="revanced_sb_segments_outro_sum">Créditos o cuando aparecen las tarjetas finales de YouTube. No para conclusiones con información</string>
<string name="revanced_sb_segments_preview">Vista previa/Resumen/Enganche</string>
<string name="revanced_sb_segments_hook">Enganche / Saludos</string>
<string name="revanced_sb_segments_hook_sum">Tráilers narrados para el próximo video, saludos y despedidas. No incluye secciones que añadan contenido adicional</string>
<string name="revanced_sb_segments_preview">Vista previa / Resumen</string>
<string name="revanced_sb_segments_preview_sum">Colección de clips que muestran lo que viene o lo que pasó en el vídeo o en otros videos de una serie, donde toda la información se repite en otro lugar</string>
<string name="revanced_sb_segments_filler">Bromas de relleno</string>
<string name="revanced_sb_segments_filler_sum">Escenas tangenciales añadidas sólo para relleno o humor que no están obligadas a entender el contenido principal del vídeo. No incluye segmentos proporcionando detalles de contexto o fondo</string>
<string name="revanced_sb_segments_filler">Digresión / Chistes</string>
<string name="revanced_sb_segments_filler_sum">Escenas o chistes tangenciales que no son necesarios para entender el contenido principal del video. No incluye secciones que proporcionen contexto o detalles de fondo</string>
<string name="revanced_sb_segments_nomusic">Música: Sección sin música</string>
<string name="revanced_sb_segments_nomusic_sum">Sólo para usar en vídeos de música. Secciones de vídeos de música sin música, que no están cubiertas por otra categoría</string>
<string name="revanced_sb_skip_button_compact">Saltar</string>
@@ -1090,10 +1092,11 @@ Tu ID de usuario es como una contraseña y nunca debe compartirse."</string>
<string name="revanced_sb_skip_button_intro_middle">Omitir intermisión</string>
<string name="revanced_sb_skip_button_intro_end">Omitir intermisión</string>
<string name="revanced_sb_skip_button_outro">Saltar outro</string>
<string name="revanced_sb_skip_button_hook">Omitir gancho</string>
<string name="revanced_sb_skip_button_preview_beginning">Saltar vista previa</string>
<string name="revanced_sb_skip_button_preview_middle">Saltar vista previa</string>
<string name="revanced_sb_skip_button_preview_end">Saltar resumen</string>
<string name="revanced_sb_skip_button_filler">Saltar relleno</string>
<string name="revanced_sb_skip_button_filler">Omitir tangencial</string>
<string name="revanced_sb_skip_button_nomusic">Omitir no música</string>
<string name="revanced_sb_skip_button_unsubmitted">Saltar Segmento</string>
<string name="revanced_sb_skipped_sponsor">Omitir patrocinio</string>
@@ -1104,10 +1107,11 @@ Tu ID de usuario es como una contraseña y nunca debe compartirse."</string>
<string name="revanced_sb_skipped_intro_middle">Intermisión omitida</string>
<string name="revanced_sb_skipped_intro_end">Intermisión omitida</string>
<string name="revanced_sb_skipped_outro">Outro omitida</string>
<string name="revanced_sb_skipped_hook">Gancho omitido</string>
<string name="revanced_sb_skipped_preview_beginning">Vista previa omitida</string>
<string name="revanced_sb_skipped_preview_middle">Vista previa omitida</string>
<string name="revanced_sb_skipped_preview_end">Resumen omitido</string>
<string name="revanced_sb_skipped_filler">Relleno omitido</string>
<string name="revanced_sb_skipped_filler">Tangencial omitido</string>
<string name="revanced_sb_skipped_nomusic">Se omitió una sección de no musical</string>
<string name="revanced_sb_skipped_unsubmitted">Un segmento no enviado fue omitido</string>
<string name="revanced_sb_skipped_multiple_segments">Se omitieron varios segmentos</string>

View File

@@ -1075,10 +1075,12 @@ Teie kasutajatunnis on nagu parool ja seda ei tohiks kunagi jagada.
<string name="revanced_sb_segments_intro_sum">Ajavahemik, millel pole tegelikku sisu. Võib olla paus, staatiline kaader või korduv animatsioon. Ei sisalda üleminekuid, mis sisaldavad teavet</string>
<string name="revanced_sb_segments_outro">Lõpukaardid / Tiitrid</string>
<string name="revanced_sb_segments_outro_sum">Tiitrid või YouTube\'i lõppkaardid. Ei ole mõeldud järelduste jaoks, mis sisaldavad teavet</string>
<string name="revanced_sb_segments_preview">Eelvaade/Kokkuvõte/Konks</string>
<string name="revanced_sb_segments_hook">Konks / Tervitused</string>
<string name="revanced_sb_segments_hook_sum">Jutustatud treilerid eelseisvatele videotele, tervitused ja hüvasti jätmised. Ei hõlma osi, mis lisavad täiendavat sisu</string>
<string name="revanced_sb_segments_preview">Eelvaade / Kokkuvõte</string>
<string name="revanced_sb_segments_preview_sum">Klipi kogum, mis näitab, mis tulemas on või mis juhtus videos või teistes sarja videotes, kus kogu teave on korduv</string>
<string name="revanced_sb_segments_filler">Täiteaine/Naljad</string>
<string name="revanced_sb_segments_filler_sum">Tangentsiaalsed stseenid, mis on lisatud ainult täiteainena või huumorina, mis ei ole vajalikud video peamise sisu mõistmiseks. Ei sisalda segmente, mis annavad konteksti või taustateavet</string>
<string name="revanced_sb_segments_filler">Kõrvalepõige / Naljad</string>
<string name="revanced_sb_segments_filler_sum">Kõrvalised stseenid või naljad, mis pole video peamise sisu mõistmiseks vajalikud. Ei hõlma osi, mis pakuvad konteksti või taustateavet</string>
<string name="revanced_sb_segments_nomusic">Muusika: Muusikavaba osa</string>
<string name="revanced_sb_segments_nomusic_sum">Ainult muusikavideote puhul. Muusikavideote osad ilma muusikata, mis ei ole juba kaetud mõne teise kategooriaga</string>
<string name="revanced_sb_skip_button_compact">Jäta vahele</string>
@@ -1091,10 +1093,11 @@ Teie kasutajatunnis on nagu parool ja seda ei tohiks kunagi jagada.
<string name="revanced_sb_skip_button_intro_middle">Jäta vahepausini</string>
<string name="revanced_sb_skip_button_intro_end">Jäta vahepausini</string>
<string name="revanced_sb_skip_button_outro">Jäta lõppuni</string>
<string name="revanced_sb_skip_button_hook">Jäta sissejuhatus vahele</string>
<string name="revanced_sb_skip_button_preview_beginning">Jäta eelvaatesse</string>
<string name="revanced_sb_skip_button_preview_middle">Jäta eelvaatesse</string>
<string name="revanced_sb_skip_button_preview_end">Jäta kokkuvõttes</string>
<string name="revanced_sb_skip_button_filler">Jäta täiteaine vahele</string>
<string name="revanced_sb_skip_button_filler">Jäta kõrvalepõige vahele</string>
<string name="revanced_sb_skip_button_nomusic">Jäta muusikavaba osa vahele</string>
<string name="revanced_sb_skip_button_unsubmitted">Jäta segment vahele</string>
<string name="revanced_sb_skipped_sponsor">Reklaam vahele jäetud</string>
@@ -1105,10 +1108,11 @@ Teie kasutajatunnis on nagu parool ja seda ei tohiks kunagi jagada.
<string name="revanced_sb_skipped_intro_middle">Vahepaus vahele jäetud</string>
<string name="revanced_sb_skipped_intro_end">Vahepaus vahele jäetud</string>
<string name="revanced_sb_skipped_outro">Lõpp vahele jäetud</string>
<string name="revanced_sb_skipped_hook">Sissejuhatus vahele jäetud</string>
<string name="revanced_sb_skipped_preview_beginning">Eelvaade vahele jäetud</string>
<string name="revanced_sb_skipped_preview_middle">Eelvaade vahele jäetud</string>
<string name="revanced_sb_skipped_preview_end">Kokkuvõte vahele jäetud</string>
<string name="revanced_sb_skipped_filler">Täiteaine vahele jäetud</string>
<string name="revanced_sb_skipped_filler">Kõrvalepõige vahele jäetud</string>
<string name="revanced_sb_skipped_nomusic">Muusikavaba osa vahele jäetud</string>
<string name="revanced_sb_skipped_unsubmitted">Esitamata segment vahele jäetud</string>
<string name="revanced_sb_skipped_multiple_segments">Mitmed segmendid vahele jäetud</string>

View File

@@ -1072,10 +1072,12 @@ UserID on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_segments_intro_sum">Aikaväli ilman varsinaista sisältöä. Voi olla tauko, staattinen kehys tai toistuva animaatio. Ei sisällä siirtymiä, jotka sisältävät tietoa</string>
<string name="revanced_sb_segments_outro">Loppukortit / Tekijätiedot</string>
<string name="revanced_sb_segments_outro_sum">Lopputekstit tai kun YouTuben loppukortit tulevat näkyviin. Ei lopetuksille, joissa on tietoa</string>
<string name="revanced_sb_segments_preview">Esikatselu/Kertaus/Koukku</string>
<string name="revanced_sb_segments_hook">Koukku / Tervehdykset</string>
<string name="revanced_sb_segments_hook_sum">Kertovat trailerit tulevasta videosta, tervehdykset ja hyvästelyt. Ei sisällä osioita, jotka lisäävät lisäsisältöä</string>
<string name="revanced_sb_segments_preview">Esikatselu / Yhteenveto</string>
<string name="revanced_sb_segments_preview_sum">Kokoelma leikkeitä, jotka osoittavat, mitä on tulossa tai mitä tapahtui videossa tai muissa sarjan videoissa, joiden kaikki informaatio toistuu muualla</string>
<string name="revanced_sb_segments_filler">Epäolennainen täytesisältö/Vitsit</string>
<string name="revanced_sb_segments_filler_sum">Täytteeksi tai huumoriksi lisättyjä toissijaisia kohtauksia, joita videon pääsisällön ymmärrys ei edellytä. Ei sisällä aiheeseen liittyviä tai taustatietoja tarjoavia osioita</string>
<string name="revanced_sb_segments_filler">Tangentti / Vitsit</string>
<string name="revanced_sb_segments_filler_sum">Epäolennaiset kohtaukset tai vitsit, joita ei tarvita videon pääsisällön ymmärtämiseen. Ei sisällä osioita, jotka tarjoavat kontekstia tai taustatietoja</string>
<string name="revanced_sb_segments_nomusic">Musiikki: Musiikiton osa</string>
<string name="revanced_sb_segments_nomusic_sum">Vain musiikkivideoille. Musiikkivideoiden osiot ilman musiikkia, jotka eivät jo kuulu toiseen kategoriaan</string>
<string name="revanced_sb_skip_button_compact">Ohita</string>
@@ -1088,10 +1090,11 @@ UserID on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_skip_button_intro_middle">Ohita tauko</string>
<string name="revanced_sb_skip_button_intro_end">Ohita tauko</string>
<string name="revanced_sb_skip_button_outro">Ohita outro</string>
<string name="revanced_sb_skip_button_hook">Ohita koukku</string>
<string name="revanced_sb_skip_button_preview_beginning">Ohita esikatselu</string>
<string name="revanced_sb_skip_button_preview_middle">Ohita esikatselu</string>
<string name="revanced_sb_skip_button_preview_end">Ohita kertaus</string>
<string name="revanced_sb_skip_button_filler">Ohita täytesisältö</string>
<string name="revanced_sb_skip_button_filler">Ohita Tangentti</string>
<string name="revanced_sb_skip_button_nomusic">Ohita musiikiton</string>
<string name="revanced_sb_skip_button_unsubmitted">Ohita osio</string>
<string name="revanced_sb_skipped_sponsor">Sponsori ohitettiin</string>
@@ -1102,10 +1105,11 @@ UserID on kuin salasana, eikä sitä pidä jakaa kenellekään.
<string name="revanced_sb_skipped_intro_middle">Tauko ohitettiin</string>
<string name="revanced_sb_skipped_intro_end">Tauko ohitettiin</string>
<string name="revanced_sb_skipped_outro">Outro ohitettiin</string>
<string name="revanced_sb_skipped_hook">Ohitettu koukku</string>
<string name="revanced_sb_skipped_preview_beginning">Esikatselu ohitettiin</string>
<string name="revanced_sb_skipped_preview_middle">Esikatselu ohitettiin</string>
<string name="revanced_sb_skipped_preview_end">Kertaus ohitettiin</string>
<string name="revanced_sb_skipped_filler">Täytesisältö ohitettiin</string>
<string name="revanced_sb_skipped_filler">Ohitettu tangentti</string>
<string name="revanced_sb_skipped_nomusic">Musiikiton osio ohitettiin</string>
<string name="revanced_sb_skipped_unsubmitted">Lähettämätön osio ohitettiin</string>
<string name="revanced_sb_skipped_multiple_segments">Useita osioita ohitettiin</string>

View File

@@ -1073,10 +1073,12 @@ Ang iyong user id ay parang isang password at hindi dapat ibahagi.
<string name="revanced_sb_segments_intro_sum">Isang agwat na walang aktwal na nilalaman. Maaaring isang pause, static na frame, o umuulit na animation. Hindi kasama ang mga transition na naglalaman ng impormasyon</string>
<string name="revanced_sb_segments_outro">Mga Endcard / Credit</string>
<string name="revanced_sb_segments_outro_sum">Mga kredito o kapag lumitaw ang mga endcard ng YouTube. Hindi para sa mga konklusyon na may impormasyon</string>
<string name="revanced_sb_segments_preview">Preview/Recap/Hook</string>
<string name="revanced_sb_segments_hook">Panimula / Pagbati</string>
<string name="revanced_sb_segments_hook_sum">Mga sinasalaysay na trailer para sa paparating na video, pagbati at pamamaalam. Hindi kasama ang mga seksyon na nagdaragdag ng karagdagang nilalaman</string>
<string name="revanced_sb_segments_preview">Preview / Balik-tanaw</string>
<string name="revanced_sb_segments_preview_sum">Koleksyon ng mga clip na nagpapakita kung ano ang paparating o kung ano ang nangyari sa video o sa iba pang mga video ng isang serye, kung saan ang lahat ng impormasyon ay inuulit sa ibang lugar</string>
<string name="revanced_sb_segments_filler">Filler Tangent/Jokes</string>
<string name="revanced_sb_segments_filler_sum">Ang mga tangential na eksena ay idinagdag lamang para sa tagapuno o katatawanan na hindi kinakailangan upang maunawaan ang pangunahing nilalaman ng video. Hindi kasama ang mga segment na nagbibigay ng mga detalye ng konteksto o background</string>
<string name="revanced_sb_segments_filler">Paglihis / Mga Biro</string>
<string name="revanced_sb_segments_filler_sum">Mga eksena o biro na hindi kinakailangan upang maunawaan ang pangunahing nilalaman ng video. Hindi kasama ang mga seksyon na nagbibigay ng konteksto o detalye sa background</string>
<string name="revanced_sb_segments_nomusic">Musika: Seksyon na Hindi Musika</string>
<string name="revanced_sb_segments_nomusic_sum">Para lang gamitin sa mga music video. Mga seksyon ng mga music video na walang musika, na hindi pa sakop ng isa pang kategorya</string>
<string name="revanced_sb_skip_button_compact">Laktawan</string>
@@ -1089,10 +1091,11 @@ Ang iyong user id ay parang isang password at hindi dapat ibahagi.
<string name="revanced_sb_skip_button_intro_middle">Laktawan ang intermission</string>
<string name="revanced_sb_skip_button_intro_end">Laktawan ang intermission</string>
<string name="revanced_sb_skip_button_outro">Laktawan ang isa pa</string>
<string name="revanced_sb_skip_button_hook">Laktawan ang hook</string>
<string name="revanced_sb_skip_button_preview_beginning">Laktawan ang preview</string>
<string name="revanced_sb_skip_button_preview_middle">Laktawan ang preview</string>
<string name="revanced_sb_skip_button_preview_end">Laktawan ang recap</string>
<string name="revanced_sb_skip_button_filler">Laktawan ang tagapuno</string>
<string name="revanced_sb_skip_button_filler">Laktawan ang tangent</string>
<string name="revanced_sb_skip_button_nomusic">Laktawan ang hindi musika</string>
<string name="revanced_sb_skip_button_unsubmitted">Laktawan ang segment</string>
<string name="revanced_sb_skipped_sponsor">Nilagpasang isponsor</string>
@@ -1103,10 +1106,11 @@ Ang iyong user id ay parang isang password at hindi dapat ibahagi.
<string name="revanced_sb_skipped_intro_middle">Nilaktawan ang intermission</string>
<string name="revanced_sb_skipped_intro_end">Nilaktawan ang intermission</string>
<string name="revanced_sb_skipped_outro">Nilagpasang wakas</string>
<string name="revanced_sb_skipped_hook">Nalaktawan ang hook</string>
<string name="revanced_sb_skipped_preview_beginning">Nilaktawan ang preview</string>
<string name="revanced_sb_skipped_preview_middle">Nilaktawan ang preview</string>
<string name="revanced_sb_skipped_preview_end">Nilaktawan ang recap</string>
<string name="revanced_sb_skipped_filler">Nilaktawan ang tagapuno</string>
<string name="revanced_sb_skipped_filler">Nalaktawan ang tangent</string>
<string name="revanced_sb_skipped_nomusic">Nilaktawan ang isang seksyon na hindi musika</string>
<string name="revanced_sb_skipped_unsubmitted">Nilaktawan ang hindi naisumiteng segment</string>
<string name="revanced_sb_skipped_multiple_segments">Nilaktawan ang maraming segment</string>

View File

@@ -1076,10 +1076,12 @@ Votre ID d'utilisateur est comme un mot de passe et ne doit jamais être partag
<string name="revanced_sb_segments_intro_sum">Un intervalle sans contenu réel. Il peut s\'agir d\'une pause, d\'une image statique ou d\'une animation répétitive. N\'inclut pas les transitions contenant des informations.</string>
<string name="revanced_sb_segments_outro">Écrans de fin / Crédits</string>
<string name="revanced_sb_segments_outro_sum">Crédits ou moment où apparaissent les écrans de fin YouTube. Pas pour les conclusions contenant des informations.</string>
<string name="revanced_sb_segments_preview">Aperçu/Résumé/Accroche</string>
<string name="revanced_sb_segments_hook">Accroche / Salutations</string>
<string name="revanced_sb_segments_hook_sum">Présentation de la vidéo actuelle ou d\'une prochaine vidéo par le créateur, salutations et au revoir. N\'inclut pas les sections qui ajoutent du contenu supplémentaire</string>
<string name="revanced_sb_segments_preview">Aperçu / Résumé</string>
<string name="revanced_sb_segments_preview_sum">Collection de clips qui présentent ce qui va suivre ou ce qui s\'est passé dans la vidéo ou dans d\'autres vidéos d\'une série, où toutes les informations sont répétées ailleurs</string>
<string name="revanced_sb_segments_filler">Digressions/Blagues</string>
<string name="revanced_sb_segments_filler_sum">Digressions ou blagues non nécessaires à la compréhension du contenu principal de la vidéo. Ne contient pas de segments fournissant du contexte ou des détails.</string>
<string name="revanced_sb_segments_filler">Digression / Blagues</string>
<string name="revanced_sb_segments_filler_sum">Digressions ou blagues non nécessaires à la compréhension du contenu principal de la vidéo. Cette catégorie ne devrait pas contenir de segments fournissant du contexte ou des détails secondaires</string>
<string name="revanced_sb_segments_nomusic">Musique : Segment non musical</string>
<string name="revanced_sb_segments_nomusic_sum">Uniquement pour utilisation dans les vidéos musicales. Sections non musicales dans les clips, qui ne sont pas déjà couvertes par une autre catégorie.</string>
<string name="revanced_sb_skip_button_compact">Passer</string>
@@ -1092,10 +1094,11 @@ Votre ID d'utilisateur est comme un mot de passe et ne doit jamais être partag
<string name="revanced_sb_skip_button_intro_middle">Passer l\'entracte</string>
<string name="revanced_sb_skip_button_intro_end">Passer l\'entracte</string>
<string name="revanced_sb_skip_button_outro">Passer l\'outro</string>
<string name="revanced_sb_skip_button_hook">Passer l\'accroche</string>
<string name="revanced_sb_skip_button_preview_beginning">Passer l\'aperçu</string>
<string name="revanced_sb_skip_button_preview_middle">Passer l\'aperçu</string>
<string name="revanced_sb_skip_button_preview_end">Passer le résumé</string>
<string name="revanced_sb_skip_button_filler">Passer remplissage</string>
<string name="revanced_sb_skip_button_filler">Passer la digression</string>
<string name="revanced_sb_skip_button_nomusic">Passer non musical</string>
<string name="revanced_sb_skip_button_unsubmitted">Passer le segment</string>
<string name="revanced_sb_skipped_sponsor">Sponsor ignoré</string>
@@ -1106,10 +1109,11 @@ Votre ID d'utilisateur est comme un mot de passe et ne doit jamais être partag
<string name="revanced_sb_skipped_intro_middle">Entracte ignoré</string>
<string name="revanced_sb_skipped_intro_end">Entracte ignoré</string>
<string name="revanced_sb_skipped_outro">Outro ignorée</string>
<string name="revanced_sb_skipped_hook">Accroche ignorée</string>
<string name="revanced_sb_skipped_preview_beginning">Aperçu ignoré</string>
<string name="revanced_sb_skipped_preview_middle">Aperçu ignoré</string>
<string name="revanced_sb_skipped_preview_end">Résumé ignoré</string>
<string name="revanced_sb_skipped_filler">Remplissage ignoré</string>
<string name="revanced_sb_skipped_filler">Digression ignorée</string>
<string name="revanced_sb_skipped_nomusic">Section non musicale ignorée</string>
<string name="revanced_sb_skipped_unsubmitted">Segment non soumis ignoré</string>
<string name="revanced_sb_skipped_multiple_segments">Plusieurs segments ignorés</string>

View File

@@ -1075,10 +1075,12 @@ Is cosúil le pasfhocal é do ID úsáideora agus níor cheart é a roinnt riamh
<string name="revanced_sb_segments_intro_sum">Eatraimh gan ábhar iarbhír. D\'fhéadfadh sé a bheith ina sos, fráma statach, nó beochan athrá. Ní chuimsíonn sé aistrithe ina bhfuil faisnéis</string>
<string name="revanced_sb_segments_outro">Cártaí Deiridh / Creidiúintí</string>
<string name="revanced_sb_segments_outro_sum">Creidmheasanna nó nuair a thaispeántar na cártaí YouTube. Ní le haghaidh conclúidí le faisnéis</string>
<string name="revanced_sb_segments_preview">Réamhamhar/Athbhreithniú/Crúca</string>
<string name="revanced_sb_segments_hook">Hook / Beannachtaí</string>
<string name="revanced_sb_segments_hook_sum">Leantóirí inste don fhíseán atá le teacht, beannachtaí agus slán. Ní chuimsíonn sé ailt a chuireann ábhar breise leis</string>
<string name="revanced_sb_segments_preview">Réamhamharc / Achoimre</string>
<string name="revanced_sb_segments_preview_sum">Bailiúchán gearrthóga a thaispeánann cad atá ag teacht suas nó cad a tharla san fhíseán nó i bhfíseáin eile de shraith, áit a ndéantar gach faisnéis arís eile in áit eile</string>
<string name="revanced_sb_segments_filler">Tadhall Líonta/Greann</string>
<string name="revanced_sb_segments_filler_sum">Ní chuirtear radhairc tangensiúla ach le haghaidh líonta nó greann nach gá chun príomhábhar an fhíseáin a thuiscint. Ní chuimsíonn sé deighleoga a sholáthraíonn sonraí comhthéacs</string>
<string name="revanced_sb_segments_filler">Seachrán / Scéalta Grinn</string>
<string name="revanced_sb_segments_filler_sum">Radhairc nó scéalta grinn imeallacha nach gá chun príomhábhar an fhíseáin a thuiscint. Níor cheart go n-áireofaí anseo deighleoga a sholáthraíonn comhthéacs nó sonraí cúlra</string>
<string name="revanced_sb_segments_nomusic">Ceol: Rannóg Neamh-Cheoil</string>
<string name="revanced_sb_segments_nomusic_sum">Le húsáid amháin i bhfíseáin ceoil. Rannóga d\'fhíseáin ceoil gan ceol, nach bhfuil clúdaithe ag catagóir eile cheana féin</string>
<string name="revanced_sb_skip_button_compact">Scip</string>
@@ -1091,10 +1093,11 @@ Is cosúil le pasfhocal é do ID úsáideora agus níor cheart é a roinnt riamh
<string name="revanced_sb_skip_button_intro_middle">Scip idirghabháil</string>
<string name="revanced_sb_skip_button_intro_end">Scip idirghabháil</string>
<string name="revanced_sb_skip_button_outro">Scip an forchríoch</string>
<string name="revanced_sb_skip_button_hook">Scipeáil crúca</string>
<string name="revanced_sb_skip_button_preview_beginning">Scip réamhamharc</string>
<string name="revanced_sb_skip_button_preview_middle">Scip réamhamharc</string>
<string name="revanced_sb_skip_button_preview_end">Scip an achoimre</string>
<string name="revanced_sb_skip_button_filler">Scip líonadh</string>
<string name="revanced_sb_skip_button_filler">Scipeáil imeall</string>
<string name="revanced_sb_skip_button_nomusic">Scip neamh-cheol</string>
<string name="revanced_sb_skip_button_unsubmitted">Scip deighleog</string>
<string name="revanced_sb_skipped_sponsor">Urra scipeáilte</string>
@@ -1105,10 +1108,11 @@ Is cosúil le pasfhocal é do ID úsáideora agus níor cheart é a roinnt riamh
<string name="revanced_sb_skipped_intro_middle">Idirmheas scipeáilte</string>
<string name="revanced_sb_skipped_intro_end">Idirmheas scipeáilte</string>
<string name="revanced_sb_skipped_outro">Scipeáilte an forchríoch</string>
<string name="revanced_sb_skipped_hook">Crúca scipeáilte</string>
<string name="revanced_sb_skipped_preview_beginning">Scipeáilte an réamhléiriú</string>
<string name="revanced_sb_skipped_preview_middle">Scipeáilte an réamhléiriú</string>
<string name="revanced_sb_skipped_preview_end">Athbhreithniú scipeáilte</string>
<string name="revanced_sb_skipped_filler">Líonadh scipeáilte</string>
<string name="revanced_sb_skipped_filler">Imeall scipeáilte</string>
<string name="revanced_sb_skipped_nomusic">Scaoileadh rannán neamh-cheoil</string>
<string name="revanced_sb_skipped_unsubmitted">Deighleog gan curtha isteach scipeáilte</string>
<string name="revanced_sb_skipped_multiple_segments">Scipeáilte go leor deighleoga</string>

View File

@@ -1075,10 +1075,12 @@ A felhasználói azonosítója olyan, mint egy jelszó, és soha nem szabad mego
<string name="revanced_sb_segments_intro_sum">Egy részlet tartalom nélkül. Lehet szünet, álló képkocka, vagy ismétlődő animáció. Nem használandó információt tartalmazó átmeneteknél</string>
<string name="revanced_sb_segments_outro">Záróképernyő / Köszönetek</string>
<string name="revanced_sb_segments_outro_sum">Stáblista, vagy amikor megjelennek a YouTube zárókártyák. Nem tartozik bele az információt tartalmazó összegzés</string>
<string name="revanced_sb_segments_preview">Előzetes/Ismétlés</string>
<string name="revanced_sb_segments_hook">Bevezetés / Üdvözlet</string>
<string name="revanced_sb_segments_hook_sum">Narrált előzetesek a közelgő videóhoz, üdvözlések és búcsúzások. Nem tartalmaz olyan szakaszokat, amelyek további tartalmat adnak hozzá</string>
<string name="revanced_sb_segments_preview">Előnézet / Összefoglaló</string>
<string name="revanced_sb_segments_preview_sum">Olyan klipek gyűjteménye, amik azt mutatják, hogy mi következik majd ebben, vagy a sorozat más videóiban és minden információ megismétlődik később a videóban</string>
<string name="revanced_sb_segments_filler">Érintőleges tartalom/Viccek</string>
<string name="revanced_sb_segments_filler_sum">Csak töltelék vagy humornak hozzáadott részek, amik nem szükségesek a videó fő tartalmának megértéséhez. Ne tartalmazzon olyan szegmenseket, amik kontextust, vagy háttérinformációt szolgáltatnak</string>
<string name="revanced_sb_segments_filler">Kitérés / Viccek</string>
<string name="revanced_sb_segments_filler_sum">Mellékes jelenetek vagy viccek, amelyek nem szükségesek a videó fő tartalmának megértéséhez. Ez nem foglalja magában azokat a szegmenseket, amelyek kontextust vagy háttérinformációkat nyújtanak</string>
<string name="revanced_sb_segments_nomusic">Zene: zenementes rész</string>
<string name="revanced_sb_segments_nomusic_sum">Csak zenei videókhoz használható. Zenei videók zene nélküli részei, amelyek még nem tartoznak más kategóriába</string>
<string name="revanced_sb_skip_button_compact">Kihagyás</string>
@@ -1091,10 +1093,11 @@ A felhasználói azonosítója olyan, mint egy jelszó, és soha nem szabad mego
<string name="revanced_sb_skip_button_intro_middle">Szünet kihagyása</string>
<string name="revanced_sb_skip_button_intro_end">Szünet kihagyása</string>
<string name="revanced_sb_skip_button_outro">Outro kihagyása</string>
<string name="revanced_sb_skip_button_hook">Horog kihagyása</string>
<string name="revanced_sb_skip_button_preview_beginning">Előnézet kihagyása</string>
<string name="revanced_sb_skip_button_preview_middle">Előnézet kihagyása</string>
<string name="revanced_sb_skip_button_preview_end">Recap kihagyása</string>
<string name="revanced_sb_skip_button_filler">Töltelékrész kihagyása</string>
<string name="revanced_sb_skip_button_filler">Mellékes rész kihagyása</string>
<string name="revanced_sb_skip_button_nomusic">Nem zenei rész kihagyása</string>
<string name="revanced_sb_skip_button_unsubmitted">Szakasz kihagyása</string>
<string name="revanced_sb_skipped_sponsor">Szponzor kihagyva</string>
@@ -1105,10 +1108,11 @@ A felhasználói azonosítója olyan, mint egy jelszó, és soha nem szabad mego
<string name="revanced_sb_skipped_intro_middle">Szünet kihagyva</string>
<string name="revanced_sb_skipped_intro_end">Szünet kihagyva</string>
<string name="revanced_sb_skipped_outro">Outro kihagyva</string>
<string name="revanced_sb_skipped_hook">Horog kihagyva</string>
<string name="revanced_sb_skipped_preview_beginning">Bevezető kihagyva</string>
<string name="revanced_sb_skipped_preview_middle">Bevezető kihagyva</string>
<string name="revanced_sb_skipped_preview_end">Recap kihagyva</string>
<string name="revanced_sb_skipped_filler">Töltelékrész kihagyva</string>
<string name="revanced_sb_skipped_filler">Mellékes rész kihagyva</string>
<string name="revanced_sb_skipped_nomusic">Zenementes rész kihagyva</string>
<string name="revanced_sb_skipped_unsubmitted">Beküldésre váró rész kihagyva</string>
<string name="revanced_sb_skipped_multiple_segments">Több szakasz kihagyva</string>

View File

@@ -1076,10 +1076,12 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ
<string name="revanced_sb_segments_intro_sum">Ժամանակահատված, որը չունի իրական content: Կարող է լինել դադար, կայուն կադր կամ կրկնվող անիմացիա: Չի ներառում transitions, որոնք պարունակում են տեղեկություն</string>
<string name="revanced_sb_segments_outro">Վերջնական տիտրեր / Տիտրեր</string>
<string name="revanced_sb_segments_outro_sum">Կրեդիտները կամ երբ YouTube-ի վերջնական քարտերը հայտնվում են։ Չի կիրառվում տեղեկատվություն ներառող եզրափակումների համար</string>
<string name="revanced_sb_segments_preview">Նախադիտում/Համառոտ վերանայում/Կեռ</string>
<string name="revanced_sb_segments_hook">Ներածություն / Ողջույններ</string>
<string name="revanced_sb_segments_hook_sum">Առաջիկա տեսանյութի պատմողական անոնսներ, ողջույններ և հրաժեշտներ։ Չի ներառում լրացուցիչ բովանդակություն ավելացնող հատվածներ</string>
<string name="revanced_sb_segments_preview">Նախադիտում / Ամփոփում</string>
<string name="revanced_sb_segments_preview_sum">Կտորների հավաքածու, որոնք ցույց են տալիս, թե ինչ է գալու կամ ինչ է պատահել տեսանյութում կամ սերիայի այլ տեսանյութերում, որտեղ բոլոր տեղեկությունները կրկնվում են այլուր</string>
<string name="revanced_sb_segments_filler">Լցոնիչ կողմնակի թեմա/Ծիծաղելի</string>
<string name="revanced_sb_segments_filler_sum">Շոշափող տեսարաններ ավելացվել են միայն լցոնման կամ հումորի համար, որոնք չեն պահանջվում տեսանյութի հիմնական բովանդակությունը հասկանալու համար: Չի ներառում ենթատեքստ կամ ֆոնային մանրամասներ տրամադրող հատվածներ</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_skip_button_compact">Բաց թողնել</string>
@@ -1092,10 +1094,11 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ
<string name="revanced_sb_skip_button_intro_middle">Բաց թողնել ընդմիջումը</string>
<string name="revanced_sb_skip_button_intro_end">Բաց թողնել ընդմիջումը</string>
<string name="revanced_sb_skip_button_outro">Բաց թողնել ավարտը</string>
<string name="revanced_sb_skip_button_hook">Բաց թողնել ներածությունը</string>
<string name="revanced_sb_skip_button_preview_beginning">Բաց թողնել նախադիտումը</string>
<string name="revanced_sb_skip_button_preview_middle">Բաց թողնել նախադիտումը</string>
<string name="revanced_sb_skip_button_preview_end">Բաց թողնել համառոտ վերանայումը</string>
<string name="revanced_sb_skip_button_filler">Բաց թողնել լցոնիչը</string>
<string name="revanced_sb_skip_button_filler">Բաց թողնել շեղումը</string>
<string name="revanced_sb_skip_button_nomusic">Բաց թողնել ոչ-երաժշտական մասը</string>
<string name="revanced_sb_skip_button_unsubmitted">Բաց թողնել հատվածը</string>
<string name="revanced_sb_skipped_sponsor">Բաց թողնված հովանավորը</string>
@@ -1106,10 +1109,11 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ
<string name="revanced_sb_skipped_intro_middle">Բաց թողնել ընդմիջումը</string>
<string name="revanced_sb_skipped_intro_end">Բաց թողնել ընդմիջումը</string>
<string name="revanced_sb_skipped_outro">Բաց թողնված ավարտը</string>
<string name="revanced_sb_skipped_hook">Ներածությունը բաց է թողնված</string>
<string name="revanced_sb_skipped_preview_beginning">Բաց թողնված նախադիտումը</string>
<string name="revanced_sb_skipped_preview_middle">Բաց թողնված նախադիտումը</string>
<string name="revanced_sb_skipped_preview_end">Բաց թողնված համառոտ վերանայումը</string>
<string name="revanced_sb_skipped_filler">Բաց թողնված լցոնիչը</string>
<string name="revanced_sb_skipped_filler">Շեղումը բաց է թողնված</string>
<string name="revanced_sb_skipped_nomusic">Բաց թողնված ոչ-երաժշտական մասը</string>
<string name="revanced_sb_skipped_unsubmitted">Բաց թողնված չհաստատված հատվածը</string>
<string name="revanced_sb_skipped_multiple_segments">Բաց թողնված մի քանի հատվածներ</string>

View File

@@ -1074,10 +1074,12 @@ Id pengguna Anda seperti kata sandi dan jangan pernah dibagikan."</string>
<string name="revanced_sb_segments_intro_sum">Interval tanpa konten yang sebenarnya. Bisa berupa jeda, bingkai statis, atau animasi berulang. Tidak termasuk transisi yang berisi informasi</string>
<string name="revanced_sb_segments_outro">Kartu Akhir / Kredit</string>
<string name="revanced_sb_segments_outro_sum">Kredit atau ketika layar akhir YouTube muncul. Bukan kesimpulan dengan informasi</string>
<string name="revanced_sb_segments_preview">Pratinjau/Rekap/Pengait</string>
<string name="revanced_sb_segments_hook">Pengantar / Sapaan</string>
<string name="revanced_sb_segments_hook_sum">Trailer yang dinarasikan untuk video mendatang, sapaan, dan perpisahan. Tidak termasuk bagian yang menambahkan konten tambahan</string>
<string name="revanced_sb_segments_preview">Pratinjau / Rekap</string>
<string name="revanced_sb_segments_preview_sum">Kumpulan klip yang menunjukkan apa yang akan datang atau apa yang terjadi di video atau di video lain dari sebuah seri, di mana semua informasi diulang di tempat lain</string>
<string name="revanced_sb_segments_filler">Pengisi Tidak Relevan/Lelucon</string>
<string name="revanced_sb_segments_filler_sum">Adegan berbelit-belit yang ditambahkan hanya sebagai filler atau candaan yang tidak diperlukan untuk memahami isi utama video. Tidak termasuk bagian yang mengandung konteks atau detail latar belakang</string>
<string name="revanced_sb_segments_filler">Penyimpangan / Lelucon</string>
<string name="revanced_sb_segments_filler_sum">Adegan atau lelucon sampingan yang tidak diperlukan untuk memahami konten utama video. Tidak termasuk bagian yang memberikan konteks atau detail latar belakang</string>
<string name="revanced_sb_segments_nomusic">Musik: Bagian Non-Musik</string>
<string name="revanced_sb_segments_nomusic_sum">Hanya untuk digunakan pada video musik. Bagian video musik tanpa musiknya, yang belum tercakup dalam kategori lain</string>
<string name="revanced_sb_skip_button_compact">Lewati</string>
@@ -1090,10 +1092,11 @@ Id pengguna Anda seperti kata sandi dan jangan pernah dibagikan."</string>
<string name="revanced_sb_skip_button_intro_middle">Lewati jeda</string>
<string name="revanced_sb_skip_button_intro_end">Lewati jeda</string>
<string name="revanced_sb_skip_button_outro">Lewati outro</string>
<string name="revanced_sb_skip_button_hook">Lewati hook</string>
<string name="revanced_sb_skip_button_preview_beginning">Lewati pratinjau</string>
<string name="revanced_sb_skip_button_preview_middle">Lewati pratinjau</string>
<string name="revanced_sb_skip_button_preview_end">Lewati rekap</string>
<string name="revanced_sb_skip_button_filler">Lewati filler</string>
<string name="revanced_sb_skip_button_filler">Lewati penyimpangan</string>
<string name="revanced_sb_skip_button_nomusic">Lewati non-musik</string>
<string name="revanced_sb_skip_button_unsubmitted">Lewati segmen</string>
<string name="revanced_sb_skipped_sponsor">Sponsor dilewati</string>
@@ -1104,10 +1107,11 @@ Id pengguna Anda seperti kata sandi dan jangan pernah dibagikan."</string>
<string name="revanced_sb_skipped_intro_middle">Jeda dilewati</string>
<string name="revanced_sb_skipped_intro_end">Jeda dilewati</string>
<string name="revanced_sb_skipped_outro">Outro dilewati</string>
<string name="revanced_sb_skipped_hook">Hook dilewati</string>
<string name="revanced_sb_skipped_preview_beginning">Pratinjau dilewati</string>
<string name="revanced_sb_skipped_preview_middle">Pratinjau dilewati</string>
<string name="revanced_sb_skipped_preview_end">Rekap dilewati</string>
<string name="revanced_sb_skipped_filler">Pengisi dilewati</string>
<string name="revanced_sb_skipped_filler">Penyimpangan dilewati</string>
<string name="revanced_sb_skipped_nomusic">Melewati bagian non-musik</string>
<string name="revanced_sb_skipped_unsubmitted">Melewati segmen yang belum dikirim</string>
<string name="revanced_sb_skipped_multiple_segments">Beberapa segmen dilewati</string>

View File

@@ -1074,10 +1074,12 @@ Il tuo ID utente è come una password e non dovrebbe mai essere condiviso."</str
<string name="revanced_sb_segments_intro_sum">Un intervallo senza contenuto effettivo. Potrebbe essere una pausa, un quadro statico o un\'animazione ripetitiva. Non include transizioni contenenti informazioni</string>
<string name="revanced_sb_segments_outro">Conclusioni / Titoli di coda</string>
<string name="revanced_sb_segments_outro_sum">Riconoscimenti o quando appaiono le carte finali di YouTube. Non per conclusioni con informazioni</string>
<string name="revanced_sb_segments_preview">Anteprima/Recap/Hook</string>
<string name="revanced_sb_segments_hook">Introduzione / Saluti</string>
<string name="revanced_sb_segments_hook_sum">Trailer narrati per il video in arrivo, saluti e addii. Non include sezioni che aggiungono contenuti aggiuntivi</string>
<string name="revanced_sb_segments_preview">Anteprima / Riepilogo</string>
<string name="revanced_sb_segments_preview_sum">Raccolta di clip che mostrano ciò che è in arrivo o ciò che è successo nel video o in altri video di una serie, dove tutte le informazioni sono ripetute altrove</string>
<string name="revanced_sb_segments_filler">Riempitivi irrilevanti/Battute</string>
<string name="revanced_sb_segments_filler_sum">Scene tangenziali aggiunte solo per riempitivo o umorismo che non sono tenuti a capire il contenuto principale del video. Non comprende i segmenti che forniscono dettagli sul contesto o sullo sfondo</string>
<string name="revanced_sb_segments_filler">Divagazione / Battute</string>
<string name="revanced_sb_segments_filler_sum">Scene o battute tangenziali che non sono necessarie per comprendere il contenuto principale del video. Non include sezioni che forniscono contesto o dettagli di sfondo</string>
<string name="revanced_sb_segments_nomusic">Musica: Sezione Non-Musicale</string>
<string name="revanced_sb_segments_nomusic_sum">Solo per l\'uso in video musicali. Sezioni di video musicali senza musica, che non sono già coperti da un\'altra categoria</string>
<string name="revanced_sb_skip_button_compact">Salta</string>
@@ -1090,10 +1092,11 @@ Il tuo ID utente è come una password e non dovrebbe mai essere condiviso."</str
<string name="revanced_sb_skip_button_intro_middle">Salta intermezzo</string>
<string name="revanced_sb_skip_button_intro_end">Salta intermezzo</string>
<string name="revanced_sb_skip_button_outro">Salta conclusione</string>
<string name="revanced_sb_skip_button_hook">Salta aggancio</string>
<string name="revanced_sb_skip_button_preview_beginning">Salta anteprima</string>
<string name="revanced_sb_skip_button_preview_middle">Salta anteprima</string>
<string name="revanced_sb_skip_button_preview_end">Salta riepilogo</string>
<string name="revanced_sb_skip_button_filler">Salta riempimento</string>
<string name="revanced_sb_skip_button_filler">Salta tangenziale</string>
<string name="revanced_sb_skip_button_nomusic">Salta sezione non-musicale</string>
<string name="revanced_sb_skip_button_unsubmitted">Salta segmento</string>
<string name="revanced_sb_skipped_sponsor">Sponsorizzazione saltata</string>
@@ -1104,10 +1107,11 @@ Il tuo ID utente è come una password e non dovrebbe mai essere condiviso."</str
<string name="revanced_sb_skipped_intro_middle">Intermezzo saltato</string>
<string name="revanced_sb_skipped_intro_end">Intermezzo saltato</string>
<string name="revanced_sb_skipped_outro">Conclusione saltata</string>
<string name="revanced_sb_skipped_hook">Aggancio saltato</string>
<string name="revanced_sb_skipped_preview_beginning">Anteprima saltata</string>
<string name="revanced_sb_skipped_preview_middle">Anteprima saltata</string>
<string name="revanced_sb_skipped_preview_end">Riepilogo saltato</string>
<string name="revanced_sb_skipped_filler">Riempitivo saltato</string>
<string name="revanced_sb_skipped_filler">Tangenziale saltata</string>
<string name="revanced_sb_skipped_nomusic">Sezione non-musicale saltata</string>
<string name="revanced_sb_skipped_unsubmitted">Segmento non inviato saltato</string>
<string name="revanced_sb_skipped_multiple_segments">Segmenti multipli saltati</string>

View File

@@ -33,12 +33,12 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_submenu_title">הגדרות</string>
<string name="revanced_settings_confirm_user_dialog_title">האם בטוח שברצונך להמשיך?</string>
<string name="revanced_settings_confirm_user_dialog_title">האם אתה בטוח שברצונך להמשיך?</string>
<string name="revanced_settings_reset">איפוס</string>
<string name="revanced_settings_reset_color">אפס צבע</string>
<string name="revanced_settings_color_invalid">צבע לא חוקי</string>
<string name="revanced_settings_restart_title">יש להפעיל מחדש</string>
<string name="revanced_settings_restart_dialog_message">יש להפעיל מחדש את האפליקציה כדי שהשינוי ישפיע.</string>
<string name="revanced_settings_restart_title">נדרשת הפעלה מחדש</string>
<string name="revanced_settings_restart_dialog_message">יש להפעיל מחדש את היישום כדי שהשינוי ייכנס לתוקף.</string>
<string name="revanced_settings_restart">הפעלה מחדש</string>
<string name="revanced_settings_import">ייבוא</string>
<string name="revanced_settings_import_copy">העתק</string>
@@ -137,7 +137,7 @@ Second \"item\" text"</string>
<string name="revanced_debug_logs_disabled">תיעוד איתור באגים מושבת</string>
<string name="revanced_debug_logs_none_found">לא נמצאו יומנים</string>
<string name="revanced_debug_logs_copied_to_clipboard">היומנים הועתקו</string>
<string name="revanced_debug_logs_failed_to_export">נכשל ייצוא יומנים: %s</string>
<string name="revanced_debug_logs_failed_to_export">נכשל לייצא יומנים: %s</string>
<string name="revanced_debug_logs_clear_buffer_title">נקה יומני איתור באגים</string>
<string name="revanced_debug_logs_clear_buffer_summary">מנקה את כל היומנים לאיתור באגים של Revanced המאוחסנים</string>
<string name="revanced_debug_logs_clear_toast">היומנים נוקו</string>
@@ -161,21 +161,21 @@ Second \"item\" text"</string>
<string name="revanced_hide_crowdfunding_box_title">הסתר תיבת מימון המונים</string>
<string name="revanced_hide_crowdfunding_box_summary_on">תיבת מימון המונים מוסתרת</string>
<string name="revanced_hide_crowdfunding_box_summary_off">תיבת מימון המונים מוצגת</string>
<string name="revanced_hide_expandable_card_title">הסתר כרטיס מתרחב</string>
<string name="revanced_hide_expandable_card_summary_on">כרטיס מתרחב מתחת לסרטונים מוסתר</string>
<string name="revanced_hide_expandable_card_summary_off">כרטיס מתרחב מתחת לסרטונים מוצג</string>
<string name="revanced_hide_expandable_card_title">הסתר כרטיס הניתן להרחבה</string>
<string name="revanced_hide_expandable_card_summary_on">כרטיס הניתן להרחבה מתחת לסרטונים מוסתר</string>
<string name="revanced_hide_expandable_card_summary_off">כרטיס הניתן להרחבה מתחת לסרטונים מוצג</string>
<string name="revanced_hide_floating_microphone_button_title">הסתר לחצן מיקרופון צף</string>
<string name="revanced_hide_floating_microphone_button_summary_on">כפתור מיקרופון צף בחיפוש מוסתר</string>
<string name="revanced_hide_floating_microphone_button_summary_off">כפתור מיקרופון צף בחיפוש מוצג</string>
<string name="revanced_hide_floating_microphone_button_summary_on">לחצן מיקרופון צף בחיפוש מוסתר</string>
<string name="revanced_hide_floating_microphone_button_summary_off">לחצן מיקרופון צף בחיפוש מוצג</string>
<string name="revanced_hide_horizontal_shelves_title">הסתר מדפים אופקיים</string>
<string name="revanced_hide_horizontal_shelves_summary_on">"מדפים אופקיים מוסתרים, כגון:
• חדשות חמות
מבזקי חדשות
• המשך צפייה
חקור עוד ערוצים
הרלוונטיים ביותר
גלה עוד ערוצים
• רלוונטיות
• קניות
• צפה שוב"</string>
<string name="revanced_hide_horizontal_shelves_summary_off">מוצגים מדפים אופקיים</string>
<string name="revanced_hide_horizontal_shelves_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>
@@ -191,30 +191,30 @@ Second \"item\" text"</string>
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the Subscriptions feed for future livestreams or unreleased videos. -->
<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>
<string name="revanced_hide_notify_me_button_summary_on">הלחצן \'הודע לי\' מוסתר</string>
<string name="revanced_hide_notify_me_button_summary_off">הלחצן \'הודע לי\' מוצג</string>
<string name="revanced_hide_playables_title">הסתר משחקייה</string>
<string name="revanced_hide_playables_summary_on">המשחקייה מוסתרת</string>
<string name="revanced_hide_playables_summary_off">המשחקייה מוצגת</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<string name="revanced_hide_show_more_button_title">הסתר לחצן \'הצג עוד\'</string>
<string name="revanced_hide_show_more_button_summary_on">כפתור \"הצג עוד\" בתוצאות חיפוש מוסתר</string>
<string name="revanced_hide_show_more_button_summary_off">כפתור הצג עוד בתוצאות החיפוש מוצג</string>
<string name="revanced_hide_show_more_button_summary_on">הלחצן \'הצג עוד\' בתוצאות חיפוש מוסתר</string>
<string name="revanced_hide_show_more_button_summary_off">הלחצן \'הצג עוד\' בתוצאות החיפוש מוצג</string>
<string name="revanced_hide_surveys_title">הסתר סקרים</string>
<string name="revanced_hide_surveys_summary_on">סקרים מוסתרים</string>
<string name="revanced_hide_surveys_summary_off">סקרים מוצגים</string>
<string name="revanced_hide_surveys_summary_on">הסקרים מוסתרים</string>
<string name="revanced_hide_surveys_summary_off">הסקרים מוצגים</string>
<string name="revanced_hide_ticket_shelf_title">הסתר מדף כרטיסים</string>
<string name="revanced_hide_ticket_shelf_summary_on">מדף כרטיסים מוסתר</string>
<string name="revanced_hide_ticket_shelf_summary_off">מדף כרטיסים מוצג</string>
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_video_recommendation_labels_title">הסתר תוויות המלצות וידאו</string>
<string name="revanced_hide_video_recommendation_labels_summary_on"> בתוצאות החיפוש מוסתרות</string>
<string name="revanced_hide_video_recommendation_labels_summary_off">תוויות \"אנשים גם צפו\" ו\"אולי תאהב גם\" בתוצאות חיפוש מוצגות</string>
<string name="revanced_hide_video_recommendation_labels_title">הסתר תוויות המלצות סרטונים</string>
<string name="revanced_hide_video_recommendation_labels_summary_on">התוויות \'אנשים גם צפו\' ו\'אולי תאהב גם\' בתוצאות החיפוש מוסתרות</string>
<string name="revanced_hide_video_recommendation_labels_summary_off">התוויות \'אנשים גם צפו\' ו\'אולי תאהב גם\' בתוצאות חיפוש מוצגות</string>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">הסתר YouTube Doodles</string>
<string name="revanced_hide_doodles_summary_on">אנימציית Doodles של YouTube על הלוגו מוסתרת</string>
<string name="revanced_hide_doodles_summary_off">אנימציית YouTube Doodles על הלוגו מוצגת</string>
<string name="revanced_hide_doodles_summary_on">הנפשת YouTube Doodles על הלוגו מוסתרת</string>
<string name="revanced_hide_doodles_summary_off">הנפשת YouTube Doodles על הלוגו מוצגת</string>
<string name="revanced_hide_doodles_user_dialog_message">"שרבוטים (Doodles) של YouTube מוצגים למשך כמה ימים בכל שנה.
אם Doodle מוצג כרגע באזור שלך והגדרת ההסתרה הזו מופעלת, אז גם סרגל הסינון שמתחת לסרגל החיפוש יוסתר."</string>
@@ -233,8 +233,8 @@ Second \"item\" text"</string>
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<string name="revanced_hide_join_membership_button_title">הסתר לחצן להצטרפות</string>
<string name="revanced_hide_join_membership_button_summary_on">כפתור \'הצטרף\' מוסתר</string>
<string name="revanced_hide_join_membership_button_summary_off">כפתור הצטרפות מוצג</string>
<string name="revanced_hide_join_membership_button_summary_on">לחצן הצטרפות מוסתר</string>
<string name="revanced_hide_join_membership_button_summary_off">לחצן הצטרפות מוצג</string>
<string name="revanced_hide_medical_panels_title">הסתר לוחות רפואיים</string>
<string name="revanced_hide_medical_panels_summary_on">לוחות רפואיים מוסתרים</string>
<string name="revanced_hide_medical_panels_summary_off">לוחות רפואיים מוצגים</string>
@@ -251,8 +251,8 @@ Second \"item\" text"</string>
<string name="revanced_hide_timed_reactions_summary_on">תגובות באמוג\'י מתוזמנות מוסתרות</string>
<string name="revanced_hide_timed_reactions_summary_off">תגובות באמוג\'י מתוזמנות מוצגות</string>
<string name="revanced_hide_ai_generated_video_summary_section_title">הסתר את \'סיכום הווידאו שנוצר על ידי בינה מלאכותית\'</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">קטע סיכום וידאו שנוצר על ידי בינה מלאכותית מוסתר</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">קטע סיכום וידאו שנוצר על ידי AI מוצג</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">קטע סיכום סרטון הנוצר על ידי AI מוסתר</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">קטע סיכום סרטון הנוצר על ידי AI מוצג</string>
<string name="revanced_hide_ask_section_title">הסתר Ask</string>
<string name="revanced_hide_ask_section_summary_on">מדור Ask מוסתר</string>
<string name="revanced_hide_ask_section_summary_off">מדור Ask מוצג</string>
@@ -280,7 +280,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>
@@ -297,8 +297,8 @@ Second \"item\" text"</string>
<string name="revanced_channel_screen_summary">הסתר או הצג רכיבי דף ערוץ</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_summary_on">מדף \"בשבילך\" מוסתר</string>
<string name="revanced_hide_for_you_shelf_summary_off">מדף \"בשבילך\" מוצג</string>
<string name="revanced_hide_for_you_shelf_summary_on">המדף \'בשבילך\' מוסתר</string>
<string name="revanced_hide_for_you_shelf_summary_off">המדף \'בשבילך\' מוצג</string>
<string name="revanced_hide_links_preview_title">הסתר תצוגה מקדימה של קישורים</string>
<string name="revanced_hide_links_preview_summary_on">תצוגה מקדימה של קישורים מוסתרת</string>
<string name="revanced_hide_links_preview_summary_off">תצוגה מקדימה של קישורים מוצגת</string>
@@ -306,21 +306,21 @@ Second \"item\" text"</string>
<string name="revanced_hide_members_shelf_summary_on">מדף חברים מוסתר</string>
<string name="revanced_hide_members_shelf_summary_off">מדף חברים מוצג</string>
<!-- 'Visit Community' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_community_button_title">הסתר את הלחצן \"בקר בקהילה\"</string>
<string name="revanced_hide_visit_community_button_summary_on">לחצן \"בקר בקהילה\" מוסתר</string>
<string name="revanced_hide_visit_community_button_summary_off">כפתור \"בקר בקהילה\" מוצג</string>
<string name="revanced_hide_visit_community_button_title">הסתר את הלחצן \'מעבר לקהילה\'</string>
<string name="revanced_hide_visit_community_button_summary_on">הלחצן \'מעבר לקהילה\' מוסתר</string>
<string name="revanced_hide_visit_community_button_summary_off">הלחצן \'מעבר לקהילה\' מוצג</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">הסתר לחצן \'בקר בחנות\'</string>
<string name="revanced_hide_visit_store_button_summary_on">כפתור \"בקר בחנות\" מוסתר</string>
<string name="revanced_hide_visit_store_button_summary_off">כפתור \"בקר בחנות\" מוצג</string>
<string name="revanced_hide_visit_store_button_summary_on">הלחצן \'בקר בחנות\' מוסתר</string>
<string name="revanced_hide_visit_store_button_summary_off">הלחצן \'בקר בחנות\' מוצג</string>
<string name="revanced_comments_screen_title">תגובות</string>
<string name="revanced_comments_screen_summary">הסתר או הצג רכיבי מדור תגובות</string>
<string name="revanced_hide_comments_ai_chat_summary_title">הסתר סיכום צ\'אט בינה מלאכותית</string>
<string name="revanced_hide_comments_ai_chat_summary_summary_on">סיכום צ\'אט בינה מלאכותית מוסתר</string>
<string name="revanced_hide_comments_ai_chat_summary_summary_off">סיכום צ\'אט בינה מלאכותית מוצג</string>
<string name="revanced_hide_comments_ai_chat_summary_title">הסתר סיכום AI של צ\'אט</string>
<string name="revanced_hide_comments_ai_chat_summary_summary_on">סיכום AI של צ\'אט מוסתר</string>
<string name="revanced_hide_comments_ai_chat_summary_summary_off">סיכום AI של צ\'אט מוצג</string>
<string name="revanced_hide_comments_ai_summary_title">הסתר סיכום תגובות AI</string>
<string name="revanced_hide_comments_ai_summary_summary_on">סיכום תגובות בינה מלאכותית מוסתר</string>
<string name="revanced_hide_comments_ai_summary_summary_off">סיכום תגובות בינה מלאכותית מוצג</string>
<string name="revanced_hide_comments_ai_summary_summary_on">סיכום AI של תגובות מוסתר</string>
<string name="revanced_hide_comments_ai_summary_summary_off">סיכום AI של תגובות מוצג</string>
<string name="revanced_hide_comments_channel_guidelines_title">הסתר הנחיות ערוץ</string>
<string name="revanced_hide_comments_channel_guidelines_summary_on">הנחיות הערוץ מוסתרות</string>
<string name="revanced_hide_comments_channel_guidelines_summary_off">הנחיות הערוץ מוצגות</string>
@@ -392,10 +392,10 @@ Second \"item\" text"</string>
</patch>
<patch id="ad.general.hideAdsResourcePatch">
<string name="revanced_hide_creator_store_shelf_title">הסתר מדף חנות היוצר</string>
<string name="revanced_hide_creator_store_shelf_summary_on">מדף חנות היוצר מתחת לנגן הווידאו מוסתר</string>
<string name="revanced_hide_creator_store_shelf_summary_off">מדף חנות היוצר מתחת לנגן הווידאו מוצג</string>
<string name="revanced_hide_creator_store_shelf_summary_on">מדף חנות היוצר מתחת לנגן הוידאו מוסתר</string>
<string name="revanced_hide_creator_store_shelf_summary_off">מדף חנות היוצר מתחת לנגן הוידאו מוצג</string>
<string name="revanced_hide_end_screen_store_banner_title">הסתר כרזת חנות של מסך סיום</string>
<string name="revanced_hide_end_screen_store_banner_summary_on">באנר חנות מסך סיום מוסתר</string>
<string name="revanced_hide_end_screen_store_banner_summary_on">באנר החנות של מסך סיום מוסתר</string>
<string name="revanced_hide_end_screen_store_banner_summary_off">באנר החנות של מסך הסיום מוצג</string>
<string name="revanced_hide_fullscreen_ads_title">הסתר מודעות מסך מלא</string>
<string name="revanced_hide_fullscreen_ads_summary_on">"מודעות במסך מלא מוסתרות
@@ -419,8 +419,8 @@ Second \"item\" text"</string>
<string name="revanced_hide_shopping_links_title">הסתר קישורי קניות</string>
<string name="revanced_hide_shopping_links_summary_on">קישורי קניות בתיאור הסרטון מוסתרים</string>
<string name="revanced_hide_shopping_links_summary_off">קישורי קניות בתיאור הסרטון מוצגים</string>
<string name="revanced_hide_view_products_banner_title">הסתר באנר \'צפה במוצרים\'</string>
<string name="revanced_hide_view_products_banner_summary_on">באנר הצגת המוצרים בשכבת-על של הווידאו מוסתר</string>
<string name="revanced_hide_view_products_banner_title">הסתר באנר צפייה במוצרים</string>
<string name="revanced_hide_view_products_banner_summary_on">באנר צפייה במוצרים בשכבת-על של וידאו מוסתר</string>
<string name="revanced_hide_view_products_banner_summary_off">באנר צפייה במוצרים בשכבת-על של וידאו מוצג</string>
<string name="revanced_hide_web_search_results_title">הסתר תוצאות חיפוש באינטרנט</string>
<string name="revanced_hide_web_search_results_summary_on">תוצאות חיפוש באינטרנט מוסתרות</string>
@@ -453,14 +453,14 @@ Second \"item\" text"</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">זה לא עוקף את מגבלת הגיל. זה רק מסכים לזה באופן אוטומטי.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
<string name="revanced_disable_signin_to_tv_popup_title">השבתת חלון קופץ של כניסה לטלוויזיה</string>
<string name="revanced_disable_signin_to_tv_popup_title">השבת חלון קופץ של כניסה לטלוויזיה</string>
<string name="revanced_disable_signin_to_tv_popup_summary_on">חלון קופץ של כניסה לטלוויזיה מושבת</string>
<string name="revanced_disable_signin_to_tv_popup_summary_off">חלון קופץ של כניסה לטלוויזיה מופעל</string>
</patch>
<patch id="interaction.doubletap.disableDoubleTapActionsPatch">
<string name="revanced_disable_chapter_skip_double_tap_title">ביטול דילוג פרקים בלחיצה כפולה</string>
<string name="revanced_disable_chapter_skip_double_tap_summary_on">לחיצה כפולה לעולם לא תפעיל דילוג לפרק הבא/הקודם</string>
<string name="revanced_disable_chapter_skip_double_tap_summary_off">לחיצה כפולה יכולה להפעיל מדי פעם דילוג לפרק הבא/הקודם</string>
<string name="revanced_disable_chapter_skip_double_tap_title">השבת דילוג פרקים בהקשה כפולה</string>
<string name="revanced_disable_chapter_skip_double_tap_summary_on">הקשה כפולה לעולם לא יכולה לגרום דילוג לפרק הבא/הקודם</string>
<string name="revanced_disable_chapter_skip_double_tap_summary_off">הקשה כפולה יכולה לגרום מדי פעם דילוג לפרק הבא/הקודם</string>
</patch>
<patch id="interaction.downloads.downloadsResourcePatch">
<string name="revanced_external_downloader_screen_title">הורדות חיצוניות</string>
@@ -473,14 +473,14 @@ Second \"item\" text"</string>
<string name="revanced_external_downloader_action_button_summary_on">לחצן ההורדה פותח את המוריד החיצוני שלך</string>
<string name="revanced_external_downloader_action_button_summary_off">לחצן ההורדה פותח את המוריד המקומי בתוך היישום</string>
<string name="revanced_external_downloader_name_title">שם חבילת מוריד</string>
<string name="revanced_external_downloader_name_summary">שם חבילה של אפליקציית ההורדה החיצונית המותקנת שלך</string>
<string name="revanced_external_downloader_name_summary">שם החבילה של יישום ההורדות החיצוני המותקן שלך</string>
<string name="revanced_external_downloader_other_item_hint">הזן את שם החבילה</string>
<string name="revanced_external_downloader_other_item">אחר</string>
<string name="revanced_external_downloader_not_found_title">האפליקציה לא מותקנת</string>
<string name="revanced_external_downloader_not_found_title">היישום לא מותקן</string>
<string name="revanced_external_downloader_not_installed_warning">%s אינו מותקן. נא להתקין אותו.</string>
<string name="revanced_external_downloader_package_not_found_warning">"לא ניתן למצוא אפליקציה מותקנת עם שם החבילה: %s
<string name="revanced_external_downloader_package_not_found_warning">"לא ניתן למצוא יישום מותקן עם שם חבילה: %s
ודא/י ששם החבילה נכון ושהאפליקציה מותקנת"</string>
יש לוודא ששם החבילה נכון ושהיישום מותקן"</string>
<string name="revanced_external_downloader_empty_warning">שם החבילה אינו יכול להיות ריק</string>
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
@@ -564,9 +564,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_share_button_summary_on">לחצן שיתוף מוסתר</string>
<string name="revanced_hide_share_button_summary_off">לחצן שיתוף מוצג</string>
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_stop_ads_button_title">הסתר עצור מודעות</string>
<string name="revanced_hide_stop_ads_button_summary_on">כפתור עצירת הפרסומות מוסתר</string>
<string name="revanced_hide_stop_ads_button_summary_off">כפתור עצירת הפרסומות מוצג</string>
<string name="revanced_hide_stop_ads_button_title">הסתר עצירת מודעות</string>
<string name="revanced_hide_stop_ads_button_summary_on">לחצן עצירת מודעות מוסתר</string>
<string name="revanced_hide_stop_ads_button_summary_off">לחצן עצירת מודעות מוצג</string>
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
This button usually only shows on live streams. -->
<string name="revanced_hide_report_button_title">הסתר דיווח</string>
@@ -582,13 +582,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_download_button_summary_off">לחצן הורדה מוצג</string>
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
This button only shows on videos uploaded by the logged in user. -->
<string name="revanced_hide_hype_button_title">הסתר הייפ</string>
<string name="revanced_hide_hype_button_summary_on">כפתור הייפ מוסתר</string>
<string name="revanced_hide_hype_button_summary_off">כפתור ההייפ מוצג</string>
<string name="revanced_hide_hype_button_title">הסתר באז</string>
<string name="revanced_hide_hype_button_summary_on">לחצן באז מוסתר</string>
<string name="revanced_hide_hype_button_summary_off">לחצן באז מוצג</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">הסתר קידום</string>
<string name="revanced_hide_promote_button_summary_on">כפתור קידום מוסתר</string>
<string name="revanced_hide_promote_button_summary_off">כפתור קידום מוצג</string>
<string name="revanced_hide_promote_button_summary_on">הלחצן \'קידום\' מוסתר</string>
<string name="revanced_hide_promote_button_summary_off">הלחצן \'קידום\' מוצג</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">הסתר תודה</string>
<string name="revanced_hide_thanks_button_summary_on">לחצן תודה מוסתר</string>
@@ -603,9 +603,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_clip_button_summary_on">לחצן קליפ מוסתר</string>
<string name="revanced_hide_clip_button_summary_off">לחצן קליפ מוצג</string>
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_save_button_title">הסתר שמירה</string>
<string name="revanced_hide_save_button_summary_on">כפתור השמירה מוסתר</string>
<string name="revanced_hide_save_button_summary_off">כפתור השמירה מוצג</string>
<string name="revanced_hide_save_button_title">הסתר \'שמירה\'</string>
<string name="revanced_hide_save_button_summary_on">הלחצן \'שמירה\' מוסתר</string>
<string name="revanced_hide_save_button_summary_off">הלחצן שמירה\' מוצג</string>
</patch>
<patch id="layout.buttons.navigation.navigationButtonsPatch">
<string name="revanced_navigation_buttons_screen_title">לחצני ניווט</string>
@@ -707,9 +707,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_flyout_watch_in_vr_title">הסתר \'צפה ב-VR\'</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_on">תפריט \'צפה ב-VR\' מוסתר</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_off">תפריט \'צפה ב-VR\' מוצג</string>
<string name="revanced_hide_player_flyout_video_quality_title">הסתר תפריט איכות וידאו</string>
<string name="revanced_hide_player_flyout_video_quality_summary_on">תפריט איכות הסרטון מוסתר</string>
<string name="revanced_hide_player_flyout_video_quality_summary_off">תפריט איכות הסרטון מוצג</string>
<string name="revanced_hide_player_flyout_video_quality_title">הסתר תפריט איכות סרטון</string>
<string name="revanced_hide_player_flyout_video_quality_summary_on">תפריט איכות סרטון מוסתר</string>
<string name="revanced_hide_player_flyout_video_quality_summary_off">תפריט איכות סרטון מוצג</string>
<string name="revanced_hide_player_flyout_video_quality_footer_title">הסתר כותרת תחתונה של תפריט איכות סרטון</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">כותרת תחתונה של תפריט איכות סרטון מוסתרת</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">כותרת תחתונה של תפריט איכות סרטון מוצגת</string>
@@ -725,7 +725,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_cast_button_title">הסתר לחצן העברה</string>
<string name="revanced_hide_cast_button_summary_on">לחצן העברה מוסתר</string>
<string name="revanced_hide_cast_button_summary_off">לחצן העברה מוצג</string>
<string name="revanced_hide_player_control_buttons_background_title">הסתר רקע פקדי נגן</string>
<string name="revanced_hide_player_control_buttons_background_title">הסתר רקע פקדי הנגן</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">רקע פקדי הנגן מוסתר</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">רקע פקדי הנגן מוצג</string>
<string name="revanced_hide_player_previous_next_buttons_title">הסתר לחצני הקודם &amp; הבא</string>
@@ -753,20 +753,20 @@ Second \"item\" text"</string>
<string name="revanced_disable_rolling_number_animations_summary_off">מספרים מתגלגלים מונפשים</string>
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<string name="revanced_hide_seekbar_title">הסתר סרגל חיפוש נגן וידאו</string>
<string name="revanced_hide_seekbar_title">הסתר סרגל דילוג של נגן וידאו</string>
<string name="revanced_hide_seekbar_summary_on">סרגל דילוג של נגן וידאו מוסתר</string>
<string name="revanced_hide_seekbar_summary_off">סרגל דילוג של נגן וידאו מוצג</string>
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
<string name="revanced_hide_seekbar_thumbnail_title">הסתר סרגל חיפוש תמונות ממוזערות של וידאו</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">סרגל חיפוש תמונות ממוזערות של וידאו מוסתר</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">סרגל חיפוש תמונות ממוזערות של וידאו מוצג</string>
<string name="revanced_hide_seekbar_thumbnail_title">הסתר סרגל דילוג עם תמונות ממוזערות של סרטון</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">סרגל דילוג עם תמונות ממוזערות של סרטון מוסתר</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">סרגל דילוג עם תמונות ממוזערות של סרטון מוצג</string>
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<string name="revanced_shorts_player_screen_title">נגן Shorts</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_on">מוסתר בפיד הבית ובסרטונים קשורים</string>
<string name="revanced_hide_shorts_home_summary_off">מוצג בפיד הבית ובסרטונים קשורים</string>
<string name="revanced_hide_shorts_search_title">הסתר Shorts בתוצאות חיפוש</string>
<string name="revanced_hide_shorts_search_summary_on">מוסתר בתוצאות חיפוש</string>
@@ -774,16 +774,16 @@ Second \"item\" text"</string>
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions 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_subscriptions_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>
<string name="revanced_hide_shorts_super_thanks_button_title">הסתר לחצן קנה סופר תודה</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_on">כפתור \'קנה תודה רבה\' מוסתר</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_off">כפתור קניית Super Thanks מוצג</string>
<string name="revanced_hide_shorts_effect_button_title">הסתר כפתור אפקט</string>
<string name="revanced_hide_shorts_effect_button_summary_on">כפתור האפקט מוסתר</string>
<string name="revanced_hide_shorts_effect_button_summary_off">כפתור האפקט מוצג</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_on">הלחצן \'קנה סופר תודה\' מוסתר</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_off">הלחצן \'קנה סופר תודה\' מוצג</string>
<string name="revanced_hide_shorts_effect_button_title">הסתר לחצן \'אפקט\'</string>
<string name="revanced_hide_shorts_effect_button_summary_on">הלחצן \'אפקט\' מוסתר</string>
<string name="revanced_hide_shorts_effect_button_summary_off">הלחצן \'אפקט\' מוצג</string>
<string name="revanced_hide_shorts_green_screen_button_title">הסתר לחצן מסך ירוק</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">לחצן מסך ירוק מוסתר</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">לחצן מסך ירוק מוצג</string>
@@ -827,12 +827,12 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_upcoming_button_title">הסתר לחצן \'בקרוב\'</string>
<string name="revanced_hide_shorts_upcoming_button_summary_on">לחצן \'בקרוב\' מוסתר</string>
<string name="revanced_hide_shorts_upcoming_button_summary_off">לחצן \'בקרוב\' מוצג</string>
<string name="revanced_hide_shorts_use_sound_button_title">הסתר את כפתור \"השתמש בצליל זה\"</string>
<string name="revanced_hide_shorts_use_sound_button_summary_on">כפתור \"השתמש בצליל זה\" מוסתר</string>
<string name="revanced_hide_shorts_use_sound_button_summary_off">כפתור \"השתמש בצליל זה\" מוצג</string>
<string name="revanced_hide_shorts_use_template_button_title">הסתר כפתור השתמש בתבנית זו</string>
<string name="revanced_hide_shorts_use_template_button_summary_on">כפתור \"השתמש בתבנית זו\" מוסתר</string>
<string name="revanced_hide_shorts_use_template_button_summary_off">כפתור השתמש בתבנית זו מוצג</string>
<string name="revanced_hide_shorts_use_sound_button_title">הסתר לחצן \'השתמש בצליל זה\'</string>
<string name="revanced_hide_shorts_use_sound_button_summary_on">הלחצן \'השתמש בצליל זה\' מוסתר</string>
<string name="revanced_hide_shorts_use_sound_button_summary_off">הלחצן \'השתמש בצליל זה\' מוצג</string>
<string name="revanced_hide_shorts_use_template_button_title">הסתר לחצן השתמש בתבנית זו</string>
<string name="revanced_hide_shorts_use_template_button_summary_on">הלחצן \'השתמש בתבנית זו\' מוסתר</string>
<string name="revanced_hide_shorts_use_template_button_summary_off">הלחצן \'השתמש בתבנית זו\' מוצג</string>
<string name="revanced_hide_shorts_like_fountain_title">הסתר הנפשת מזרקה של לחצן אהבתי</string>
<string name="revanced_hide_shorts_like_fountain_summary_on">הנפשת מזרקה של לחצן אהבתי מוסתרת</string>
<string name="revanced_hide_shorts_like_fountain_summary_off">הנפשת מזרקה של לחצן אהבתי מוצגת</string>
@@ -866,8 +866,8 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_video_title_summary_on">כותרת הסרטון מוסתרת</string>
<string name="revanced_hide_shorts_video_title_summary_off">כותרת הסרטון מוצגת</string>
<string name="revanced_hide_shorts_sound_metadata_label_title">הסתר תווית מטא-נתונים של סאונד</string>
<string name="revanced_hide_shorts_sound_metadata_label_summary_on">תווית מטא-נתונים של צליל מוסתרת</string>
<string name="revanced_hide_shorts_sound_metadata_label_summary_off">תווית מטא-נתונים של צליל מוצגת</string>
<string name="revanced_hide_shorts_sound_metadata_label_summary_on">תווית מטא-נתונים של שמע מוסתרת</string>
<string name="revanced_hide_shorts_sound_metadata_label_summary_off">תווית מטא-נתונים של שמע מוצגת</string>
<string name="revanced_hide_shorts_full_video_link_label_title">הסתר תווית קישור לסרטון</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_on">תווית קישור סרטון מוסתרת</string>
<string name="revanced_hide_shorts_full_video_link_label_summary_off">תווית קישור סרטון מוצגת</string>
@@ -887,7 +887,7 @@ Second \"item\" text"</string>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
<string name="revanced_hide_related_videos_overlay_title">הסתר שכבת-על של סרטונים קשורים</string>
<string name="revanced_hide_related_videos_overlay_summary_on">שכבת-על של סרטונים קשורים במסך מלא מוסתרת</string>
<string name="revanced_hide_related_videos_overlay_summary_off">שכבת סרטונים קשורים במסך מלא מוצגת</string>
<string name="revanced_hide_related_videos_overlay_summary_off">שכבת-על של סרטונים קשורים במסך מלא מוצגת</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">הסתר חותמת זמן של סרטון</string>
@@ -1003,14 +1003,14 @@ Second \"item\" text"</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">לחצן דילוג נעלם לאחר כמה שניות</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">לחצן דילוג מוצג עבור כל המקטע</string>
<string name="revanced_sb_auto_hide_skip_button_duration">משך לחצן הדילוג</string>
<string name="revanced_sb_auto_hide_skip_button_duration_sum">כמה זמן להציג את כפתורי הדילוג ודילוג לסימון לפני הסתרה אוטומטית</string>
<string name="revanced_sb_auto_hide_skip_button_duration_sum">למשך כמה זמן להציג את לחצני הדילוג והדילוג לגולת הכותרת לפני הסתרה אוטומטית</string>
<string name="revanced_sb_general_skiptoast">הצג הודעה קופצת לביטול דילוג</string>
<string name="revanced_sb_general_skiptoast_sum_on">הודעה קופצת מוצגת כאשר קטע מדולג אוטומטית. הקש על ההודעה הקופצת כדי לבטל את הדילוג</string>
<string name="revanced_sb_general_skiptoast_sum_off">הטוסט לא מוצג</string>
<string name="revanced_sb_toast_on_skip_duration">משך טוסט הדילוג</string>
<string name="revanced_sb_toast_on_skip_duration_sum">כמה זמן להציג את הודעת \"טוסט\" ביטול הדילוג</string>
<string name="revanced_sb_general_skiptoast_sum_off">ההודעה הקופצת אינה מוצגת</string>
<string name="revanced_sb_toast_on_skip_duration">משך הודעת דילוג קופצת</string>
<string name="revanced_sb_toast_on_skip_duration_sum">למשך כמה זמן להציג את ההודעה הקופצת לביטול הדילוג</string>
<string name="revanced_sb_duration_1s">שנייה אחת</string>
<string name="revanced_sb_duration_2s">שתי שניות</string>
<string name="revanced_sb_duration_2s">2 שניות</string>
<string name="revanced_sb_duration_3s">3 שניות</string>
<string name="revanced_sb_duration_4s">4 שניות</string>
<string name="revanced_sb_duration_5s">5 שניות</string>
@@ -1020,7 +1020,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_duration_9s">9 שניות</string>
<string name="revanced_sb_duration_10s">10 שניות</string>
<string name="revanced_sb_general_time_without">הצג אורך סרטון ללא מקטעים</string>
<string name="revanced_sb_general_time_without_sum_on">אורך הסרטון פחות כל המקטעים מוצג על פס הניווט</string>
<string name="revanced_sb_general_time_without_sum_on">אורך הסרטון פחות כל המקטעים מוצג על סרגל הדילוג</string>
<string name="revanced_sb_general_time_without_sum_off">אורך סרטון מלא מוצג</string>
<string name="revanced_sb_create_segment_category">יוצר מקטעים חדשים</string>
<string name="revanced_sb_enable_create_segment">הצג לחצן יצירת מקטע חדש</string>
@@ -1077,10 +1077,12 @@ Second \"item\" text"</string>
<string name="revanced_sb_segments_intro_sum">מרווח זמן ללא תוכן ממשי. יכול להיות הפסקה, מסגרת סטטית, או הנפשה חוזרת. אינו כולל מעברים המכילים מידע</string>
<string name="revanced_sb_segments_outro">כרטיסי סיום / קרדיטים</string>
<string name="revanced_sb_segments_outro_sum">קרדיטים או כאשר כרטיסי הסיום של YouTube מופיעים. לא בשביל מסקנות עם מידע</string>
<string name="revanced_sb_segments_preview">קדימון/סיכום/מלכודת</string>
<string name="revanced_sb_segments_hook">פתיח / ברכות</string>
<string name="revanced_sb_segments_hook_sum">קדימונים מקריינים לסרטון הקרוב, ברכות ופרידות. אינו כולל קטעים המוסיפים תוכן נוסף</string>
<string name="revanced_sb_segments_preview">תצוגה מקדימה / סיכום</string>
<string name="revanced_sb_segments_preview_sum">אוסף של קליפים שמראים מה עומד לקרות בקרוב או מה קרה בסרטון או בסרטונים אחרים של סדרה, כאשר כל המידע חוזר על עצמו במקום אחר</string>
<string name="revanced_sb_segments_filler">פילר משיק/בדיחות</string>
<string name="revanced_sb_segments_filler_sum">סצנות משיקות שנוספו רק עבור פילר או הומור שאינן נדרשות כדי להבין את התוכן העיקרי של הסרטון. לא כולל מקטעים המספקים הקשר או פרטי רקע</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_skip_button_compact">דילוג</string>
@@ -1093,10 +1095,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skip_button_intro_middle">דלג על הפסקה</string>
<string name="revanced_sb_skip_button_intro_end">דלג על הפסקה</string>
<string name="revanced_sb_skip_button_outro">דלג על סיום</string>
<string name="revanced_sb_skip_button_hook">דלג על פתיח</string>
<string name="revanced_sb_skip_button_preview_beginning">דלג על קדימון</string>
<string name="revanced_sb_skip_button_preview_middle">דלג על קדימון</string>
<string name="revanced_sb_skip_button_preview_end">דלג על סיכום</string>
<string name="revanced_sb_skip_button_filler">דלג על פילר</string>
<string name="revanced_sb_skip_button_filler">דלג על קטע טנגנציאלי</string>
<string name="revanced_sb_skip_button_nomusic">דלג על שאינו מוזיקה</string>
<string name="revanced_sb_skip_button_unsubmitted">דלג על מקטע</string>
<string name="revanced_sb_skipped_sponsor">דילג על נותן חסות</string>
@@ -1107,10 +1110,11 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_intro_middle">דילג על הפסקה</string>
<string name="revanced_sb_skipped_intro_end">דילג על הפסקה</string>
<string name="revanced_sb_skipped_outro">דילג על סיום</string>
<string name="revanced_sb_skipped_hook">פתיח דולג</string>
<string name="revanced_sb_skipped_preview_beginning">דילג על קדימון</string>
<string name="revanced_sb_skipped_preview_middle">דילג על קדימון</string>
<string name="revanced_sb_skipped_preview_end">דילג על סיכום</string>
<string name="revanced_sb_skipped_filler">דלג על פילר</string>
<string name="revanced_sb_skipped_filler">קטע טנגנציאלי דולג</string>
<string name="revanced_sb_skipped_nomusic">דילג על קטע שאינו מוזיקה</string>
<string name="revanced_sb_skipped_unsubmitted">דילג על מקטעים שלא נשלחו</string>
<string name="revanced_sb_skipped_multiple_segments">דילג על מקטעים מרובים</string>
@@ -1353,10 +1357,10 @@ Second \"item\" text"</string>
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
<string name="revanced_alt_thumbnail_home_title">כרטיסיית דף הבית</string>
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
<string name="revanced_alt_thumbnail_subscription_title">מינויים</string>
<string name="revanced_alt_thumbnail_subscription_title">כרטיסיית מינויים</string>
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<string name="revanced_alt_thumbnail_library_title">כרטיסיית הדף שלי</string>
<string name="revanced_alt_thumbnail_player_title">פלייליסטים והמלצות של נגן</string>
<string name="revanced_alt_thumbnail_player_title">פלייליסטים &amp; המלצות של נגן</string>
<string name="revanced_alt_thumbnail_search_title">תוצאות חיפוש</string>
<string name="revanced_alt_thumbnail_options_entry_1">תמונות ממוזערות מקוריות</string>
<string name="revanced_alt_thumbnail_options_entry_2">תמונות ממוזערות מקוריות &amp; DeArrow</string>
@@ -1464,9 +1468,9 @@ Second \"item\" text"</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_off">שינויי איכות חלים רק על הסרטון הנוכחי</string>
<string name="revanced_remember_video_quality_last_selected_toast_title">הצג הודעה קופצת בעת שינויים באיכות הווידאו</string>
<string name="revanced_remember_video_quality_last_selected_toast_summary_on">מוצגת הודעה קופצת כאשר איכות הווידאו המוגדרת כברירת מחדל משתנה</string>
<string name="revanced_remember_video_quality_last_selected_toast_summary_off">הודעה קופצת אינה מוצגת כאשר איכות הווידאו המוגדרת כברירת מחדל משתנה</string>
<string name="revanced_remember_video_quality_last_selected_toast_title">הצג הודעה קופצת בעת שינויים באיכות הסרטון</string>
<string name="revanced_remember_video_quality_last_selected_toast_summary_on">מוצגת הודעה קופצת כאשר איכות הסרטון ברירת המחדל משתנה</string>
<string name="revanced_remember_video_quality_last_selected_toast_summary_off">לא מוצגת הודעה קופצת כאשר איכות הסרטון ברירת המחדל משתנה</string>
<string name="revanced_video_quality_default_wifi_title">איכות סרטון ברירת מחדל ברשת אלחוטית</string>
<string name="revanced_video_quality_default_mobile_title">איכות סרטון ברירת מחדל ברשת סלולרית</string>
<string name="revanced_remember_shorts_quality_last_selected_title">זכור שינויי איכות Shorts</string>
@@ -1485,8 +1489,8 @@ Second \"item\" text"</string>
<string name="revanced_playback_speed_dialog_button_summary_off">הלחצן אינו מוצג</string>
</patch>
<patch id="video.quality.button.videoQualityDialogButtonPatch">
<string name="revanced_video_quality_dialog_button_title">הצג כפתור איכות וידאו</string>
<string name="revanced_video_quality_dialog_button_summary_on">הלחצן מוצג. גע והחזק כדי לאפס את האיכות לברירת מחדל</string>
<string name="revanced_video_quality_dialog_button_title">הצג לחצן איכות סרטון</string>
<string name="revanced_video_quality_dialog_button_summary_on">הלחצן מוצג. הקש והחזק כדי לאפס את האיכות לברירת מחדל</string>
<string name="revanced_video_quality_dialog_button_summary_off">הלחצן אינו מוצג</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1509,8 +1513,8 @@ Second \"item\" text"</string>
<string name="revanced_remember_playback_speed_last_selected_summary_on">שינויי מהירות הפעלה חלים על כל הסרטונים</string>
<string name="revanced_remember_playback_speed_last_selected_summary_off">שינויי מהירות הפעלה חלים רק על הסרטון הנוכחי</string>
<string name="revanced_remember_playback_speed_last_selected_toast_title">הצג הודעה קופצת בעת שינויים במהירות ההפעלה</string>
<string name="revanced_remember_playback_speed_last_selected_toast_summary_on">מוצגת הודעה קופצת כאשר מהירות ההפעלה המוגדרת כברירת מחדל משתנה</string>
<string name="revanced_remember_playback_speed_last_selected_toast_summary_off">הודעה קופצת אינה מוצגת כאשר מהירות ההפעלה המוגדרת כברירת מחדל משתנה</string>
<string name="revanced_remember_playback_speed_last_selected_toast_summary_on">מוצגת הודעה קופצת כאשר מהירות ההפעלה ברירת המחדל משתנה</string>
<string name="revanced_remember_playback_speed_last_selected_toast_summary_off">לא מוצגת הודעה קוצפת כאשר מהירות ההפעלה ברירת המחדל משתנה</string>
<string name="revanced_playback_speed_default_title">מהירות הפעלה ברירת מחדל</string>
<string name="revanced_remember_playback_speed_toast">מהירות ברירת המחדל שונתה ל: %s</string>
</patch>
@@ -1581,7 +1585,7 @@ Second \"item\" text"</string>
<string name="revanced_block_video_ads_summary_off">מודעות סרטון אינן חסומות</string>
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
<string name="revanced_deleted_msg">הודעה נמחקה</string>
<string name="revanced_deleted_msg">ההודעה נמחקה</string>
<string name="revanced_show_deleted_messages_title">הצג הודעות שנמחקו</string>
<string name="revanced_show_deleted_messages_entry_1">אל תציג הודעות שנמחקו</string>
<string name="revanced_show_deleted_messages_entry_2">הסתר מודעות שנמחקו מאחורי ספויילר</string>
@@ -1602,7 +1606,7 @@ Second \"item\" text"</string>
<string name="revanced_settings">הגדרות ReVanced</string>
<string name="revanced_about_title">אודות</string>
<string name="revanced_about_summary">אודות ReVanced</string>
<string name="revanced_ads_screen_title">חסימת פרסומות</string>
<string name="revanced_ads_screen_title">חסימת מודעות</string>
<string name="revanced_ads_screen_summary">הגדרות חסימת מודעות</string>
<string name="revanced_chat_screen_title">צ\'אט</string>
<string name="revanced_chat_screen_summary">הגדרות צ\'אט</string>

View File

@@ -195,9 +195,9 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<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>
<string name="revanced_hide_playables_title">ゲームを非表示</string>
<string name="revanced_hide_playables_summary_on">ゲームは表示されません</string>
<string name="revanced_hide_playables_summary_off">ゲームは表示されます</string>
<string name="revanced_hide_playables_title">ゲームルームを非表示</string>
<string name="revanced_hide_playables_summary_on">ゲームルームは表示されません</string>
<string name="revanced_hide_playables_summary_off">ゲームルームは表示されます</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<string name="revanced_hide_show_more_button_title">「もっと見る」ボタンを非表示</string>
@@ -486,47 +486,47 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_external_downloader_empty_warning">パッケージ名は空欄にはできません</string>
</patch>
<patch id="interaction.seekbar.disablePreciseSeekingGesturePatch">
<string name="revanced_disable_precise_seeking_gesture_title">精密シークモードを無効にする</string>
<string name="revanced_disable_precise_seeking_gesture_summary_on">シークバーを上へスワイプしても、精密シークモードになりません</string>
<string name="revanced_disable_precise_seeking_gesture_summary_off">シークバーを上へスワイプすると、精密シークモードになります</string>
<string name="revanced_disable_precise_seeking_gesture_title">精密シーク ジェスチャーを無効化</string>
<string name="revanced_disable_precise_seeking_gesture_summary_on">精密シーク ジェスチャーは無効です。シークバーを上へスワイプしても、「再生位置の細かい調整」モードになりません</string>
<string name="revanced_disable_precise_seeking_gesture_summary_off">精密シーク ジェスチャーは有効です。シークバーを上へスワイプすると、「再生位置の細かい調整」モードになります</string>
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
<string name="revanced_seekbar_tapping_title">タップによるシークを有効にする</string>
<string name="revanced_seekbar_tapping_summary_on">シークバーをタップすると、タップした位置にシークします</string>
<string name="revanced_seekbar_tapping_summary_off">シークバーをタップしても、タップした位置にシークしません</string>
<string name="revanced_seekbar_tapping_title">タップによるシークを有効</string>
<string name="revanced_seekbar_tapping_summary_on">タップによるシークは有効です。シークバーをタップすると、タップした位置に移動します</string>
<string name="revanced_seekbar_tapping_summary_off">タップによるシークは無効です。シークバーをタップしても、タップした位置に移動しません</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">明るさジェスチャーを有効にする</string>
<string name="revanced_swipe_brightness_title">明るさジェスチャーを有効</string>
<string name="revanced_swipe_brightness_summary_on">"全画面表示中の明るさジェスチャーは有効です
画面左側を縦にスワイプして明るさを調節します"</string>
<string name="revanced_swipe_brightness_summary_off">全画面表示中の明るさジェスチャーは無効です</string>
<string name="revanced_swipe_volume_title">音量ジェスチャーを有効にする</string>
<string name="revanced_swipe_volume_title">音量ジェスチャーを有効</string>
<string name="revanced_swipe_volume_summary_on">"全画面表示中の音量ジェスチャーは有効です
画面右側を縦にスワイプして音量を調節します"</string>
<string name="revanced_swipe_volume_summary_off">全画面表示中の音量ジェスチャーは無効です</string>
<string name="revanced_swipe_press_to_engage_title">長押しスワイプを有効にする</string>
<string name="revanced_swipe_press_to_engage_summary_on">全画面表示中、画面を長押ししてから縦にスワイプして明るさや音量を調節します</string>
<string name="revanced_swipe_press_to_engage_summary_off">全画面表示中、画面を縦にスワイプして明るさや音量を調節します</string>
<string name="revanced_swipe_haptic_feedback_title">触覚フィードバックを有効にする</string>
<string name="revanced_swipe_press_to_engage_title">長押しスワイプ ジェスチャーを有効化</string>
<string name="revanced_swipe_press_to_engage_summary_on">長押しスワイプは有効です\n\n画面を長押ししてから縦にスワイプすると、明るさ / 音量ジェスチャーとして認識されます</string>
<string name="revanced_swipe_press_to_engage_summary_off">長押しスワイプは無効です\n\n画面を縦にスワイプすると、明るさ / 音量ジェスチャーとして認識されます</string>
<string name="revanced_swipe_haptic_feedback_title">触覚フィードバックを有効</string>
<string name="revanced_swipe_haptic_feedback_summary_on">触覚フィードバックは有効です</string>
<string name="revanced_swipe_haptic_feedback_summary_off">触覚フィードバックは無効です</string>
<string name="revanced_swipe_save_and_restore_brightness_title">明るさを保存する</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_on">全画面表示を開始 / 解除するとき明るさを復元 / 保存します</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_off">全画面表示を開始 / 解除するとき明るさを復元 / 保存しません</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">明るさジェスチャーの自動調節を有効にする</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">ジェスチャーで明るさを最小値まで下げると、明るさが自動調節されます</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">ジェスチャーで明るさを最小値まで下げても、明るさは自動調節されません</string>
<string name="revanced_swipe_save_and_restore_brightness_title">明るさを保存&復元</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_on">全画面表示を終了 / 開始するとき明るさを保存 / 復元します</string>
<string name="revanced_swipe_save_and_restore_brightness_summary_off">全画面表示を終了 / 開始するとき明るさを保存 / 復元しません</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">明るさジェスチャーの自動調節を有効</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">ジェスチャーで明るさを最小値まで下げると、明るさが自動調節されます</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">ジェスチャーで明るさを最小値まで下げても、明るさは自動調節されません</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">自動</string>
<string name="revanced_swipe_overlay_timeout_title">オーバーレイのタイムアウト</string>
<string name="revanced_swipe_overlay_timeout_summary">スワイプ オーバーレイが表示される時間 (ミリ秒)</string>
<string name="revanced_swipe_overlay_background_opacity_title">オーバーレイの背景の透明度</string>
<string name="revanced_swipe_overlay_background_opacity_summary">透明度の範囲は 0-100 で、0 が透明です</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">スワイプ: 透明度の範囲は 0-100 です</string>
<string name="revanced_swipe_overlay_progress_brightness_color_title">明るさグラフの色</string>
<string name="revanced_swipe_overlay_progress_brightness_color_title">オーバーレイの明るさグラフの色</string>
<string name="revanced_swipe_overlay_progress_brightness_color_summary">スワイプ中の明るさの現在値を視覚的に表示するグラフの色</string>
<string name="revanced_swipe_overlay_progress_volume_color_title">音量グラフの色</string>
<string name="revanced_swipe_overlay_progress_volume_color_title">オーバーレイの音量グラフの色</string>
<string name="revanced_swipe_overlay_progress_volume_color_summary">スワイプ中の音量の現在値を視覚的に表示するグラフの色</string>
<string name="revanced_swipe_text_overlay_size_title">オーバーレイのテキストサイズ</string>
<string name="revanced_swipe_text_overlay_size_summary">スワイプ オーバーレイのテキストサイズ (1-30)</string>
@@ -536,21 +536,21 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_swipe_volume_sensitivity_title">音量ジェスチャーのスワイプ感度</string>
<string name="revanced_swipe_volume_sensitivity_summary">スワイプによる音量の変化量</string>
<string name="revanced_swipe_overlay_style_title">オーバーレイのスタイル</string>
<string name="revanced_swipe_overlay_style_entry_1"></string>
<string name="revanced_swipe_overlay_style_entry_2"> (最小限 - 画面上部)</string>
<string name="revanced_swipe_overlay_style_entry_3"> (最小限 - 画面中央)</string>
<string name="revanced_swipe_overlay_style_entry_1"></string>
<string name="revanced_swipe_overlay_style_entry_2"> (最小限 - 画面上部)</string>
<string name="revanced_swipe_overlay_style_entry_3"> (最小限 - 画面中央)</string>
<string name="revanced_swipe_overlay_style_entry_4">円形</string>
<string name="revanced_swipe_overlay_style_entry_5">円形 (最小限)</string>
<string name="revanced_swipe_overlay_style_entry_6"></string>
<string name="revanced_swipe_overlay_style_entry_7"> (最小限)</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>
<string name="revanced_swipe_overlay_style_entry_6"></string>
<string name="revanced_swipe_overlay_style_entry_7"> (最小限)</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_disable_auto_captions_title">自動字幕表示を無効化</string>
<string name="revanced_disable_auto_captions_summary_on">自動字幕表示は無効です\n\n動画を開いた際にデフォルトで字幕は表示されません</string>
<string name="revanced_disable_auto_captions_summary_off">自動字幕表示は有効です\n\n動画を開いた際にデフォルトで字幕が表示される場合があります</string>
<string name="revanced_disable_auto_captions_summary_on">自動字幕表示は無効です\n\n字幕がオフの状態で動画を開きます</string>
<string name="revanced_disable_auto_captions_summary_off">自動字幕表示は有効です\n\n字幕がオンの状態で動画を開く場合があります</string>
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">アクション ボタン</string>
@@ -588,18 +588,18 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_hype_button_summary_on">ハイプボタンは表示されません</string>
<string name="revanced_hide_hype_button_summary_off">ハイプボタンは表示されます</string>
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_promote_button_title">プロモー ボタンを非表示</string>
<string name="revanced_hide_promote_button_summary_on">プロモー ボタンは表示されません</string>
<string name="revanced_hide_promote_button_summary_off">プロモー ボタンは表示されます</string>
<string name="revanced_hide_promote_button_title">プロモーション ボタンを非表示</string>
<string name="revanced_hide_promote_button_summary_on">プロモーション ボタンは表示されません</string>
<string name="revanced_hide_promote_button_summary_off">プロモーション ボタンは表示されます</string>
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_thanks_button_title">Thanks ボタンを非表示</string>
<string name="revanced_hide_thanks_button_summary_on">Thanks ボタンは表示されません</string>
<string name="revanced_hide_thanks_button_summary_off">Thanks ボタンは表示されます</string>
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
This button only shows if the user ip is from specific region such as the USA or EU. -->
<string name="revanced_hide_ask_button_title">質問ボタンを非表示</string>
<string name="revanced_hide_ask_button_summary_on">質問ボタンは表示されません</string>
<string name="revanced_hide_ask_button_summary_off">質問ボタンは表示されます</string>
<string name="revanced_hide_ask_button_title">質問する」ボタンを非表示</string>
<string name="revanced_hide_ask_button_summary_on">質問する」ボタンは表示されません</string>
<string name="revanced_hide_ask_button_summary_off">質問する」ボタンは表示されます</string>
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_clip_button_title">クリップボタンを非表示</string>
<string name="revanced_hide_clip_button_summary_on">クリップボタンは表示されません</string>
@@ -755,13 +755,13 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_disable_rolling_number_animations_summary_off">数字の回転アニメーションは有効です</string>
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<string name="revanced_hide_seekbar_title">動画プレーヤーのシークバーを非表示</string>
<string name="revanced_hide_seekbar_title">プレーヤーのシークバーを非表示</string>
<string name="revanced_hide_seekbar_summary_on">動画プレーヤーのシークバーは表示されません</string>
<string name="revanced_hide_seekbar_summary_off">動画プレーヤーのシークバーは表示されます</string>
<!-- Seekbar shown inside video thumbnails found the home/feed/search/history. The seekbar shows the prior watch progress when the video was last open. -->
<string name="revanced_hide_seekbar_thumbnail_title">動画のサムネイルのシークバーを非表示</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">フィードや再生履歴など動画のサムネイルのシークバーは表示されません</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">フィードや再生履歴など動画のサムネイルのシークバーは表示されます</string>
<string name="revanced_hide_seekbar_thumbnail_title">サムネイルのシークバーを非表示</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">フィードや再生履歴などに表示される動画のサムネイルのシークバーは表示されません</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">フィードや再生履歴などに表示される動画のサムネイルのシークバーは表示されます</string>
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<string name="revanced_shorts_player_screen_title">ショート プレーヤー</string>
@@ -878,12 +878,12 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_shorts_navigation_bar_summary_off">ナビゲーション バーは表示されます</string>
</patch>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">再生終了時の「関連動画」を非表示</string>
<string name="revanced_end_screen_suggested_video_summary_on">"再生が終了したときに、「関連動画」はプレーヤー画面に表示されませんが、自動再生がオンの場合は次の動画が自動で再生されます
<string name="revanced_end_screen_suggested_video_title">終了画面の「関連動画」を非表示</string>
<string name="revanced_end_screen_suggested_video_summary_on">"終了画面の「関連動画」は表示されませんが、自動再生がオンの場合は関連動画が自動で再生されます
自動再生の設定は YouTube の設定で変更できます:
設定 → 再生 → 次の動画を自動再生"</string>
<string name="revanced_end_screen_suggested_video_summary_off">再生が終了したときに「関連動画」がプレーヤー画面に表示されます</string>
<string name="revanced_end_screen_suggested_video_summary_off">終了画面の「関連動画」は表示されます</string>
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
<string name="revanced_hide_related_videos_overlay_title">関連動画オーバーレイを非表示</string>
@@ -891,9 +891,9 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_hide_related_videos_overlay_summary_off">全画面表示の関連動画オーバーレイは表示されます</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">タイムスタンプを非表示</string>
<string name="revanced_hide_timestamp_summary_on">タイムスタンプは表示されません</string>
<string name="revanced_hide_timestamp_summary_off">タイムスタンプは表示されます</string>
<string name="revanced_hide_timestamp_title">動画のタイムスタンプを非表示</string>
<string name="revanced_hide_timestamp_summary_on">動画の現在位置を示すタイムスタンプは表示されません</string>
<string name="revanced_hide_timestamp_summary_off">動画の現在位置を示すタイムスタンプは表示されます</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
<string name="revanced_hide_player_popup_panels_title">プレーヤー ポップアップ パネルを非表示</string>
@@ -919,51 +919,51 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<string name="revanced_ryd_failure_connection_timeout">低評価表示は一時的に利用できません (API タイムアウト)</string>
<string name="revanced_ryd_failure_connection_status_code">低評価表示は利用できません (ステータス %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">低評価表示は利用できません (クライアント API のレート制限)</string>
<string name="revanced_ryd_failure_generic">低評価表示は利用できません (%s)</string>
<string name="revanced_ryd_failure_connection_timeout">低評価表示は一時的に利用できません (API タイムアウト)</string>
<string name="revanced_ryd_failure_connection_status_code">低評価表示は利用できません (status %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">低評価表示は利用できません (API のレート制限)</string>
<string name="revanced_ryd_failure_generic">低評価表示は利用できません (%s)</string>
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Return YouTube Dislike を有効にして投票するには、動画をリロードしてください</string>
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Return YouTube Dislike: 投票するには、再読み込みが必要です</string>
<!-- Video likes have been set to hidden by the video uploader. -->
<string name="revanced_ryd_video_likes_hidden_by_video_owner">所有者によって非表示</string>
<string name="revanced_ryd_enabled_summary_on">低評価は表示されます</string>
<string name="revanced_ryd_enabled_summary_off">低評価は表示されません</string>
<string name="revanced_ryd_shorts_title">ショート動画の低評価を表示する</string>
<string name="revanced_ryd_shorts_summary_on">"ショート動画の低評価は表示されます
<string name="revanced_ryd_video_likes_hidden_by_video_owner">非公開</string>
<string name="revanced_ryd_enabled_summary_on">低評価は表示されます</string>
<string name="revanced_ryd_enabled_summary_off">低評価は表示されません</string>
<string name="revanced_ryd_shorts_title">ショート動画の低評価を表示</string>
<string name="revanced_ryd_shorts_summary_on">"ショート動画の低評価は表示されます
制限事項: シークレット モードでは低評価が表示されない場合があります"</string>
<string name="revanced_ryd_shorts_summary_off">ショート動画の低評価は表示されません</string>
<string name="revanced_ryd_dislike_percentage_title">低評価をパーセントで表示する</string>
<string name="revanced_ryd_dislike_percentage_summary_on">低評価はパーセンテージで表示されます</string>
制限事項: シークレット モードでは低評価が表示されない場合があります"</string>
<string name="revanced_ryd_shorts_summary_off">ショート動画の低評価は表示されません</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>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button'. -->
<string name="revanced_ryd_compact_layout_title">コンパクトな高評価ボタン</string>
<string name="revanced_ryd_compact_layout_summary_on">コンパクトな高評価ボタンが表示されます</string>
<string name="revanced_ryd_compact_layout_summary_on">コンパクトな横幅の高評価ボタンが表示されます</string>
<string name="revanced_ryd_compact_layout_summary_off">通常の高評価ボタンが表示されます</string>
<string name="revanced_ryd_estimated_like_title">高評価の推定値を表示する</string>
<string name="revanced_ryd_estimated_like_summary_on">高評価が非公開の動画には推定値が表示されます</string>
<string name="revanced_ryd_estimated_like_title">高評価の推定値を表示</string>
<string name="revanced_ryd_estimated_like_summary_on">高評価が非公開の動画には推定値が表示されます</string>
<string name="revanced_ryd_estimated_like_summary_off">高評価の推定値は表示されません</string>
<string name="revanced_ryd_toast_on_connection_error_title">API 利用不可時にトーストを表示</string>
<string name="revanced_ryd_toast_on_connection_error_summary_on">Return YouTube Dislike が利用できない場合トーストが表示されます</string>
<string name="revanced_ryd_toast_on_connection_error_summary_off">Return YouTube Dislike が利用できない場合でも、トーストは表示されません</string>
<string name="revanced_ryd_toast_on_connection_error_summary_on">Return YouTube Dislike が利用できない場合トースト通知が表示されます</string>
<string name="revanced_ryd_toast_on_connection_error_summary_off">Return YouTube Dislike が利用できない場合トースト通知は表示されません</string>
<string name="revanced_ryd_attribution_summary">データは Return YouTube Dislike API によって提供されています。詳細は、ここをタップしてください</string>
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
<string name="revanced_ryd_statistics_category_title">このデバイスの Return YouTube Dislike API 統計情報</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeAverage_title">API 応答時間 (平均)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeMin_title">API 応答時間 (最小)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeMax_title">API 応答時間 (最大)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeLast_title">API 応答時間 (直近)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeLast_rate_limit_summary">低評価表示は一時的に利用できません - クライアント API のレート制限が原因です</string>
<string name="revanced_ryd_statistics_getFetchCallCount_title">API 投票取得 (呼び出し回数)</string>
<string name="revanced_ryd_statistics_getFetchCallCount_zero_summary">ネットワーク通信は行われていません</string>
<string name="revanced_ryd_statistics_getFetchCallCount_non_zero_summary">%d 回のネットワーク通信が行われました</string>
<string name="revanced_ryd_statistics_getFetchCallNumberOfFailures_title">API 投票取得 (タイムアウト回数)</string>
<string name="revanced_ryd_statistics_getFetchCallNumberOfFailures_zero_summary">ネットワーク通信はタイムアウトしていません</string>
<string name="revanced_ryd_statistics_getFetchCallNumberOfFailures_non_zero_summary">%d 回のネットワーク通信がタイムアウトしました</string>
<string name="revanced_ryd_statistics_category_title">このデバイスの ReturnYouTubeDislike API 統計情報</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeAverage_title">API 応答時間 (平均)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeMin_title">API 応答時間 (最小)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeMax_title">API 応答時間 (最大)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeLast_title">API 応答時間 (直近)</string>
<string name="revanced_ryd_statistics_getFetchCallResponseTimeLast_rate_limit_summary">低評価表示は一時的に利用できませんクライアント API のレート制限が原因です</string>
<string name="revanced_ryd_statistics_getFetchCallCount_title">API 投票取得 (呼び出し回数)</string>
<string name="revanced_ryd_statistics_getFetchCallCount_zero_summary">ネットワーク呼び出しは実行されていません</string>
<string name="revanced_ryd_statistics_getFetchCallCount_non_zero_summary">%d 回のネットワーク呼び出しが実行されました</string>
<string name="revanced_ryd_statistics_getFetchCallNumberOfFailures_title">API 投票取得 (タイムアウト回数)</string>
<string name="revanced_ryd_statistics_getFetchCallNumberOfFailures_zero_summary">ネットワーク呼び出しはタイムアウトしていません</string>
<string name="revanced_ryd_statistics_getFetchCallNumberOfFailures_non_zero_summary">%d 回のネットワーク呼び出しがタイムアウトしました</string>
<string name="revanced_ryd_statistics_getNumberOfRateLimitRequestsEncountered_title">API クライアントのレート制限</string>
<string name="revanced_ryd_statistics_getNumberOfRateLimitRequestsEncountered_zero_summary">クライアント レート制限は発生していません</string>
<string name="revanced_ryd_statistics_getNumberOfRateLimitRequestsEncountered_non_zero_summary">%d 回のクライアント レート制限が発生しました</string>
<string name="revanced_ryd_statistics_getNumberOfRateLimitRequestsEncountered_zero_summary">クライアントレート制限には遭遇していません</string>
<string name="revanced_ryd_statistics_getNumberOfRateLimitRequestsEncountered_non_zero_summary">クライアントレート制限に %d 回遭遇しました</string>
<string name="revanced_ryd_statistics_millisecond_text">%d ミリ秒</string>
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">
@@ -972,32 +972,32 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_wide_searchbar_summary_off">ワイド検索バーは無効です</string>
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
<string name="revanced_seekbar_thumbnails_high_quality_title">高画質サムネイルを有効にする</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_on">シークバーサムネイルは高画質です</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">シークバーサムネイルは中画質です</string>
<string name="revanced_seekbar_thumbnails_high_quality_title">高画質サムネイルを有効</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_on">シークバー サムネイルは高画質です</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">シークバー サムネイルは中画質です</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_on">プレーヤー画面全体表示のサムネイルは高画質です</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_off">プレーヤー画面全体表示のサムネイルは中画質です</string>
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">"この機能を有効にすると、シークバー サムネイルを保持していないライブ配信でもシークバー サムネイルが表示されるようになります。
シークバー サムネイルは、動画の再生中の画と同じ画質になります。
シークバー サムネイルは、再生中の画と同じ画質になります。
この機能は、非常に高速なインターネット接続を使用して 720P 以下の画質で動画を視聴する場合に最適です。"</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">古いシークバー サムネイルを復元</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">古いスタイルのシークバー サムネイルを復元</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">シーク中のサムネイルはシークバーの上に表示されます</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">シーク中のサムネイルはプレーヤー画面全体に表示されます</string>
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<string name="revanced_sb_enable_sb">SponsorBlock を有効にする</string>
<string name="revanced_sb_enable_sb_sum">SponsorBlock は、ユーザーからの情報提供により YouTube 動画のわずらわしい部分を定義してスキップする機能です</string>
<string name="revanced_sb_enable_sb">SponsorBlock を有効</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>
<string name="revanced_sb_enable_voting_sum_off">セグメントへの投票ボタンはプレーヤー オーバーレイに表示されません</string>
<string name="revanced_sb_square_layout">四角ボタンを使用する</string>
<string name="revanced_sb_enable_voting">投票ボタンを表示</string>
<string name="revanced_sb_enable_voting_sum_on">セグメントへの投票ボタンプレーヤー オーバーレイに表示されます</string>
<string name="revanced_sb_enable_voting_sum_off">セグメントへの投票ボタンはプレーヤー オーバーレイに表示されません</string>
<string name="revanced_sb_square_layout">四角ボタンを使用</string>
<string name="revanced_sb_square_layout_sum_on">ボタンとコントロールの角は直角です</string>
<string name="revanced_sb_square_layout_sum_off">ボタンとコントロールの角は丸角です</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title'. -->
<string name="revanced_sb_enable_compact_skip_button">コンパクトなスキップボタンを使用する</string>
<string name="revanced_sb_enable_compact_skip_button">コンパクトなスキップボタンを使用</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">コンパクトなスキップボタンが表示されます</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">通常のスキップボタンが表示されます</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">スキップボタンを自動的に非表示</string>
@@ -1005,11 +1005,11 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">スキップボタンは、セグメントの開始から終了まで表示されます</string>
<string name="revanced_sb_auto_hide_skip_button_duration">スキップボタンの表示時間</string>
<string name="revanced_sb_auto_hide_skip_button_duration_sum">自動非表示設定のスキップボタンと「ハイライトまでスキップ」ボタンが表示される時間の長さ</string>
<string name="revanced_sb_general_skiptoast">スキップ取り消しトーストを表示</string>
<string name="revanced_sb_general_skiptoast_sum_on">セグメントが自動的にスキップされたときトーストが表示されます。このトースト通知をタップすると、スキップ取り消されます</string>
<string name="revanced_sb_general_skiptoast_sum_off">セグメントが自動的にスキップされたときトーストは表示されません</string>
<string name="revanced_sb_general_skiptoast">自動スキップ時にトーストを表示</string>
<string name="revanced_sb_general_skiptoast_sum_on">セグメントが自動的にスキップされたときトースト通知が表示されます。このトースト通知をタップすると、スキップ取り消すことができます</string>
<string name="revanced_sb_general_skiptoast_sum_off">セグメントが自動的にスキップされたときトースト通知は表示されません。このトースト通知をタップすると、スキップを取り消すことができます</string>
<string name="revanced_sb_toast_on_skip_duration">スキップ トーストの表示時間</string>
<string name="revanced_sb_toast_on_skip_duration_sum">スキップ取り消しトーストが表示される時間の長さ</string>
<string name="revanced_sb_toast_on_skip_duration_sum">自動スキップ時にトースト通知が表示される時間の長さ</string>
<string name="revanced_sb_duration_1s">1 秒</string>
<string name="revanced_sb_duration_2s">2 秒</string>
<string name="revanced_sb_duration_3s">3 秒</string>
@@ -1023,11 +1023,11 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_general_time_without">セグメントを除いた再生時間を表示</string>
<string name="revanced_sb_general_time_without_sum_on">すべてのセグメントを除いた再生時間がシークバーに表示されます</string>
<string name="revanced_sb_general_time_without_sum_off">動画全体の再生時間のみがシークバーに表示されます</string>
<string name="revanced_sb_create_segment_category">セグメントの作成</string>
<string name="revanced_sb_create_segment_category">新しいセグメントの作成</string>
<string name="revanced_sb_enable_create_segment">セグメント作成ボタンを表示</string>
<string name="revanced_sb_enable_create_segment_sum_on">セグメント作成ボタンプレーヤー オーバーレイに表示されます</string>
<string name="revanced_sb_enable_create_segment_sum_on">セグメント作成ボタンプレーヤー オーバーレイに表示されます</string>
<string name="revanced_sb_enable_create_segment_sum_off">セグメント作成ボタンはプレーヤー オーバーレイに表示されません</string>
<string name="revanced_sb_general_adjusting">セグメントの時間調整幅</string>
<string name="revanced_sb_general_adjusting">セグメントの位置調整幅</string>
<string name="revanced_sb_general_adjusting_sum">セグメント作成メニュー内の早送り / 巻き戻しボタンで移動する時間 (ミリ秒)</string>
<string name="revanced_sb_general_adjusting_invalid">値は正の整数でなければなりません</string>
<string name="revanced_sb_guidelines_preference_title">ガイドラインを見る</string>
@@ -1037,15 +1037,15 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_guidelines_popup_already_read">既読</string>
<string name="revanced_sb_guidelines_popup_open">表示する</string>
<string name="revanced_sb_general">その他</string>
<string name="revanced_sb_toast_on_connection_error_title">API 利用不可時にトーストを表示する</string>
<string name="revanced_sb_toast_on_connection_error_summary_on">SponsorBlock が利用できない場合は、トーストが表示されます</string>
<string name="revanced_sb_toast_on_connection_error_summary_off">SponsorBlock が利用できない場合でも、トーストは表示されません</string>
<string name="revanced_sb_general_skipcount">スキップデータを送信する</string>
<string name="revanced_sb_toast_on_connection_error_title">API 利用不可時にトーストを表示</string>
<string name="revanced_sb_toast_on_connection_error_summary_on">SponsorBlock が利用できない場合トースト通知が表示されます</string>
<string name="revanced_sb_toast_on_connection_error_summary_off">SponsorBlock が利用できない場合トースト通知は表示されません</string>
<string name="revanced_sb_general_skipcount">スキップデータの収集を有効化</string>
<string name="revanced_sb_general_skipcount_sum_on">SponsorBlock リーダーボード にスキップによって節約した時間を送信します。セグメントをスキップする度にデータが送信されます</string>
<string name="revanced_sb_general_skipcount_sum_off">スキップデータは送信されません</string>
<string name="revanced_sb_general_skipcount_sum_off">スキップデータの収集は無効です</string>
<string name="revanced_sb_general_min_duration">セグメントの長さのしきい値</string>
<string name="revanced_sb_general_min_duration_sum">この値 (秒) よりも短い時間のセグメントは、スキップもプレーヤーに表示もされません</string>
<string name="revanced_sb_general_min_duration_invalid">時間の値が無効です</string>
<string name="revanced_sb_general_min_duration_invalid">時間 (長さ) の値が無効です</string>
<string name="revanced_sb_general_uuid">非公開ユーザー ID</string>
<string name="revanced_sb_general_uuid_sum">この ID は公開すべきではありません。パスワードのようなものであり、誰とも共有すべきではありません。もし誰かがこの ID を手に入れた場合、あなたになりすますことができます</string>
<string name="revanced_sb_general_uuid_invalid">非公開ユーザー ID は 30 文字以上必要です</string>
@@ -1061,9 +1061,11 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_settings_import_successful">設定のインポートに成功しました</string>
<string name="revanced_sb_settings_import_failed">インポートに失敗しました: %s</string>
<string name="revanced_sb_settings_export_failed">エクスポートに失敗しました: %s</string>
<string name="revanced_sb_settings_revanced_export_user_id_warning">"設定には、SponsorBlock の非公開ユーザー ID が含まれています。この ID はパスワードのようなものであり、決して共有すべきではありません。"</string>
<string name="revanced_sb_settings_revanced_export_user_id_warning">"設定には、SponsorBlock の非公開ユーザー ID が含まれています。
このユーザー ID は、パスワードのようなものであり、決して共有すべきではありません。"</string>
<string name="revanced_sb_settings_revanced_export_user_id_warning_dismiss">今後表示しない</string>
<string name="revanced_sb_diff_segments">セグメントの挙動を変更</string>
<string name="revanced_sb_diff_segments">セグメントに対する動作を変更</string>
<string name="revanced_sb_segments_sponsor">スポンサー</string>
<string name="revanced_sb_segments_sponsor_sum">有料の宣伝 、有料の紹介、直接的な広告。自己宣伝や好意をもって行う、慈善活動、クリエーター、ウェブサイト、製品などの無償の紹介は含まれません</string>
<string name="revanced_sb_segments_selfpromo">無報酬の宣伝 / 自己宣伝</string>
@@ -1073,15 +1075,17 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_segments_highlight">ハイライト</string>
<string name="revanced_sb_segments_highlight_sum">動画の中で最も重要な場面</string>
<string name="revanced_sb_segments_intro">幕間 / オープニング</string>
<string name="revanced_sb_segments_intro_sum">実際のコンテンツを含まない区間。このカテゴリーは、一時停止、静止画、繰り返しアニメーションなどを含みます。情報を含むトランジッション (場面転換) は含まれません</string>
<string name="revanced_sb_segments_intro_sum">実際のコンテンツを含まない区間。一時停止、静止画、繰り返しアニメーションなど。情報を含むトランジッション (場面転換) は、このカテゴリーではありません</string>
<string name="revanced_sb_segments_outro">終了画面 / クレジット</string>
<string name="revanced_sb_segments_outro_sum">クレジット、または YouTube の終了画面が表示される場面。情報を含む結論、まとめ部分は、このカテゴリーには含まれません</string>
<string name="revanced_sb_segments_preview">予告編 / 総集編 / フック</string>
<string name="revanced_sb_segments_hook">フック / あいさつ</string>
<string name="revanced_sb_segments_hook_sum">今後の動画のナレーション付きの予告編、および開幕と別れのあいさつ。重複しない内容や情報を追加する場面は含まれません</string>
<string name="revanced_sb_segments_preview">予告編 / 総集編</string>
<string name="revanced_sb_segments_preview_sum">その動画またはシリーズ内の他の動画で過去に起きたこと、または今後起こることを示すクリップのコレクション。このクリップ群に含まれるすべての情報は、同じ動画の他の部分や他の動画で繰り返されます</string>
<string name="revanced_sb_segments_filler">尺稼ぎの余談 / 冗談</string>
<string name="revanced_sb_segments_filler_sum">動画の本筋を理解するために必要のない、尺稼ぎやユーモアのみを目的として追加された脱線的な場面。コンテキストや背景情報を提供する場面は、このカテゴリーに含まれません</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>
@@ -1092,6 +1096,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_skip_button_intro_middle">幕間をスキップ</string>
<string name="revanced_sb_skip_button_intro_end">幕間をスキップ</string>
<string name="revanced_sb_skip_button_outro">エンディングをスキップ</string>
<string name="revanced_sb_skip_button_hook">フックをスキップ</string>
<string name="revanced_sb_skip_button_preview_beginning">予告編をスキップ</string>
<string name="revanced_sb_skip_button_preview_middle">予告編をスキップ</string>
<string name="revanced_sb_skip_button_preview_end">総集編をスキップ</string>
@@ -1106,6 +1111,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_skipped_intro_middle">幕間をスキップしました</string>
<string name="revanced_sb_skipped_intro_end">幕間をスキップしました</string>
<string name="revanced_sb_skipped_outro">エンディングをスキップしました</string>
<string name="revanced_sb_skipped_hook">フックをスキップしました</string>
<string name="revanced_sb_skipped_preview_beginning">予告編をスキップしました</string>
<string name="revanced_sb_skipped_preview_middle">予告編をスキップしました</string>
<string name="revanced_sb_skipped_preview_end">総集編をスキップしました</string>
@@ -1120,7 +1126,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_skip_ignore">無効</string>
<string name="revanced_sb_submit_failed_invalid">セグメントの送信に失敗しました: %s</string>
<string name="revanced_sb_submit_failed_timeout">SponsorBlock は一時的にダウンしています</string>
<string name="revanced_sb_submit_failed_unknown_error">セグメントの送信に失敗しました (ステータス: %1$d %2$s)</string>
<string name="revanced_sb_submit_failed_unknown_error">セグメントの送信に失敗しました (status: %1$d %2$s)</string>
<string name="revanced_sb_submit_failed_rate_limit">セグメントの送信に失敗しました (レート制限: 同じユーザー / IP からの通信が多すぎます)</string>
<string name="revanced_sb_submit_failed_forbidden">セグメントを送信できません: %s</string>
<string name="revanced_sb_submit_failed_duplicate">"セグメントを送信できません。
@@ -1128,27 +1134,27 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_submit_succeeded">セグメントの送信に成功しました</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. -->
<string name="revanced_sb_sponsorblock_connection_failure_timeout">SponsorBlock は一時的に利用できません (API タイムアウト)</string>
<string name="revanced_sb_sponsorblock_connection_failure_status">SponsorBlock は一時的に利用できません (ステータス %d)</string>
<string name="revanced_sb_sponsorblock_connection_failure_status">SponsorBlock は一時的に利用できません (status %d)</string>
<string name="revanced_sb_sponsorblock_connection_failure_generic">SponsorBlock は一時的に利用できません</string>
<string name="revanced_sb_vote_failed_timeout">セグメントへの投票に失敗しました (API タイムアウト)</string>
<string name="revanced_sb_vote_failed_unknown_error">セグメントへの投票に失敗しました (ステータス: %1$d %2$s)</string>
<string name="revanced_sb_vote_failed_unknown_error">セグメントへの投票に失敗しました (status: %1$d %2$s)</string>
<string name="revanced_sb_vote_failed_forbidden">セグメントへの投票に失敗しました: %s</string>
<string name="revanced_sb_vote_upvote">高評価</string>
<string name="revanced_sb_vote_downvote">低評価</string>
<string name="revanced_sb_vote_category">カテゴリーの変更</string>
<string name="revanced_sb_vote_no_segments">投票できるセグメントがありません</string>
<string name="revanced_sb_vote_no_segments">投票先のセグメントが指定されていません</string>
<!-- A segment start and end time, such as "02:10 to 03:40". -->
<string name="revanced_sb_vote_segment_time_to_from">%1$s %2$s</string>
<string name="revanced_sb_new_segment_choose_category">セグメントのカテゴリーを選択してください</string>
<string name="revanced_sb_new_segment_disabled_category">カテゴリーが設定で無効になっています。送信するには、カテゴリーを有効にしてください。</string>
<string name="revanced_sb_new_segment_title">セグメント作成</string>
<string name="revanced_sb_new_segment_mark_time_as_question">%s を新しいセグメントの開始時間 / 終了時間に設定しますか?</string>
<string name="revanced_sb_new_segment_mark_start">開始</string>
<string name="revanced_sb_new_segment_mark_end">終了</string>
<string name="revanced_sb_new_segment_now">現在</string>
<string name="revanced_sb_new_segment_time_start">セグメントの開始時間</string>
<string name="revanced_sb_new_segment_time_end">セグメントの終了時間</string>
<string name="revanced_sb_new_segment_confirm_title">時間は正確ですか?</string>
<string name="revanced_sb_new_segment_disabled_category">カテゴリーが設定で無効になっています。送信するには、このカテゴリーを有効にしてください。</string>
<string name="revanced_sb_new_segment_title">新しいセグメント</string>
<string name="revanced_sb_new_segment_mark_time_as_question">%s を新しいセグメント (SponsorBlock) の開始位置 / 終了位置に設定しますか?</string>
<string name="revanced_sb_new_segment_mark_start">開始位置</string>
<string name="revanced_sb_new_segment_mark_end">終了位置</string>
<string name="revanced_sb_new_segment_now">現在の再生位置</string>
<string name="revanced_sb_new_segment_time_start">セグメントの開始位置</string>
<string name="revanced_sb_new_segment_time_end">セグメントの終了位置</string>
<string name="revanced_sb_new_segment_confirm_title">範囲は正確ですか?</string>
<string name="revanced_sb_new_segment_confirm_content">"セグメントの範囲:
%1$s
@@ -1158,12 +1164,12 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
(%3$s)
送信しますか?"</string>
<string name="revanced_sb_new_segment_start_is_before_end">開始時間は終了時間より前でなければなりません</string>
<string name="revanced_sb_new_segment_mark_locations_first">開始時間と終了時間を設定してください</string>
<string name="revanced_sb_new_segment_preview_segment_first">セグメントをプレビューしてスムーズにスキップすることを確認してください</string>
<string name="revanced_sb_new_segment_start_is_before_end">開始位置を終了位置よりも前にしてください</string>
<string name="revanced_sb_new_segment_mark_locations_first">先に開始位置と終了位置を設定してください</string>
<string name="revanced_sb_new_segment_preview_segment_first">セグメントをテストしてスムーズにスキップすることを確認してください</string>
<string name="revanced_sb_new_segment_edit_by_hand_title">セグメントの範囲を手動で編集</string>
<string name="revanced_sb_new_segment_edit_by_hand_content">セグメントの開始時間または終了時間を編集しますか?</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">時間の値が無効です</string>
<string name="revanced_sb_new_segment_edit_by_hand_content">セグメントの開始位置または終了位置を編集しますか?</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">時間 (位置) の値が無効です</string>
<string name="revanced_sb_stats_title">統計</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">統計情報は一時的に利用できません (API がダウンしています)</string>
@@ -1171,7 +1177,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に
<string name="revanced_sb_stats_sb_disabled">SponsorBlock は無効です</string>
<string name="revanced_sb_stats_username">ユーザー名: &lt;b&gt;%s&lt;/b&gt;</string>
<string name="revanced_sb_stats_username_change">ユーザー名を変更するには、ここをタップしてください</string>
<string name="revanced_sb_stats_username_change_unknown_error">ユーザー名の変更に失敗しました (ステータス: %1$d %2$s)</string>
<string name="revanced_sb_stats_username_change_unknown_error">ユーザー名の変更に失敗しました (status: %1$d %2$s)</string>
<string name="revanced_sb_stats_username_changed">ユーザー名の変更に成功しました</string>
<string name="revanced_sb_stats_reputation">あなたの評価は &lt;b&gt;%.2f&lt;/b&gt; です</string>
<string name="revanced_sb_stats_submissions">合計で &lt;b&gt;%s&lt;/b&gt; 個のセグメントを作成しました</string>
@@ -1324,13 +1330,13 @@ Automotive レイアウト
<string name="revanced_splash_screen_animation_style_title">スプラッシュ画面のスタイル</string>
<string name="revanced_splash_screen_animation_style_entry_1">カラー</string>
<string name="revanced_splash_screen_animation_style_entry_2">白黒</string>
<string name="revanced_seekbar_custom_color_title">編集したシークバーの色を使用する</string>
<string name="revanced_seekbar_custom_color_summary_on">編集したシークバーの色が表示されます</string>
<string name="revanced_seekbar_custom_color_summary_off">デフォルトのシークバーの色表示されます</string>
<string name="revanced_seekbar_custom_color_title">編集したシークバーの色を有効化</string>
<string name="revanced_seekbar_custom_color_summary_on">シークバーは編集した色で表示されます</string>
<string name="revanced_seekbar_custom_color_summary_off">シークバーはデフォルトの色表示されます</string>
<string name="revanced_seekbar_custom_color_primary_title">シークバーの色</string>
<string name="revanced_seekbar_custom_color_primary_summary">シークバーの色の値を編集します</string>
<string name="revanced_seekbar_custom_color_primary_summary">シークバーの色を編集します</string>
<string name="revanced_seekbar_custom_color_accent_title">シークバーのアクセント カラー</string>
<string name="revanced_seekbar_custom_color_accent_summary">シークバーのアクセントカラーの値を編集します</string>
<string name="revanced_seekbar_custom_color_accent_summary">シークバーのアクセントカラーを編集します</string>
<string name="revanced_seekbar_custom_color_invalid">シークバーの色の値が無効です</string>
</patch>
<patch id="layout.branding.changeHeaderPatch">
@@ -1379,7 +1385,7 @@ Automotive レイアウト
<string name="revanced_alt_thumbnail_stills_time_entry_2">動画の中盤</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">動画の終盤</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_alt_thumbnail_dearrow_error">DeArrow は一時的に利用できません (ステータス コード: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error">DeArrow は一時的に利用できません (status code: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow は一時的に利用できません</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
@@ -1421,9 +1427,9 @@ Automotive レイアウト
<string name="revanced_disable_haptic_feedback_chapters_title">チャプターの触覚フィードバックを無効にする</string>
<string name="revanced_disable_haptic_feedback_chapters_summary_on">チャプターの触覚フィードバックは無効です</string>
<string name="revanced_disable_haptic_feedback_chapters_summary_off">チャプターの触覚フィードバックは有効です</string>
<string name="revanced_disable_haptic_feedback_precise_seeking_title">精密シークモードの触覚フィードバックを無効にする</string>
<string name="revanced_disable_haptic_feedback_precise_seeking_summary_on">精密シークモードの触覚フィードバックは無効です</string>
<string name="revanced_disable_haptic_feedback_precise_seeking_summary_off">精密シークモードの触覚フィードバックは有効です</string>
<string name="revanced_disable_haptic_feedback_precise_seeking_title">精密シークの触覚フィードバックを無効</string>
<string name="revanced_disable_haptic_feedback_precise_seeking_summary_on">精密シークの触覚フィードバックは無効です</string>
<string name="revanced_disable_haptic_feedback_precise_seeking_summary_off">精密シークの触覚フィードバックは有効です</string>
<string name="revanced_disable_haptic_feedback_seek_undo_title">シーク取り消しの触覚フィードバックを無効にする</string>
<string name="revanced_disable_haptic_feedback_seek_undo_summary_on">シーク取り消しの触覚フィードバックは無効です</string>
<string name="revanced_disable_haptic_feedback_seek_undo_summary_off">シーク取り消しの触覚フィードバックは有効です</string>
@@ -1451,8 +1457,8 @@ Automotive レイアウト
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">オリジナルの音声を強制的に使用</string>
<string name="revanced_force_original_audio_summary_on">オリジナルの音声トラック (言語) を使用します</string>
<string name="revanced_force_original_audio_summary_off">アプリが選択した音声トラック (言語) を使用します</string>
<string name="revanced_force_original_audio_summary_on">オリジナルの音声トラック (言語) を使用します\n\nオートダビングを含む吹き替えの音声トラックは使用しません</string>
<string name="revanced_force_original_audio_summary_off">アプリが選択した音声トラック (言語) を使用します\n\nオートダビングを含む吹き替えの音声トラックを使用する場合があります</string>
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
<string name="revanced_force_original_audio_not_available">この機能を使用するには、「動画ストリームを偽装」のクライアントを iOS TV に変更してください</string>
</patch>
@@ -1523,9 +1529,9 @@ Automotive レイアウト
<string name="revanced_advanced_video_quality_menu_summary_off">通常の画質メニューが表示されます</string>
</patch>
<patch id="interaction.seekbar.enableSlideToSeekPatch">
<string name="revanced_slide_to_seek_title">スライドしてシークする機能を有効にする</string>
<string name="revanced_slide_to_seek_summary_on">スライドしてシークする機能が有効になっています</string>
<string name="revanced_slide_to_seek_summary_off">スライドしてシークする機能は無効になっています</string>
<string name="revanced_slide_to_seek_title">スライドによるシークを有効化</string>
<string name="revanced_slide_to_seek_summary_on">スライドによるシークは有効です。プレーヤー画面を左右にスライドすると、前後にシークします</string>
<string name="revanced_slide_to_seek_summary_off">スライドによるシークは無効です。プレーヤー画面を左右にスライドしても、前後にシークしません</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_title">動画ストリームを偽装</string>

View File

@@ -158,9 +158,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_compact_banner_title">소형 배너 숨기기</string>
<string name="revanced_hide_compact_banner_summary_on">소형 배너가 숨겨집니다</string>
<string name="revanced_hide_compact_banner_summary_off">소형 배너가 표시됩니다</string>
<string name="revanced_hide_crowdfunding_box_title">크라우드 펀딩 박스 숨기기</string>
<string name="revanced_hide_crowdfunding_box_summary_on">플레이어 하단에서 크라우드 펀딩 박스가 숨겨집니다</string>
<string name="revanced_hide_crowdfunding_box_summary_off">플레이어 하단에서 크라우드 펀딩 박스가 표시됩니다</string>
<string name="revanced_hide_crowdfunding_box_title">모금 행사 패널 숨기기</string>
<string name="revanced_hide_crowdfunding_box_summary_on">모금 행사 패널이 숨겨집니다</string>
<string name="revanced_hide_crowdfunding_box_summary_off">모금 행사 패널이 표시됩니다</string>
<string name="revanced_hide_expandable_card_title">펼쳐볼 수 있는 정보 숨기기</string>
<string name="revanced_hide_expandable_card_summary_on">썸네일 하단에서 다음 정보들이 숨겨집니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품, etc.</string>
<string name="revanced_hide_expandable_card_summary_off">썸네일 하단에서 다음 정보들이 표시됩니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품, etc.</string>
@@ -196,9 +196,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<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>
<string name="revanced_hide_playables_title">Playables(게임 룸) 선반 숨기기</string>
<string name="revanced_hide_playables_summary_on">게임 룸 선반이 숨겨집니다</string>
<string name="revanced_hide_playables_summary_off">게임 룸 선반이 표시됩니다</string>
<string name="revanced_hide_playables_title">게임 룸 숨기기</string>
<string name="revanced_hide_playables_summary_on">게임 룸이 숨겨집니다</string>
<string name="revanced_hide_playables_summary_off">게임 룸이 표시됩니다</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<string name="revanced_hide_show_more_button_title">\'자세히 보기\' 버튼 숨기기</string>
@@ -402,7 +402,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_fullscreen_ads_title">전체 화면 광고 숨기기</string>
<string name="revanced_hide_fullscreen_ads_summary_on">"전체 화면 광고가 숨겨집니다
설정은 구형 기기에서만 사용할 수 있습니다"</string>
기능은 구형 기기에서만 사용할 수 있습니다"</string>
<string name="revanced_hide_fullscreen_ads_summary_off">전체 화면 광고가 표시됩니다</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_fullscreen_ads_feature_not_available_toast">\'전체 화면 광고 숨기기\'는 구형 기기에서만 사용할 수 있습니다</string>
@@ -450,8 +450,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
<string name="revanced_remove_viewer_discretion_dialog_title">시청 경고 다이얼로그 삭제하기</string>
<string name="revanced_remove_viewer_discretion_dialog_summary_on">다음 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 삭제합니다:\n• 연령 제한 동영상\n• 자살 또는 자해와 관련된 동영상, etc.</string>
<string name="revanced_remove_viewer_discretion_dialog_summary_off">다음 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 삭제하지 않습니다:\n• 연령 제한 동영상\n• 자살 또는 자해와 관련된 동영상, etc.</string>
<string name="revanced_remove_viewer_discretion_dialog_summary_on">일부 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 삭제합니다</string>
<string name="revanced_remove_viewer_discretion_dialog_summary_off">일부 동영상을 시청하기 전에 표시되는 시청 경고 다이얼로그를 삭제하지 않습니다</string>
<string name="revanced_remove_viewer_discretion_dialog_user_dialog_message">이 설정은 다이얼로그를 자동으로 허용하기만 하며 연령 제한(성인인증 절차)을 우회할 수 없습니다.</string>
</patch>
<patch id="layout.hide.signintotv.disableSignInToTvPopupPatch">
@@ -701,7 +701,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
<string name="revanced_hide_player_flyout_audio_track_not_available">"오디오 트랙 메뉴가 숨겨집니다
오디오 트랙 메뉴를 표시하려면 '스트리밍 데이터 변경하기'에서 기본 클라이언트를 iOS TV로 변경하세요"</string>
오디오 트랙 메뉴를 표시하려면, '동영상 스트림 변경하기'에서 기본 클라이언트를 iOS TV로 변경하세요"</string>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_watch_in_vr_title">VR로 보기 메뉴 숨기기</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_on">VR로 보기 메뉴가 숨겨집니다</string>
@@ -775,8 +775,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_shorts_subscriptions_summary_on">구독 피드에서 숨겨집니다</string>
<string name="revanced_hide_shorts_subscriptions_summary_off">구독 피드에서 표시됩니다</string>
<string name="revanced_hide_shorts_history_title">시청 기록에서 Shorts 숨기기</string>
<string name="revanced_hide_shorts_history_summary_on">시청 기록에서 Shorts가 숨겨집니다</string>
<string name="revanced_hide_shorts_history_summary_off">시청 기록에서 Shorts가 표시됩니다</string>
<string name="revanced_hide_shorts_history_summary_on">시청 기록에서 숨겨집니다</string>
<string name="revanced_hide_shorts_history_summary_off">시청 기록에서 표시됩니다</string>
<string name="revanced_hide_shorts_super_thanks_button_title">Super Thanks 구매 버튼 숨기기</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_on">Super Thanks 구매 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_off">Super Thanks 구매 버튼이 표시됩니다</string>
@@ -823,15 +823,15 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_shorts_tagged_products_title">태그된 제품 숨기기</string>
<string name="revanced_hide_shorts_tagged_products_summary_on">태그된 제품이 숨겨집니다</string>
<string name="revanced_hide_shorts_tagged_products_summary_off">태그된 제품이 표시됩니다</string>
<string name="revanced_hide_shorts_upcoming_button_title">예정 버튼 숨기기</string>
<string name="revanced_hide_shorts_upcoming_button_summary_on">예정 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_upcoming_button_summary_off">예정 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_use_sound_button_title">\'이 사운드 사용\' 버튼 숨기기</string>
<string name="revanced_hide_shorts_use_sound_button_summary_on">\'이 사운드 사용\' 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_use_sound_button_summary_off">\'이 사운드 사용\' 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_use_template_button_title">\'이 템플릿 사용\' 버튼 숨기기</string>
<string name="revanced_hide_shorts_use_template_button_summary_on">\'이 템플릿 사용\' 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_use_template_button_summary_off">\'이 템플릿 사용\' 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_upcoming_button_title">예정된 라이브 버튼 숨기기</string>
<string name="revanced_hide_shorts_upcoming_button_summary_on">예정된 라이브 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_upcoming_button_summary_off">예정된 라이브 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_use_sound_button_title">이 사운드 사용 버튼 숨기기</string>
<string name="revanced_hide_shorts_use_sound_button_summary_on">이 사운드 사용 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_use_sound_button_summary_off">이 사운드 사용 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_use_template_button_title">템플릿 사용 버튼 숨기기</string>
<string name="revanced_hide_shorts_use_template_button_summary_on">템플릿 사용 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_use_template_button_summary_off">템플릿 사용 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_like_fountain_title">좋아요 버튼 애니메이션을 비활성화하기</string>
<string name="revanced_hide_shorts_like_fountain_summary_on">좋아요 버튼 상단에 표시되는 애니메이션을 비활성화합니다</string>
<string name="revanced_hide_shorts_like_fountain_summary_off">좋아요 버튼 상단에 표시되는 애니메이션을 활성화합니다</string>
@@ -975,11 +975,11 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">일반 화질 재생바 썸네일을 활성화합니다</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_on">전체 화면 고화질 재생바 썸네일을 활성화합니다</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_off">전체 화면 일반 화질 재생바 썸네일을 활성화합니다</string>
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">"이 설정을 활성화하면 재생바 썸네일이 없는 실시간 스트림의 썸네일도 복원됩니다.
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">"이 기능을 활성화하면 재생바 썸네일이 없는 실시간 스트림의 썸네일도 복원됩니다.
재생바 썸네일에는 현재 동영상과 동일한 화질 값이 사용됩니다.
설정은 동영상 화질 값이 720p 이하이고 인터넷 연결 상태가 매우 빠를 때 가장 잘 작동합니다."</string>
기능은 동영상 화질 값이 720p 이하이고 인터넷 연결 상태가 매우 빠를 때 가장 잘 작동합니다."</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">이전 재생바 썸네일 복원하기</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">재생바 상단에서 최소화된 썸네일을 표시합니다</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">플레이어에서 전체 화면으로 된 썸네일을 표시합니다</string>
@@ -1076,10 +1076,12 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_sb_segments_intro_sum">아무 내용도 없는 구간입니다. 애니메이션이나 정적 프레임과 같은 내용을 포함하고 있습니다</string>
<string name="revanced_sb_segments_outro">최종 화면 / 크레딧</string>
<string name="revanced_sb_segments_outro_sum">엔딩 크레딧이나 최종 화면이 나타나는 구간입니다</string>
<string name="revanced_sb_segments_preview">미리 보기 / 요약 / 흥미 유발</string>
<string name="revanced_sb_segments_hook">흥미 유발 / 인사말</string>
<string name="revanced_sb_segments_hook_sum">예정 동영상, 인사말 그리고 마무리 인사말에 대한 내레이션 트레일러 구간입니다. 추가 콘텐츠를 포함하는 부분은 제외됩니다</string>
<string name="revanced_sb_segments_preview">미리 보기 / 요약</string>
<string name="revanced_sb_segments_preview_sum">이전 에피소드를 간략히 요약하거나 현재 동영상의 하이라이트를 미리 보여줍니다</string>
<string name="revanced_sb_segments_filler">주제와 관련 없는 구간</string>
<string name="revanced_sb_segments_filler_sum">전반적인 동영상의 주제를 이해하는 데 필요 없는 내용을 포함하고 있습니다</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_skip_button_compact">건너뛰기</string>
@@ -1092,6 +1094,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_sb_skip_button_intro_middle">무음 구간 건너뛰기</string>
<string name="revanced_sb_skip_button_intro_end">무음 구간 건너뛰기</string>
<string name="revanced_sb_skip_button_outro">최종 화면 건너뛰기</string>
<string name="revanced_sb_skip_button_hook">흥미 유발 건너뛰기</string>
<string name="revanced_sb_skip_button_preview_beginning">미리 보기 건너뛰기</string>
<string name="revanced_sb_skip_button_preview_middle">미리 보기 건너뛰기</string>
<string name="revanced_sb_skip_button_preview_end">요약 건너뛰기</string>
@@ -1106,6 +1109,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_sb_skipped_intro_middle">무음 구간을 건너뛰었습니다</string>
<string name="revanced_sb_skipped_intro_end">무음 구간을 건너뛰었습니다</string>
<string name="revanced_sb_skipped_outro">최종 화면을 건너뛰었습니다</string>
<string name="revanced_sb_skipped_hook">흥미 유발 구간을 건너뛰었습니다</string>
<string name="revanced_sb_skipped_preview_beginning">미리 보기를 건너뛰었습니다</string>
<string name="revanced_sb_skipped_preview_middle">미리 보기를 건너뛰었습니다</string>
<string name="revanced_sb_skipped_preview_end">요약을 건너뛰었습니다</string>
@@ -1214,7 +1218,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
이 경우 앱 레이아웃과 기능이 변경되지만 알려지지 않은 부작용이 발생할 수 있습니다.
나중에 이 설정을 비활성화하면 앱 레이아웃 버그를 방지하기 위해 앱 데이터를 지우는 것이 좋습니다."</string>
나중에 이 기능을 비활성화하면 앱 레이아웃 버그를 방지하기 위해 앱 데이터를 지우는 것이 좋습니다."</string>
<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.01.34 - 이전 하단바 아이콘을 복원합니다</string>
@@ -1352,7 +1356,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_bypass_image_region_restrictions_summary_on">이미지 호스트로 yt4.ggpht.com를 사용합니다</string>
<string name="revanced_bypass_image_region_restrictions_summary_off">"기본 이미지 호스트를 사용합니다
설정을 활성화하면 일부 국가에서 차단된 이미지를 수신할 수 있습니다"</string>
기능을 활성화하면 일부 국가에서 차단된 이미지를 수신할 수 있습니다"</string>
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
@@ -1361,7 +1365,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_alt_thumbnail_subscription_title">구독 탭</string>
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (Library) tab. -->
<string name="revanced_alt_thumbnail_library_title">내 페이지 탭</string>
<string name="revanced_alt_thumbnail_player_title">플레이어: 재생목록, 관련 동영상, etc.</string>
<string name="revanced_alt_thumbnail_player_title">플레이어 재생목록 &amp; 추천 동영상</string>
<string name="revanced_alt_thumbnail_search_title">검색 결과</string>
<string name="revanced_alt_thumbnail_options_entry_1">원본 썸네일</string>
<string name="revanced_alt_thumbnail_options_entry_2">DeArrow &amp; 원본 썸네일</string>
@@ -1461,7 +1465,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요"</string>
<string name="revanced_force_original_audio_summary_on">원본 오디오 스트림 언어를 사용 중입니다</string>
<string name="revanced_force_original_audio_summary_off">기본 오디오 스트림 언어를 사용 중입니다</string>
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
<string name="revanced_force_original_audio_not_available">설정을 사용하려면, \'스트리밍 데이터 변경하기\' 설정에서 기본 클라이언트를 iOS TV로 변경하세요</string>
<string name="revanced_force_original_audio_not_available">기능을 사용하려면, \'동영상 스트림 변경하기\'에서 기본 클라이언트를 iOS TV로 변경하세요</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as 'revanced_custom_playback_speeds_auto'. -->
@@ -1535,11 +1539,11 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요"</string>
<string name="revanced_slide_to_seek_summary_off">슬라이드하여 탐색을 비활성화합니다</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_title">스트리밍 데이터 변경하기</string>
<string name="revanced_spoof_video_streams_screen_summary">스트리밍 데이터를 변경하여 재생 문제를 방지할 수 있습니다</string>
<string name="revanced_spoof_video_streams_title">스트리밍 데이터 변경하기</string>
<string name="revanced_spoof_video_streams_summary_on">스트리밍 데이터를 변경합니다</string>
<string name="revanced_spoof_video_streams_summary_off">"스트리밍 데이터를 변경하지 않습니다
<string name="revanced_spoof_video_streams_screen_title">동영상 스트림 변경하기</string>
<string name="revanced_spoof_video_streams_screen_summary">클라이언트 동영상 스트림을 변경하여 재생 문제를 방지할 수 있습니다</string>
<string name="revanced_spoof_video_streams_title">동영상 스트림 변경하기</string>
<string name="revanced_spoof_video_streams_summary_on">동영상 스트림을 변경합니다</string>
<string name="revanced_spoof_video_streams_summary_off">"동영상 스트림을 변경하지 않습니다
동영상 재생 문제가 발생할 수 있습니다"</string>
<string name="revanced_spoof_video_streams_user_dialog_message">이 설정을 비활성화하면 동영상 재생 문제가 발생할 수 있습니다.</string>
<string name="revanced_spoof_video_streams_client_type_title">기본 클라이언트</string>
@@ -1560,8 +1564,8 @@ AVC의 최대 화질 값은 1080p이고, OPUS 코덱을 사용불가 및 HDR 동
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 코덱이 지원되지 않습니다</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Kids 동영상은 로그인을 하지 않았거나 시크릿 모드에서는 재생되지 않을 수 있습니다</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_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>

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