Compare commits

...

27 Commits

Author SHA1 Message Date
semantic-release-bot
2d928e0cd6 chore: Release v5.42.2-dev.1 [skip ci]
## [5.42.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.1...v5.42.2-dev.1) (2025-10-09)

### Bug Fixes

* **Instagram - Change sharing domain:** Display patch option ([#6089](https://github.com/ReVanced/revanced-patches/issues/6089)) ([be2b144](be2b144cc9))
2025-10-09 08:03:53 +00:00
brosssh
be2b144cc9 fix(Instagram - Change sharing domain): Display patch option (#6089) 2025-10-09 10:00:17 +02:00
semantic-release-bot
52c0bb6aa2 chore: Release v5.42.1 [skip ci]
## [5.42.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.0...v5.42.1) (2025-10-08)

### Bug Fixes

* **YouTube - Custom Branding:** Resolve startup crash with root installation ([fd4b2e1](fd4b2e1bb9))
2025-10-08 07:47:41 +00:00
LisoUseInAIKyrios
38a49cc2a1 chore: Merge branch dev to main (#6080) 2025-10-08 11:44:39 +04:00
semantic-release-bot
91044b3a50 chore: Release v5.42.1-dev.1 [skip ci]
## [5.42.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.0...v5.42.1-dev.1) (2025-10-08)

### Bug Fixes

* **YouTube - Custom Branding:** Resolve startup crash with root installation ([fd4b2e1](fd4b2e1bb9))
2025-10-08 07:42:49 +00:00
LisoUseInAIKyrios
fd4b2e1bb9 fix(YouTube - Custom Branding): Resolve startup crash with root installation 2025-10-08 11:39:48 +04:00
semantic-release-bot
d0f20c8c7f chore: Release v5.42.0 [skip ci]
# [5.42.0](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.42.0) (2025-10-08)

### Bug Fixes

* **Custom branding:** Update ReVanced logo ([#6049](https://github.com/ReVanced/revanced-patches/issues/6049)) ([9441e7a](9441e7acb4))
* **Custom branding:** Update ReVanced logo sizing ([#6029](https://github.com/ReVanced/revanced-patches/issues/6029)) ([ae4b947](ae4b9474d3))
* **Instagram - Hide navigation buttons:** Resolve app startup crash ([080a226](080a226614))
* **Spotify:** Change `Hide Create button` patch to default off ([#6067](https://github.com/ReVanced/revanced-patches/issues/6067)) ([19949e1](19949e1695))
* **X / Twitter:** Remove non functional and obsolete patch `Open links with app chooser` ([#6033](https://github.com/ReVanced/revanced-patches/issues/6033)) ([673609c](673609c2aa))
* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](bd4ba2dae8))
* **YouTube - Force original language:** Resolve some videos using Swedish audio track ([9d67316](9d6731660b))
* **YouTube - Hide end screen cards:** Hide new type of end screen card ([#6027](https://github.com/ReVanced/revanced-patches/issues/6027)) ([76b0364](76b0364c5b))
* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](f03256c471))
* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](7afeaebb5c))
* **YouTube - Spoof video streams:** Resolve playback dropping frames ([#6051](https://github.com/ReVanced/revanced-patches/issues/6051)) ([a62ee43](a62ee43441))
* **YouTube Music - GmsCore support:** Handle sharing links to certain apps such as Instagram ([#6026](https://github.com/ReVanced/revanced-patches/issues/6026)) ([328234f](328234f39a))
* **YouTube Music - Hide cast button:** Fix patching error ([28799a5](28799a548a))
* **YouTube Music - Hide cast button:** Resolve button not hiding ([7817885](7817885cff))
* **YouTube:** Resolve UI components not hiding for some users ([#6054](https://github.com/ReVanced/revanced-patches/issues/6054)) ([6b26346](6b26346914))

### Features

* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](a50f3b5177))
* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](20c413120b))
* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](2154d89242))
* **Instagram:** Add `Open links externally` patch ([#6012](https://github.com/ReVanced/revanced-patches/issues/6012)) ([08e8ead](08e8ead04f))
* **Instagram:** Add `Sanitize sharing links` patch ([#5986](https://github.com/ReVanced/revanced-patches/issues/5986)) ([963a4ef](963a4ef43f))
* **Viber:** Add `Hide navigation buttons` patch ([#5991](https://github.com/ReVanced/revanced-patches/issues/5991)) ([5cb46c4](5cb46c4e91))
* **YouTube Music:** Add `Custom branding` patch ([#6007](https://github.com/ReVanced/revanced-patches/issues/6007)) ([4c8b56f](4c8b56f546))
* **YouTube Music:** Add `Force original audio` patch ([#6036](https://github.com/ReVanced/revanced-patches/issues/6036)) ([d0d53d1](d0d53d109e))
2025-10-08 06:16:06 +00:00
semantic-release-bot
d65dbc749c chore: Release v5.42.0 [skip ci]
# [5.42.0](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.42.0) (2025-10-08)

### Bug Fixes

* **Custom branding:** Update ReVanced logo ([#6049](https://github.com/ReVanced/revanced-patches/issues/6049)) ([9441e7a](9441e7acb4))
* **Custom branding:** Update ReVanced logo sizing ([#6029](https://github.com/ReVanced/revanced-patches/issues/6029)) ([ae4b947](ae4b9474d3))
* **Instagram - Hide navigation buttons:** Resolve app startup crash ([080a226](080a226614))
* **Spotify:** Change `Hide Create button` patch to default off ([#6067](https://github.com/ReVanced/revanced-patches/issues/6067)) ([19949e1](19949e1695))
* **X / Twitter:** Remove non functional and obsolete patch `Open links with app chooser` ([#6033](https://github.com/ReVanced/revanced-patches/issues/6033)) ([673609c](673609c2aa))
* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](bd4ba2dae8))
* **YouTube - Force original language:** Resolve some videos using Swedish audio track ([9d67316](9d6731660b))
* **YouTube - Hide end screen cards:** Hide new type of end screen card ([#6027](https://github.com/ReVanced/revanced-patches/issues/6027)) ([76b0364](76b0364c5b))
* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](f03256c471))
* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](7afeaebb5c))
* **YouTube - Spoof video streams:** Resolve playback dropping frames ([#6051](https://github.com/ReVanced/revanced-patches/issues/6051)) ([a62ee43](a62ee43441))
* **YouTube Music - GmsCore support:** Handle sharing links to certain apps such as Instagram ([#6026](https://github.com/ReVanced/revanced-patches/issues/6026)) ([328234f](328234f39a))
* **YouTube Music - Hide cast button:** Fix patching error ([28799a5](28799a548a))
* **YouTube Music - Hide cast button:** Resolve button not hiding ([7817885](7817885cff))
* **YouTube:** Resolve UI components not hiding for some users ([#6054](https://github.com/ReVanced/revanced-patches/issues/6054)) ([6b26346](6b26346914))

### Features

* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](a50f3b5177))
* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](20c413120b))
* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](2154d89242))
* **Instagram:** Add `Open links externally` patch ([#6012](https://github.com/ReVanced/revanced-patches/issues/6012)) ([08e8ead](08e8ead04f))
* **Instagram:** Add `Sanitize sharing links` patch ([#5986](https://github.com/ReVanced/revanced-patches/issues/5986)) ([963a4ef](963a4ef43f))
* **Viber:** Add `Hide navigation buttons` patch ([#5991](https://github.com/ReVanced/revanced-patches/issues/5991)) ([5cb46c4](5cb46c4e91))
* **YouTube Music:** Add `Custom branding` patch ([#6007](https://github.com/ReVanced/revanced-patches/issues/6007)) ([4c8b56f](4c8b56f546))
* **YouTube Music:** Add `Force original audio` patch ([#6036](https://github.com/ReVanced/revanced-patches/issues/6036)) ([d0d53d1](d0d53d109e))
2025-10-08 06:01:45 +00:00
LisoUseInAIKyrios
143dcef2b8 chore: Merge branch dev to main (#6015) 2025-10-08 09:57:48 +04:00
github-actions[bot]
dbfc5be464 chore: Sync translations (#6078) 2025-10-08 09:54:53 +04:00
LisoUseInAIKyrios
0fe545cad6 chore: Add links to the ReVanced brand guidelines 2025-10-08 09:47:27 +04:00
semantic-release-bot
feca17be68 chore: Release v5.42.0-dev.19 [skip ci]
# [5.42.0-dev.19](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.18...v5.42.0-dev.19) (2025-10-07)

### Bug Fixes

* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](7afeaebb5c))
2025-10-07 20:37:44 +00:00
LisoUseInAIKyrios
7afeaebb5c fix(YouTube - Spoof video streams): Do not allow VR AV1 if "Force AVC" is enabled 2025-10-08 00:34:45 +04:00
github-actions[bot]
60a581a632 chore: Sync translations (#6077) 2025-10-08 00:30:56 +04:00
LisoUseInAIKyrios
104d096ada chore: Change brand name to untranslatable 2025-10-07 23:53:51 +04:00
semantic-release-bot
19dcbd8efb chore: Release v5.42.0-dev.18 [skip ci]
# [5.42.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.17...v5.42.0-dev.18) (2025-10-07)

### Features

* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](a50f3b5177))
2025-10-07 19:25:25 +00:00
MarcaD
a50f3b5177 feat(Custom branding): Add in-app settings to change icon and name (#6059)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
2025-10-07 23:21:12 +04:00
semantic-release-bot
64d22a9c31 chore: Release v5.42.0-dev.17 [skip ci]
# [5.42.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.16...v5.42.0-dev.17) (2025-10-07)

### Bug Fixes

* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](bd4ba2dae8))
2025-10-07 15:46:50 +00:00
LisoUseInAIKyrios
bd4ba2dae8 fix(YouTube - Force original audio): Change patch to default on (#6070) 2025-10-07 19:41:32 +04:00
github-actions[bot]
f51b260d1d chore: Sync translations (#6073) 2025-10-07 19:40:18 +04:00
LisoUseInAIKyrios
63be54dd09 chore: Remove unneeded binary compatibility for code that was never released to main 2025-10-07 19:39:54 +04:00
semantic-release-bot
bb222d7a26 chore: Release v5.42.0-dev.16 [skip ci]
# [5.42.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.15...v5.42.0-dev.16) (2025-10-07)

### Bug Fixes

* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](f03256c471))
2025-10-07 15:19:06 +00:00
LisoUseInAIKyrios
f03256c471 fix(YouTube - Spoof video streams): Add "Allow Android VR AV1" setting (#6071) 2025-10-07 19:15:37 +04:00
semantic-release-bot
fe16433f20 chore: Release v5.42.0-dev.15 [skip ci]
# [5.42.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.14...v5.42.0-dev.15) (2025-10-07)

### Features

* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](2154d89242))
2025-10-07 12:42:11 +00:00
brosssh
2154d89242 feat(Instagram): Add Enable developer menu patch (#6043) 2025-10-07 16:37:20 +04:00
semantic-release-bot
277a8b6b47 chore: Release v5.42.0-dev.14 [skip ci]
# [5.42.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.13...v5.42.0-dev.14) (2025-10-07)

### Features

* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](20c413120b))
2025-10-07 11:45:19 +00:00
brosssh
20c413120b feat(Instagram): Add Custom share domain patch (#5998) 2025-10-07 15:40:37 +04:00
197 changed files with 2867 additions and 470 deletions

View File

@@ -1,3 +1,132 @@
## [5.42.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.1...v5.42.2-dev.1) (2025-10-09)
### Bug Fixes
* **Instagram - Change sharing domain:** Display patch option ([#6089](https://github.com/ReVanced/revanced-patches/issues/6089)) ([be2b144](https://github.com/ReVanced/revanced-patches/commit/be2b144cc9c4108ec37e16f3dd20573d88ffaa2b))
## [5.42.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.0...v5.42.1) (2025-10-08)
### Bug Fixes
* **YouTube - Custom Branding:** Resolve startup crash with root installation ([fd4b2e1](https://github.com/ReVanced/revanced-patches/commit/fd4b2e1bb98c6e507178e5b46b896ef7d320bc3d))
## [5.42.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.0...v5.42.1-dev.1) (2025-10-08)
### Bug Fixes
* **YouTube - Custom Branding:** Resolve startup crash with root installation ([fd4b2e1](https://github.com/ReVanced/revanced-patches/commit/fd4b2e1bb98c6e507178e5b46b896ef7d320bc3d))
# [5.42.0](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.42.0) (2025-10-08)
### Bug Fixes
* **Custom branding:** Update ReVanced logo ([#6049](https://github.com/ReVanced/revanced-patches/issues/6049)) ([9441e7a](https://github.com/ReVanced/revanced-patches/commit/9441e7acb4817e12d1443d438ef6c448518bd614))
* **Custom branding:** Update ReVanced logo sizing ([#6029](https://github.com/ReVanced/revanced-patches/issues/6029)) ([ae4b947](https://github.com/ReVanced/revanced-patches/commit/ae4b9474d3fb62528fc21397c19954d31605e9da))
* **Instagram - Hide navigation buttons:** Resolve app startup crash ([080a226](https://github.com/ReVanced/revanced-patches/commit/080a2266146798be71789c939deef2f289697523))
* **Spotify:** Change `Hide Create button` patch to default off ([#6067](https://github.com/ReVanced/revanced-patches/issues/6067)) ([19949e1](https://github.com/ReVanced/revanced-patches/commit/19949e1695cc252ff0f94a33b6e3fb62e967d7fd))
* **X / Twitter:** Remove non functional and obsolete patch `Open links with app chooser` ([#6033](https://github.com/ReVanced/revanced-patches/issues/6033)) ([673609c](https://github.com/ReVanced/revanced-patches/commit/673609c2aa87988cdc138eab101b9750fe6a7b62))
* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](https://github.com/ReVanced/revanced-patches/commit/bd4ba2dae85ee6fd8d7e6078c3de775ca336e0b6))
* **YouTube - Force original language:** Resolve some videos using Swedish audio track ([9d67316](https://github.com/ReVanced/revanced-patches/commit/9d6731660ba0e19b863d05d54aa04f74a879f69b))
* **YouTube - Hide end screen cards:** Hide new type of end screen card ([#6027](https://github.com/ReVanced/revanced-patches/issues/6027)) ([76b0364](https://github.com/ReVanced/revanced-patches/commit/76b0364c5b5562c6a0d178d2bbe5b220f48aaca9))
* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](https://github.com/ReVanced/revanced-patches/commit/f03256c471e1ee6a12267c1b56b531ca8f89278c))
* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](https://github.com/ReVanced/revanced-patches/commit/7afeaebb5cc22eb4f4512d8aa0cf4e835e7a2daf))
* **YouTube - Spoof video streams:** Resolve playback dropping frames ([#6051](https://github.com/ReVanced/revanced-patches/issues/6051)) ([a62ee43](https://github.com/ReVanced/revanced-patches/commit/a62ee43441b197f5c8352ae373bb8919ad66f0bd))
* **YouTube Music - GmsCore support:** Handle sharing links to certain apps such as Instagram ([#6026](https://github.com/ReVanced/revanced-patches/issues/6026)) ([328234f](https://github.com/ReVanced/revanced-patches/commit/328234f39ada81542e596f04e8ce410c787c15c8))
* **YouTube Music - Hide cast button:** Fix patching error ([28799a5](https://github.com/ReVanced/revanced-patches/commit/28799a548a73651134ef304cb6cb542cf8e55abe))
* **YouTube Music - Hide cast button:** Resolve button not hiding ([7817885](https://github.com/ReVanced/revanced-patches/commit/7817885cffed66608039ab45881537cbd3069c9d))
* **YouTube:** Resolve UI components not hiding for some users ([#6054](https://github.com/ReVanced/revanced-patches/issues/6054)) ([6b26346](https://github.com/ReVanced/revanced-patches/commit/6b2634691423f5ce25a28b3f2fbc420977b81748))
### Features
* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](https://github.com/ReVanced/revanced-patches/commit/a50f3b5177808f07d84041c946caccb5a08ad387))
* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](https://github.com/ReVanced/revanced-patches/commit/20c413120bad97af6121718e76b22a1b5540aa44))
* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](https://github.com/ReVanced/revanced-patches/commit/2154d89242fd8d7f7460145d5d35a4f1986944a3))
* **Instagram:** Add `Open links externally` patch ([#6012](https://github.com/ReVanced/revanced-patches/issues/6012)) ([08e8ead](https://github.com/ReVanced/revanced-patches/commit/08e8ead04ffff47a4608a3db7aadc8d5feccd4ad))
* **Instagram:** Add `Sanitize sharing links` patch ([#5986](https://github.com/ReVanced/revanced-patches/issues/5986)) ([963a4ef](https://github.com/ReVanced/revanced-patches/commit/963a4ef43fd513de7a2d7d019992f06b62fdcc10))
* **Viber:** Add `Hide navigation buttons` patch ([#5991](https://github.com/ReVanced/revanced-patches/issues/5991)) ([5cb46c4](https://github.com/ReVanced/revanced-patches/commit/5cb46c4e9180ebc16eddb983dad73d137d8ec047))
* **YouTube Music:** Add `Custom branding` patch ([#6007](https://github.com/ReVanced/revanced-patches/issues/6007)) ([4c8b56f](https://github.com/ReVanced/revanced-patches/commit/4c8b56f5466b244737f501654eb7c5d34b6b2f88))
* **YouTube Music:** Add `Force original audio` patch ([#6036](https://github.com/ReVanced/revanced-patches/issues/6036)) ([d0d53d1](https://github.com/ReVanced/revanced-patches/commit/d0d53d109e451759a029326873adfa36fba12b23))
# [5.42.0](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.42.0) (2025-10-08)
### Bug Fixes
* **Custom branding:** Update ReVanced logo ([#6049](https://github.com/ReVanced/revanced-patches/issues/6049)) ([9441e7a](https://github.com/ReVanced/revanced-patches/commit/9441e7acb4817e12d1443d438ef6c448518bd614))
* **Custom branding:** Update ReVanced logo sizing ([#6029](https://github.com/ReVanced/revanced-patches/issues/6029)) ([ae4b947](https://github.com/ReVanced/revanced-patches/commit/ae4b9474d3fb62528fc21397c19954d31605e9da))
* **Instagram - Hide navigation buttons:** Resolve app startup crash ([080a226](https://github.com/ReVanced/revanced-patches/commit/080a2266146798be71789c939deef2f289697523))
* **Spotify:** Change `Hide Create button` patch to default off ([#6067](https://github.com/ReVanced/revanced-patches/issues/6067)) ([19949e1](https://github.com/ReVanced/revanced-patches/commit/19949e1695cc252ff0f94a33b6e3fb62e967d7fd))
* **X / Twitter:** Remove non functional and obsolete patch `Open links with app chooser` ([#6033](https://github.com/ReVanced/revanced-patches/issues/6033)) ([673609c](https://github.com/ReVanced/revanced-patches/commit/673609c2aa87988cdc138eab101b9750fe6a7b62))
* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](https://github.com/ReVanced/revanced-patches/commit/bd4ba2dae85ee6fd8d7e6078c3de775ca336e0b6))
* **YouTube - Force original language:** Resolve some videos using Swedish audio track ([9d67316](https://github.com/ReVanced/revanced-patches/commit/9d6731660ba0e19b863d05d54aa04f74a879f69b))
* **YouTube - Hide end screen cards:** Hide new type of end screen card ([#6027](https://github.com/ReVanced/revanced-patches/issues/6027)) ([76b0364](https://github.com/ReVanced/revanced-patches/commit/76b0364c5b5562c6a0d178d2bbe5b220f48aaca9))
* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](https://github.com/ReVanced/revanced-patches/commit/f03256c471e1ee6a12267c1b56b531ca8f89278c))
* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](https://github.com/ReVanced/revanced-patches/commit/7afeaebb5cc22eb4f4512d8aa0cf4e835e7a2daf))
* **YouTube - Spoof video streams:** Resolve playback dropping frames ([#6051](https://github.com/ReVanced/revanced-patches/issues/6051)) ([a62ee43](https://github.com/ReVanced/revanced-patches/commit/a62ee43441b197f5c8352ae373bb8919ad66f0bd))
* **YouTube Music - GmsCore support:** Handle sharing links to certain apps such as Instagram ([#6026](https://github.com/ReVanced/revanced-patches/issues/6026)) ([328234f](https://github.com/ReVanced/revanced-patches/commit/328234f39ada81542e596f04e8ce410c787c15c8))
* **YouTube Music - Hide cast button:** Fix patching error ([28799a5](https://github.com/ReVanced/revanced-patches/commit/28799a548a73651134ef304cb6cb542cf8e55abe))
* **YouTube Music - Hide cast button:** Resolve button not hiding ([7817885](https://github.com/ReVanced/revanced-patches/commit/7817885cffed66608039ab45881537cbd3069c9d))
* **YouTube:** Resolve UI components not hiding for some users ([#6054](https://github.com/ReVanced/revanced-patches/issues/6054)) ([6b26346](https://github.com/ReVanced/revanced-patches/commit/6b2634691423f5ce25a28b3f2fbc420977b81748))
### Features
* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](https://github.com/ReVanced/revanced-patches/commit/a50f3b5177808f07d84041c946caccb5a08ad387))
* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](https://github.com/ReVanced/revanced-patches/commit/20c413120bad97af6121718e76b22a1b5540aa44))
* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](https://github.com/ReVanced/revanced-patches/commit/2154d89242fd8d7f7460145d5d35a4f1986944a3))
* **Instagram:** Add `Open links externally` patch ([#6012](https://github.com/ReVanced/revanced-patches/issues/6012)) ([08e8ead](https://github.com/ReVanced/revanced-patches/commit/08e8ead04ffff47a4608a3db7aadc8d5feccd4ad))
* **Instagram:** Add `Sanitize sharing links` patch ([#5986](https://github.com/ReVanced/revanced-patches/issues/5986)) ([963a4ef](https://github.com/ReVanced/revanced-patches/commit/963a4ef43fd513de7a2d7d019992f06b62fdcc10))
* **Viber:** Add `Hide navigation buttons` patch ([#5991](https://github.com/ReVanced/revanced-patches/issues/5991)) ([5cb46c4](https://github.com/ReVanced/revanced-patches/commit/5cb46c4e9180ebc16eddb983dad73d137d8ec047))
* **YouTube Music:** Add `Custom branding` patch ([#6007](https://github.com/ReVanced/revanced-patches/issues/6007)) ([4c8b56f](https://github.com/ReVanced/revanced-patches/commit/4c8b56f5466b244737f501654eb7c5d34b6b2f88))
* **YouTube Music:** Add `Force original audio` patch ([#6036](https://github.com/ReVanced/revanced-patches/issues/6036)) ([d0d53d1](https://github.com/ReVanced/revanced-patches/commit/d0d53d109e451759a029326873adfa36fba12b23))
# [5.42.0-dev.19](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.18...v5.42.0-dev.19) (2025-10-07)
### Bug Fixes
* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](https://github.com/ReVanced/revanced-patches/commit/7afeaebb5cc22eb4f4512d8aa0cf4e835e7a2daf))
# [5.42.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.17...v5.42.0-dev.18) (2025-10-07)
### Features
* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](https://github.com/ReVanced/revanced-patches/commit/a50f3b5177808f07d84041c946caccb5a08ad387))
# [5.42.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.16...v5.42.0-dev.17) (2025-10-07)
### Bug Fixes
* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](https://github.com/ReVanced/revanced-patches/commit/bd4ba2dae85ee6fd8d7e6078c3de775ca336e0b6))
# [5.42.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.15...v5.42.0-dev.16) (2025-10-07)
### Bug Fixes
* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](https://github.com/ReVanced/revanced-patches/commit/f03256c471e1ee6a12267c1b56b531ca8f89278c))
# [5.42.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.14...v5.42.0-dev.15) (2025-10-07)
### Features
* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](https://github.com/ReVanced/revanced-patches/commit/2154d89242fd8d7f7460145d5d35a4f1986944a3))
# [5.42.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.13...v5.42.0-dev.14) (2025-10-07)
### Features
* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](https://github.com/ReVanced/revanced-patches/commit/20c413120bad97af6121718e76b22a1b5540aa44))
# [5.42.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.12...v5.42.0-dev.13) (2025-10-07)

View File

@@ -0,0 +1,33 @@
package app.revanced.extension.instagram.misc.share.domain;
import android.net.Uri;
import app.revanced.extension.shared.Logger;
@SuppressWarnings("unused")
public final class ChangeLinkSharingDomainPatch {
private static String getCustomShareDomain() {
// Method is modified during patching.
throw new IllegalStateException();
}
/**
* Injection point.
*/
public static String setCustomShareDomain(String url) {
try {
Uri uri = Uri.parse(url);
Uri.Builder builder = uri
.buildUpon()
.authority(getCustomShareDomain())
.clearQuery();
String patchedUrl = builder.build().toString();
Logger.printInfo(() -> "Domain change from : " + url + " to: " + patchedUrl);
return patchedUrl;
} catch (Exception ex) {
Logger.printException(() -> "setCustomShareDomain failure with " + url, ex);
return url;
}
}
}

View File

@@ -0,0 +1,15 @@
package app.revanced.extension.instagram.misc.share.privacy;
import app.revanced.extension.shared.privacy.LinkSanitizer;
@SuppressWarnings("unused")
public final class SanitizeSharingLinksPatch {
private static final LinkSanitizer sanitizer = new LinkSanitizer("igsh");
/**
* Injection point.
*/
public static String sanitizeSharingLink(String url) {
return sanitizer.sanitizeUrlString(url);
}
}

View File

@@ -31,9 +31,6 @@ import app.revanced.extension.shared.ui.CustomDialog;
@SuppressWarnings("unused")
public class GmsCoreSupport {
private static final String PACKAGE_NAME_YOUTUBE = "com.google.android.youtube";
private static final String PACKAGE_NAME_YOUTUBE_MUSIC = "com.google.android.apps.youtube.music";
private static final String GMS_CORE_PACKAGE_NAME
= getGmsCoreVendorGroupId() + ".android.gms";
private static final Uri GMS_CORE_PROVIDER
@@ -53,6 +50,20 @@ public class GmsCoreSupport {
@Nullable
private static volatile Boolean DONT_KILL_MY_APP_MANUFACTURER_SUPPORTED;
private static String getOriginalPackageName() {
return null; // Modified during patching.
}
/**
* @return If the current package name is the same as the original unpatched app.
* If `GmsCore support` was not included during patching, this returns true;
*/
public static boolean isPackageNameOriginal() {
String originalPackageName = getOriginalPackageName();
return originalPackageName == null
|| originalPackageName.equals(Utils.getContext().getPackageName());
}
private static void open(String queryOrLink) {
Logger.printInfo(() -> "Opening link: " + queryOrLink);
@@ -113,11 +124,10 @@ public class GmsCoreSupport {
// Verify the user has not included GmsCore for a root installation.
// GmsCore Support changes the package name, but with a mounted installation
// all manifest changes are ignored and the original package name is used.
String packageName = context.getPackageName();
if (packageName.equals(PACKAGE_NAME_YOUTUBE) || packageName.equals(PACKAGE_NAME_YOUTUBE_MUSIC)) {
if (isPackageNameOriginal()) {
Logger.printInfo(() -> "App is mounted with root, but GmsCore patch was included");
// Cannot use localize text here, since the app will load
// resources from the unpatched app and all patch strings are missing.
// Cannot use localize text here, since the app will load resources
// from the unpatched app and all patch strings are missing.
Utils.showToastLong("The 'GmsCore support' patch breaks mount installations");
// Do not exit. If the app exits before launch completes (and without
@@ -250,8 +260,7 @@ public class GmsCoreSupport {
};
}
// Modified by a patch. Do not touch.
private static String getGmsCoreVendorGroupId() {
return "app.revanced";
return "app.revanced"; // Modified during patching.
}
}

View File

@@ -0,0 +1,136 @@
package app.revanced.extension.shared.patches;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import java.util.ArrayList;
import java.util.List;
import app.revanced.extension.shared.GmsCoreSupport;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings;
/**
* Patch shared by YouTube and YT Music.
*/
@SuppressWarnings("unused")
public class CustomBrandingPatch {
// Important: In the future, additional branding themes can be added but all existing and prior
// themes cannot be removed or renamed.
//
// This is because if a user has a branding theme selected, then only that launch alias is enabled.
// If a future update removes or renames that alias, then after updating the app is effectively
// broken and it cannot be opened and not even clearing the app data will fix it.
// In that situation the only fix is to completely uninstall and reinstall again.
//
// The most that can be done is to hide a theme from the UI and keep the alias with dummy data.
public enum BrandingTheme {
/**
* Original unpatched icon. Must be first enum.
*/
ORIGINAL("revanced_original"),
ROUNDED("revanced_rounded"),
MINIMAL("revanced_minimal"),
SCALED("revanced_scaled"),
/**
* User provided custom icon. Must be the last enum.
*/
CUSTOM("revanced_custom");
public final String themeAlias;
BrandingTheme(String themeAlias) {
this.themeAlias = themeAlias;
}
private String packageAndNameIndexToClassAlias(String packageName, int appIndex) {
if (appIndex <= 0) {
throw new IllegalArgumentException("App index starts at index 1");
}
return packageName + '.' + themeAlias + '_' + appIndex;
}
}
/**
* Injection point.
*
* The total number of app name aliases, including dummy aliases.
*/
private static int numberOfPresetAppNames() {
// Modified during patching.
throw new IllegalStateException();
}
/**
* Injection point.
*/
@SuppressWarnings("ConstantConditions")
public static void setBranding() {
try {
if (GmsCoreSupport.isPackageNameOriginal()) {
Logger.printInfo(() -> "App is root mounted. Cannot dynamically change app icon");
return;
}
Context context = Utils.getContext();
PackageManager pm = context.getPackageManager();
String packageName = context.getPackageName();
BrandingTheme selectedBranding = BaseSettings.CUSTOM_BRANDING_ICON.get();
final int selectedNameIndex = BaseSettings.CUSTOM_BRANDING_NAME.get();
ComponentName componentToEnable = null;
ComponentName defaultComponent = null;
List<ComponentName> componentsToDisable = new ArrayList<>();
for (BrandingTheme theme : BrandingTheme.values()) {
// Must always update all aliases including custom alias (last index).
final int numberOfPresetAppNames = numberOfPresetAppNames();
// App name indices starts at 1.
for (int index = 1; index <= numberOfPresetAppNames; index++) {
String aliasClass = theme.packageAndNameIndexToClassAlias(packageName, index);
ComponentName component = new ComponentName(packageName, aliasClass);
if (defaultComponent == null) {
// Default is always the first alias.
defaultComponent = component;
}
if (index == selectedNameIndex && theme == selectedBranding) {
componentToEnable = component;
} else {
componentsToDisable.add(component);
}
}
}
if (componentToEnable == null) {
// User imported a bad app name index value. Either the imported data
// was corrupted, or they previously had custom name enabled and the app
// no longer has a custom name specified.
Utils.showToastLong("Custom branding reset");
BaseSettings.CUSTOM_BRANDING_ICON.resetToDefault();
BaseSettings.CUSTOM_BRANDING_NAME.resetToDefault();
componentToEnable = defaultComponent;
componentsToDisable.remove(defaultComponent);
}
for (ComponentName disable : componentsToDisable) {
// Use info logging because if the alias status become corrupt the app cannot launch.
Logger.printInfo(() -> "Disabling: " + disable.getClassName());
pm.setComponentEnabledSetting(disable,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
ComponentName componentToEnableFinal = componentToEnable;
Logger.printInfo(() -> "Enabling: " + componentToEnableFinal.getClassName());
pm.setComponentEnabledSetting(componentToEnable,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
} catch (Exception ex) {
Logger.printException(() -> "setBranding failure", ex);
}
}
}

View File

@@ -2,6 +2,7 @@ package app.revanced.extension.shared.settings;
import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;
import static app.revanced.extension.shared.patches.CustomBrandingPatch.BrandingTheme;
import static app.revanced.extension.shared.settings.Setting.parent;
import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.AudioStreamLanguageOverrideAvailability;
@@ -40,4 +41,7 @@ public class BaseSettings {
public static final BooleanSetting REPLACE_MUSIC_LINKS_WITH_YOUTUBE = new BooleanSetting("revanced_replace_music_with_youtube", FALSE);
public static final BooleanSetting CHECK_WATCH_HISTORY_DOMAIN_NAME = new BooleanSetting("revanced_check_watch_history_domain_name", TRUE, false, false);
public static final EnumSetting<BrandingTheme> CUSTOM_BRANDING_ICON = new EnumSetting<>("revanced_custom_branding_icon", BrandingTheme.ORIGINAL, true);
public static final IntegerSetting CUSTOM_BRANDING_NAME = new IntegerSetting("revanced_custom_branding_name", 1, true);
}

View File

@@ -5,6 +5,7 @@ import static app.revanced.extension.shared.Utils.dipToPixels;
import static app.revanced.extension.shared.requests.Route.Method.GET;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
@@ -125,6 +126,8 @@ public class ReVancedAboutPreference extends Preference {
{
setOnPreferenceClickListener(pref -> {
Context context = pref.getContext();
// Show a progress spinner if the social links are not fetched yet.
if (!AboutLinksRoutes.hasFetchedLinks() && Utils.isNetworkConnected()) {
// Show a progress spinner, but only if the api fetch takes more than a half a second.
@@ -137,17 +140,18 @@ public class ReVancedAboutPreference extends Preference {
handler.postDelayed(showDialogRunnable, delayToShowProgressSpinner);
Utils.runOnBackgroundThread(() ->
fetchLinksAndShowDialog(handler, showDialogRunnable, progress));
fetchLinksAndShowDialog(context, handler, showDialogRunnable, progress));
} else {
// No network call required and can run now.
fetchLinksAndShowDialog(null, null, null);
fetchLinksAndShowDialog(context, null, null, null);
}
return false;
});
}
private void fetchLinksAndShowDialog(@Nullable Handler handler,
private void fetchLinksAndShowDialog(Context context,
@Nullable Handler handler,
Runnable showDialogRunnable,
@Nullable ProgressDialog progress) {
WebLink[] links = AboutLinksRoutes.fetchAboutLinks();
@@ -164,7 +168,17 @@ public class ReVancedAboutPreference extends Preference {
if (handler != null) {
handler.removeCallbacks(showDialogRunnable);
}
if (progress != null) {
// Don't continue if the activity is done. To test this tap the
// about dialog and immediately press back before the dialog can show.
if (context instanceof Activity activity) {
if (activity.isFinishing() || activity.isDestroyed()) {
Logger.printDebug(() -> "Not showing about dialog, activity is closed");
return;
}
}
if (progress != null && progress.isShowing()) {
progress.dismiss();
}
new WebViewDialog(getContext(), htmlDialog).show();

View File

@@ -19,6 +19,14 @@ import app.revanced.extension.shared.spoof.requests.StreamingDataRequest;
@SuppressWarnings("unused")
public class SpoofVideoStreamsPatch {
public static final class AudioStreamLanguageOverrideAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
return BaseSettings.SPOOF_VIDEO_STREAMS.get() && !preferredClient.useAuth;
}
}
/**
* Domain used for internet connectivity verification.
* It has an empty response body and is only used to check for a 204 response code.
@@ -321,11 +329,4 @@ public class SpoofVideoStreamsPatch {
return videoFormat;
}
public static final class AudioStreamLanguageOverrideAvailability implements Setting.Availability {
@Override
public boolean isAvailable() {
return BaseSettings.SPOOF_VIDEO_STREAMS.get() && !preferredClient.useAuth;
}
}
}

View File

@@ -8,29 +8,39 @@ import static app.revanced.extension.shared.spoof.ClientType.VISIONOS;
import java.util.List;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.spoof.ClientType;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public class SpoofVideoStreamsPatch {
public static final class SpoofClientAv1Availability implements Setting.Availability {
@Override
public boolean isAvailable() {
return Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.isAvailable()
&& Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ANDROID_VR_1_43_32;
}
}
/**
* Injection point.
*/
public static void setClientOrderToUse() {
ClientType client = Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
if (Settings.FORCE_AVC_CODEC.get() && client == ANDROID_VR_1_61_48) {
// VR 1.61 uses VP9/AV1, and cannot force AVC. Use 1.43 instead.
client = ANDROID_VR_1_43_32;
// Use VR 1.61 client that has AV1 if user settings allow it.
// AVC cannot be forced with VR 1.61 because it uses VP9 and AV1.
// If both settings are on, then force AVC takes priority and VR 1.43 is used.
if (client == ANDROID_VR_1_43_32 && Settings.SPOOF_VIDEO_STREAMS_AV1.get()
&& !Settings.FORCE_AVC_CODEC.get()) {
client = ANDROID_VR_1_61_48;
}
List<ClientType> availableClients = List.of(
ANDROID_CREATOR,
ANDROID_VR_1_43_32,
VISIONOS,
ANDROID_CREATOR,
ANDROID_VR_1_61_48,
IPADOS);
app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse(

View File

@@ -21,6 +21,7 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerT
import static app.revanced.extension.youtube.patches.OpenShortsInRegularPlayerPatch.ShortsPlayerType;
import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability;
import static app.revanced.extension.youtube.patches.components.PlayerFlyoutMenuItemsFilter.HideAudioFlyoutMenuAvailability;
import static app.revanced.extension.youtube.patches.spoof.SpoofVideoStreamsPatch.SpoofClientAv1Availability;
import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle;
import static app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController.SponsorBlockDuration;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.IGNORE;
@@ -55,7 +56,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting ADVANCED_VIDEO_QUALITY_MENU = new BooleanSetting("revanced_advanced_video_quality_menu", TRUE);
public static final BooleanSetting DISABLE_HDR_VIDEO = new BooleanSetting("revanced_disable_hdr_video", FALSE);
public static final BooleanSetting FORCE_AVC_CODEC = new BooleanSetting("revanced_force_avc_codec", FALSE, true, "revanced_force_avc_codec_user_dialog_message");
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, true);
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", TRUE, true);
public static final IntegerSetting VIDEO_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_video_quality_default_wifi", -2);
public static final IntegerSetting VIDEO_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_video_quality_default_mobile", -2);
public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED = new BooleanSetting("revanced_remember_video_quality_last_selected", FALSE);
@@ -357,6 +358,8 @@ public class Settings extends BaseSettings {
public static final BooleanSetting SPOOF_DEVICE_DIMENSIONS = new BooleanSetting("revanced_spoof_device_dimensions", FALSE, true,
"revanced_spoof_device_dimensions_user_dialog_message");
public static final EnumSetting<ClientType> SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_43_32, true, parent(SPOOF_VIDEO_STREAMS));
public static final BooleanSetting SPOOF_VIDEO_STREAMS_AV1 = new BooleanSetting("revanced_spoof_video_streams_av1", FALSE, true,
"revanced_spoof_video_streams_av1_user_dialog_message", new SpoofClientAv1Availability());
public static final BooleanSetting DEBUG_PROTOBUFFER = new BooleanSetting("revanced_debug_protobuffer", FALSE, false,
"revanced_debug_protobuffer_user_dialog_message", parent(BaseSettings.DEBUG));
@@ -524,6 +527,11 @@ public class Settings extends BaseSettings {
SPOOF_APP_VERSION.resetToDefault();
}
// VR 1.61 is not selectable in the settings, and it's selected by spoof stream patch if needed.
if (SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_VR_1_61_48) {
SPOOF_VIDEO_STREAMS_CLIENT_TYPE.resetToDefault();
}
// RYD requires manually migrating old settings since the lack of
// a "revanced_" on the old setting causes duplicate key exceptions during export.
SharedPrefCategory revancedPrefs = Setting.preferences;

View File

@@ -87,13 +87,9 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference {
summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume")
+ '\n' + str("revanced_spoof_video_streams_about_no_av1")
+ '\n' + str("revanced_spoof_video_streams_about_no_force_original_audio");
case ANDROID_VR_1_43_32 ->
summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume")
+ '\n' + str("revanced_spoof_video_streams_about_no_av1");
case ANDROID_VR_1_61_48 ->
summary = str("revanced_spoof_video_streams_about_dropped_frames")
+ '\n' + summary
+ '\n' + str("revanced_spoof_video_streams_about_no_stable_volume");
// VR 1.61 is not exposed in the UI and should never be reached here.
case ANDROID_VR_1_43_32, ANDROID_VR_1_61_48 ->
summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume");
case IPADOS ->
summary = str("revanced_spoof_video_streams_about_playback_failure")
+ '\n' + str("revanced_spoof_video_streams_about_no_av1");

View File

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

View File

@@ -280,6 +280,10 @@ 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/devmenu/EnableDeveloperMenuPatchKt {
public static final fun getEnableDeveloperMenuPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/instagram/misc/extension/SharedExtensionPatchKt {
public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -288,7 +292,11 @@ public final class app/revanced/patches/instagram/misc/links/OpenLinksExternally
public static final fun getOpenLinksExternallyPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatchKt {
public final class app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatchKt {
public static final fun getChangeLinkSharingDomainPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/instagram/misc/share/privacy/SanitizeSharingLinksPatchKt {
public static final fun getSanitizeSharingLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1014,11 +1022,6 @@ public final class app/revanced/patches/shared/misc/settings/preference/TextPref
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
}
public final class app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatchKt {
public static final fun spoofVideoStreamsPatch (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lapp/revanced/patcher/patch/BytecodePatch;
public static synthetic fun spoofVideoStreamsPatch$default (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/shared/misc/spoof/UserAgentClientSpoofPatchKt {
public static final fun userAgentClientSpoofPatch (Ljava/lang/String;)Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -1916,6 +1919,7 @@ public final class app/revanced/util/ResourceUtilsKt {
public static final fun forEachChildElement (Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V
public static final fun insertFirst (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V
public static final fun iterateXmlNodeChildren (Lapp/revanced/patcher/patch/ResourcePatchContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
public static final fun removeFromParent (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
}
public final class app/revanced/util/resource/ArrayResource : app/revanced/util/resource/BaseResource {

View File

@@ -0,0 +1,37 @@
package app.revanced.patches.instagram.misc.devmenu
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.Utils.trimIndentMultiline
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
import app.revanced.util.returnEarly
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
@Suppress("unused")
val enableDeveloperMenuPatch = bytecodePatch(
name = "Enable developer menu",
description = """
Enables the developer menu, which can be found at the bottom of settings menu with name 'Internal Settings'.
It is recommended to use this patch with an alpha/beta Instagram release. Patching a stable release works, but the developer menu shows the developer flags as numbers and does not show a human readable description.
""".trimIndentMultiline(),
use = false
) {
compatibleWith("com.instagram.android")
execute {
with(clearNotificationReceiverFingerprint.method) {
indexOfFirstInstructionReversedOrThrow(clearNotificationReceiverFingerprint.stringMatches!!.first().index) {
val reference = getReference<MethodReference>()
Opcode.INVOKE_STATIC == opcode &&
reference?.parameterTypes?.size == 1 &&
reference.parameterTypes.first() == "Lcom/instagram/common/session/UserSession;" &&
reference.returnType == "Z"
}.let { index ->
navigate(this).to(index).stop().returnEarly(true)
}
}
}
}

View File

@@ -0,0 +1,12 @@
package app.revanced.patches.instagram.misc.devmenu
import app.revanced.patcher.fingerprint
internal val clearNotificationReceiverFingerprint = fingerprint {
custom { method, classDef ->
method.name == "onReceive" &&
classDef.type == "Lcom/instagram/notifications/push/ClearNotificationReceiver;"
}
strings("NOTIFICATION_DISMISSED")
}

View File

@@ -1,50 +0,0 @@
package app.revanced.patches.instagram.misc.privacy
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch
import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS
import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch;"
@Suppress("unused")
val sanitizeSharingLinksPatch = bytecodePatch(
name = PATCH_NAME_SANITIZE_SHARING_LINKS,
description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS,
) {
compatibleWith("com.instagram.android")
dependsOn(sharedExtensionPatch)
execute {
arrayOf(
permalinkResponseJsonParserFingerprint,
storyUrlResponseJsonParserFingerprint,
profileUrlResponseJsonParserFingerprint,
liveUrlResponseJsonParserFingerprint
).forEach { fingerprint ->
fingerprint.method.apply {
val putSharingUrlIndex = indexOfFirstInstructionOrThrow(
fingerprint.stringMatches!!.first().index,
Opcode.IPUT_OBJECT
)
val sharingUrlRegister = getInstruction<TwoRegisterInstruction>(putSharingUrlIndex).registerA
addInstructions(
putSharingUrlIndex,
"""
invoke-static { v$sharingUrlRegister }, $EXTENSION_CLASS_DESCRIPTOR->sanitizeSharingLink(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$sharingUrlRegister
"""
)
}
}
}
}

View File

@@ -0,0 +1,31 @@
package app.revanced.patches.instagram.misc.share
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
context(BytecodePatchContext)
internal fun editShareLinksPatch(block: MutableMethod.(index: Int, register: Int) -> Unit) {
val fingerprintsToPatch = arrayOf(
permalinkResponseJsonParserFingerprint,
storyUrlResponseJsonParserFingerprint,
profileUrlResponseJsonParserFingerprint,
liveUrlResponseJsonParserFingerprint
)
for (fingerprint in fingerprintsToPatch) {
fingerprint.method.apply {
val putSharingUrlIndex = indexOfFirstInstruction(
permalinkResponseJsonParserFingerprint.stringMatches!!.first().index,
Opcode.IPUT_OBJECT
)
val sharingUrlRegister = getInstruction<TwoRegisterInstruction>(putSharingUrlIndex).registerA
block(putSharingUrlIndex, sharingUrlRegister)
}
}
}

View File

@@ -1,4 +1,4 @@
package app.revanced.patches.instagram.misc.privacy
package app.revanced.patches.instagram.misc.share
import app.revanced.patcher.fingerprint

View File

@@ -0,0 +1,42 @@
package app.revanced.patches.instagram.misc.share.domain
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch
import app.revanced.patches.instagram.misc.share.editShareLinksPatch
import app.revanced.patches.shared.PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN
import app.revanced.patches.shared.PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN
import app.revanced.util.returnEarly
@Suppress("unused")
val changeLinkSharingDomainPatch = bytecodePatch(
name = PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN,
description = PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN,
use = false
) {
compatibleWith("com.instagram.android")
dependsOn(sharedExtensionPatch)
val customDomainHost by stringOption(
key = "domainName",
default = "imginn.com",
title = "Domain name",
description = "The domain name to use when sharing links."
)
execute {
getCustomShareDomainFingerprint.method.returnEarly(customDomainHost!!)
editShareLinksPatch { index, register ->
addInstructions(
index,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->setCustomShareDomain(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$register
"""
)
}
}
}

View File

@@ -0,0 +1,16 @@
package app.revanced.patches.instagram.misc.share.domain
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch;"
internal val getCustomShareDomainFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("Ljava/lang/String;")
parameters()
custom { method, classDef ->
method.name == "getCustomShareDomain" && classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}

View File

@@ -0,0 +1,33 @@
package app.revanced.patches.instagram.misc.share.privacy
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch
import app.revanced.patches.instagram.misc.share.editShareLinksPatch
import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS
import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/instagram/misc/share/privacy/SanitizeSharingLinksPatch;"
@Suppress("unused")
val sanitizeSharingLinksPatch = bytecodePatch(
name = PATCH_NAME_SANITIZE_SHARING_LINKS,
description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS,
) {
compatibleWith("com.instagram.android")
dependsOn(sharedExtensionPatch)
execute {
editShareLinksPatch { index, register ->
addInstructions(
index,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->sanitizeSharingLink(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$register
"""
)
}
}
}

View File

@@ -4,6 +4,10 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWith
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.music.misc.gms.Constants.MUSIC_MAIN_ACTIVITY_NAME
import app.revanced.patches.music.misc.gms.Constants.MUSIC_PACKAGE_NAME
import app.revanced.patches.music.misc.gms.musicActivityOnCreateFingerprint
import app.revanced.patches.music.misc.settings.PreferenceScreen
import app.revanced.patches.shared.layout.branding.baseCustomBrandingPatch
import app.revanced.patches.shared.misc.mapping.get
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
@@ -50,24 +54,18 @@ private val disableSplashAnimationPatch = bytecodePatch {
}
}
private const val APP_NAME = "YT Music ReVanced"
@Suppress("unused")
val customBrandingPatch = baseCustomBrandingPatch(
defaultAppName = APP_NAME,
appNameValues = mapOf(
"YT Music ReVanced" to APP_NAME,
"Music ReVanced" to "Music ReVanced",
"Music" to "Music",
"YT Music" to "YT Music",
),
resourceFolder = "custom-branding/music",
iconResourceFileNames = arrayOf(
"adaptiveproduct_youtube_music_2024_q4_background_color_108",
"adaptiveproduct_youtube_music_2024_q4_foreground_color_108",
"ic_launcher_release",
),
monochromeIconFileNames = arrayOf("ic_app_icons_themed_youtube_music.xml"),
addResourcePatchName = "music",
originalLauncherIconName = "ic_launcher_release",
originalAppName = "@string/app_launcher_name",
originalAppPackageName = MUSIC_PACKAGE_NAME,
copyExistingIntentsToAliases = false,
numberOfPresetAppNames = 5,
mainActivityOnCreateFingerprint = musicActivityOnCreateFingerprint,
mainActivityName = MUSIC_MAIN_ACTIVITY_NAME,
activityAliasNameWithIntents = MUSIC_MAIN_ACTIVITY_NAME,
preferenceScreen = PreferenceScreen.GENERAL,
block = {
dependsOn(disableSplashAnimationPatch)

View File

@@ -1,6 +1,8 @@
package app.revanced.patches.music.misc.gms
object Constants {
internal const val MUSIC_MAIN_ACTIVITY_NAME = "com.google.android.apps.youtube.music.activities.MusicActivity"
internal const val REVANCED_MUSIC_PACKAGE_NAME = "app.revanced.android.apps.youtube.music"
internal const val MUSIC_PACKAGE_NAME = "com.google.android.apps.youtube.music"
}

View File

@@ -1,6 +1,5 @@
package app.revanced.patches.music.misc.spoof
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
@@ -16,12 +15,13 @@ import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPref
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
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 },
extensionClassDescriptor = "Lapp/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch;",
mainActivityOnCreateFingerprint = musicActivityOnCreateFingerprint,
fixMediaFetchHotConfig = { true },
fixMediaFetchHotConfigAlternative = { is_8_11_or_greater && !is_8_15_or_greater },
fixParsePlaybackResponseFeatureFlag = { is_7_33_or_greater },
block = {
dependsOn(
sharedExtensionPatch,
@@ -38,6 +38,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
)
)
},
executeBlock = {
addResources("music", "misc.fix.playback.spoofVideoStreamsPatch")
@@ -51,10 +52,5 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
)
)
)
musicActivityOnCreateFingerprint.method.addInstruction(
0,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientOrderToUse()V"
)
}
)
)

View File

@@ -9,3 +9,6 @@ internal const val PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION = "Removes the check
internal const val PATCH_NAME_SANITIZE_SHARING_LINKS = "Sanitize sharing links"
internal const val PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS = "Removes the tracking query parameters from shared links."
internal const val PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN = "Change link sharing domain"
internal const val PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN = "Replaces the domain name of shared links."

View File

@@ -1,173 +1,387 @@
package app.revanced.patches.shared.layout.branding
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.ResourcePatch
import app.revanced.patcher.patch.ResourcePatchBuilder
import app.revanced.patcher.patch.ResourcePatchContext
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.BasePreferenceScreen
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.util.ResourceGroup
import app.revanced.util.Utils.trimIndentMultiline
import app.revanced.util.copyResources
import app.revanced.util.findElementByAttributeValueOrThrow
import app.revanced.util.removeFromParent
import app.revanced.util.returnEarly
import org.w3c.dom.Element
import org.w3c.dom.Node
import org.w3c.dom.NodeList
import java.io.File
import java.nio.file.Files
import java.util.logging.Logger
private const val REVANCED_ICON = "ReVanced*Logo" // Can never be a valid path.
internal val mipmapDirectories = arrayOf(
private val mipmapDirectories = arrayOf(
// Target app does not have ldpi icons.
"mdpi",
"hdpi",
"xhdpi",
"xxhdpi",
"xxxhdpi",
).map { "mipmap-$it" }.toTypedArray()
"mipmap-mdpi",
"mipmap-hdpi",
"mipmap-xhdpi",
"mipmap-xxhdpi",
"mipmap-xxxhdpi"
)
private fun formatResourceFileList(resourceNames: Array<String>) = resourceNames.joinToString("\n") { "- $it" }
private val iconStyleNames = arrayOf(
"rounded",
"minimal",
"scaled"
)
/**
* Attempts to fix unescaped and invalid characters not allowed for an Android app name.
*/
private fun escapeAppName(name: String): String? {
// Remove ASCII control characters.
val cleanedName = name.filter { it.code >= 32 }
private const val ORIGINAL_USER_ICON_STYLE_NAME = "original"
private const val CUSTOM_USER_ICON_STYLE_NAME = "custom"
// Replace invalid XML characters with escaped equivalents.
val escapedName = cleanedName
.replace("&", "&amp;") // Must be first to avoid double-escaping.
.replace("<", "&lt;")
.replace(">", "&gt;")
.replace(Regex("(?<!&)\""), "&quot;")
private const val LAUNCHER_RESOURCE_NAME_PREFIX = "revanced_launcher_"
private const val LAUNCHER_ADAPTIVE_BACKGROUND_PREFIX = "revanced_adaptive_background_"
private const val LAUNCHER_ADAPTIVE_FOREGROUND_PREFIX = "revanced_adaptive_foreground_"
private const val LAUNCHER_ADAPTIVE_MONOCHROME_PREFIX = "revanced_adaptive_monochrome_"
// Trim empty spacing.
val trimmed = escapedName.trim()
private val USER_CUSTOM_ADAPTIVE_FILE_NAMES = arrayOf(
"$LAUNCHER_ADAPTIVE_BACKGROUND_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.png",
"$LAUNCHER_ADAPTIVE_FOREGROUND_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.png"
)
return trimmed.ifBlank { null }
}
private const val USER_CUSTOM_MONOCHROME_NAME = "$LAUNCHER_ADAPTIVE_MONOCHROME_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.xml"
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/shared/patches/CustomBrandingPatch;"
/**
* Shared custom branding patch for YouTube and YT Music.
*/
internal fun baseCustomBrandingPatch(
defaultAppName: String,
appNameValues: Map<String, String>,
resourceFolder: String,
iconResourceFileNames: Array<String>,
monochromeIconFileNames: Array<String>,
block: ResourcePatchBuilder.() -> Unit = {},
addResourcePatchName: String,
originalLauncherIconName: String,
originalAppName: String,
originalAppPackageName: String,
copyExistingIntentsToAliases: Boolean,
numberOfPresetAppNames: Int,
mainActivityOnCreateFingerprint: Fingerprint,
mainActivityName: String,
activityAliasNameWithIntents: String,
preferenceScreen: BasePreferenceScreen.Screen,
block: ResourcePatchBuilder.() -> Unit,
executeBlock: ResourcePatchContext.() -> Unit = {}
): ResourcePatch = resourcePatch(
name = "Custom branding",
description = "Applies a custom app name and icon. Defaults to \"$defaultAppName\" and the ReVanced logo.",
use = false,
description = "Adds options to change the app icon and app name. " +
"Branding cannot be changed for mounted (root) installations."
) {
val iconResourceFileNamesPng = iconResourceFileNames.map { "$it.png" }.toTypedArray<String>()
val appName by stringOption(
key = "appName",
default = defaultAppName,
values = appNameValues,
val customName by stringOption(
key = "customName",
title = "App name",
description = "The name of the app.",
description = "Custom app name."
)
val iconPath by stringOption(
key = "iconPath",
default = REVANCED_ICON,
values = mapOf("ReVanced Logo" to REVANCED_ICON),
title = "App icon",
val customIcon by stringOption(
key = "customIcon",
title = "Custom icon",
description = """
The icon to apply to the app.
Folder with images to use as a custom icon.
If a path to a folder is provided, the folder must contain the following folders:
${formatResourceFileList(mipmapDirectories)}
Each of these folders must contain the following files:
${formatResourceFileList(iconResourceFileNamesPng)}
The folder must contain one or more of the following folders, depending on the DPI of the device:
${mipmapDirectories.joinToString("\n") { "- $it" }}
Optionally, a 'drawable' folder with the monochrome icon files:
${formatResourceFileList(monochromeIconFileNames)}
""".trimIndentMultiline(),
Each of the folders must contain all of the following files:
${USER_CUSTOM_ADAPTIVE_FILE_NAMES.joinToString("\n")}
Optionally, the path can contain a 'drawable' folder with the monochrome icon file:
$USER_CUSTOM_MONOCHROME_NAME
""".trimIndentMultiline()
)
block()
dependsOn(
addResourcesPatch,
bytecodePatch {
execute {
mainActivityOnCreateFingerprint.method.addInstruction(
0,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setBranding()V"
)
numberOfPresetAppNamesExtensionFingerprint.method.returnEarly(numberOfPresetAppNames)
}
}
)
finalize {
val useCustomName = customName != null
val useCustomIcon = customIcon != null
if (setOrGetFallbackPackageName(originalAppPackageName) == originalAppPackageName) {
if (useCustomName || useCustomIcon) {
Logger.getLogger(this::class.java.name).warning(
"Custom branding does not work with root installation. No changes applied."
)
}
return@finalize
}
preferenceScreen.addPreferences(
if (useCustomName) {
ListPreference(
key = "revanced_custom_branding_name",
entriesKey = "revanced_custom_branding_name_custom_entries",
entryValuesKey = "revanced_custom_branding_name_custom_entry_values"
)
} else {
ListPreference("revanced_custom_branding_name")
},
if (useCustomIcon) {
ListPreference(
key = "revanced_custom_branding_icon",
entriesKey = "revanced_custom_branding_icon_custom_entries",
entryValuesKey = "revanced_custom_branding_icon_custom_entry_values"
)
} else {
ListPreference("revanced_custom_branding_icon")
}
)
}
execute {
val mipmapIconResourceGroups = mipmapDirectories.map { directory ->
ResourceGroup(
directory,
*iconResourceFileNamesPng,
addResources("shared", "layout.branding.baseCustomBrandingPatch")
addResources(addResourcePatchName, "layout.branding.customBrandingPatch")
val useCustomName = customName != null
val useCustomIcon = customIcon != null
iconStyleNames.forEach { style ->
copyResources(
"custom-branding",
ResourceGroup(
"drawable",
"$LAUNCHER_ADAPTIVE_BACKGROUND_PREFIX$style.xml",
"$LAUNCHER_ADAPTIVE_FOREGROUND_PREFIX$style.xml",
"$LAUNCHER_ADAPTIVE_MONOCHROME_PREFIX$style.xml"
),
ResourceGroup(
"mipmap-anydpi",
"$LAUNCHER_RESOURCE_NAME_PREFIX$style.xml"
)
)
}
val iconPathTrimmed = iconPath!!.trim()
if (iconPathTrimmed == REVANCED_ICON) {
// Replace mipmap icons with preset patch icons.
mipmapIconResourceGroups.forEach { groupResources ->
copyResources(resourceFolder, groupResources)
}
// Copy template user icon, because the aliases must be added even if no user icon is provided.
copyResources(
"custom-branding",
ResourceGroup(
"mipmap-anydpi",
"$LAUNCHER_RESOURCE_NAME_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.xml",
),
ResourceGroup(
"drawable",
"$LAUNCHER_ADAPTIVE_MONOCHROME_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.xml",
)
)
// Replace monochrome icons.
monochromeIconFileNames.forEach { fileName ->
copyResources(
resourceFolder,
ResourceGroup("drawable", fileName)
// Copy template icon png files.
mipmapDirectories.forEach { dpi ->
copyResources(
"custom-branding",
ResourceGroup(
dpi,
"$LAUNCHER_ADAPTIVE_BACKGROUND_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.png",
"$LAUNCHER_ADAPTIVE_FOREGROUND_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.png",
)
)
}
if (useCustomIcon) {
// Copy user provided files
val iconPathFile = File(customIcon!!.trim())
if (!iconPathFile.exists()) {
throw PatchException(
"The custom icon path cannot be found: " + iconPathFile.absolutePath
)
}
} else {
val filePath = File(iconPathTrimmed)
if (!iconPathFile.isDirectory) {
throw PatchException(
"The custom icon path must be a folder: " + iconPathFile.absolutePath
)
}
val sourceFolders = iconPathFile.listFiles { file -> file.isDirectory }
?: throw PatchException("The custom icon path contains no subfolders: " +
iconPathFile.absolutePath)
val resourceDirectory = get("res")
var copiedFiles = false
// Replace
mipmapIconResourceGroups.forEach { groupResources ->
val groupResourceDirectoryName = groupResources.resourceDirectoryName
val fromDirectory = filePath.resolve(groupResourceDirectoryName)
val toDirectory = resourceDirectory.resolve(groupResourceDirectoryName)
// For each source folder, copy the files to the target resource directories.
sourceFolders.forEach { dpiSourceFolder ->
val targetDpiFolder = resourceDirectory.resolve(dpiSourceFolder.name)
if (!targetDpiFolder.exists()) return@forEach
groupResources.resources.forEach { iconFileName ->
Files.write(
toDirectory.resolve(iconFileName).toPath(),
fromDirectory.resolve(iconFileName).readBytes(),
)
val customFiles = dpiSourceFolder.listFiles { file ->
file.isFile && file.name in USER_CUSTOM_ADAPTIVE_FILE_NAMES
}!!
if (customFiles.size > 0 && customFiles.size != USER_CUSTOM_ADAPTIVE_FILE_NAMES.size) {
throw PatchException("Must include all required icon files " +
"but only found " + customFiles.map { it.name })
}
customFiles.forEach { imgSourceFile ->
val imgTargetFile = targetDpiFolder.resolve(imgSourceFile.name)
imgSourceFile.copyTo(target = imgTargetFile, overwrite = true)
copiedFiles = true
}
}
// Copy all monochrome icons if provided.
monochromeIconFileNames.forEach { fileName ->
val replacementMonochrome = filePath.resolve("drawable").resolve(fileName)
if (replacementMonochrome.exists()) {
Files.write(
resourceDirectory.resolve("drawable").resolve(fileName).toPath(),
replacementMonochrome.readBytes(),
)
}
// Copy monochrome if it provided.
val monochromeRelativePath = "drawable/$USER_CUSTOM_MONOCHROME_NAME"
val monochromeFile = iconPathFile.resolve(monochromeRelativePath)
if (monochromeFile.exists()) {
monochromeFile.copyTo(
target = resourceDirectory.resolve(monochromeRelativePath),
overwrite = true
)
copiedFiles = true
}
if (!copiedFiles) {
throw PatchException("Could not find any replacement images in " +
"patch option path: " + iconPathFile.absolutePath)
}
}
// Change the app name.
escapeAppName(appName!!)?.let { escapedAppName ->
val newValue = "android:label=\"$escapedAppName\""
document("AndroidManifest.xml").use { document ->
// Create launch aliases that can be programmatically selected in app.
fun createAlias(
aliasName: String,
iconMipmapName: String,
appNameIndex: Int,
useCustomName: Boolean,
enabled: Boolean,
intents: NodeList
): Element {
val label = if (useCustomName) {
if (customName == null) {
"Custom" // Dummy text, and normally cannot be seen.
} else {
customName!!
}
} else if (appNameIndex == 1) {
// Indexing starts at 1.
originalAppName
} else {
"@string/revanced_custom_branding_name_entry_$appNameIndex"
}
val alias = document.createElement("activity-alias")
alias.setAttribute("android:name", aliasName)
alias.setAttribute("android:enabled", enabled.toString())
alias.setAttribute("android:exported", "true")
alias.setAttribute("android:icon", "@mipmap/$iconMipmapName")
alias.setAttribute("android:label", label)
alias.setAttribute("android:targetActivity", mainActivityName)
val manifest = get("AndroidManifest.xml")
val original = manifest.readText()
val replacement = original
// YouTube
.replace("android:label=\"@string/application_name\"", newValue)
// YT Music
.replace("android:label=\"@string/app_launcher_name\"", newValue)
// Copy all intents from the original alias so long press actions still work.
if (copyExistingIntentsToAliases) {
for (i in 0 until intents.length) {
alias.appendChild(
intents.item(i).cloneNode(true)
)
}
} else {
val intentFilter = document.createElement("intent-filter").apply {
val action = document.createElement("action")
action.setAttribute("android:name", "android.intent.action.MAIN")
appendChild(action)
if (original == replacement) {
Logger.getLogger(this::class.java.name).warning(
"Could not replace manifest app name"
val category = document.createElement("category")
category.setAttribute("android:name", "android.intent.category.LAUNCHER")
appendChild(category)
}
alias.appendChild(intentFilter)
}
return alias
}
val intentFilters = document.childNodes.findElementByAttributeValueOrThrow(
"android:name",
activityAliasNameWithIntents
).childNodes
val application = document.getElementsByTagName("application").item(0) as Element
for (appNameIndex in 1 .. numberOfPresetAppNames) {
fun aliasName(name: String): String = ".revanced_" + name + '_' + appNameIndex
val useCustomNameLabel = (useCustomName && appNameIndex == numberOfPresetAppNames)
// Original icon.
application.appendChild(
createAlias(
aliasName = aliasName(ORIGINAL_USER_ICON_STYLE_NAME),
iconMipmapName = originalLauncherIconName,
appNameIndex = appNameIndex,
useCustomName = useCustomNameLabel,
enabled = (appNameIndex == 1),
intentFilters
)
)
// Bundled icons.
iconStyleNames.forEachIndexed { index, style ->
application.appendChild(
createAlias(
aliasName = aliasName(style),
iconMipmapName = LAUNCHER_RESOURCE_NAME_PREFIX + style,
appNameIndex = appNameIndex,
useCustomName = useCustomNameLabel,
enabled = false,
intentFilters
)
)
}
// User provided custom icon.
//
// Must add all aliases even if the user did not provide a custom icon of their own.
// This is because if the user installs with an option, then repatches without the option,
// the alias must still exist because if it was previously enabled and then it's removed
// the app will become broken and cannot launch. Even if the app data is cleared
// it still cannot be launched and the only fix is to uninstall the app.
// To prevent this, always include all aliases and use dummy data if needed.
application.appendChild(
createAlias(
aliasName = aliasName(CUSTOM_USER_ICON_STYLE_NAME),
iconMipmapName = LAUNCHER_RESOURCE_NAME_PREFIX + CUSTOM_USER_ICON_STYLE_NAME,
appNameIndex = appNameIndex,
useCustomName = useCustomNameLabel,
enabled = false,
intentFilters
)
)
}
manifest.writeText(replacement)
// Remove the main action from the original alias, otherwise two apps icons
// can be shown in the launcher. Can only be done after adding the new aliases.
intentFilters.findElementByAttributeValueOrThrow(
"android:name",
"android.intent.action.MAIN"
).removeFromParent()
}
executeBlock() // Must be after the main code to rename the new icons for YouTube 19.34+.
executeBlock()
}
}

View File

@@ -0,0 +1,13 @@
package app.revanced.patches.shared.layout.branding
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val numberOfPresetAppNamesExtensionFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("I")
parameters()
custom { method, classDef ->
method.name == "numberOfPresetAppNames" && classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}

View File

@@ -79,7 +79,7 @@ internal val darkThemeBackgroundColorOption = stringOption(
*/
internal fun baseThemePatch(
extensionClassDescriptor: String,
block: BytecodePatchBuilder.() -> Unit = {},
block: BytecodePatchBuilder.() -> Unit,
executeBlock: BytecodePatchContext.() -> Unit = {}
) = bytecodePatch(
name = "Theme",

View File

@@ -1,16 +1,11 @@
package app.revanced.patches.shared.misc.gms
import app.revanced.patcher.fingerprint
import app.revanced.patches.shared.misc.gms.EXTENSION_CLASS_DESCRIPTOR
import com.android.tools.smali.dexlib2.AccessFlags
const val GET_GMS_CORE_VENDOR_GROUP_ID_METHOD_NAME = "getGmsCoreVendorGroupId"
internal val gmsCoreSupportFingerprint = fingerprint {
custom { _, classDef ->
classDef.endsWith("GmsCoreSupport;")
}
}
internal val googlePlayUtilityFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("I")
@@ -28,3 +23,21 @@ internal val serviceCheckFingerprint = fingerprint {
parameters("L", "I")
strings("Google Play Services not available")
}
internal val gmsCoreSupportFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("Ljava/lang/String;")
parameters()
custom { method, classDef ->
method.name == "getGmsCoreVendorGroupId" && classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}
internal val originalPackageNameExtensionFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
returns("Ljava/lang/String;")
parameters()
custom { methodDef, classDef ->
methodDef.name == "getOriginalPackageName" && classDef.type == EXTENSION_CLASS_DESCRIPTOR
}
}

View File

@@ -1,10 +1,18 @@
package app.revanced.patches.shared.misc.gms
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.*
import app.revanced.patcher.patch.BytecodePatchBuilder
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.patch.Option
import app.revanced.patcher.patch.Patch
import app.revanced.patcher.patch.ResourcePatchBuilder
import app.revanced.patcher.patch.ResourcePatchContext
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.all.misc.packagename.changePackageNamePatch
import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName
import app.revanced.patches.all.misc.resources.addResources
@@ -12,7 +20,8 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.gms.Constants.ACTIONS
import app.revanced.patches.shared.misc.gms.Constants.AUTHORITIES
import app.revanced.patches.shared.misc.gms.Constants.PERMISSIONS
import app.revanced.util.*
import app.revanced.util.getReference
import app.revanced.util.returnEarly
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
@@ -23,6 +32,8 @@ import com.android.tools.smali.dexlib2.util.MethodUtil
import org.w3c.dom.Element
import org.w3c.dom.Node
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/shared/GmsCoreSupport;"
private const val PACKAGE_NAME_REGEX_PATTERN = "^[a-z]\\w*(\\.[a-z]\\w*)+\$"
/**
@@ -201,19 +212,18 @@ fun gmsCoreSupportPatch(
googlePlayUtilityFingerprint.method.returnEarly(0)
}
// Set original and patched package names for extension to use.
originalPackageNameExtensionFingerprint.method.returnEarly(fromPackageName)
// Verify GmsCore is installed and whitelisted for power optimizations and background usage.
mainActivityOnCreateFingerprint.method.apply {
addInstructions(
0,
"invoke-static/range { p0 .. p0 }, Lapp/revanced/extension/shared/GmsCoreSupport;->" +
"checkGmsCore(Landroid/app/Activity;)V",
)
}
mainActivityOnCreateFingerprint.method.addInstruction(
0,
"invoke-static/range { p0 .. p0 }, $EXTENSION_CLASS_DESCRIPTOR->" +
"checkGmsCore(Landroid/app/Activity;)V"
)
// Change the vendor of GmsCore in the extension.
gmsCoreSupportFingerprint.classDef.methods
.single { it.name == GET_GMS_CORE_VENDOR_GROUP_ID_METHOD_NAME }
.replaceInstruction(0, "const-string v0, \"$gmsCoreVendorGroupId\"")
gmsCoreSupportFingerprint.method.returnEarly(gmsCoreVendorGroupId!!)
executeBlock()
}

View File

@@ -1,5 +1,6 @@
package app.revanced.patches.shared.misc.spoof
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
@@ -36,11 +37,13 @@ internal const val EXTENSION_CLASS_DESCRIPTOR =
private lateinit var buildRequestMethod: MutableMethod
private var buildRequestMethodUrlRegister = -1
fun spoofVideoStreamsPatch(
block: BytecodePatchBuilder.() -> Unit = {},
fixMediaFetchHotConfigChanges: BytecodePatchBuilder.() -> Boolean = { false },
fixMediaFetchHotConfigAlternativeChanges: BytecodePatchBuilder.() -> Boolean = { false },
internal fun spoofVideoStreamsPatch(
extensionClassDescriptor: String,
mainActivityOnCreateFingerprint: Fingerprint,
fixMediaFetchHotConfig: BytecodePatchBuilder.() -> Boolean = { false },
fixMediaFetchHotConfigAlternative: BytecodePatchBuilder.() -> Boolean = { false },
fixParsePlaybackResponseFeatureFlag: BytecodePatchBuilder.() -> Boolean = { false },
block: BytecodePatchBuilder.() -> Unit,
executeBlock: BytecodePatchContext.() -> Unit = {},
) = bytecodePatch(
name = "Spoof video streams",
@@ -53,6 +56,11 @@ fun spoofVideoStreamsPatch(
execute {
addResources("shared", "misc.fix.playback.spoofVideoStreamsPatch")
mainActivityOnCreateFingerprint.method.addInstruction(
0,
"invoke-static { }, $extensionClassDescriptor->setClientOrderToUse()V"
)
// region Enable extension helper method used by other patches
patchIncludedExtensionMethodFingerprint.method.returnEarly(true)
@@ -308,14 +316,14 @@ fun spoofVideoStreamsPatch(
// region turn off stream config replacement feature flag.
if (fixMediaFetchHotConfigChanges()) {
if (fixMediaFetchHotConfig()) {
mediaFetchHotConfigFingerprint.method.insertLiteralOverride(
MEDIA_FETCH_HOT_CONFIG_FEATURE_FLAG,
"$EXTENSION_CLASS_DESCRIPTOR->useMediaFetchHotConfigReplacement(Z)Z"
)
}
if (fixMediaFetchHotConfigAlternativeChanges()) {
if (fixMediaFetchHotConfigAlternative()) {
mediaFetchHotConfigAlternativeFingerprint.method.insertLiteralOverride(
MEDIA_FETCH_HOT_CONFIG_ALTERNATIVE_FEATURE_FLAG,
"$EXTENSION_CLASS_DESCRIPTOR->useMediaFetchHotConfigReplacement(Z)Z"

View File

@@ -6,6 +6,8 @@ import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.shared.PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN
import app.revanced.patches.shared.PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN
import app.revanced.patches.shared.misc.mapping.get
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
@@ -29,8 +31,8 @@ private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/twitter/patches/li
@Suppress("unused")
val changeLinkSharingDomainPatch = bytecodePatch(
name = "Change link sharing domain",
description = "Replaces the domain name of Twitter links when sharing them.",
name = PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN,
description = PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN
) {
dependsOn(
changeLinkSharingDomainResourcePatch,

View File

@@ -1,38 +1,28 @@
package app.revanced.patches.youtube.layout.branding
import app.revanced.patches.shared.layout.branding.baseCustomBrandingPatch
import app.revanced.patches.shared.layout.branding.mipmapDirectories
import java.nio.file.Files
private const val APP_NAME = "YouTube ReVanced"
private val youtubeIconResourceFileNames_19_34 = mapOf(
"adaptiveproduct_youtube_foreground_color_108" to "adaptiveproduct_youtube_2024_q4_foreground_color_108",
"adaptiveproduct_youtube_background_color_108" to "adaptiveproduct_youtube_2024_q4_background_color_108",
)
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.gms.Constants.YOUTUBE_MAIN_ACTIVITY_NAME
import app.revanced.patches.youtube.misc.gms.Constants.YOUTUBE_PACKAGE_NAME
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
@Suppress("unused")
val customBrandingPatch = baseCustomBrandingPatch(
defaultAppName = APP_NAME,
appNameValues = mapOf(
"YouTube ReVanced" to APP_NAME,
"YT ReVanced" to "YT ReVanced",
"YT" to "YT",
"YouTube" to "YouTube",
),
resourceFolder = "custom-branding/youtube",
iconResourceFileNames = arrayOf(
"adaptiveproduct_youtube_background_color_108",
"adaptiveproduct_youtube_foreground_color_108",
"ic_launcher",
"ic_launcher_round",
),
monochromeIconFileNames = arrayOf(
"adaptive_monochrome_ic_youtube_launcher.xml",
"ringo2_adaptive_monochrome_ic_youtube_launcher.xml"
),
addResourcePatchName = "youtube",
originalLauncherIconName = "ic_launcher",
originalAppName = "@string/application_name",
originalAppPackageName = YOUTUBE_PACKAGE_NAME,
copyExistingIntentsToAliases = true,
numberOfPresetAppNames = 5,
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
mainActivityName = YOUTUBE_MAIN_ACTIVITY_NAME,
activityAliasNameWithIntents = "com.google.android.youtube.app.honeycomb.Shell\$HomeActivity",
preferenceScreen = PreferenceScreen.GENERAL_LAYOUT,
block = {
dependsOn(sharedExtensionPatch)
compatibleWith(
"com.google.android.youtube"(
"19.34.42",
@@ -41,20 +31,5 @@ val customBrandingPatch = baseCustomBrandingPatch(
"20.14.43",
)
)
},
executeBlock = {
val resourceDirectory = get("res")
mipmapDirectories.forEach { directory ->
val targetDirectory = resourceDirectory.resolve(directory)
youtubeIconResourceFileNames_19_34.forEach { (old, new) ->
val oldFile = targetDirectory.resolve("$old.png")
val newFile = targetDirectory.resolve("$new.png")
Files.write(newFile.toPath(), oldFile.readBytes())
}
}
}
)

View File

@@ -136,8 +136,21 @@ val changeHeaderPatch = resourcePatch(
)
if (custom != null) {
val sourceFolders = File(custom!!).listFiles { file -> file.isDirectory }
?: throw PatchException("The provided path is not a directory: $custom")
val customFile = File(custom!!)
if (!customFile.exists()) {
throw PatchException("The custom icon path cannot be found: " +
customFile.absolutePath
)
}
if (!customFile.isDirectory) {
throw PatchException("The custom icon path must be a folder: "
+ customFile.absolutePath)
}
val sourceFolders = customFile.listFiles { file -> file.isDirectory }
?: throw PatchException("The custom icon path contains no subfolders: " +
customFile.absolutePath)
val customResourceFileNames = getLightDarkFileNames(CUSTOM_HEADER_RESOURCE_NAME)
@@ -166,7 +179,8 @@ val changeHeaderPatch = resourcePatch(
}
if (!copiedFiles) {
throw PatchException("No custom header images found in the provided path: $custom")
throw PatchException("No custom header images found in " +
"the provided path: " + customFile.absolutePath)
}
}

View File

@@ -27,6 +27,7 @@ import app.revanced.util.forEachLiteralValueInstruction
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstLiteralInstruction
import app.revanced.util.removeFromParent
import app.revanced.util.returnLate
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
@@ -127,7 +128,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch {
)
if (hideShortsAppShortcut == true) {
shortsItem.parentNode.removeChild(shortsItem)
shortsItem.removeFromParent()
}
}
@@ -138,7 +139,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch {
)
if (hideShortsWidget == true) {
shortsItem.parentNode.removeChild(shortsItem)
shortsItem.removeFromParent()
}
}

View File

@@ -1,6 +1,8 @@
package app.revanced.patches.youtube.misc.gms
internal object Constants {
internal const val YOUTUBE_MAIN_ACTIVITY_NAME = "com.google.android.apps.youtube.app.watchwhile.MainActivity"
const val YOUTUBE_PACKAGE_NAME = "com.google.android.youtube"
const val REVANCED_YOUTUBE_PACKAGE_NAME = "app.revanced.android.youtube"
}

View File

@@ -1,6 +1,5 @@
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
@@ -16,9 +15,20 @@ import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch;"
val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
extensionClassDescriptor = "Lapp/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch;",
mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint,
fixMediaFetchHotConfig = {
is_19_34_or_greater
},
fixMediaFetchHotConfigAlternative = {
// 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
},
block = {
compatibleWith(
"com.google.android.youtube"(
@@ -35,16 +45,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
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")
@@ -61,6 +62,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
summaryKey = null,
tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference"
),
SwitchPreference("revanced_spoof_video_streams_av1"),
ListPreference(
key = "revanced_spoof_video_streams_language",
// Language strings are declared in Setting patch.
@@ -72,10 +74,5 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch(
)
)
)
mainActivityOnCreateFingerprint.method.addInstruction(
0,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientOrderToUse()V"
)
}
)

View File

@@ -14,6 +14,13 @@ import java.nio.file.StandardCopyOption
private val classLoader = object {}.javaClass.classLoader
/**
* Removes a node from its parent.
*
* @return The node that was removed (object this method was called on).
*/
fun Node.removeFromParent() : Node = parentNode.removeChild(this)
/**
* Returns a sequence for all child nodes.
*/
@@ -70,8 +77,13 @@ fun ResourcePatchContext.copyResources(
for (resourceGroup in resources) {
resourceGroup.resources.forEach { resource ->
val resourceFile = "${resourceGroup.resourceDirectoryName}/$resource"
val stream = inputStreamFromBundledResource(sourceResourceDirectory, resourceFile)
if (stream == null) {
throw IllegalArgumentException("Could not find resource: $resourceFile " +
"in directory: $sourceResourceDirectory")
}
Files.copy(
inputStreamFromBundledResource(sourceResourceDirectory, resourceFile)!!,
stream,
targetResourceDirectory.resolve(resourceFile).toPath(),
StandardCopyOption.REPLACE_EXISTING,
)

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">اسم التطبيق</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">مخصص</string>
<string name="revanced_custom_branding_icon_title">أيقونة التطبيق</string>
<string name="revanced_custom_branding_icon_entry_1">أصلي</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced مصغر</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">مخصص</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">فشلت عمليات التحقق</string>
<string name="revanced_check_environment_dialog_open_official_source_button">فتح الموقع الرسمي</string>
@@ -1410,11 +1423,13 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_accent_summary">لون تمييز شريط التقدم</string>
<string name="revanced_seekbar_custom_color_invalid">لون شريط التقدم غير صالح</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimal</string>
<string name="revanced_header_logo_entry_6">مخصص</string>
</patch>
@@ -1604,13 +1619,20 @@ Second \"item\" text"</string>
<string name="revanced_slide_to_seek_summary_off">تم تعطيل التمرير للتقديم أو الترجيع</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">السماح لـ Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"برنامج ترميز الفيديو هو AVC (H.264) أو VP9 أو AV1
قد يحدث تقطيع أو فقدان للإطارات أثناء التشغيل"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">برنامج ترميز الفيديو هو AVC (H.264) أو VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"قد يؤدي تمكين هذا الإعداد إلى استخدام فك ترميز AV1 برمجيًا.
قد يتلعثم تشغيل الفيديو بتقنية AV1 أو يفقد بعض الإطارات."</string>
<string name="revanced_spoof_video_streams_about_title">التأثيرات الجانبية للتزييف</string>
<string name="revanced_spoof_video_streams_about_experimental">• عميل تجريبي وقد يتوقف عن العمل في أي وقت</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• قد يتوقف الفيديو عند 1:00، أو قد لا يكون متاحًا في بعض المناطق</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• قائمة المقطع الصوتي مفقودة</string>
<string name="revanced_spoof_video_streams_about_no_av1">• لا يوجد ترميز الفيديو AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• مستوى الصوت الثابت غير متاح</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• قد يتوقف التشغيل مؤقتًا أو تسقط الإطارات</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• قد لا يتم تشغيل الفيديوهات المخصصة للأطفال عند تسجيل الخروج أو عند استخدام وضع التصفح المتخفي</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• فرض الصوت الأصلي غير متاح</string>
@@ -1624,6 +1646,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">لمحة</string>
<string name="revanced_settings_music_screen_1_ads_title">الإعلانات</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -204,8 +210,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -255,6 +263,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Tətbiq adı</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Fərdi</string>
<string name="revanced_custom_branding_icon_title">Tətbiq ikonu</string>
<string name="revanced_custom_branding_icon_entry_1">Orijinal</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">Ən kiçik ReVanced</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced ölçüləndirilmiş</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Fərdi</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Yoxlamalar uğursuz oldu</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Xidməti veb saytı</string>
@@ -1409,11 +1422,13 @@ Kiçik oynadıcı ekrandan sola və ya sağa sürüklənə bilər"</string>
<string name="revanced_seekbar_custom_color_accent_summary">İrəliləyiş cizgisi vurğu rəngi</string>
<string name="revanced_seekbar_custom_color_invalid">Etibarsız irəliləmə cizgisi rəng dəyəri</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Başlıq simvolu</string>
<string name="revanced_header_logo_entry_1">İlkin</string>
<string name="revanced_header_logo_entry_2">Müntəzəm</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">Ən kiçik ReVanced</string>
<string name="revanced_header_logo_entry_6">Fərdi</string>
</patch>
@@ -1603,13 +1618,20 @@ Məhdudiyyətlər:
<string name="revanced_slide_to_seek_summary_off">Axtarmaq üçün sürüşdürmə aktiv deyil</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Android VR AV1-ə icazə ver</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Video kodek AVC (H.264), VP9 və ya AV1-dir
Oxutma kəsilə bilər və ya kadrlar atıla bilər"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Video kodek AVC (H.264) və ya VP9-dur</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Bu ayarı aktivləşdirmək proqram təminatı AV1 dekodlaşdırmasından istifadə edə bilər.
AV1 ilə video oxutma kəsilə bilər və ya kadrlar atıla bilər."</string>
<string name="revanced_spoof_video_streams_about_title">Saxtakarlıq yan təsirləri</string>
<string name="revanced_spoof_video_streams_about_experimental">• Təcrübi qəbuledici və hər vaxt işləməyi dayandıra bilər</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video 01:00-da dayana bilər və ya bəzi bölgələrdə mövcud olmaya bilər</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Səs treki menyusu çatışmır</string>
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 video kodlayıcı yoxdur</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Sabit səs yoxdur</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Oynatma qarışa bilər və ya kadrlar ötürülə bilər</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Giriş edilməyəndə və ya gizli rejimdə uşaq videoları oynadıla bilməz</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• \"Orijinal səsi zorla\" əlçatmazdır</string>
@@ -1623,6 +1645,8 @@ Məhdudiyyətlər:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Haqqında</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklamlar</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Назва праграмы</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Карыстальніцкая</string>
<string name="revanced_custom_branding_icon_title">Значок праграмы</string>
<string name="revanced_custom_branding_icon_entry_1">Арыгінал</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced мінімальны</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced маштабаваны</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Карыстальніцкі</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Праверкі не пройдзены</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Адкрыць афіцыйны вэб-сайт</string>
@@ -1411,11 +1424,13 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Акцэнтны колер пошуку</string>
<string name="revanced_seekbar_custom_color_invalid">Неверное значение цвета ползунка прогресса</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced мінімальны</string>
<string name="revanced_header_logo_entry_6">Карыстальніцкі</string>
</patch>
@@ -1605,13 +1620,20 @@ Second \"item\" text"</string>
<string name="revanced_slide_to_seek_summary_off">Слайд для пошуку не ўключаны</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Дазволіць Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Відэакодэк — AVC (H.264), VP9 або AV1
Праграмаванне можа заікацца або прапускаць кадры"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Відэакодэк — AVC (H.264) або VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Уключэнне гэтай налады можа выкарыстоўваць праграмнае дэкадаванне AV1.
Прайграванне відэа з AV1 можа заікацца або прапускаць кадры."</string>
<string name="revanced_spoof_video_streams_about_title">Пабочныя эфекты падробкі</string>
<string name="revanced_spoof_video_streams_about_experimental">• Эксперыментальны кліент і можа спыніць працу ў любы час</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Відэа можа спыніцца на 1:00, ці можа быць недаступным у некаторых рэгіёнах</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Меню аўдыядарожкі адсутнічае</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Няма відэакідавання AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Стабільная гучнасць недаступная</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Прайграванне можа заікацца або прапускаць кадры</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Дзіцячыя відэа могуць не прайгравацца ў стане выхаду з акаўнта або ў рэжыме інкогніта</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Прымусовы арыгінальны аўдыё недаступны</string>
@@ -1625,6 +1647,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Пра</string>
<string name="revanced_settings_music_screen_1_ads_title">Рэклама</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Име на приложението</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Персонализиран</string>
<string name="revanced_custom_branding_icon_title">Икона на приложението</string>
<string name="revanced_custom_branding_icon_entry_1">Оригинален</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced минимален</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced мащабиран</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Персонализиран</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Проверката е неуспешна</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Отворете официалния уебсайт</string>
@@ -1410,11 +1423,13 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Цветът на лентата за търсене</string>
<string name="revanced_seekbar_custom_color_invalid">Невалидна стойност за цвят на лентата на прогреса</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced минимално</string>
<string name="revanced_header_logo_entry_6">По избор</string>
</patch>
@@ -1604,13 +1619,20 @@ Second \"item\" text"</string>
<string name="revanced_slide_to_seek_summary_off">Слайд за превъртане е деактивиран</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Разрешаване на Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Видеокодекът е AVC (H.264), VP9 или AV1
Възпроизвеждането може да заеква или да пропуска кадри"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Видеокодекът е AVC (H.264) или VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Разрешаването на тази настройка може да използва софтуерно AV1 декодиране.
Възпроизвеждането на видео с AV1 може да заеква или да пропуска кадри."</string>
<string name="revanced_spoof_video_streams_about_title">Странични ефекти от подменянето</string>
<string name="revanced_spoof_video_streams_about_experimental">• Експериментален клиент и може да спре да работи по всяко време</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Видеото може да спре на 1:00 или може да не е налично в някои региони</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Менюто за аудиозаписи липсва</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Без AV1 видео кодек</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Стабилният звук не е наличен</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Възпроизвеждането може да заеква или да пропуска кадри</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Детските видеоклипове може да не се възпроизвеждат, когато сте излезли от профила си или в режим \"инкогнито\"</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Принудителният оригинален звук не е наличен</string>
@@ -1624,6 +1646,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Относно</string>
<string name="revanced_settings_music_screen_1_ads_title">Реклами</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">অ্যাপের নাম</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">কাস্টম</string>
<string name="revanced_custom_branding_icon_title">অ্যাপ আইকন</string>
<string name="revanced_custom_branding_icon_entry_1">মূল</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">রিভ্যান্সড মিনিমাল</string>
<string name="revanced_custom_branding_icon_entry_4">রিভ্যান্সড স্কেলড</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">কাস্টম</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">চেক ফেইল করেছে</string>
<string name="revanced_check_environment_dialog_open_official_source_button">অফিশ্যাল ওয়েবসাইট খুলুন</string>
@@ -1406,11 +1419,13 @@ Miniplayer স্ক্রিন থেকে বামে বা ডানে
<string name="revanced_seekbar_custom_color_accent_summary">সিকবারের এক্সেন্ট রঙ</string>
<string name="revanced_seekbar_custom_color_invalid">অবৈধ সিকবার রঙ মান</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">রিভ্যান্সড মিনিমাল</string>
<string name="revanced_header_logo_entry_6">কাস্টম</string>
</patch>
@@ -1600,13 +1615,20 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
<string name="revanced_slide_to_seek_summary_off">ভিডিওর নির্দিষ্ট অংশে যেতে টানুন সক্রিয় করা হয়নি</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">অ্যান্ড্রয়েড VR AV1 অনুমতি দিন</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"ভিডিও কোডেক হল AVC (H.264), VP9, অথবা AV1
প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">ভিডিও কোডেক হল AVC (H.264) অথবা VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"এই সেটিংটি চালু করলে সফটওয়্যার AV1 ডিকোডিং ব্যবহার হতে পারে।
AV1 সহ ভিডিও প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে।"</string>
<string name="revanced_spoof_video_streams_about_title">স্পুফিংয়ের পার্শ্বপ্রতিক্রিয়া</string>
<string name="revanced_spoof_video_streams_about_experimental">• পরীক্ষামূলক ক্লায়েন্ট এবং যেকোনো সময় কাজ করা বন্ধ করতে পারে</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• ভিডিও ১: মিনিটে বন্ধ হতে পারে, অথবা কিছু অঞ্চলে উপলব্ধ নাও হতে পারে</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• অডিও ট্র্যাক মেনু অনুপস্থিত</string>
<string name="revanced_spoof_video_streams_about_no_av1">• কোনো AV1 ভিডিও কোডেক নেই</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• স্থিতিশীল ভলিউম উপলব্ধ নেই</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• লগআউট করা হলে বা ছদ্মবেশী মোডে বাচ্চাদের ভিডিও চলতে নাও পারে</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• মূল অডিও জোরপূর্বক উপলব্ধ নেই</string>
@@ -1620,6 +1642,8 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">সম্পর্কে</string>
<string name="revanced_settings_music_screen_1_ads_title">বিজ্ঞাপন</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Název aplikace</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Vlastní</string>
<string name="revanced_custom_branding_icon_title">Ikona aplikace</string>
<string name="revanced_custom_branding_icon_entry_1">Původní</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimální</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced škálované</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Vlastní</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Kontrola proběhla neúspěšně</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Otevřít oficiální webovou stránku</string>
@@ -1410,11 +1423,13 @@ Omezení: Použití tlačítka zpět na panelu nástrojů nemusí fungovat"</str
<string name="revanced_seekbar_custom_color_accent_summary">Zvýrazněná barva posuvníku</string>
<string name="revanced_seekbar_custom_color_invalid">Neplatná hodnota barvy posuvníku</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo záhlaví</string>
<string name="revanced_header_logo_entry_1">Výchozí</string>
<string name="revanced_header_logo_entry_2">Běžné</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimální</string>
<string name="revanced_header_logo_entry_6">Vlastní</string>
</patch>
@@ -1604,13 +1619,20 @@ Omezení:
<string name="revanced_slide_to_seek_summary_off">Posun pro hledání není povolen</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Povolit Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Video kodek je AVC (H.264), VP9 nebo AV1
Přehrávání se může zasekávat nebo přeskakovat snímky"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Video kodek je AVC (H.264) nebo VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Povolení tohoto nastavení může využívat softwarové dekódování AV1.
Přehrávání videa s AV1 se může sekat nebo vypadávat snímky."</string>
<string name="revanced_spoof_video_streams_about_title">Vedlejší účinky maskování</string>
<string name="revanced_spoof_video_streams_about_experimental">• Experimentální klient a může kdykoli přestat fungovat</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video se může zastavit v 1:00 nebo nemusí být dostupné v některých oblastech</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Chybí nabídka zvukových stop</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Žádný video kodek AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabilní hlasitost není k dispozici</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Přehrávání se může sekat nebo ztrácet snímky</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Dětská videa se nemusí přehrávat, když jste odhlášení nebo v anonymním režimu</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Vynutit původní zvuk není k dispozici</string>
@@ -1624,6 +1646,8 @@ Omezení:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">O aplikaci</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklamy</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Appnavn</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Tilpasset</string>
<string name="revanced_custom_branding_icon_title">Appikon</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced skaleret</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Tilpasset</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Kontrol mislykkedes</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Åbn officiel hjemmeside</string>
@@ -1412,11 +1425,13 @@ Miniafspiller kan trækkes ud over skærmen til venstre eller højre"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Søgelinjens accentfarve</string>
<string name="revanced_seekbar_custom_color_invalid">Ugyldig søgelinje farveværdi</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Sidehovedlogo</string>
<string name="revanced_header_logo_entry_1">Standard</string>
<string name="revanced_header_logo_entry_2">Normal</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimal</string>
<string name="revanced_header_logo_entry_6">Brugerdefineret</string>
</patch>
@@ -1606,13 +1621,20 @@ Begrænsninger:
<string name="revanced_slide_to_seek_summary_off">Dias til søgning er ikke aktiveret</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Tillad Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Videocodec er AVC (H.264), VP9 eller AV1
Afspilning kan hakke eller miste billeder"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Videocodec er AVC (H.264) eller VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Aktivering af denne indstilling kan bruge software AV1-afkodning.
Videoafspilning med AV1 kan hakke eller tabe billeder."</string>
<string name="revanced_spoof_video_streams_about_title">Bivirkninger ved spoofing</string>
<string name="revanced_spoof_video_streams_about_experimental">• Eksperimentel klient og kan stoppe med at fungere når som helst</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Videoen kan stoppe ved 1:00, eller er muligvis ikke tilgængelig i visse regioner</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Lydspormenu mangler</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Intet AV1-videokodek</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabil lydstyrke er ikke tilgængelig</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Afspilning kan hakke eller tabe billeder</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Videoer til børn afspilles muligvis ikke, når du er logget ud eller i inkognitotilstand</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Tving original lyd er ikke tilgængelig</string>
@@ -1626,6 +1648,8 @@ Begrænsninger:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Om</string>
<string name="revanced_settings_music_screen_1_ads_title">Annoncer</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">App-Name</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Benutzerdefiniert</string>
<string name="revanced_custom_branding_icon_title">App-Symbol</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced skaliert</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Benutzerdefiniert</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Prüfungen fehlgeschlagen</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Offizielle Website öffnen</string>
@@ -1407,11 +1420,13 @@ Der Mini-Player kann mit einer Wischgeste vom Bildschirm nach links oder rechts
<string name="revanced_seekbar_custom_color_accent_summary">Die Akzentfarbe der Fortschrittsanzeige</string>
<string name="revanced_seekbar_custom_color_invalid">Ungültiger Suchleisten-Farbwert</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Header-Logo</string>
<string name="revanced_header_logo_entry_1">Standard</string>
<string name="revanced_header_logo_entry_2">Regulär</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced Minimal</string>
<string name="revanced_header_logo_entry_6">Benutzerdefiniert</string>
</patch>
@@ -1601,13 +1616,20 @@ Einschränkungen:
<string name="revanced_slide_to_seek_summary_off">Slide zum Suchen ist nicht aktiviert</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Android VR AV1 zulassen</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Video-Codec ist AVC (H.264), VP9 oder AV1
Die Wiedergabe kann stottern oder Frames verlieren"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Video-Codec ist AVC (H.264) oder VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Durch Aktivierung dieser Einstellung kann Software-AV1-Decodierung verwendet werden.
Die Videowiedergabe mit AV1 kann stottern oder Bilder überspringen."</string>
<string name="revanced_spoof_video_streams_about_title">Nebenwirkungen des Spoofings</string>
<string name="revanced_spoof_video_streams_about_experimental">• Experimenteller Client und kann jederzeit aufhören zu funktionieren</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video kann um 1:00 Uhr stoppen oder ist möglicherweise in einigen Regionen nicht verfügbar</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Audiotrack-Menü fehlt</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Kein AV1-Videocodec</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabile Lautstärke ist nicht verfügbar</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Die Wiedergabe kann stottern oder Bilder überspringen</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Kinder-Videos werden möglicherweise nicht abgespielt, wenn du abgemeldet bist oder den Inkognito-Modus verwendest.</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Originalton erzwingen ist nicht verfügbar</string>
@@ -1621,6 +1643,8 @@ Einschränkungen:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Über</string>
<string name="revanced_settings_music_screen_1_ads_title">Werbung</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Όνομα εφαρμογής</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Προσαρμοσμένο</string>
<string name="revanced_custom_branding_icon_title">Εικονίδιο εφαρμογής</string>
<string name="revanced_custom_branding_icon_entry_1">Αρχικό</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced απλό</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced κλιμακωμένο</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Προσαρμοσμένο</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Αποτυχία ελέγχων</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Άνοιγμα επίσημης ιστοσελίδας</string>
@@ -959,8 +972,8 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
<string name="revanced_hide_related_videos_overlay_title">Σχετικά βίντεο στην πλήρη οθόνη</string>
<string name="revanced_hide_related_videos_overlay_summary_on">Κρυμμένα\n\nΑφορά τα σχετικά βίντεο της τελικής οθόνης στη λειτουργία πλήρους οθόνης</string>
<string name="revanced_hide_related_videos_overlay_summary_off">Εμφανίζονται\n\nΑφορά τα σχετικά βίντεο της τελικής οθόνης στη λειτουργία πλήρους οθόνης</string>
<string name="revanced_hide_related_videos_overlay_summary_on">Κρυμμένα</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>
@@ -1411,11 +1424,13 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Το χρώμα έμφασης της γραμμής προόδου</string>
<string name="revanced_seekbar_custom_color_invalid">Μη έγκυρη τιμή χρώματος γραμμής προόδου</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced απλό</string>
<string name="revanced_header_logo_entry_6">Προσαρμοσμένο</string>
</patch>
@@ -1603,13 +1618,20 @@ Second \"item\" text"</string>
<string name="revanced_slide_to_seek_summary_off">Η χειρονομία συρσίματος για αναζήτηση στη γραμμή προόδου είναι απενεργοποιημένη</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Να επιτρέπεται ο κωδικοποιητής Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Ο κωδικοποιητής βίντεο είναι ο AVC (H.264), ο VP9 ή ο AV1
Η αναπαραγωγή μπορεί να κομπιάζει ή να χάνει καρέ"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Ο κωδικοποιητής βίντεο είναι ο AVC (H.264) ή ο VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Η ενεργοποίηση αυτής της ρύθμισης ενδέχεται να χρησιμοποιήσει αποκωδικοποίηση λογισμικού AV1.
Η αναπαραγωγή βίντεο μπορεί να κομπιάζει ή να χάνει καρέ."</string>
<string name="revanced_spoof_video_streams_about_title">Παρενέργειες παραποίησης</string>
<string name="revanced_spoof_video_streams_about_experimental">• Πειραματικός πελάτης και μπορεί να σταματήσει να λειτουργεί ανά πάσα στιγμή</string>
<string name="revanced_spoof_video_streams_about_playback_failure">Το βίντεο μπορεί να σταματήσει στο 1:00 ή να μην είναι διαθέσιμο σε ορισμένες περιοχές</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">Το μενού «Κομμάτι ήχου» λείπει</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Δεν υπάρχει ο κωδικοποιητής βίντεο AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">Η αναπαραγωγή μπορεί να κομπιάζει ή να χάνει καρέ</string>
<string name="revanced_spoof_video_streams_about_kids_videos">Τα βίντεο για παιδιά ενδέχεται να μην αναπαράγονται αν είστε αποσυνδεδεμένοι ή σε λειτουργία ανώνυμης περιήγησης</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">Ο εξαναγκασμός αρχικής γλώσσας ήχου δεν είναι διαθέσιμος</string>
@@ -1623,6 +1645,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Σχετικά με</string>
<string name="revanced_settings_music_screen_1_ads_title">Διαφημίσεις</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nombre de la aplicación</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personalizado</string>
<string name="revanced_custom_branding_icon_title">Icono de la aplicación</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced mínimo</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced escalado</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personalizado</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Comprobaciones fallidas</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Ir al sitio web oficial</string>
@@ -1401,11 +1414,13 @@ El minireproductor se puede arrastrar fuera de la pantalla hacia la izquierda o
<string name="revanced_seekbar_custom_color_accent_summary">El color de acento de la barra de búsqueda</string>
<string name="revanced_seekbar_custom_color_invalid">Valor de color de la barra de búsqueda inválido</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logotipo del encabezado</string>
<string name="revanced_header_logo_entry_1">Predeterminado</string>
<string name="revanced_header_logo_entry_2">Normal</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced mínimo</string>
<string name="revanced_header_logo_entry_6">Personalizado</string>
</patch>
@@ -1595,13 +1610,18 @@ Limitaciones:
<string name="revanced_slide_to_seek_summary_off">Slide to seek no está activado</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Permitir Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"El códec de video es AVC (H.264), VP9 o AV1
La reproducción puede tartamudear o perder fotogramas"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">El códec de video es AVC (H.264) o VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Habilitar esta configuración puede usar la decodificación de software AV1.\n\nLa reproducción de video con AV1 puede tartamudear o perder fotogramas."</string>
<string name="revanced_spoof_video_streams_about_title">Efectos secundarios de la falsificación</string>
<string name="revanced_spoof_video_streams_about_experimental">• El cliente es experimental y puede dejar de funcionar en cualquier momento</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• El video puede detenerse en 1:00, o puede no estar disponible en algunas regiones</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Falta el menú de la pista de audio</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Sin códec de vídeo AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Volumen estable no disponible</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• La reproducción podría tartamudear o perder fotogramas</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Es posible que los vídeos infantiles no se reproduzcan cuando se cierra la sesión o se está en modo incógnito</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Forzar audio original no está disponible</string>
@@ -1615,6 +1635,8 @@ Limitaciones:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Acerca de</string>
<string name="revanced_settings_music_screen_1_ads_title">Anuncios</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Rakenduse nimi</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Kohandatud</string>
<string name="revanced_custom_branding_icon_title">Rakenduse ikoon</string>
<string name="revanced_custom_branding_icon_entry_1">Algne</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimaalne</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced skaleeritud</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Kohandatud</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Kontrollid ebaõnnestusid</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Ava oficial veebileht</string>
@@ -1410,11 +1423,13 @@ Minimaalset mängijat saab lohistada ekraanilt vasakule või paremale"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Otsinguriba esiletõiduv värv</string>
<string name="revanced_seekbar_custom_color_invalid">Vigane edastusriba värvi väärtus</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Päise logo</string>
<string name="revanced_header_logo_entry_1">Vaikimisi</string>
<string name="revanced_header_logo_entry_2">Tavaline</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimaalne</string>
<string name="revanced_header_logo_entry_6">Kohandatud</string>
</patch>
@@ -1604,13 +1619,20 @@ Piirangud:
<string name="revanced_slide_to_seek_summary_off">Libistamine otsimiseks on keelatud</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Luba Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Videokodek on AVC (H.264), VP9 või AV1
Taasesitus võib hakata kokutama või kaotada kaadreid"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Videokodek on AVC (H.264) või VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Selle seade lubamine võib kasutada tarkvara AV1 dekodeerimist.
AV1-ga videotaasesitus võib hakitud olla või kaadreid vahele jätta."</string>
<string name="revanced_spoof_video_streams_about_title">Võltsimise kõrvalmõjud</string>
<string name="revanced_spoof_video_streams_about_experimental">• Eksperimentaalne klient ja võib igal ajal töötamast lakata</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video võib peatuda kell 1:00 või ei pruugi olla teatud piirkondades saadaval</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Heliraja menüü puudub</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Puuduv AV1 videokoodek</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabiilne helitugevus pole saadaval</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Taasesitus võib katkendlik olla või kaadreid vahele jätta</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Video lastele ei pruugi taasesitada, kui olete välja logitud või inkognito režiimis</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Sunni algne heli pole saadaval</string>
@@ -1624,6 +1646,8 @@ Piirangud:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Teave</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklaamid</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">بررسی ناموفق بود</string>
<string name="revanced_check_environment_dialog_open_official_source_button">رفتن به وبسایت رسمی</string>
@@ -253,8 +259,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -303,6 +311,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Sovelluksen nimi</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Mukautettu</string>
<string name="revanced_custom_branding_icon_title">Sovelluksen kuvake</string>
<string name="revanced_custom_branding_icon_entry_1">Alkuperäinen</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced-minimaalinen</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced skaalattu</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Mukautettu</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Tarkastuksia epäonnistui</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Avaa virallinen sivusto</string>
@@ -1410,11 +1423,13 @@ Minisoitin voidaan vetää pois näytöltä vasemmalle tai oikealle"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Etenemispalkin korostusväri</string>
<string name="revanced_seekbar_custom_color_invalid">Virheellinen etenemispalkin väriarvo</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Ylätunnisteen logo</string>
<string name="revanced_header_logo_entry_1">Oletus</string>
<string name="revanced_header_logo_entry_2">Tavallinen</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced-minimaalinen</string>
<string name="revanced_header_logo_entry_6">Mukautettu</string>
</patch>
@@ -1604,13 +1619,20 @@ Rajoitukset:
<string name="revanced_slide_to_seek_summary_off">Kelaus liu\'uttamalla ei ole käytössä</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Salli Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Videokoodekki on AVC (H.264), VP9 tai AV1
Toisto voi nykiä tai pudottaa kehyksiä"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Videokoodekki on AVC (H.264) tai VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Tämän asetuksen ottaminen käyttöön saattaa käyttää ohjelmistopohjaista AV1-dekoodausta.
AV1-videon toisto saattaa pätkiä tai pudottaa kuvia."</string>
<string name="revanced_spoof_video_streams_about_title">Naamioimisen sivuvaikutukset</string>
<string name="revanced_spoof_video_streams_about_experimental">• Kokeellinen asiakasohjelma, joka saattaa lakata toimimasta milloin tahansa</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video saattaa pysähtyä aikaan 1:00, tai ei välttämättä ole saatavilla joillakin alueilla</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Ääniraitavalikko puuttuu</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Ei AV1-videokoodekkia</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Tasainen äänenvoimakkuus ei ole käytettävissä</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Toisto saattaa pätkiä tai pudottaa kuvia</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Lasten videot eivät ehkä toistu, kun olet kirjautunut ulos tai incognito-tilassa</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Pakota alkuperäinen ääni ei ole käytettävissä</string>
@@ -1624,6 +1646,8 @@ Rajoitukset:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Tietoja</string>
<string name="revanced_settings_music_screen_1_ads_title">Mainokset</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Pangalan ng app</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Pasadyang</string>
<string name="revanced_custom_branding_icon_title">Icon ng app</string>
<string name="revanced_custom_branding_icon_entry_1">Orihinal</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced naka-scale</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Pasadyang</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Nabigo ang mga pagsusuri</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Buksan ang Opisyal na Website</string>
@@ -1408,11 +1421,13 @@ Ang \"miniplayer\" ay maaaring i-drag palabas ng screen sa kaliwa o kanan"</stri
<string name="revanced_seekbar_custom_color_accent_summary">Ang accent na kulay ng seekbar</string>
<string name="revanced_seekbar_custom_color_invalid">Hindi wastong halaga ng kulay ng seekbar</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo ng Header</string>
<string name="revanced_header_logo_entry_1">Default</string>
<string name="revanced_header_logo_entry_2">Regular</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimal</string>
<string name="revanced_header_logo_entry_6">Pasadyang</string>
</patch>
@@ -1602,13 +1617,20 @@ Mga Limitasyon:
<string name="revanced_slide_to_seek_summary_off">Hindi pinagana ang slide to seek</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Payagan ang Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Ang video codec ay AVC (H.264), VP9, o AV1
Maaaring mag-stutter o mag-drop ng frames ang playback"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Ang video codec ay AVC (H.264) o VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Ang pagpapagana sa setting na ito ay maaaring gumamit ng software AV1 decoding.
Maaaring mag-stutter o mag-drop ng frames ang pag-playback ng video na may AV1."</string>
<string name="revanced_spoof_video_streams_about_title">Mga epekto ng pagpapanggap</string>
<string name="revanced_spoof_video_streams_about_experimental">• Pang-eksperimentong kliyente at maaaring huminto sa paggana anumang oras</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Maaaring huminto ang video sa 1:00, o maaaring hindi available sa ilang rehiyon</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Nawawala ang menu ng audio track</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Walang AV1 video codec</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Hindi available ang stable volume</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Maaaring mag-stutter ang pag-playback o bumaba ang mga frame</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Mga video ng mga bata ay maaaring hindi ma-play kapag naka-log out o nasa incognito mode</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Ang Pilitin ang orihinal na audio ay hindi magagamit</string>
@@ -1622,6 +1644,8 @@ Mga Limitasyon:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Tungkol</string>
<string name="revanced_settings_music_screen_1_ads_title">Mga Ad</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nom de l\'application</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personnalisé</string>
<string name="revanced_custom_branding_icon_title">Icône de l\'application</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimaliste</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced mis à l\'échelle</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personnalisé</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Les vérifications ont échoué</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Ouvrir le site officiel</string>
@@ -1411,11 +1424,13 @@ Le lecteur réduit peut être glissé hors de l'écran, à gauche comme à droit
<string name="revanced_seekbar_custom_color_accent_summary">La couleur d\'accentuation de la barre de progression</string>
<string name="revanced_seekbar_custom_color_invalid">Valeur invalide pour la couleur de la barre de progression</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo d\'en-tête</string>
<string name="revanced_header_logo_entry_1">Par défaut</string>
<string name="revanced_header_logo_entry_2">Standard</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimaliste</string>
<string name="revanced_header_logo_entry_6">Personnalisé</string>
</patch>
@@ -1605,13 +1620,20 @@ Limitations :
<string name="revanced_slide_to_seek_summary_off">Glisser pour rechercher est désactivé</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Autoriser Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Le codec vidéo est AVC (H.264), VP9 ou AV1
La lecture peut saccader ou perdre des images"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Le codec vidéo est AVC (H.264) ou VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"L'activation de ce paramètre peut utiliser le décodage AV1 logiciel.
La lecture vidéo avec AV1 peut saccader ou perdre des images."</string>
<string name="revanced_spoof_video_streams_about_title">Effets secondaires de la falsification</string>
<string name="revanced_spoof_video_streams_about_experimental">• Client expérimental, peut cesser de fonctionner à tout moment</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Les vidéos sont susceptibles de s\'arrêter à 1:00, ou de ne pas être disponibles dans certaines régions</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Le menu Piste audio est absent</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Codec vidéo AV1 indisponible</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Le volume stable n\'est pas disponible</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Il est possible que la lecture soit saccadée ou que des images soient perdues</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• La lecture des vidéos pour enfants peut ne pas fonctionner lorsque vous êtes déconnecté ou en mode navigation privée</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Forcer la langue audio d\'origine n\'est pas disponible</string>
@@ -1625,6 +1647,8 @@ Limitations :
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">À propos</string>
<string name="revanced_settings_music_screen_1_ads_title">Annonces</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Ainm an fheidhmchláir</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Saincheaptha</string>
<string name="revanced_custom_branding_icon_title">Deilbhín an fheidhmchláir</string>
<string name="revanced_custom_branding_icon_entry_1">Bunaidh</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced Íosmhéid</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced Scálaithe</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Saincheaptha</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Theip ar sheiceálacha</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Oscailt láithreán gréasáin oifigiúil</string>
@@ -1410,11 +1423,13 @@ Is féidir an mhion-imreoir a tharraingt as an scáileán ar chlé nó ar dheis"
<string name="revanced_seekbar_custom_color_accent_summary">Dath accent an bhar taispillte</string>
<string name="revanced_seekbar_custom_color_invalid">Luach datha barra cuardaigh neamhbhailí</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Lógó Ceanntáisc</string>
<string name="revanced_header_logo_entry_1">Réamhshocrú</string>
<string name="revanced_header_logo_entry_2">Rialta</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced íosta</string>
<string name="revanced_header_logo_entry_6">Saincheaptha</string>
</patch>
@@ -1604,13 +1619,20 @@ Teorainneacha:
<string name="revanced_slide_to_seek_summary_off">Níl sleamhnán le lorg cumasaithe</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Ceadaigh Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Is é an códac físeáin AVC (H.264), VP9, nó AV1
D'fhéadfadh go mbeadh fadhbanna le hathsheinm nó go gcaillfí frámaí"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Is é an códac físeáin AVC (H.264) nó VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Má chumasaítear an socrú seo, d'fhéadfadh sé díchódú bogearraí AV1 a úsáid.
D'fhéadfadh athsheinm físe AV1 leacadh nó frámaí a scaoileadh."</string>
<string name="revanced_spoof_video_streams_about_title">Fo-éifeachtaí a fhalsúa</string>
<string name="revanced_spoof_video_streams_about_experimental">• Cliant turgnamhach é seo agus féadfaidh sé stop a chur ag obair ag am ar bith</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Is féidir go stopfaidh an físeán ag 1:00, nó b\'fhéidir nach mbeidh sé ar fáil i réigiúin áirithe</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Tá an roghchlár rian fuaime in easnamh</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Níl aon cóideac físe AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Níl toirt chobhsaí ar fáil</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• D\'fhéadfadh an athsheinm bacadh nó frámaí a chailleadh</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Seans nach seinnfear físeáin do pháistí nuair a bhíonn siad logáilte amach nó i mód go hanaithnid</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Níl an fuaim bhunaidh iallach ar fáil</string>
@@ -1624,6 +1646,8 @@ Teorainneacha:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Maidir</string>
<string name="revanced_settings_music_screen_1_ads_title">Fógraí</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -205,8 +211,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -255,6 +263,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Provjere nisu uspjele</string>
</patch>
@@ -204,8 +210,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -254,6 +262,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Alkalmazás neve</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Egyéni</string>
<string name="revanced_custom_branding_icon_title">Alkalmazás ikonja</string>
<string name="revanced_custom_branding_icon_entry_1">Eredeti</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimális</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced méretezett</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Egyéni</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Az ellenőrzések sikertelenek</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Hivatalos weboldal megnyitása</string>
@@ -1407,11 +1420,13 @@ A miniatűr képernyőt a képernyő bal vagy jobb szélére húzhatja"</string>
<string name="revanced_seekbar_custom_color_accent_summary">A keresősáv kiemelõ színe</string>
<string name="revanced_seekbar_custom_color_invalid">Érvénytelen keresősáv színértéke</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Fejléc logó</string>
<string name="revanced_header_logo_entry_1">Alapértelmezett</string>
<string name="revanced_header_logo_entry_2">Normál</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimál</string>
<string name="revanced_header_logo_entry_6">Egyéni</string>
</patch>
@@ -1601,13 +1616,20 @@ Korlátozások:
<string name="revanced_slide_to_seek_summary_off">A csúsztatás a kereséshez nincs engedélyezve</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Android VR AV1 engedélyezése</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"A videó kodek AVC (H.264), VP9 vagy AV1
A lejátszás akadozhat vagy képkockákat ejthet"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">A videokodek AVC (H.264) vagy VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Ennek a beállításnak az engedélyezése szoftveres AV1 dekódolást használhat.
Az AV1-es videólejátszás akadozhat vagy képkockákat ejthet."</string>
<string name="revanced_spoof_video_streams_about_title">Hamisítás mellékhatásai</string>
<string name="revanced_spoof_video_streams_about_experimental">• Kísérleti kliens, és bármikor leállhat</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• A videó megállhat 1:00-nál, vagy előfordulhat, hogy egyes régiókban nem elérhető</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Hiányzik az hangsáv menü</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nincs AV1 videokodek</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabil hangerő nem elérhető</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• A lejátszás akadozhat vagy képkockákat dobhat.</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• A gyermekeknek szóló videók nem játszódnak le, ha a felhasználó kijelentkezett, vagy inkognitómódban van.</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Eredeti hang kényszerítése nem érhető el</string>
@@ -1621,6 +1643,8 @@ Korlátozások:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Névjegy</string>
<string name="revanced_settings_music_screen_1_ads_title">Hirdetések</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Հավելվածի անվանումը</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Մաքսային</string>
<string name="revanced_custom_branding_icon_title">Հավելվածի պատկերակը</string>
<string name="revanced_custom_branding_icon_entry_1">Բնօրինակ</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced մինիմալ</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced սանդղակավորված</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Անհատականացված</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Վերահսկումները ձախողվել են</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Բացել պաշտոնական կայքը</string>
@@ -1411,11 +1424,13 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
<string name="revanced_seekbar_custom_color_accent_summary">Մարզումից դուրս ողորկության նշման գույնը</string>
<string name="revanced_seekbar_custom_color_invalid">Սխալ seekbar-ի գույնի արժեք</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced մինիմալ</string>
<string name="revanced_header_logo_entry_6">Անհատական</string>
</patch>
@@ -1605,13 +1620,20 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
<string name="revanced_slide_to_seek_summary_off">Սահելը համար ընտրելը անջատված է</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Թույլատրել Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Տեսակոդեկը AVC (H.264), VP9 կամ AV1 է
Նվագարկումը կարող է կանգ առնել կամ կորցնել կադրեր"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Տեսակոդեկը AVC (H.264) կամ VP9 է</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Այս կարգավորումը միացնելը կարող է օգտագործել AV1 ծրագրային ապակոդավորում:
AV1-ով տեսանյութի նվագարկումը կարող է ընդհատվել կամ կորցնել կադրեր:"</string>
<string name="revanced_spoof_video_streams_about_title">Կեղծելու կողմնակի ազդեցություններ</string>
<string name="revanced_spoof_video_streams_about_experimental">• Փորձնական հաճախորդ է և կարող է ցանկացած պահի դադարել աշխատել</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Տեսանյութը կարող է դադարել 1:00-ին կամ հասանելի չլինել որոշ տարածաշրջաններում</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Ձայնային ուղու մենյուն բացակայում է</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Հեռացված բոլոր AV1 վիդեո կոդեկները</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Կայուն ձայնի մակարդակը հասանելի չէ</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Նվագարկումը հնարավոր է ընդհատվի կամ բաց թողնի կադրեր</string>
<string name="revanced_spoof_video_streams_about_kids_videos">Երեխաների տեսանյութերը կարող են չհամապատասխանել հետևյալ պահանջներին՝ եթե արտոնագրման խախտումներ կան։</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Բնօրինակ ձայնի պարտադրումը հասանելի չէ</string>
@@ -1625,6 +1647,8 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Մասին</string>
<string name="revanced_settings_music_screen_1_ads_title">Գովազդներ</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nama aplikasi</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Khusus</string>
<string name="revanced_custom_branding_icon_title">Ikon aplikasi</string>
<string name="revanced_custom_branding_icon_entry_1">Asli</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced berskala</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Khusus</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Pemeriksaan gagal</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Buka situs resmi</string>
@@ -33,7 +46,7 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
<string name="revanced_check_watch_history_domain_name_dialog_title">Peringatan </string>
<string name="revanced_check_watch_history_domain_name_dialog_message">Riwayat tontonan Anda tidak sedanh disimpan.&lt;br&gt;&lt;br&gt;Hal ini kemungkinan besar disebabkan oleh pemblokir iklan DNS atau proksi jaringan.&lt;br&gt;&lt;br&gt;Untuk memperbaikinya, masukkan ke daftar putih &lt;b&gt;s.youtube.com&lt;/b&gt; atau matikan semua pemblokir iklan DNS dan proksi.</string>
<string name="revanced_check_watch_history_domain_name_dialog_message">Riwayat tontonan Anda tidak sedang disimpan.&lt;br&gt;&lt;br&gt;Hal ini kemungkinan besar disebabkan oleh pemblokir iklan DNS atau proksi jaringan.&lt;br&gt;&lt;br&gt;Untuk memperbaikinya, masukkan daftar putih &lt;b&gt;s.youtube.com&lt;/b&gt; atau matikan semua pemblokir DNS dan proksi.</string>
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Jangan tampilkan lagi</string>
</patch>
<patch id="misc.settings.settingsResourcePatch">
@@ -1409,11 +1422,13 @@ Miniplayer dapat diseret keluar layar ke kiri atau kanan"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Warna aksen seekbar</string>
<string name="revanced_seekbar_custom_color_invalid">Nilai warna seekbar tidak sah</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo Header</string>
<string name="revanced_header_logo_entry_1">Bawaan</string>
<string name="revanced_header_logo_entry_2">Reguler</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimal</string>
<string name="revanced_header_logo_entry_6">Khusus</string>
</patch>
@@ -1603,13 +1618,20 @@ Batasan:
<string name="revanced_slide_to_seek_summary_off">Geser untuk mencari tidak diaktifkan</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Izinkan Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Codec video adalah AVC (H.264), VP9, atau AV1
Pemutaran mungkin tersendat atau kehilangan bingkai"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Codec video adalah AVC (H.264) atau VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Mengaktifkan pengaturan ini mungkin menggunakan perangkat lunak decoding AV1.
Pemutaran video dengan AV1 mungkin tersendat atau kehilangan bingkai."</string>
<string name="revanced_spoof_video_streams_about_title">Efek samping pemalsuan</string>
<string name="revanced_spoof_video_streams_about_experimental">• Klien eksperimental dan dapat berhenti berfungsi kapan saja</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video mungkin berhenti pada 1:00, atau mungkin tidak tersedia di beberapa wilayah</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Menu trek audio tidak ada</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Menu trek audio hilang</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Tidak ada codec video AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Volume stabil tidak tersedia</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Pemutaran mungkin tersendat-sendat atau terjadi penurunan kualitas gambar</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Video anak-anak mungkin tidak dapat diputar saat keluar atau dalam mode penyamaran</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Paksa audio asli tidak tersedia</string>
@@ -1623,6 +1645,8 @@ Batasan:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Tentang</string>
<string name="revanced_settings_music_screen_1_ads_title">Iklan</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nome dell\'app</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personalizzato</string>
<string name="revanced_custom_branding_icon_title">Icona dell\'app</string>
<string name="revanced_custom_branding_icon_entry_1">Originale</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimale</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced ridimensionato</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personalizzato</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Controlli non riusciti</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Apri sito ufficiale</string>
@@ -1409,11 +1422,13 @@ Il riproduttore minimizzato può essere trascinato fuori dallo schermo a sinistr
<string name="revanced_seekbar_custom_color_accent_summary">Il colore primario della barra di avanzamento</string>
<string name="revanced_seekbar_custom_color_invalid">Valore colore barra di avanzamento non valido</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo dell\'intestazione</string>
<string name="revanced_header_logo_entry_1">Predefinito</string>
<string name="revanced_header_logo_entry_2">Regolare</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimale</string>
<string name="revanced_header_logo_entry_6">Personalizzato</string>
</patch>
@@ -1603,13 +1618,20 @@ Limitazioni:
<string name="revanced_slide_to_seek_summary_off">Scorri per avanzare non è abilitato</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Consenti Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Il codec video è AVC (H.264), VP9 o AV1
La riproduzione potrebbe subire interruzioni o perdere fotogrammi"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Il codec video è AVC (H.264) o VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Abilitando questa impostazione potrebbe essere utilizzata la decodifica AV1 via software.
La riproduzione video con AV1 potrebbe rallentare o perdere fotogrammi."</string>
<string name="revanced_spoof_video_streams_about_title">Effetti collaterali della falsificazione</string>
<string name="revanced_spoof_video_streams_about_experimental">• Client sperimentale e potrebbe smettere di funzionare in qualsiasi momento</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Il video potrebbe interrompersi all\'1:00, o potrebbe non essere disponibile in alcune regioni</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Manca il menu delle tracce audio</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nessun codec video AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Il volume stabile non è disponibile</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• La riproduzione potrebbe scattare o perdere fotogrammi</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• I video dei bambini potrebbero non essere riprodotti quando si è disconnessi o in modalità di navigazione in incognito</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• L\'audio originale forzato non è disponibile</string>
@@ -1623,6 +1645,8 @@ Limitazioni:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Informazioni</string>
<string name="revanced_settings_music_screen_1_ads_title">Annunci</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">שם האפליקציה</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">מותאם אישית</string>
<string name="revanced_custom_branding_icon_title">אייקון האפליקציה</string>
<string name="revanced_custom_branding_icon_entry_1">מקורי</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced מינימלי</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced מותאם גודל</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">מותאם אישית</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">בדיקות נכשלו</string>
<string name="revanced_check_environment_dialog_open_official_source_button">פתח אתר רשמי</string>
@@ -1412,11 +1425,13 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_accent_summary">צבע ההדגשה של סרגל הדילוג</string>
<string name="revanced_seekbar_custom_color_invalid">ערך צבע סרגל דילוג לא חוקי</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced מינימלי</string>
<string name="revanced_header_logo_entry_6">מותאם אישית</string>
</patch>
@@ -1606,13 +1621,20 @@ Second \"item\" text"</string>
<string name="revanced_slide_to_seek_summary_off">החלק כדי לדלג אינו מופעל</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">אפשר Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"מקודד וידאו הוא AVC (H.264), VP9, או AV1
ההפעלה עשויה לגמגם או לדלג על פריימים"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">מקודד וידאו הוא AVC (H.264) או VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"הפעלת הגדרה זו עשויה להשתמש בפענוח תוכנה של AV1.
הפעלת וידאו עם AV1 עלולה לגרום לגמגום או לדלוג על פריימים."</string>
<string name="revanced_spoof_video_streams_about_title">תופעות לוואי של התחזות</string>
<string name="revanced_spoof_video_streams_about_experimental">• לקוח ניסיוני ועשוי להפסיק לפעול בכל עת</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• הווידאו עשוי להיעצר בדקה 1:00, או ייתכן שלא יהיה זמין באזורים מסוימים</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• תפריט ערוץ השמע חסר</string>
<string name="revanced_spoof_video_streams_about_no_av1">• אין קודק וידאו מסוג AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• עוצמת קול יציבה אינה זמינה</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• ההפעלה עלולה לגמגם או להפיל פריימים</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• ייתכן שסרטוני Kids לא יופעלו כשאתה מנותק או במצב פרטי</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• כפיית שמע מקורי אינה זמינה</string>
@@ -1626,6 +1648,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">אודות</string>
<string name="revanced_settings_music_screen_1_ads_title">מודעות</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">アプリ名</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">カスタム</string>
<string name="revanced_custom_branding_icon_title">アプリアイコン</string>
<string name="revanced_custom_branding_icon_entry_1">オリジナル</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced (シンプル)</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced (シンボル大)</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">カスタム</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">チェックに失敗しました</string>
<string name="revanced_check_environment_dialog_open_official_source_button">公式サイトを開く</string>
@@ -601,12 +614,12 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
<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_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_5">円形 (シンプル)</string>
<string name="revanced_swipe_overlay_style_entry_6">縦型</string>
<string name="revanced_swipe_overlay_style_entry_7">縦型 (最小限)</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>
@@ -1413,12 +1426,14 @@ Automotive レイアウト
<string name="revanced_seekbar_custom_color_accent_summary">シークバーのアクセントカラーを編集します</string>
<string name="revanced_seekbar_custom_color_invalid">シークバーの色の値が無効です</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<string name="revanced_header_logo_entry_5">ReVanced minimal</string>
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced (シンプル)</string>
<string name="revanced_header_logo_entry_6">カスタム</string>
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
@@ -1606,13 +1621,20 @@ Automotive レイアウト
<string name="revanced_slide_to_seek_summary_off">スライドによるシークは無効です。プレーヤー画面を左右にスライドしても、前後にシークしません</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Android VR で AV1 を許可</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"ビデオ コーデックは AVC (H.264)、VP9、AV1 のいずれかになります
再生がカクつくまたはコマ落ちが発生する場合があります"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">ビデオ コーデックは AVC (H.264)、VP9 のいずれかになります</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"この設定を有効にすると、AV1 のソフトウェア デコードが使用される場合があります。
AV1 での動画再生は、カクつくまたはコマ落ちが発生する場合があります。"</string>
<string name="revanced_spoof_video_streams_about_title">偽装による副作用</string>
<string name="revanced_spoof_video_streams_about_experimental">• 実験的なクライアントであり、いつでも動作しなくなる可能性がある</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• 動画が 01:00 で停止する、または一部の地域で利用できない可能性がある</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">•「音声トラック」がフライアウト メニューに表示されない</string>
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 コーデックが利用できない</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">•「一定音量」が利用できない</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• 再生がカクつく、またはコマ落ちが発生する場合がある</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• ログアウト時またはシークレット モード時に、子ども向け動画が再生されない可能性がある</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">•「オリジナルの音声を強制的に使用」が利用できない</string>
@@ -1626,6 +1648,8 @@ Automotive レイアウト
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">ReVanced について</string>
<string name="revanced_settings_music_screen_1_ads_title">広告</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ</string>
<string name="revanced_check_environment_dialog_open_official_source_button">ಅಧಿಕೃತ ಜಾಲತಾಣ ತೆರೆಯಿರಿ</string>
@@ -218,8 +224,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -268,6 +276,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">앱 이름</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">사용자 정의</string>
<string name="revanced_custom_branding_icon_title">앱 아이콘</string>
<string name="revanced_custom_branding_icon_entry_1">원본</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced 최소화</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced 크기 조정</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">사용자 정의</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">환경 검사에 실패하였습니다</string>
<string name="revanced_check_environment_dialog_open_official_source_button">공식 홈페이지 열기</string>
@@ -1417,11 +1430,13 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
<string name="revanced_seekbar_custom_color_accent_summary">재생바 보조 색상을 지정할 수 있습니다</string>
<string name="revanced_seekbar_custom_color_invalid">잘못된 재생바 색상입니다</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced 최소화</string>
<string name="revanced_header_logo_entry_6">사용자 정의</string>
</patch>
@@ -1611,13 +1626,20 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요"</string>
<string name="revanced_slide_to_seek_summary_off">슬라이드하여 탐색을 비활성화합니다</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Android VR AV1 허용하기</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"동영상 코덱이 AVC (H.264), VP9 또는 AV1으로 결정됩니다
동영상 재생이 끊기거나 프레임이 손실될 수 있습니다"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">동영상 코덱이 AVC (H.264) 또는 VP9으로 결정됩니다</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"이 설정을 활성화하면, 소프트웨어 AV1 디코딩이 사용될 수 있습니다.
AV1이 사용된 동영상 재생이 끊기거나 프레임이 손실될 수 있습니다."</string>
<string name="revanced_spoof_video_streams_about_title">변경에 따른 부작용</string>
<string name="revanced_spoof_video_streams_about_experimental">• 실험용 클라이언트이며 언제든지 작동이 중단될 수 있습니다</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• 동영상이 1:00에 멈출 수 있으며, 일부 지역에서는 이용이 불가능할 수 있습니다</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• 오디오 트랙 메뉴가 표시되지 않습니다</string>
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 코덱이 지원되지 않습니다</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• 안정적인 볼륨을 사용할 수 없습니다</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• 재생이 끊기거나 프레임이 손실될 수 있습니다</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Kids 동영상은 로그인을 하지 않았거나 시크릿 모드에서는 재생되지 않을 수 있습니다</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• 원본 오디오를 강제로 활성화할 수 없습니다</string>
@@ -1631,6 +1653,8 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">정보</string>
<string name="revanced_settings_music_screen_1_ads_title">광고</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Programos pavadinimas</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Pasirinktinis</string>
<string name="revanced_custom_branding_icon_title">Programos piktograma</string>
<string name="revanced_custom_branding_icon_entry_1">Originalus</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimalus</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced masteliu</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Pasirinktinis</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Patikrinimai nepavyko</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Atidaryti oficialią svetainę</string>
@@ -1411,11 +1424,13 @@ Ribojimas: įrankių juostoje esantis atgal mygtukas gali neveikti."</string>
<string name="revanced_seekbar_custom_color_accent_summary">Ieškojimo juostos akcento spalva</string>
<string name="revanced_seekbar_custom_color_invalid">Netinkama slankiklio spalvos vertė</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Antraštės logotipas</string>
<string name="revanced_header_logo_entry_1">Numatytasis</string>
<string name="revanced_header_logo_entry_2">Įprastas</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimalus</string>
<string name="revanced_header_logo_entry_6">Pasirinktinis</string>
</patch>
@@ -1605,13 +1620,20 @@ Apribojimai:
<string name="revanced_slide_to_seek_summary_off">Slinkimas, kad ieškotumėte, neišjungtas</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Leisti Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Vaizdo kodekas yra AVC (H.264), VP9 arba AV1
Gali strigti arba praleisti kadrus"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Vaizdo kodekas yra AVC (H.264) arba VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Įjungus šį nustatymą, gali būti naudojamas programinės įrangos AV1 dekodavimas.
Vaizdo įrašo atkūrimas su AV1 gali strigti arba praleisti kadrus."</string>
<string name="revanced_spoof_video_streams_about_title">Klastojimo šalutiniai efektai</string>
<string name="revanced_spoof_video_streams_about_experimental">• Eksperimentinis klientas ir bet kada gali nustoti veikti</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Vaizdo įrašas gali sustoti ties 1:00 arba gali būti nepasiekiamas kai kuriuose regionuose</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Trūksta garso takelio meniu</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nėra AV1 vaizdo kodeko</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabili garso apimtis nepasiekiama</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Atkūrimas gali strigti arba praleisti kadrus</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Vaikų vaizdo įrašai gali būti neatkuriami, kai atsijungiama arba naudojamas inkognito režimas</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Priverstinai naudoti originalų garsą nepasiekiama</string>
@@ -1625,6 +1647,8 @@ Apribojimai:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Apie</string>
<string name="revanced_settings_music_screen_1_ads_title">Skelbimai</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Lietotnes nosaukums</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Pielāgots</string>
<string name="revanced_custom_branding_icon_title">Lietotnes ikona</string>
<string name="revanced_custom_branding_icon_entry_1">Oriģināls</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimāls</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced mērogots</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Pielāgots</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Pārbaudes neizdevās</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Atvērt oficiālo vietni</string>
@@ -1411,11 +1424,13 @@ Miniatskaņotāju var pārvilkt no ekrāna uz kreiso vai labo pusi"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Meklētājjoslas akcenta krāsa</string>
<string name="revanced_seekbar_custom_color_invalid">Nederīga meklētāja joslas krāsas vērtība</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Galvenes logotips</string>
<string name="revanced_header_logo_entry_1">Noklusējums</string>
<string name="revanced_header_logo_entry_2">Parasts</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimāls</string>
<string name="revanced_header_logo_entry_6">Pielāgots</string>
</patch>
@@ -1605,13 +1620,20 @@ Ierobežojumi:
<string name="revanced_slide_to_seek_summary_off">Slīdēšana, lai meklētu, nav iespējota</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Atļaut Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Video kodeks ir AVC (H.264), VP9 vai AV1
Atskaņošana var raustīties vai izlaist kadrus"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Video kodeks ir AVC (H.264) vai VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Šī iestatījuma iespējošana var izmantot programmatūras AV1 dekodēšanu.
AV1 video atskaņošana var raustīties vai izlaist kadrus."</string>
<string name="revanced_spoof_video_streams_about_title">Viltotu straumju blakusparādības</string>
<string name="revanced_spoof_video_streams_about_experimental">• Eksperimentāls klients un jebkurā brīdī var pārtraukt darbu</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video var apstāties pulksten 1:00 vai nebūt pieejams dažos reģionos</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Trūkst audio celiņa izvēlnes</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nav pieejams AV1 video kodeks</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Nav pieejams stabils skaļums</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Atskaņošana var raustīties vai izlaist kadrus</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Bērnu videoklipi var netikt atskaņoti, kad esat izrakstījies vai inkognito režīmā.</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Piespiest oriģinālo skaņu nav pieejams</string>
@@ -1625,6 +1647,8 @@ Ierobežojumi:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Par</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklāmas</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -254,6 +262,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_manager_not_expected_installer">ReVanced Manager द्वारा स्थापित छैन</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">APK निर्माण मिति खराब भएको छ</string>
@@ -205,8 +211,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -255,6 +263,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Appnaam</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Aangepast</string>
<string name="revanced_custom_branding_icon_title">App-pictogram</string>
<string name="revanced_custom_branding_icon_entry_1">Origineel</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimaal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced geschaald</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Aangepast</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Controle mislukt</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Open officiële website</string>
@@ -1408,11 +1421,13 @@ De miniplayer kan naar links of rechts van het scherm worden gesleept"</string>
<string name="revanced_seekbar_custom_color_accent_summary">De accentkleur van de zoekbalk</string>
<string name="revanced_seekbar_custom_color_invalid">Ongeldige waarde voor de kleur van de schuifregelaar</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Headerlogo</string>
<string name="revanced_header_logo_entry_1">Standaard</string>
<string name="revanced_header_logo_entry_2">Normaal</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimaal</string>
<string name="revanced_header_logo_entry_6">Aangepast</string>
</patch>
@@ -1602,13 +1617,20 @@ Beperkingen:
<string name="revanced_slide_to_seek_summary_off">Schuiven om te zoeken is niet ingeschakeld</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Sta Android VR AV1 toe</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Videocodec is AVC (H.264), VP9 of AV1
Afspelen kan haperen of frames overslaan"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Videocodec is AVC (H.264) of VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Het inschakelen van deze instelling kan gebruikmaken van softwarematige AV1-decodering.
Het afspelen van video met AV1 kan haperen of frames overslaan."</string>
<string name="revanced_spoof_video_streams_about_title">Spoofing-neveneffecten</string>
<string name="revanced_spoof_video_streams_about_experimental">• Experimentele client en kan elk moment stoppen met werken</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video kan stoppen om 1:00, of is mogelijk niet beschikbaar in sommige regio\'s</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Audiotrack-menu ontbreekt</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Geen AV1-videocodec</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabiel volume is niet beschikbaar</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Het afspelen kan haperen of frames overslaan</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• \"Kinder\"-Videos worden mogelijk niet afgespeeld wanneer u bent uitgelogd of de incognitomodus gebruikt</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Oorspronkelijke audio forceren is niet beschikbaar</string>
@@ -1622,6 +1644,8 @@ Beperkingen:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Over</string>
<string name="revanced_settings_music_screen_1_ads_title">Advertenties</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nazwa aplikacji</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Własna</string>
<string name="revanced_custom_branding_icon_title">Ikona aplikacji</string>
<string name="revanced_custom_branding_icon_entry_1">Oryginalna</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimalna</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced skalowana</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Niestandardowa</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Sprawdzanie nie powiodło się</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Otwórz oficjalną stronę internetową</string>
@@ -1406,11 +1419,13 @@ Odtwarzacz można przeciągnąć poza ekran w lewo lub w prawo"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Kolor akcentu paska postępu</string>
<string name="revanced_seekbar_custom_color_invalid">Nieprawidłowa wartość koloru paska postępu</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo nagłówka</string>
<string name="revanced_header_logo_entry_1">Domyślne</string>
<string name="revanced_header_logo_entry_2">Zwykłe</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimalistyczne</string>
<string name="revanced_header_logo_entry_6">Niestandardowe</string>
</patch>
@@ -1600,13 +1615,20 @@ Ograniczenia:
<string name="revanced_slide_to_seek_summary_off">Przesuń, aby przeszukiwać nie jest włączony</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Zezwól na Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Kodek wideo to AVC (H.264), VP9 lub AV1
Odtwarzanie może się zacinać lub gubić klatki"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Kodek wideo to AVC (H.264) lub VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Włączenie tego ustawienia może używać programowego dekodowania AV1.
Odtwarzanie wideo z AV1 może powodować zacinanie się lub gubienie klatek."</string>
<string name="revanced_spoof_video_streams_about_title">Skutki uboczne fałszowania</string>
<string name="revanced_spoof_video_streams_about_experimental">• Eksperymentalny klient i może przestać działać w każdej chwili</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Wideo może zatrzymać się o 1:00 lub może być niedostępne w niektórych regionach</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Brakuje menu ścieżek audio</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Žádný video kodek AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabilna głośność nie jest dostępna</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Odtwarzanie może się zacinać lub gubić klatki</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Filmy dla dzieci mogą nie być odtwarzane po wylogowaniu lub w trybie incognito</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Wymuś oryginalny dźwięk jest niedostępny</string>
@@ -1620,6 +1642,8 @@ Ograniczenia:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">O programie</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklamy</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nome do aplicativo</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personalizado</string>
<string name="revanced_custom_branding_icon_title">Ícone do aplicativo</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced mínimo</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced escalado</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personalizado</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Verificação falhou</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Abrir o site oficial</string>
@@ -1407,11 +1420,13 @@ O miniplayer pode ser arrastado para fora da tela para a esquerda ou direita"</s
<string name="revanced_seekbar_custom_color_accent_summary">A cor de destaque da barra de progresso</string>
<string name="revanced_seekbar_custom_color_invalid">Valor de cor da barra de busca inválido</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logotipo do cabeçalho</string>
<string name="revanced_header_logo_entry_1">Padrão</string>
<string name="revanced_header_logo_entry_2">Regular</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced mínimo</string>
<string name="revanced_header_logo_entry_6">Personalizado</string>
</patch>
@@ -1601,13 +1616,20 @@ Limitações:
<string name="revanced_slide_to_seek_summary_off">Gesto na barra de busca está desativado</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Permitir Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"O codec de vídeo é AVC (H.264), VP9 ou AV1
A reprodução pode engasgar ou perder quadros"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">O codec de vídeo é AVC (H.264) ou VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Ativar esta configuração pode usar decodificação de software AV1.
A reprodução de vídeo com AV1 pode gaguejar ou perder quadros."</string>
<string name="revanced_spoof_video_streams_about_title">Efeitos colaterais da falsificação</string>
<string name="revanced_spoof_video_streams_about_experimental">• Cliente experimental e pode parar de funcionar a qualquer momento</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• O vídeo pode parar em 1:00, ou pode não estar disponível em algumas regiões</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• O menu da faixa de áudio está faltando</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Sem codec de vídeo AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Volume estável não está disponível</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• A reprodução pode gaguejar ou perder quadros</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Vídeos infantis podem não ser reproduzidos quando estiver desconectado ou no modo de navegação anônima</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Forçar áudio original não está disponível</string>
@@ -1621,6 +1643,8 @@ Limitações:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Sobre</string>
<string name="revanced_settings_music_screen_1_ads_title">Anúncios</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Nome da aplicação</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personalizado</string>
<string name="revanced_custom_branding_icon_title">Ícone da aplicação</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced mínimo</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced dimensionado</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personalizado</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Falha na verificação</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Abrir site oficial</string>
@@ -1410,11 +1423,13 @@ Miniplayer có thể được kéo ra khỏi màn hình sang trái hoặc phải
<string name="revanced_seekbar_custom_color_accent_summary">A cor de destaque da barra de progresso</string>
<string name="revanced_seekbar_custom_color_invalid">Valor de cor de seekbar inválido</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logotipo do cabeçalho</string>
<string name="revanced_header_logo_entry_1">Padrão</string>
<string name="revanced_header_logo_entry_2">Regular</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced mínimo</string>
<string name="revanced_header_logo_entry_6">Personalizado</string>
</patch>
@@ -1604,13 +1619,20 @@ Limitações:
<string name="revanced_slide_to_seek_summary_off">Deslize para procurar não está habilitado</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Permitir Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"O codec de vídeo é AVC (H.264), VP9 ou AV1
A reprodução pode gaguejar ou perder quadros"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">O codec de vídeo é AVC (H.264) ou VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Ativar esta configuração pode usar descodificação AV1 por software.
A reprodução de vídeo com AV1 pode apresentar soluços ou perder quadros."</string>
<string name="revanced_spoof_video_streams_about_title">Efeitos colaterais da falsificação</string>
<string name="revanced_spoof_video_streams_about_experimental">• Cliente experimental e pode parar de funcionar a qualquer momento</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• O vídeo pode parar em 1:00, ou pode não estar disponível em algumas regiões</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• O menu da faixa de áudio está faltando</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nenhum codec de vídeo AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• O volume estável não está disponível</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• A reprodução pode gaguejar ou perder quadros</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Vídeos infantis podem não ser reproduzidos quando desconectado ou no modo anônimo</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Forçar áudio original não está disponível</string>
@@ -1624,6 +1646,8 @@ Limitações:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Sobre</string>
<string name="revanced_settings_music_screen_1_ads_title">Anúncios</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Numele aplicației</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personalizat</string>
<string name="revanced_custom_branding_icon_title">Pictograma aplicației</string>
<string name="revanced_custom_branding_icon_entry_1">Original</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced scalat</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personalizat</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Verificările au eșuat</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Deschidere site oficial</string>
@@ -1407,11 +1420,13 @@ Miniplayerul poate fi tras pe ecran spre stânga sau spre dreapta"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Culoarea de accent a barei de căutare</string>
<string name="revanced_seekbar_custom_color_invalid">Valoare culoare bară căutare nevalidă</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Siglă antet</string>
<string name="revanced_header_logo_entry_1">Implicit</string>
<string name="revanced_header_logo_entry_2">Normal</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimalist</string>
<string name="revanced_header_logo_entry_6">Personalizat</string>
</patch>
@@ -1601,13 +1616,20 @@ Limitări:
<string name="revanced_slide_to_seek_summary_off">Slide pentru a căuta nu este activat</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Permite Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Codecul video este AVC (H.264), VP9 sau AV1
Redarea poate sacada sau pierde cadre"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Codecul video este AVC (H.264) sau VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Activarea acestei setări poate folosi decodarea software AV1.
Redarea video cu AV1 poate sacada sau pierde cadre."</string>
<string name="revanced_spoof_video_streams_about_title">Efecte secundare ale simulării</string>
<string name="revanced_spoof_video_streams_about_experimental">• Client experimental și se poate opri din funcționare oricând</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Videoclipul se poate opri la 1:00, sau poate să nu fie disponibil în unele regiuni</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Meniul pistei audio lipsește</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Fara codec video AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Volumul stabil nu este disponibil</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Redarea poate sacada sau pierde cadre</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Copiii nu pot urmări videoclipuri atunci când sunt deconectați sau în modul incognito</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Forțarea sunetului original nu este disponibilă</string>
@@ -1621,6 +1643,8 @@ Limitări:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Despre</string>
<string name="revanced_settings_music_screen_1_ads_title">Anunțuri</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Название приложения</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Кастомный</string>
<string name="revanced_custom_branding_icon_title">Значок приложения</string>
<string name="revanced_custom_branding_icon_entry_1">Оригинал</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced минимальный</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced масштабированный</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Кастомный</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Проверки не удались</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Открыть официальный веб-сайт</string>
@@ -1417,11 +1430,13 @@ Second \"item\" text"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Вторичный цвет полосы прогресса</string>
<string name="revanced_seekbar_custom_color_invalid">Неверное значение цвета полосы прогресса</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<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. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced минимальный</string>
<string name="revanced_header_logo_entry_6">Кастомный</string>
</patch>
@@ -1611,13 +1626,20 @@ Second \"item\" text"</string>
<string name="revanced_slide_to_seek_summary_off">Перемотка видео слайдом отключена (ускорение видео \"2x\" при нажатии и удержании включено)</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Разрешить Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Видеокодек: AVC (H.264), VP9 или AV1
Воспроизведение может зависать или пропускать кадры"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Видеокодек: AVC (H.264) или VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Включение этой настройки может использовать программное декодирование AV1.
Воспроизведение видео с AV1 может прерываться или пропускать кадры."</string>
<string name="revanced_spoof_video_streams_about_title">Побочные эффекты подмены</string>
<string name="revanced_spoof_video_streams_about_experimental">• Клиент экспериментальный и может перестать работать в любое время</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Видео может остановиться на 1:00 или может быть недоступно в некоторых регионах</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Пункт \"Звуковая дорожка\" отсутствует</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Отсутствует видеокодек AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Постоянный уровень громкости недоступен </string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Воспроизведение может зависать или пропускать кадры</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Видео для детей могут не воспроизводиться при выходе из системы или в режиме инкогнито</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Принудительная оригинальная звуковая дорожка недоступна</string>
@@ -1631,6 +1653,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Информация</string>
<string name="revanced_settings_music_screen_1_ads_title">Настройки рекламы</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,11 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -203,8 +209,10 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
</patch>
@@ -253,6 +261,8 @@ Second \"item\" text"</string>
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
</patch>
<patch id="ad.video.hideVideoAdsPatch">

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Názov aplikácie</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Vlastné</string>
<string name="revanced_custom_branding_icon_title">Ikona aplikácie</string>
<string name="revanced_custom_branding_icon_entry_1">Pôvodné</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimálne</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced škálované</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Vlastné</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Kontrola zlyhala</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Otvoriť oficiálnu webovú stránku</string>
@@ -1403,11 +1416,13 @@ Miniprehrávač sa dá potiahnuť mimo obrazovky doľava alebo doprava"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Farba zvýraznenia posuvníka</string>
<string name="revanced_seekbar_custom_color_invalid">Neplatná farba vyhľadávania panela</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logo záhlavia</string>
<string name="revanced_header_logo_entry_1">Predvolené</string>
<string name="revanced_header_logo_entry_2">Bežné</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimálne</string>
<string name="revanced_header_logo_entry_6">Vlastné</string>
</patch>
@@ -1597,13 +1612,20 @@ Obmedzenia:
<string name="revanced_slide_to_seek_summary_off">Nie je povolené posúvanie</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Povoliť Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Videokodek je AVC (H.264), VP9 alebo AV1
Prehrávanie sa môže sekať alebo môžu vypadávať snímky"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Videokodek je AVC (H.264) alebo VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Povolenie tohto nastavenia môže použiť softvérové AV1 dekódovanie.
Prehrávanie videa s AV1 môže sekať alebo vynechávať snímky."</string>
<string name="revanced_spoof_video_streams_about_title">Vedľajšie účinky podvrhnutia</string>
<string name="revanced_spoof_video_streams_about_experimental">• Experimentálny klient a môže kedykoľvek prestať fungovať</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video sa môže zastaviť o 1:00, alebo nemusí byť dostupné v niektorých regiónoch</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Chýba ponuka zvukovej stopy</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Žiadny video kodek AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabilná hlasitosť nie je dostupná</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Prehrávanie môže sekať alebo vynechávať snímky</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Videá pre deti sa nemusia prehrávať, keď ste odhlásení alebo v režime inkognito</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Vynútenie pôvodného zvuku nie je k dispozícii</string>
@@ -1617,6 +1639,8 @@ Obmedzenia:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">O aplikácii</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklamy</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Ime aplikacije</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Po meri</string>
<string name="revanced_custom_branding_icon_title">Ikona aplikacije</string>
<string name="revanced_custom_branding_icon_entry_1">Izvirno</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimalno</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced prilagojeno</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Po meri</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Preverjanja so spodletela</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Obiščite uradno spletno mesto</string>
@@ -1410,11 +1423,13 @@ Minipredvajalnik lahko povlečete z zaslona na levo ali desno"</string>
<string name="revanced_seekbar_custom_color_accent_summary">Barva poudarka iskalnika</string>
<string name="revanced_seekbar_custom_color_invalid">Neveljavna vrednost barve drsnika</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logotip glave</string>
<string name="revanced_header_logo_entry_1">Privzeto</string>
<string name="revanced_header_logo_entry_2">Navadno</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimalno</string>
<string name="revanced_header_logo_entry_6">Po meri</string>
</patch>
@@ -1604,13 +1619,20 @@ Omejitve:
<string name="revanced_slide_to_seek_summary_off">Drsno iskanje ni omogočeno</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Dovoli Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Video kodek je AVC (H.264), VP9 ali AV1
Predvajanje se lahko zatika ali izpušča sličice"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Video kodek je AVC (H.264) ali VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Omogočanje te nastavitve lahko uporablja programsko dekodiranje AV1.
Predvajanje videa z AV1 se lahko zatika ali izpušča sličice."</string>
<string name="revanced_spoof_video_streams_about_title">Stranski učinki ponarejanja</string>
<string name="revanced_spoof_video_streams_about_experimental">• Eksperimentalni odjemalec in lahko kadar koli preneha delovati</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Video se lahko ustavi ob 1:00, ali pa morda ne bo na voljo v nekaterih regijah</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Meni z zvočnimi posnetki manjka</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Brez kodeka videa AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Stabilna glasnost ni na voljo</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Predvajanje se lahko zatika ali izpušča sličice</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Posnetki za otroke se mogoče ne bodo predvajali, ko ste odjavljeni ali v načinu brez beleženja zgodovine</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Vsili izvirni zvok ni na voljo</string>
@@ -1624,6 +1646,8 @@ Omejitve:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">O</string>
<string name="revanced_settings_music_screen_1_ads_title">Oglasi</string>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
<!--
All strings must have a unique path, even if the same string is declared in two different apps.
@@ -20,6 +21,18 @@ Second \"item\" text"</string>
-->
<resources>
<app id="shared">
<patch id="layout.branding.baseCustomBrandingPatch">
<string name="revanced_custom_branding_name_title">Emri i aplikacionit</string>
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
<string name="revanced_custom_branding_name_entry_5">Personalizuar</string>
<string name="revanced_custom_branding_icon_title">Ikona e aplikacionit</string>
<string name="revanced_custom_branding_icon_entry_1">Origjinal</string>
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimal</string>
<string name="revanced_custom_branding_icon_entry_4">ReVanced i shkallëzuar</string>
<!-- Translations of this should be identical to revanced_custom_branding_name_entry_5 -->
<string name="revanced_custom_branding_icon_entry_5">Personalizuar</string>
</patch>
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Kontrollat dështu</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Hap faqen zyrtare</string>
@@ -1408,11 +1421,13 @@ Miniplayer mund të tërhiqet jashtë ekranit në të majtë ose në të djatht
<string name="revanced_seekbar_custom_color_accent_summary">Ngjyra e theksuar e shiritit të kërkimit</string>
<string name="revanced_seekbar_custom_color_invalid">Vlerë e pavlefshme e ngjyrës së shkallës së kërkimit</string>
</patch>
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="layout.branding.changeHeaderPatch">
<string name="revanced_header_logo_title">Logoja e sipërme</string>
<string name="revanced_header_logo_entry_1">Parazgjedhur</string>
<string name="revanced_header_logo_entry_2">Normale</string>
<!-- For this situation "Minimal" means minimalistic. It does not mean small or tiny. -->
<!-- Translation of this should be identical to revanced_custom_branding_icon_entry_3 -->
<string name="revanced_header_logo_entry_5">ReVanced minimaliste</string>
<string name="revanced_header_logo_entry_6">Personalizuar</string>
</patch>
@@ -1602,13 +1617,20 @@ Kufizimet:
<string name="revanced_slide_to_seek_summary_off">Rrëshqitja për kërkim nuk është e aktivizuar</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_av1_title">Lejo Android VR AV1</string>
<string name="revanced_spoof_video_streams_av1_summary_on">"Kodeku i videos është AVC (H.264), VP9, ose AV1
Luajtja mund të bllokojë ose të humbasë korniza"</string>
<string name="revanced_spoof_video_streams_av1_summary_off">Kodeku i videos është AVC (H.264) ose VP9</string>
<string name="revanced_spoof_video_streams_av1_user_dialog_message">"Aktivizimi i këtij cilësimi mund të përdorë dekodimin softuerik AV1.
Luajtja e videos me AV1 mund të ngecë ose të humbasë korniza."</string>
<string name="revanced_spoof_video_streams_about_title">Efektet anësore të falsifikimit</string>
<string name="revanced_spoof_video_streams_about_experimental">• Klient eksperimental dhe mund të ndalojë së funksionuari në çdo kohë</string>
<string name="revanced_spoof_video_streams_about_playback_failure">• Videoja mund të ndalojë në 1:00, ose mund të mos jetë e disponueshme në disa rajone</string>
<string name="revanced_spoof_video_streams_about_no_audio_tracks">• Menuja e gjurmës audio mungon</string>
<string name="revanced_spoof_video_streams_about_no_av1">• Nuk ka codec video AV1</string>
<string name="revanced_spoof_video_streams_about_no_stable_volume">• Volumi i qëndrueshëm nuk është i disponueshëm</string>
<string name="revanced_spoof_video_streams_about_dropped_frames">• Riprodhimi mund të ndërpritet ose të humbasë kornizat</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• Video për fëmijë mund të mos luajnë kur jeni jashtë llogarisë ose në modalitetin incognito</string>
<!-- "Force original audio" should use the same text as revanced_force_original_audio_title -->
<string name="revanced_spoof_video_streams_about_no_force_original_audio">• Detyro audio origjinale nuk është i disponueshëm</string>
@@ -1622,6 +1644,8 @@ Kufizimet:
</patch>
</app>
<app id="music">
<patch id="layout.branding.customBrandingPatch">
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_music_screen_0_about_title">Rreth</string>
<string name="revanced_settings_music_screen_1_ads_title">Reklama</string>

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