Compare commits
394 commits
v19.16.3-3
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb71f4bfd6 | ||
|
|
130ee40335 | ||
|
|
791376c8f8 | ||
|
|
96f960132a | ||
|
|
32b0961b74 | ||
|
|
227714a4f7 | ||
|
|
13a4642894 | ||
|
|
3afdd8a16e | ||
|
|
aa8c4018f7 | ||
|
|
ed2efc7876 | ||
|
|
dd8495b40e | ||
|
|
98058daa0f | ||
|
|
e4082c491e | ||
|
|
03c5b12a3b | ||
|
|
5fbb9ebada | ||
|
|
df888c2b55 | ||
|
|
23fe341199 | ||
|
|
111ee9fb75 | ||
|
|
04b91e6502 | ||
|
|
39807ec54d | ||
|
|
730140360b | ||
|
|
6696128300 | ||
|
|
1c23b5cb0e | ||
|
|
8b1eb37b13 | ||
|
|
8135fc4e0f | ||
|
|
abe20ade53 | ||
|
|
1d7c7c9b22 | ||
|
|
3e5f3bbe85 | ||
|
|
d52a485d61 | ||
|
|
3d54ed60ef | ||
|
|
83f5cfdc01 | ||
|
|
268d31de36 | ||
|
|
6a50764aa9 | ||
|
|
9f80f6d386 | ||
|
|
192010ed09 | ||
|
|
7f254511c9 | ||
|
|
e1d0560cf2 | ||
|
|
5eb16b09b2 | ||
|
|
376191c3a4 | ||
|
|
361e62aad3 | ||
|
|
c2f2a1f9eb | ||
|
|
3939a29d0b | ||
|
|
c82171f6e4 | ||
|
|
1de1ccb1ae | ||
|
|
827ff03bfb | ||
|
|
ebf3edcc49 | ||
|
|
55494e2e91 | ||
|
|
7674805f75 | ||
|
|
5b554ecc0a | ||
|
|
d6c995b1be | ||
|
|
df0be8c66e | ||
|
|
9d62ce75ce | ||
|
|
e66f68ebc6 | ||
|
|
c73cd63db4 | ||
|
|
d4f8a41ff2 | ||
|
|
861a9fd30b | ||
|
|
a3ac8e9735 | ||
|
|
810aca2f16 | ||
|
|
2134ae02d2 | ||
|
|
d9a9ef5563 | ||
|
|
0d87774cd7 | ||
|
|
108deb8d6b | ||
|
|
197f31edf4 | ||
|
|
b5a45c15ac | ||
|
|
4a92378939 | ||
|
|
f17bb793d4 | ||
|
|
64bd324ec2 | ||
|
|
5fb849297a | ||
|
|
09721d4b3a | ||
|
|
a46b3b4e20 | ||
|
|
5741d7c900 | ||
|
|
969efaaf4d | ||
|
|
6996c0ed66 | ||
|
|
5095267b4c | ||
|
|
53e42e1dd4 | ||
|
|
9b83103e92 | ||
|
|
963b9d5fd3 | ||
|
|
573c2d2f43 | ||
|
|
268568b106 | ||
|
|
235e2966bc | ||
|
|
8118240125 | ||
|
|
d4add482d7 | ||
|
|
6aa1f62140 | ||
|
|
c82b31d181 | ||
|
|
fa922a1acd | ||
|
|
aa5300f54f | ||
|
|
2097308a83 | ||
|
|
3795d543ad | ||
|
|
7083d30d9c | ||
|
|
a8c21a202a | ||
|
|
cba079cefa | ||
|
|
7d75eac440 | ||
|
|
6e9ec38c4a | ||
|
|
312f84eb78 | ||
|
|
525f10dcda | ||
|
|
2e6f678f34 | ||
|
|
beeb9eb19f | ||
|
|
0d72c03167 | ||
|
|
8eed3ce8bc | ||
|
|
3f24f6440f | ||
|
|
c0a2ec26ed | ||
|
|
7797875a87 | ||
|
|
4f890f4e0d | ||
|
|
2ece340746 | ||
|
|
ca84635cf4 | ||
|
|
5066716f7f | ||
|
|
bed87298f6 | ||
|
|
87d7b576dd | ||
|
|
f652976a53 | ||
|
|
44d6ffe781 | ||
|
|
023fafae15 | ||
|
|
4c5e2ee0e8 | ||
|
|
de89f7aca8 | ||
|
|
36f9da844b | ||
|
|
e63bc374cf | ||
|
|
067ad5a373 | ||
|
|
6e8bbcb49e | ||
|
|
e21e026c30 | ||
|
|
1647358a9e | ||
|
|
feaaa07e9e | ||
|
|
f434239419 | ||
|
|
e62699749d | ||
|
|
4602b74e6f | ||
|
|
6854f91c1e | ||
|
|
b081d5b52e | ||
|
|
8ed3d97d2d | ||
|
|
e92ada8427 | ||
|
|
8f578bb741 | ||
|
|
2d82e0b532 | ||
|
|
b963c807bb | ||
|
|
10882e5d61 | ||
|
|
4ed8e94880 | ||
|
|
b588b7f6d0 | ||
|
|
9aa33a676d | ||
|
|
76f48a2700 | ||
|
|
45b7cd948e | ||
|
|
4c24c0c336 | ||
|
|
dd88efc631 | ||
|
|
e067e8dec5 | ||
|
|
6e609d56e7 | ||
|
|
11faee3f1e | ||
|
|
82e4f21d24 | ||
|
|
916bcf33ff | ||
|
|
9d0fb16075 | ||
|
|
21df218f2f | ||
|
|
f384a00e04 | ||
|
|
10a536880b | ||
|
|
08c263fdf0 | ||
|
|
818005d73c | ||
|
|
1a9758770d | ||
|
|
f64aab1b58 | ||
|
|
762cd8f618 | ||
|
|
ba13d1b987 | ||
|
|
753d690b78 | ||
|
|
c9875ec8b7 | ||
|
|
11a3e75b0d | ||
|
|
794fb561c9 | ||
|
|
4f2b55a897 | ||
|
|
948ea5ff29 | ||
|
|
37582ecbf8 | ||
|
|
64c712d630 | ||
|
|
91290efdfe | ||
|
|
f2e7c234eb | ||
|
|
e7523dc08d | ||
|
|
09ddc42e32 | ||
|
|
d4679b8414 | ||
|
|
df3d09e81d | ||
|
|
d731dbddec | ||
|
|
00bb15a868 | ||
|
|
8a717e763a | ||
|
|
47562c543b | ||
|
|
d27150b11d | ||
|
|
46d6b163b9 | ||
|
|
cd63b80b77 | ||
|
|
f6afc111e6 | ||
|
|
bdc3b68954 | ||
|
|
c947854b44 | ||
|
|
585a38d2c2 | ||
|
|
3b187cfa01 | ||
|
|
f08e836f02 | ||
|
|
8f060b6fc9 | ||
|
|
2802e0102d | ||
|
|
64793e4d96 | ||
|
|
8a1fa0cac4 | ||
|
|
c43ae5fb50 | ||
|
|
7a2f0b013d | ||
|
|
ce97bb8667 | ||
|
|
2d36d3d01d | ||
|
|
a70a4c5e0b | ||
|
|
11bebd527e | ||
|
|
911425b9eb | ||
|
|
665abdd65a | ||
|
|
3ec1985ed9 | ||
|
|
7282c45b74 | ||
|
|
64fa639451 | ||
|
|
585be0e4b8 | ||
|
|
0266735ab6 | ||
|
|
d80fe14be4 | ||
|
|
8c509c8ee8 | ||
|
|
f274cf7664 | ||
|
|
324f9c1d92 | ||
|
|
77fb75f2ae | ||
|
|
acbc392db0 | ||
|
|
d5a7267606 | ||
|
|
8f515b14b3 | ||
|
|
77b45f4aa0 | ||
|
|
73f2ddcbac | ||
|
|
df21184ca5 | ||
|
|
b00838b0e8 | ||
|
|
335d345ac3 | ||
|
|
392b325bba | ||
|
|
129896358d | ||
|
|
222671232b | ||
|
|
ebb6e15503 | ||
|
|
393fecdbec | ||
|
|
08680d523c | ||
|
|
89cb221e2e | ||
|
|
2c6abe9aaa | ||
|
|
2d1669883e | ||
|
|
1c8d1882a1 | ||
|
|
3f6f421287 | ||
|
|
e007de8504 | ||
|
|
626e3975b3 | ||
|
|
15ffcdb45f | ||
|
|
d2b3fc5bf3 | ||
|
|
1af0d7dace | ||
|
|
62df9c5a6b | ||
|
|
b68abacc63 | ||
|
|
4f793a00b2 | ||
|
|
1db21b468e | ||
|
|
240437e885 | ||
|
|
48509f2224 | ||
|
|
9f523e1905 | ||
|
|
8c4a246766 | ||
|
|
1c1efa75d9 | ||
|
|
11233c287c | ||
|
|
09403eca45 | ||
|
|
df2a390d85 | ||
|
|
6c2ae1996e | ||
|
|
8ef2ec493e | ||
|
|
0698fa5759 | ||
|
|
d1d55da304 | ||
|
|
eb8e4cb073 | ||
|
|
6b78aba609 | ||
|
|
0d600a2650 | ||
|
|
690ed21204 | ||
|
|
9086f42b6e | ||
|
|
767a0fbe81 | ||
|
|
48b63b06bc | ||
|
|
3551f76da4 | ||
|
|
62fb789039 | ||
|
|
cdb3536d7e | ||
|
|
c14f567a13 | ||
|
|
94814d7fa0 | ||
|
|
c223fad764 | ||
|
|
cd72b8d8f3 | ||
|
|
e5a3ff0645 | ||
|
|
d4529dcfe5 | ||
|
|
7fe04c0d01 | ||
|
|
c5b46308da | ||
|
|
5ac15f6844 | ||
|
|
c0d4342317 | ||
|
|
f3363f40e4 | ||
|
|
fe517222bd | ||
|
|
5875e7d56b | ||
|
|
1f8bc5079a | ||
|
|
ba15981d28 | ||
|
|
7e73e33152 | ||
|
|
5c516af1cc | ||
|
|
1e041989d9 | ||
|
|
f63957ed01 | ||
|
|
1cb51102ba | ||
|
|
bdaaf70098 | ||
|
|
42c24afbf6 | ||
|
|
92e738f54b | ||
|
|
0369070984 | ||
|
|
ac7267e573 | ||
|
|
44075f5bec | ||
|
|
71cde24094 | ||
|
|
bb9efe5df4 | ||
|
|
4131412566 | ||
|
|
b0a2dd49ce | ||
|
|
dd9155f85e | ||
|
|
25fda866ec | ||
|
|
4de07c2d7a | ||
|
|
4074281265 | ||
|
|
3c63594fc6 | ||
|
|
5f28d954d9 | ||
|
|
6be58e6bd6 | ||
|
|
bed3d1571f | ||
|
|
172154a836 | ||
|
|
8a79f37aba | ||
|
|
09ae20505f | ||
|
|
d3c6da1a54 | ||
|
|
fdfc1fe390 | ||
|
|
c3ec08fbb8 | ||
|
|
bf8ff2ab35 | ||
|
|
175c80a64c | ||
|
|
a4cb5548d7 | ||
|
|
ca20cb6d87 | ||
|
|
69dcbbeec9 | ||
|
|
dd4d58858e | ||
|
|
406505e54b | ||
|
|
4445c56a9e | ||
|
|
3e06b3561f | ||
|
|
b7946797d1 | ||
|
|
17e4afcdd1 | ||
|
|
ee7cbf7122 | ||
|
|
e9afb3eeb7 | ||
|
|
656a083f30 | ||
|
|
ca298f8714 | ||
|
|
f808ab9f63 | ||
|
|
0b025a9959 | ||
|
|
4787f64a7e | ||
|
|
500d94b5f5 | ||
|
|
b8ee85e4c8 | ||
|
|
749fe4330c | ||
|
|
76d130cdc7 | ||
|
|
2feb55f049 | ||
|
|
258f0c58a3 | ||
|
|
f19a7c860e | ||
|
|
d9ccf7bad5 | ||
|
|
d889cf9c2f | ||
|
|
0d4c8c7232 | ||
|
|
0e0f921097 | ||
|
|
54ecc9303f | ||
|
|
5b8ada6438 | ||
|
|
4c90b27713 | ||
|
|
04fbeb3df4 | ||
|
|
2759c71f5a | ||
|
|
2d5aa7fbc6 | ||
|
|
41e4f86d71 | ||
|
|
e273ab906a | ||
|
|
66f986a17e | ||
|
|
ae93a16a2e | ||
|
|
120f054af9 | ||
|
|
7217136174 | ||
|
|
5677c32827 | ||
|
|
18e9c37347 | ||
|
|
1fbfe9a771 | ||
|
|
2182df3570 | ||
|
|
62312be4b3 | ||
|
|
3c509e8938 | ||
|
|
f78647efe0 | ||
|
|
3a39bca8b1 | ||
|
|
a9fb0921a3 | ||
|
|
b455a519d5 | ||
|
|
89063c0a79 | ||
|
|
8251704760 | ||
|
|
434c715966 | ||
|
|
5f5560e41a | ||
|
|
ac18fa40a2 | ||
|
|
c64164f107 | ||
|
|
a042a01c4b | ||
|
|
a1cee85983 | ||
|
|
3ddf57cf26 | ||
|
|
d0967eceb6 | ||
|
|
15daf53c6c | ||
|
|
91fb500295 | ||
|
|
21691ad9dd | ||
|
|
b699489451 | ||
|
|
d14e5928c1 | ||
|
|
6395472dff | ||
|
|
a6e881fb84 | ||
|
|
c529b8685f | ||
|
|
67db44a5d0 | ||
|
|
f39cd5daf0 | ||
|
|
8f642547cc | ||
|
|
7d7bb3f1d0 | ||
|
|
6e35e4735b | ||
|
|
c649b3fd3f | ||
|
|
f7c9343de1 | ||
|
|
9416685360 | ||
|
|
7b6f26895c | ||
|
|
0e55ae2066 | ||
|
|
b0dfe09816 | ||
|
|
06beac8dfc | ||
|
|
7fdb887eac | ||
|
|
5c034b1017 | ||
|
|
d91dbb946f | ||
|
|
d329f73ff9 | ||
|
|
783e0162b1 | ||
|
|
38075b937b | ||
|
|
c9cc590c78 | ||
|
|
35c4132dba | ||
|
|
438075d035 | ||
|
|
d7548d295b | ||
|
|
8028438503 | ||
|
|
efec256ab4 | ||
|
|
1dd034d7b2 | ||
|
|
ca1fdd49d6 | ||
|
|
ae2957dfcb | ||
|
|
c8f0fef06c | ||
|
|
081f178b8c |
119
.github/ISSUE_TEMPLATE/bug.yaml
vendored
|
|
@ -1,47 +1,101 @@
|
||||||
name: Bug
|
name: Bug
|
||||||
description: Make sure you complete the template. Otherwise, it will be closed without further explanation!
|
description: Report a bug here
|
||||||
title: "[Bug] Replace this with your title"
|
title: "[Bug] Replace this with your title"
|
||||||
labels: bug
|
labels: bug
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Is there an existing issue for this?
|
label: Is there an existing issue for this?
|
||||||
description: _Please search to see if an issue already exists for the bug you encountered_
|
|
||||||
options:
|
options:
|
||||||
- label: I have searched the existing issues
|
- label: I have searched the existing issues
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: checkboxes
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
label: Have you read the FAQ?
|
value: "## Device Info"
|
||||||
description: _Make sure you visit the [**FAQ**](https://github.com/qnblackcat/YTLitePlus/wiki/FAQ) page first!_
|
|
||||||
options:
|
- type: input
|
||||||
- label: Yes, I read the FAQ
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
attributes:
|
||||||
label: Device info
|
label: iOS/iPadOS version
|
||||||
description:
|
placeholder: iOS 17.5.1
|
||||||
value: |
|
|
||||||
- iOS/iPadOS version:
|
|
||||||
- Device model:
|
|
||||||
- Sideload tool (AltStore, Sideloadly, TrollStore,...):
|
|
||||||
- The specific version of YTLitePlus (**latest** or **newest** is **NOT** a version number!):
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: Device model
|
||||||
|
placeholder: iPhone 15 Pro Max
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: Sideload method
|
||||||
|
placeholder: AltStore, Sideloadly, TrollStore, Signulous, deb, ...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: Tweak version
|
||||||
|
placeholder: YTLitePlus - v19.xx.x-4.0.1
|
||||||
|
description: "**latest or newest is NOT a version number!**"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Do you use YouTube Premium?
|
||||||
|
options:
|
||||||
|
- ❌ No, I don't use YouTube Premium
|
||||||
|
- ✅ Yes, I do use YouTube Premium
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Are you using the newest version of YTLitePlus?
|
||||||
|
description: Update to the [latest version](https://github.com/YTLitePlus/YTLitePlus/releases) to see if it fixes your issue
|
||||||
|
options:
|
||||||
|
- ✅ Yes, I'm using the latest version
|
||||||
|
- ❌ No, I'll explain at the end
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Does the issue happen with the official YouTube from AppStore?
|
||||||
|
options:
|
||||||
|
- ❌ No, I can't reproduce this issue in the official YouTube from AppStore
|
||||||
|
- ✅ Yes, I can reproduce this issue in the official YouTube from AppStore
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Method used to build the iPA
|
||||||
|
options:
|
||||||
|
- buildapp.yml (GitHub Actions)
|
||||||
|
- build.sh (Shell script)
|
||||||
|
- Downloaded from third party
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: "## Description"
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Describe the bug
|
label: Describe the bug
|
||||||
description: _Please attach videos or screenshots if possible_
|
description: Please attach videos or screenshots if possible
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Steps to reproduce the issue
|
label: Steps to reproduce the issue
|
||||||
description: _Please attach videos or screenshots if possible_
|
description: Please attach videos or screenshots if possible
|
||||||
value: |
|
value: |
|
||||||
1.
|
1.
|
||||||
2.
|
2.
|
||||||
|
|
@ -53,34 +107,11 @@ body:
|
||||||
id: logs
|
id: logs
|
||||||
attributes:
|
attributes:
|
||||||
label: Crash log (if the app crashes)
|
label: Crash log (if the app crashes)
|
||||||
description: _If somehow the app crashes, **you must provide the crash log**. It can be found in your device's Settings App > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips_
|
description: It can be found in Settings App > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips
|
||||||
render: shell
|
render: shell
|
||||||
|
|
||||||
- type: dropdown
|
|
||||||
attributes:
|
|
||||||
label: Are you using the newest version of YTLitePlus? If not, why?
|
|
||||||
description: _Developers spend time and effort to fix bugs & add improvements with every release. Why don't you update to the [latest version](https://github.com/Balackburn/YTLitePlus/releases/latest) before reporting about an issue?_
|
|
||||||
multiple: false
|
|
||||||
options:
|
|
||||||
- ✅ Yes, I'm using the latest version of YTLitePlus right now
|
|
||||||
- ❌ No, I'll explain at the end of the template
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- type: dropdown
|
|
||||||
attributes:
|
|
||||||
label: Does the issue happen with the official YouTube from AppStore?
|
|
||||||
description: _Well, YouTube itself is buggy sometimes..._
|
|
||||||
multiple: false
|
|
||||||
options:
|
|
||||||
- ❌ No, It doesn't
|
|
||||||
- ✅ Yes, It does
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional context
|
label: Additional context
|
||||||
description: _Um, anything else you want to say?_
|
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|
|
||||||
32
.github/ISSUE_TEMPLATE/feature-request.yaml
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
name: Feature Request
|
||||||
|
description: Request a new feature to be added
|
||||||
|
title: "[Request] Replace with your question"
|
||||||
|
labels: enhancement
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue for this?
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Do you use YouTube Premium?
|
||||||
|
options:
|
||||||
|
- ❌ No, I don't use YouTube Premium
|
||||||
|
- ✅ Yes, I do use YouTube Premium
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: My feature request
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
@ -5,8 +5,7 @@ labels: question
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Is there an existing issue/question for this?
|
label: Is there an existing issue for this?
|
||||||
description: _Please search to see if an issue already exists for the bug you encountered. **I DON\'T MAKE THIS TICK BOX FOR COSMETIC.**_
|
|
||||||
options:
|
options:
|
||||||
- label: I have searched the existing issues
|
- label: I have searched the existing issues
|
||||||
required: true
|
required: true
|
||||||
|
|
@ -14,7 +13,7 @@ body:
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
attributes:
|
attributes:
|
||||||
label: Do you think this is a bug?
|
label: Do you think this is a bug?
|
||||||
description: _If you think this is a bug, please open a new issue with the bug template_
|
description: _If so, please use the bug template_
|
||||||
multiple: false
|
multiple: false
|
||||||
options:
|
options:
|
||||||
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
|
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
|
||||||
|
|
@ -25,13 +24,11 @@ body:
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: My question
|
label: My question
|
||||||
description: _Please enter your question here_
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional context
|
label: Additional context
|
||||||
description: _Um, anything else you want to say?_
|
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
6
.github/RELEASE_TEMPLATE/Release.md
vendored
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
Current YouTube IPA: `%youtube_version%`
|
Current YouTube IPA: `%youtube_version%`
|
||||||
Current YTLite Version: `%ytliteplus_version%`
|
Current YTLite Version: `%ytliteplus_version%`
|
||||||
Current App Compatibility: `iOS/iPadOS 14.0` or later
|
Current App Compatibility: `iOS/iPadOS 15.0` or later
|
||||||
|
|
||||||
**RELEASE %youtube_version%-%ytliteplus_version%:** (%date%)
|
**RELEASE %youtube_version%-%ytliteplus_version%:** (%date%)
|
||||||
|
|
||||||
|
|
@ -15,5 +15,7 @@ Current App Compatibility: `iOS/iPadOS 14.0` or later
|
||||||
|
|
||||||
### Issues in this Release:
|
### Issues in this Release:
|
||||||
- LowContrastMode does not work *(Compatible only with YouTube v17.33.2-v17.38.10)*
|
- LowContrastMode does not work *(Compatible only with YouTube v17.33.2-v17.38.10)*
|
||||||
- VersionSpoofer (Lite) doesn't work with YTLite *(as the version is already spoofed by YTLite to fix YTClassicVideoQuality)*
|
|
||||||
- Hiding Shorts creates an empty space instead #55
|
- Hiding Shorts creates an empty space instead #55
|
||||||
|
|
||||||
|
### Catbox
|
||||||
|
`%catbox_url%`
|
||||||
161
.github/workflows/buildapp.yml
vendored
|
|
@ -6,26 +6,46 @@ name: Build and Release YTLitePlus
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
|
sdk_version:
|
||||||
|
description: "iOS SDK Version"
|
||||||
|
default: "16.5"
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
decrypted_youtube_url:
|
decrypted_youtube_url:
|
||||||
description: "The direct URL to the decrypted YouTube ipa"
|
description: "Direct URL of the decrypted YouTube ipa"
|
||||||
default: ""
|
default: ""
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
bundle_id:
|
bundle_id:
|
||||||
description: "Modify the bundle ID. Not recommended"
|
description: "Modify the bundle ID"
|
||||||
default: "com.google.ios.youtube"
|
default: "com.google.ios.youtube"
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
app_name:
|
app_name:
|
||||||
description: "Modify the name of the app on the Home Screen. Not recommended"
|
description: "Modify the app name"
|
||||||
default: "YouTube"
|
default: "YouTube"
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
create_release:
|
commit_id:
|
||||||
description: "Create a draft release"
|
description: "(Optional) Commit ID to build at"
|
||||||
|
default: ""
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
upload_artifact:
|
||||||
|
description: "Upload iPA as artifact (Public)"
|
||||||
default: true
|
default: true
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
catbox_upload:
|
||||||
|
description: "Upload iPA to Catbox.moe (URL)"
|
||||||
|
default: false
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
create_release:
|
||||||
|
description: "Create a draft release (Private)"
|
||||||
|
default: false
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
|
@ -40,44 +60,47 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Main
|
- name: Checkout Main
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
path: main
|
path: main
|
||||||
|
ref: ${{ github.event.inputs.commit_id || github.ref }}
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: brew install ldid dpkg make
|
run: brew install ldid dpkg make
|
||||||
|
|
||||||
- name: Setup Theos
|
- name: Download Theos
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: theos/theos
|
repository: theos/theos
|
||||||
ref: 3da31488281ecf4394d10302d2629607f4a1aa07
|
ref: 3da31488281ecf4394d10302d2629607f4a1aa07
|
||||||
path: theos
|
path: theos
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Caching
|
- name: iOS SDK Caching
|
||||||
id: SDK
|
id: SDK
|
||||||
uses: actions/cache@v4.0.1
|
uses: actions/cache@v4
|
||||||
env:
|
env:
|
||||||
cache-name: iOS-16.2-SDK
|
cache-name: iOS-${{ inputs.sdk_version }}-SDK
|
||||||
with:
|
with:
|
||||||
path: theos/sdks/
|
path: theos/sdks/
|
||||||
key: ${{ env.cache-name }}
|
key: ${{ env.cache-name }}
|
||||||
|
restore-keys: ${{ env.cache-name }}
|
||||||
|
|
||||||
- name: Download iOS 16.4 SDK
|
- name: Download iOS SDK
|
||||||
if: steps.SDK.outputs.cache-hit != 'true'
|
if: steps.SDK.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
git clone -n --depth=1 --filter=tree:0 https://github.com/arichorn/sdks/
|
# Only download the specific SDK version
|
||||||
|
git clone -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/
|
||||||
cd sdks
|
cd sdks
|
||||||
git sparse-checkout set --no-cone iPhoneOS16.4.sdk
|
git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk
|
||||||
git checkout
|
git checkout
|
||||||
mv *.sdk $THEOS/sdks
|
mv *.sdk $THEOS/sdks
|
||||||
env:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
|
|
||||||
- name: Setup Theos Jailed
|
- name: Download Theos Jailed
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.7
|
||||||
with:
|
with:
|
||||||
repository: qnblackcat/theos-jailed
|
repository: qnblackcat/theos-jailed
|
||||||
ref: master
|
ref: master
|
||||||
|
|
@ -89,32 +112,67 @@ jobs:
|
||||||
./theos-jailed/install
|
./theos-jailed/install
|
||||||
env:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
|
|
||||||
|
- name: Fix Compiling
|
||||||
|
run: |
|
||||||
|
# Update GNU Make to allow for faster building
|
||||||
|
echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||||
|
(echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile)
|
||||||
|
source ~/.bash_profile
|
||||||
|
|
||||||
- name: Prepare YouTube iPA
|
- name: Prepare YouTube iPA
|
||||||
run: |
|
run: |
|
||||||
|
# Download and unzip iPA
|
||||||
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
|
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
|
||||||
unzip -q main/YouTube.ipa -d main/tmp
|
unzip -q main/YouTube.ipa -d main/tmp
|
||||||
|
# Get the version number of the YouTube app and store it
|
||||||
echo "YT_VERSION=$(grep -A 1 '<key>CFBundleVersion</key>' main/tmp/Payload/YouTube.app/Info.plist | grep '<string>' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV
|
echo "YT_VERSION=$(grep -A 1 '<key>CFBundleVersion</key>' main/tmp/Payload/YouTube.app/Info.plist | grep '<string>' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV
|
||||||
|
# Get the version number of the latest release
|
||||||
|
wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html
|
||||||
|
YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' main/tmp/release_page.html | head -n 1 | sed 's/\/tag\/v//')
|
||||||
|
echo "YTLITE_VERSION=${YTLITE_VERSION}" >> $GITHUB_ENV
|
||||||
|
echo $YTLITE_VERSION
|
||||||
|
# Remove contents in the iPA that interfere with sideloading
|
||||||
rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources
|
rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources
|
||||||
rm -rf main/tmp/Payload/YouTube.app/PlugIns/*
|
rm -rf main/tmp/Payload/YouTube.app/PlugIns/*
|
||||||
|
# Modify Info.plist to remove UISupportedDevices (Python script)
|
||||||
|
python - <<EOF
|
||||||
|
import plistlib
|
||||||
|
def remove_uisupporteddevices(filepath):
|
||||||
|
with open(filepath, 'rb') as f:
|
||||||
|
plist = plistlib.load(f)
|
||||||
|
|
||||||
|
if 'UISupportedDevices' in plist:
|
||||||
|
del plist['UISupportedDevices']
|
||||||
|
|
||||||
|
with open(filepath, 'wb') as f:
|
||||||
|
plistlib.dump(plist, f)
|
||||||
|
|
||||||
|
filepath = 'main/tmp/Payload/YouTube.app/Info.plist'
|
||||||
|
remove_uisupporteddevices(filepath)
|
||||||
|
EOF
|
||||||
|
# Manually install the Open in YouTube extension
|
||||||
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
|
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
|
||||||
echo "YTLITE_VERSION=$(grep ^PACKAGE_VERSION ${{ github.workspace }}/main/Tweaks/YTLite/Makefile | awk '{print $3}')" >> $GITHUB_ENV
|
|
||||||
env:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
|
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
|
||||||
|
|
||||||
- name: Fix Compiling & Build Package
|
- name: Build Package
|
||||||
id: build_package
|
id: build_package
|
||||||
run: |
|
run: |
|
||||||
(echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile)
|
|
||||||
source ~/.bash_profile
|
|
||||||
cd ${{ github.workspace }}/main
|
cd ${{ github.workspace }}/main
|
||||||
sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
|
# Replace lines in Makefile based on inputs
|
||||||
sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
|
sed -i '' "s/^BUNDLE_ID.*$/BUNDLE_ID = ${{ env.BUNDLE_ID }}/" Makefile
|
||||||
|
sed -i '' "s/^DISPLAY_NAME.*$/DISPLAY_NAME = ${{ env.APP_NAME }}/" Makefile
|
||||||
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile
|
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile
|
||||||
make package FINALPACKAGE=1
|
sed -i '' "s/^export TARGET.*$/export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0/" Makefile
|
||||||
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa")
|
# Build the package
|
||||||
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
|
make package
|
||||||
|
# Rename the package based on the version
|
||||||
|
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa")
|
||||||
|
# Pass package name to the upload step
|
||||||
|
echo "package=$(ls -t packages | head -n1)" >> $GITHUB_OUTPUT
|
||||||
|
# Print out the hash and bundle ID
|
||||||
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m"
|
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m"
|
||||||
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
|
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
|
||||||
env:
|
env:
|
||||||
|
|
@ -123,32 +181,46 @@ jobs:
|
||||||
APP_NAME: ${{ inputs.app_name }}
|
APP_NAME: ${{ inputs.app_name }}
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v4.3.1
|
if: ${{ inputs.upload_artifact }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
|
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
|
||||||
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
|
- name: Upload Artifact to Catbox
|
||||||
|
if: ${{ inputs.catbox_upload }}
|
||||||
|
run: |
|
||||||
|
RESPONSE=$(curl -F "reqtype=fileupload" -F "fileToUpload=@${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}" https://catbox.moe/user/api.php)
|
||||||
|
CATBOX_URL=$(echo $RESPONSE | grep -o -E 'https://files.catbox.moe/[^"]*')
|
||||||
|
echo "Uploaded artifact to $CATBOX_URL"
|
||||||
|
CATBOX_FILE=$(echo $CATBOX_URL | sed 's|https://files.catbox.moe/||')
|
||||||
|
# Pass Catbox URL to the release steps
|
||||||
|
echo "CATBOX_FILE=$CATBOX_FILE" >> $GITHUB_ENV
|
||||||
|
echo "CATBOX_URL=$CATBOX_URL" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Prepare Release Notes
|
- name: Prepare Release Notes
|
||||||
|
if: ${{ inputs.create_release }}
|
||||||
run: |
|
run: |
|
||||||
export TODAY=$(date '+%Y-%m-%d')
|
export TODAY=$(date '+%Y-%m-%d')
|
||||||
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%date%/$TODAY/g" \
|
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
|
||||||
main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md
|
main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Draft Release
|
||||||
|
if: ${{ inputs.create_release }}
|
||||||
id: create_release
|
id: create_release
|
||||||
uses: softprops/action-gh-release@v2.0.4
|
uses: softprops/action-gh-release@v2
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
DRAFT: ${{ inputs.create_release }}
|
|
||||||
with:
|
with:
|
||||||
tag_name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}
|
tag_name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}
|
||||||
name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }} - YTLitePlus
|
name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }} - YTLitePlus
|
||||||
files: main/packages/*.ipa
|
files: main/packages/*.ipa
|
||||||
draft: ${{ env.DRAFT }}
|
draft: true
|
||||||
body_path: ${{ github.workspace }}/release_notes.md
|
body_path: ${{ github.workspace }}/release_notes.md
|
||||||
|
|
||||||
- name: Update Altstore Source with latest release
|
- name: Update Altstore Source with latest release
|
||||||
|
if: ${{ inputs.create_release }}
|
||||||
run: |
|
run: |
|
||||||
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/dispatches' \
|
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/dispatches' \
|
||||||
--header 'Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}' \
|
--header 'Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}' \
|
||||||
|
|
@ -156,3 +228,30 @@ jobs:
|
||||||
--data-raw '{
|
--data-raw '{
|
||||||
"event_type": "update-altstore-source-trigger"
|
"event_type": "update-altstore-source-trigger"
|
||||||
}'
|
}'
|
||||||
|
|
||||||
|
- name: Job Summary
|
||||||
|
run: |
|
||||||
|
echo -e '### 📺 Build Complete' >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
|
- name: Job Summary - Artifact Upload
|
||||||
|
if: ${{ inputs.upload_artifact }}
|
||||||
|
run: |
|
||||||
|
echo -e '### 📦 Artifact Upload\n\nThe artifact was uploaded successfully! Refresh and [scroll down](#artifacts) to view the artifact. Note that you must be signed in to GitHub to download it.' >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
|
- name: Job Summary - Catbox Upload
|
||||||
|
if: ${{ inputs.catbox_upload}}
|
||||||
|
run: |
|
||||||
|
echo -e '### 🐱 Catbox Upload\n\nThe Catbox upload was successful! Here is a permanent shareable link: '$CATBOX_URL >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
|
- name: Job Summary - Draft Release
|
||||||
|
if: ${{ inputs.create_release }}
|
||||||
|
run: |
|
||||||
|
REPO_URL="https://github.com/${{ github.repository }}"
|
||||||
|
RELEASES_URL="$REPO_URL/releases"
|
||||||
|
echo -e '### 🚀 Draft Release\n\nThe release draft has been created successfully! You can view your releases here: '$RELEASES_URL >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
|
- name: Job Summary - Link to remove GitHub Action runs
|
||||||
|
run: |
|
||||||
|
REPO_URL="https://github.com/${{ github.repository }}"
|
||||||
|
DELETE_RUNS_URL="$REPO_URL/actions/workflows/delete-workflow-runs.yml"
|
||||||
|
echo -e '### 🧹 Cleanup\n\nYou can remove previous GitHub Action runs here: '$DELETE_RUNS_URL >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
|
||||||
38
.github/workflows/delete-workflow-runs.yml
vendored
|
|
@ -1,43 +1,47 @@
|
||||||
name: Delete Workflow Runs
|
# This is based on the example at https://github.com/marketplace/actions/delete-workflow-runs
|
||||||
|
|
||||||
|
name: Delete old workflow runs
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
days:
|
days:
|
||||||
description: 'Number of days.'
|
description: 'Days-worth of runs to keep for each workflow'
|
||||||
required: true
|
required: true
|
||||||
default: 0
|
default: '0'
|
||||||
minimum_runs:
|
minimum_runs:
|
||||||
description: 'The minimum runs to keep for each workflow.'
|
description: 'Minimum runs to keep for each workflow'
|
||||||
required: true
|
required: true
|
||||||
default: 0
|
default: '0'
|
||||||
delete_workflow_pattern:
|
delete_workflow_pattern:
|
||||||
description: 'The name or filename of the workflow. if not set then it will target all workflows.'
|
description: 'Name or filename of the workflow (if not set, all workflows are targeted)'
|
||||||
required: false
|
required: false
|
||||||
|
default: 'Build and Release YTLitePlus'
|
||||||
delete_workflow_by_state_pattern:
|
delete_workflow_by_state_pattern:
|
||||||
description: 'Remove workflow by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually'
|
description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually'
|
||||||
required: true
|
required: true
|
||||||
default: "All"
|
default: "ALL"
|
||||||
type: choice
|
type: choice
|
||||||
options:
|
options:
|
||||||
- "All"
|
- "ALL"
|
||||||
- active
|
- active
|
||||||
- deleted
|
- deleted
|
||||||
- disabled_inactivity
|
- disabled_inactivity
|
||||||
- disabled_manually
|
- disabled_manually
|
||||||
delete_run_by_conclusion_pattern:
|
delete_run_by_conclusion_pattern:
|
||||||
description: 'Remove workflow by conclusion: action_required, cancelled, failure, skipped, success'
|
description: 'Remove runs based on conclusion: action_required, cancelled, failure, skipped, success'
|
||||||
required: true
|
required: true
|
||||||
default: "All"
|
default: "ALL"
|
||||||
type: choice
|
type: choice
|
||||||
options:
|
options:
|
||||||
- "All"
|
- "ALL"
|
||||||
|
- "Unsuccessful: action_required,cancelled,failure,skipped"
|
||||||
- action_required
|
- action_required
|
||||||
- cancelled
|
- cancelled
|
||||||
- failure
|
- failure
|
||||||
- skipped
|
- skipped
|
||||||
- success
|
- success
|
||||||
dry_run:
|
dry_run:
|
||||||
description: 'Only log actions, do not perform any delete operations.'
|
description: 'Logs simulated changes, no deletions are performed'
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
@ -45,6 +49,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
actions: write
|
actions: write
|
||||||
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- name: Delete workflow runs
|
- name: Delete workflow runs
|
||||||
uses: Mattraks/delete-workflow-runs@v2
|
uses: Mattraks/delete-workflow-runs@v2
|
||||||
|
|
@ -55,5 +60,10 @@ jobs:
|
||||||
keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
|
keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
|
||||||
delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }}
|
delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }}
|
||||||
delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }}
|
delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }}
|
||||||
delete_run_by_conclusion_pattern: ${{ github.event.inputs.delete_run_by_conclusion_pattern }}
|
delete_run_by_conclusion_pattern: >-
|
||||||
|
${{
|
||||||
|
startsWith(github.event.inputs.delete_run_by_conclusion_pattern, 'Unsuccessful:')
|
||||||
|
&& 'action_required,cancelled,failure,skipped'
|
||||||
|
|| github.event.inputs.delete_run_by_conclusion_pattern
|
||||||
|
}}
|
||||||
dry_run: ${{ github.event.inputs.dry_run }}
|
dry_run: ${{ github.event.inputs.dry_run }}
|
||||||
|
|
|
||||||
2
.github/workflows/update-submodules.yml
vendored
|
|
@ -11,7 +11,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
- name: Set up Git
|
- name: Set up Git
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
6
.gitignore
vendored
|
|
@ -2,6 +2,6 @@
|
||||||
.theos/
|
.theos/
|
||||||
packages/
|
packages/
|
||||||
tmp/
|
tmp/
|
||||||
Tweaks/Cercube/*
|
Tweaks/YTLite/*
|
||||||
!Tweaks/Cercube/.gitkeep
|
!Tweaks/YTLite/.gitkeep
|
||||||
Resources/
|
Resources/
|
||||||
|
|
|
||||||
61
.gitmodules
vendored
|
|
@ -1,28 +1,9 @@
|
||||||
[submodule "Tweaks/YTUHD"]
|
|
||||||
path = Tweaks/YTUHD
|
|
||||||
url = https://github.com/arichorn/YTUHD.git
|
|
||||||
[submodule "Tweaks/YouPiP"]
|
|
||||||
path = Tweaks/YouPiP
|
|
||||||
url = https://github.com/Balackburn/YouPiP.git
|
|
||||||
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
|
||||||
path = Tweaks/Return-YouTube-Dislikes
|
|
||||||
url = https://github.com/arichorn/Return-YouTube-Dislikes.git
|
|
||||||
branch = uYouEnhanced
|
|
||||||
[submodule "Tweaks/YouTubeHeader"]
|
|
||||||
path = Tweaks/YouTubeHeader
|
|
||||||
url = https://github.com/arichornlover/YouTubeHeader.git
|
|
||||||
[submodule "Tweaks/Alderis"]
|
[submodule "Tweaks/Alderis"]
|
||||||
path = Tweaks/Alderis
|
path = Tweaks/Alderis
|
||||||
url = https://github.com/hbang/Alderis.git
|
url = https://github.com/hbang/Alderis.git
|
||||||
[submodule "Tweaks/PSHeader"]
|
[submodule "Tweaks/PSHeader"]
|
||||||
path = Tweaks/PSHeader
|
path = Tweaks/PSHeader
|
||||||
url = https://github.com/PoomSmart/PSHeader.git
|
url = https://github.com/PoomSmart/PSHeader.git
|
||||||
[submodule "Tweaks/YTABConfig"]
|
|
||||||
path = Tweaks/YTABConfig
|
|
||||||
url = https://github.com/Balackburn/YTABConfig.git
|
|
||||||
[submodule "Tweaks/YouMute"]
|
|
||||||
path = Tweaks/YouMute
|
|
||||||
url = https://github.com/arichornlover/YouMute.git
|
|
||||||
[submodule "Tweaks/FLEX"]
|
[submodule "Tweaks/FLEX"]
|
||||||
path = Tweaks/FLEX
|
path = Tweaks/FLEX
|
||||||
url = https://github.com/qnblackcat/FLEX-Classes.git
|
url = https://github.com/qnblackcat/FLEX-Classes.git
|
||||||
|
|
@ -31,25 +12,49 @@
|
||||||
url = https://github.com/Galactic-Dev/iSponsorBlock.git
|
url = https://github.com/Galactic-Dev/iSponsorBlock.git
|
||||||
[submodule "Tweaks/YTHoldForSpeed"]
|
[submodule "Tweaks/YTHoldForSpeed"]
|
||||||
path = Tweaks/YTHoldForSpeed
|
path = Tweaks/YTHoldForSpeed
|
||||||
url = https://github.com/arichorn/YTHoldForSpeed.git
|
url = https://github.com/arichornloverALT/YTHoldForSpeed.git
|
||||||
[submodule "Tweaks/DontEatMyContent"]
|
[submodule "Tweaks/DontEatMyContent"]
|
||||||
path = Tweaks/DontEatMyContent
|
path = Tweaks/DontEatMyContent
|
||||||
url = https://github.com/therealFoxster/DontEatMyContent.git
|
url = https://github.com/therealFoxster/DontEatMyContent.git
|
||||||
[submodule "Tweaks/YTLite"]
|
|
||||||
path = Tweaks/YTLite
|
|
||||||
url = https://github.com/dayanch96/YTLite
|
|
||||||
[submodule "Extensions"]
|
[submodule "Extensions"]
|
||||||
path = Extensions
|
path = Extensions
|
||||||
url = https://github.com/CokePokes/YoutubeExtensions.git
|
url = https://github.com/CokePokes/YoutubeExtensions.git
|
||||||
[submodule "Tweaks/YTVideoOverlay"]
|
[submodule "Tweaks/YTVideoOverlay"]
|
||||||
path = Tweaks/YTVideoOverlay
|
path = Tweaks/YTVideoOverlay
|
||||||
url = https://github.com/arichorn/YTVideoOverlay.git
|
url = https://github.com/arichornloverALT/YTVideoOverlay.git
|
||||||
[submodule "Tweaks/YouQuality"]
|
|
||||||
path = Tweaks/YouQuality
|
|
||||||
url = https://github.com/arichorn/YouQuality.git
|
|
||||||
[submodule "Tweaks/protobuf"]
|
[submodule "Tweaks/protobuf"]
|
||||||
path = Tweaks/protobuf
|
path = Tweaks/protobuf
|
||||||
url = https://github.com/protocolbuffers/protobuf.git
|
url = https://github.com/protocolbuffers/protobuf.git
|
||||||
|
[submodule "Tweaks/YouTubeHeader"]
|
||||||
|
path = Tweaks/YouTubeHeader
|
||||||
|
url = https://github.com/PoomSmart/YouTubeHeader.git
|
||||||
|
[submodule "Tweaks/YouPiP"]
|
||||||
|
path = Tweaks/YouPiP
|
||||||
|
url = https://github.com/PoomSmart/YouPiP
|
||||||
|
[submodule "Tweaks/YTABConfig"]
|
||||||
|
path = Tweaks/YTABConfig
|
||||||
|
url = https://github.com/PoomSmart/YTABConfig
|
||||||
|
[submodule "Tweaks/YTUHD"]
|
||||||
|
path = Tweaks/YTUHD
|
||||||
|
url = https://github.com/PoomSmart/YTUHD
|
||||||
[submodule "Tweaks/YouGroupSettings"]
|
[submodule "Tweaks/YouGroupSettings"]
|
||||||
path = Tweaks/YouGroupSettings
|
path = Tweaks/YouGroupSettings
|
||||||
url = https://github.com/arichornlover/YouGroupSettings.git
|
url = https://github.com/PoomSmart/YouGroupSettings
|
||||||
|
[submodule "Tweaks/YouMute"]
|
||||||
|
path = Tweaks/YouMute
|
||||||
|
url = https://github.com/PoomSmart/YouMute
|
||||||
|
[submodule "Tweaks/YouQuality"]
|
||||||
|
path = Tweaks/YouQuality
|
||||||
|
url = https://github.com/PoomSmart/YouQuality
|
||||||
|
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
||||||
|
path = Tweaks/Return-YouTube-Dislikes
|
||||||
|
url = https://github.com/arichornloverALT/Return-YouTube-Dislikes.git
|
||||||
|
[submodule "Tweaks/YTHeaders"]
|
||||||
|
path = Tweaks/YTHeaders
|
||||||
|
url = https://github.com/therealFoxster/YTHeaders
|
||||||
|
[submodule "Tweaks/YouTimeStamp"]
|
||||||
|
path = Tweaks/YouTimeStamp
|
||||||
|
url = https://github.com/arichornloverALT/YouTimeStamp.git
|
||||||
|
[submodule "Tweaks/YouLoop"]
|
||||||
|
path = Tweaks/YouLoop
|
||||||
|
url = https://github.com/bhackel/YouLoop
|
||||||
|
|
|
||||||
674
LICENSE
Normal file
|
|
@ -0,0 +1,674 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for
|
||||||
|
software and other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
the GNU General Public License is intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users. We, the Free Software Foundation, use the
|
||||||
|
GNU General Public License for most of our software; it applies also to
|
||||||
|
any other work released this way by its authors. You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you
|
||||||
|
these rights or asking you to surrender the rights. Therefore, you have
|
||||||
|
certain responsibilities if you distribute copies of the software, or if
|
||||||
|
you modify it: responsibilities to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must pass on to the recipients the same
|
||||||
|
freedoms that you received. You must make sure that they, too, receive
|
||||||
|
or can get the source code. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps:
|
||||||
|
(1) assert copyright on the software, and (2) offer you this License
|
||||||
|
giving you legal permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains
|
||||||
|
that there is no warranty for this free software. For both users' and
|
||||||
|
authors' sake, the GPL requires that modified versions be marked as
|
||||||
|
changed, so that their problems will not be attributed erroneously to
|
||||||
|
authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run
|
||||||
|
modified versions of the software inside them, although the manufacturer
|
||||||
|
can do so. This is fundamentally incompatible with the aim of
|
||||||
|
protecting users' freedom to change the software. The systematic
|
||||||
|
pattern of such abuse occurs in the area of products for individuals to
|
||||||
|
use, which is precisely where it is most unacceptable. Therefore, we
|
||||||
|
have designed this version of the GPL to prohibit the practice for those
|
||||||
|
products. If such problems arise substantially in other domains, we
|
||||||
|
stand ready to extend this provision to those domains in future versions
|
||||||
|
of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents.
|
||||||
|
States should not allow patents to restrict development and use of
|
||||||
|
software on general-purpose computers, but in those that do, we wish to
|
||||||
|
avoid the special danger that patents applied to a free program could
|
||||||
|
make it effectively proprietary. To prevent this, the GPL assures that
|
||||||
|
patents cannot be used to render the program non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work
|
||||||
|
for making modifications to it. "Object code" means any non-source
|
||||||
|
form of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
|
||||||
|
The "System Libraries" of an executable work include anything, other
|
||||||
|
than the work as a whole, that (a) is included in the normal form of
|
||||||
|
packaging a Major Component, but which is not part of that Major
|
||||||
|
Component, and (b) serves only to enable use of the work with that
|
||||||
|
Major Component, or to implement a Standard Interface for which an
|
||||||
|
implementation is available to the public in source code form. A
|
||||||
|
"Major Component", in this context, means a major essential component
|
||||||
|
(kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to
|
||||||
|
produce the work, or an object code interpreter used to run it.
|
||||||
|
|
||||||
|
The "Corresponding Source" for a work in object code form means all
|
||||||
|
the source code needed to generate, install, and (for an executable
|
||||||
|
work) run the object code and to modify the work, including scripts to
|
||||||
|
control those activities. However, it does not include the work's
|
||||||
|
System Libraries, or general-purpose tools or generally available free
|
||||||
|
programs which are used unmodified in performing those activities but
|
||||||
|
which are not part of the work. For example, Corresponding Source
|
||||||
|
includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically
|
||||||
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
such as by intimate data communication or control flow between those
|
||||||
|
subprograms and other parts of the work.
|
||||||
|
|
||||||
|
The Corresponding Source need not include anything that users
|
||||||
|
can regenerate automatically from other parts of the Corresponding
|
||||||
|
Source.
|
||||||
|
|
||||||
|
The Corresponding Source for a work in source code form is that
|
||||||
|
same work.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
|
||||||
|
You may make, run and propagate covered works that you do not
|
||||||
|
convey, without conditions so long as your license otherwise remains
|
||||||
|
in force. You may convey covered works to others for the sole purpose
|
||||||
|
of having them make modifications exclusively for you, or provide you
|
||||||
|
with facilities for running those works, provided that you comply with
|
||||||
|
the terms of this License in conveying all material for which you do
|
||||||
|
not control copyright. Those thus making or running the covered works
|
||||||
|
for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of
|
||||||
|
your copyrighted material outside their relationship with you.
|
||||||
|
|
||||||
|
Conveying under any other circumstances is permitted solely under
|
||||||
|
the conditions stated below. Sublicensing is not allowed; section 10
|
||||||
|
makes it unnecessary.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
No covered work shall be deemed part of an effective technological
|
||||||
|
measure under any applicable law fulfilling obligations under article
|
||||||
|
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||||
|
similar laws prohibiting or restricting circumvention of such
|
||||||
|
measures.
|
||||||
|
|
||||||
|
When you convey a covered work, you waive any legal power to forbid
|
||||||
|
circumvention of technological measures to the extent such circumvention
|
||||||
|
is effected by exercising rights under this License with respect to
|
||||||
|
the covered work, and you disclaim any intention to limit operation or
|
||||||
|
modification of the work as a means of enforcing, against the work's
|
||||||
|
users, your or third parties' legal rights to forbid circumvention of
|
||||||
|
technological measures.
|
||||||
|
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
|
||||||
|
You may convey verbatim copies of the Program's source code as you
|
||||||
|
receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice;
|
||||||
|
keep intact all notices stating that this License and any
|
||||||
|
non-permissive terms added in accord with section 7 apply to the code;
|
||||||
|
keep intact all notices of the absence of any warranty; and give all
|
||||||
|
recipients a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge any price or no price for each copy that you convey,
|
||||||
|
and you may offer support or warranty protection for a fee.
|
||||||
|
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
|
||||||
|
You may convey a work based on the Program, or the modifications to
|
||||||
|
produce it from the Program, in the form of source code under the
|
||||||
|
terms of section 4, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The work must carry prominent notices stating that you modified
|
||||||
|
it, and giving a relevant date.
|
||||||
|
|
||||||
|
b) The work must carry prominent notices stating that it is
|
||||||
|
released under this License and any conditions added under section
|
||||||
|
7. This requirement modifies the requirement in section 4 to
|
||||||
|
"keep intact all notices".
|
||||||
|
|
||||||
|
c) You must license the entire work, as a whole, under this
|
||||||
|
License to anyone who comes into possession of a copy. This
|
||||||
|
License will therefore apply, along with any applicable section 7
|
||||||
|
additional terms, to the whole of the work, and all its parts,
|
||||||
|
regardless of how they are packaged. This License gives no
|
||||||
|
permission to license the work in any other way, but it does not
|
||||||
|
invalidate such permission if you have separately received it.
|
||||||
|
|
||||||
|
d) If the work has interactive user interfaces, each must display
|
||||||
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
|
work need not make them do so.
|
||||||
|
|
||||||
|
A compilation of a covered work with other separate and independent
|
||||||
|
works, which are not by their nature extensions of the covered work,
|
||||||
|
and which are not combined with it such as to form a larger program,
|
||||||
|
in or on a volume of a storage or distribution medium, is called an
|
||||||
|
"aggregate" if the compilation and its resulting copyright are not
|
||||||
|
used to limit the access or legal rights of the compilation's users
|
||||||
|
beyond what the individual works permit. Inclusion of a covered work
|
||||||
|
in an aggregate does not cause this License to apply to the other
|
||||||
|
parts of the aggregate.
|
||||||
|
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
|
||||||
|
You may convey a covered work in object code form under the terms
|
||||||
|
of sections 4 and 5, provided that you also convey the
|
||||||
|
machine-readable Corresponding Source under the terms of this License,
|
||||||
|
in one of these ways:
|
||||||
|
|
||||||
|
a) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by the
|
||||||
|
Corresponding Source fixed on a durable physical medium
|
||||||
|
customarily used for software interchange.
|
||||||
|
|
||||||
|
b) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by a
|
||||||
|
written offer, valid for at least three years and valid for as
|
||||||
|
long as you offer spare parts or customer support for that product
|
||||||
|
model, to give anyone who possesses the object code either (1) a
|
||||||
|
copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical
|
||||||
|
medium customarily used for software interchange, for a price no
|
||||||
|
more than your reasonable cost of physically performing this
|
||||||
|
conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
|
||||||
|
c) Convey individual copies of the object code with a copy of the
|
||||||
|
written offer to provide the Corresponding Source. This
|
||||||
|
alternative is allowed only occasionally and noncommercially, and
|
||||||
|
only if you received the object code with such an offer, in accord
|
||||||
|
with subsection 6b.
|
||||||
|
|
||||||
|
d) Convey the object code by offering access from a designated
|
||||||
|
place (gratis or for a charge), and offer equivalent access to the
|
||||||
|
Corresponding Source in the same way through the same place at no
|
||||||
|
further charge. You need not require recipients to copy the
|
||||||
|
Corresponding Source along with the object code. If the place to
|
||||||
|
copy the object code is a network server, the Corresponding Source
|
||||||
|
may be on a different server (operated by you or a third party)
|
||||||
|
that supports equivalent copying facilities, provided you maintain
|
||||||
|
clear directions next to the object code saying where to find the
|
||||||
|
Corresponding Source. Regardless of what server hosts the
|
||||||
|
Corresponding Source, you remain obligated to ensure that it is
|
||||||
|
available for as long as needed to satisfy these requirements.
|
||||||
|
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided
|
||||||
|
you inform other peers where the object code and Corresponding
|
||||||
|
Source of the work are being offered to the general public at no
|
||||||
|
charge under subsection 6d.
|
||||||
|
|
||||||
|
A separable portion of the object code, whose source code is excluded
|
||||||
|
from the Corresponding Source as a System Library, need not be
|
||||||
|
included in conveying the object code work.
|
||||||
|
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any
|
||||||
|
tangible personal property which is normally used for personal, family,
|
||||||
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
|
product received by a particular user, "normally used" refers to a
|
||||||
|
typical or common use of that class of product, regardless of the status
|
||||||
|
of the particular user or of the way in which the particular user
|
||||||
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
|
is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
the only significant mode of use of the product.
|
||||||
|
|
||||||
|
"Installation Information" for a User Product means any methods,
|
||||||
|
procedures, authorization keys, or other information required to install
|
||||||
|
and execute modified versions of a covered work in that User Product from
|
||||||
|
a modified version of its Corresponding Source. The information must
|
||||||
|
suffice to ensure that the continued functioning of the modified object
|
||||||
|
code is in no case prevented or interfered with solely because
|
||||||
|
modification has been made.
|
||||||
|
|
||||||
|
If you convey an object code work under this section in, or with, or
|
||||||
|
specifically for use in, a User Product, and the conveying occurs as
|
||||||
|
part of a transaction in which the right of possession and use of the
|
||||||
|
User Product is transferred to the recipient in perpetuity or for a
|
||||||
|
fixed term (regardless of how the transaction is characterized), the
|
||||||
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
|
by the Installation Information. But this requirement does not apply
|
||||||
|
if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has
|
||||||
|
been installed in ROM).
|
||||||
|
|
||||||
|
The requirement to provide Installation Information does not include a
|
||||||
|
requirement to continue to provide support service, warranty, or updates
|
||||||
|
for a work that has been modified or installed by the recipient, or for
|
||||||
|
the User Product in which it has been modified or installed. Access to a
|
||||||
|
network may be denied when the modification itself materially and
|
||||||
|
adversely affects the operation of the network or violates the rules and
|
||||||
|
protocols for communication across the network.
|
||||||
|
|
||||||
|
Corresponding Source conveyed, and Installation Information provided,
|
||||||
|
in accord with this section must be in a format that is publicly
|
||||||
|
documented (and with an implementation available to the public in
|
||||||
|
source code form), and must require no special password or key for
|
||||||
|
unpacking, reading or copying.
|
||||||
|
|
||||||
|
7. Additional Terms.
|
||||||
|
|
||||||
|
"Additional permissions" are terms that supplement the terms of this
|
||||||
|
License by making exceptions from one or more of its conditions.
|
||||||
|
Additional permissions that are applicable to the entire Program shall
|
||||||
|
be treated as though they were included in this License, to the extent
|
||||||
|
that they are valid under applicable law. If additional permissions
|
||||||
|
apply only to part of the Program, that part may be used separately
|
||||||
|
under those permissions, but the entire Program remains governed by
|
||||||
|
this License without regard to the additional permissions.
|
||||||
|
|
||||||
|
When you convey a copy of a covered work, you may at your option
|
||||||
|
remove any additional permissions from that copy, or from any part of
|
||||||
|
it. (Additional permissions may be written to require their own
|
||||||
|
removal in certain cases when you modify the work.) You may place
|
||||||
|
additional permissions on material, added by you to a covered work,
|
||||||
|
for which you have or can give appropriate copyright permission.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, for material you
|
||||||
|
add to a covered work, you may (if authorized by the copyright holders of
|
||||||
|
that material) supplement the terms of this License with terms:
|
||||||
|
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the
|
||||||
|
terms of sections 15 and 16 of this License; or
|
||||||
|
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or
|
||||||
|
author attributions in that material or in the Appropriate Legal
|
||||||
|
Notices displayed by works containing it; or
|
||||||
|
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or
|
||||||
|
requiring that modified versions of such material be marked in
|
||||||
|
reasonable ways as different from the original version; or
|
||||||
|
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or
|
||||||
|
authors of the material; or
|
||||||
|
|
||||||
|
e) Declining to grant rights under trademark law for use of some
|
||||||
|
trade names, trademarks, or service marks; or
|
||||||
|
|
||||||
|
f) Requiring indemnification of licensors and authors of that
|
||||||
|
material by anyone who conveys the material (or modified versions of
|
||||||
|
it) with contractual assumptions of liability to the recipient, for
|
||||||
|
any liability that these contractual assumptions directly impose on
|
||||||
|
those licensors and authors.
|
||||||
|
|
||||||
|
All other non-permissive additional terms are considered "further
|
||||||
|
restrictions" within the meaning of section 10. If the Program as you
|
||||||
|
received it, or any part of it, contains a notice stating that it is
|
||||||
|
governed by this License along with a term that is a further
|
||||||
|
restriction, you may remove that term. If a license document contains
|
||||||
|
a further restriction but permits relicensing or conveying under this
|
||||||
|
License, you may add to a covered work material governed by the terms
|
||||||
|
of that license document, provided that the further restriction does
|
||||||
|
not survive such relicensing or conveying.
|
||||||
|
|
||||||
|
If you add terms to a covered work in accord with this section, you
|
||||||
|
must place, in the relevant source files, a statement of the
|
||||||
|
additional terms that apply to those files, or a notice indicating
|
||||||
|
where to find the applicable terms.
|
||||||
|
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the
|
||||||
|
form of a separately written license, or stated as exceptions;
|
||||||
|
the above requirements apply either way.
|
||||||
|
|
||||||
|
8. Termination.
|
||||||
|
|
||||||
|
You may not propagate or modify a covered work except as expressly
|
||||||
|
provided under this License. Any attempt otherwise to propagate or
|
||||||
|
modify it is void, and will automatically terminate your rights under
|
||||||
|
this License (including any patent licenses granted under the third
|
||||||
|
paragraph of section 11).
|
||||||
|
|
||||||
|
However, if you cease all violation of this License, then your
|
||||||
|
license from a particular copyright holder is reinstated (a)
|
||||||
|
provisionally, unless and until the copyright holder explicitly and
|
||||||
|
finally terminates your license, and (b) permanently, if the copyright
|
||||||
|
holder fails to notify you of the violation by some reasonable means
|
||||||
|
prior to 60 days after the cessation.
|
||||||
|
|
||||||
|
Moreover, your license from a particular copyright holder is
|
||||||
|
reinstated permanently if the copyright holder notifies you of the
|
||||||
|
violation by some reasonable means, this is the first time you have
|
||||||
|
received notice of violation of this License (for any work) from that
|
||||||
|
copyright holder, and you cure the violation prior to 30 days after
|
||||||
|
your receipt of the notice.
|
||||||
|
|
||||||
|
Termination of your rights under this section does not terminate the
|
||||||
|
licenses of parties who have received copies or rights from you under
|
||||||
|
this License. If your rights have been terminated and not permanently
|
||||||
|
reinstated, you do not qualify to receive new licenses for the same
|
||||||
|
material under section 10.
|
||||||
|
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
|
||||||
|
You are not required to accept this License in order to receive or
|
||||||
|
run a copy of the Program. Ancillary propagation of a covered work
|
||||||
|
occurring solely as a consequence of using peer-to-peer transmission
|
||||||
|
to receive a copy likewise does not require acceptance. However,
|
||||||
|
nothing other than this License grants you permission to propagate or
|
||||||
|
modify any covered work. These actions infringe copyright if you do
|
||||||
|
not accept this License. Therefore, by modifying or propagating a
|
||||||
|
covered work, you indicate your acceptance of this License to do so.
|
||||||
|
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
|
||||||
|
Each time you convey a covered work, the recipient automatically
|
||||||
|
receives a license from the original licensors, to run, modify and
|
||||||
|
propagate that work, subject to this License. You are not responsible
|
||||||
|
for enforcing compliance by third parties with this License.
|
||||||
|
|
||||||
|
An "entity transaction" is a transaction transferring control of an
|
||||||
|
organization, or substantially all assets of one, or subdividing an
|
||||||
|
organization, or merging organizations. If propagation of a covered
|
||||||
|
work results from an entity transaction, each party to that
|
||||||
|
transaction who receives a copy of the work also receives whatever
|
||||||
|
licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the
|
||||||
|
Corresponding Source of the work from the predecessor in interest, if
|
||||||
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
|
||||||
|
You may not impose any further restrictions on the exercise of the
|
||||||
|
rights granted or affirmed under this License. For example, you may
|
||||||
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
|
rights granted under this License, and you may not initiate litigation
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
any patent claim is infringed by making, using, selling, offering for
|
||||||
|
sale, or importing the Program or any portion of it.
|
||||||
|
|
||||||
|
11. Patents.
|
||||||
|
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this
|
||||||
|
License of the Program or a work on which the Program is based. The
|
||||||
|
work thus licensed is called the contributor's "contributor version".
|
||||||
|
|
||||||
|
A contributor's "essential patent claims" are all patent claims
|
||||||
|
owned or controlled by the contributor, whether already acquired or
|
||||||
|
hereafter acquired, that would be infringed by some manner, permitted
|
||||||
|
by this License, of making, using, or selling its contributor version,
|
||||||
|
but do not include claims that would be infringed only as a
|
||||||
|
consequence of further modification of the contributor version. For
|
||||||
|
purposes of this definition, "control" includes the right to grant
|
||||||
|
patent sublicenses in a manner consistent with the requirements of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||||
|
patent license under the contributor's essential patent claims, to
|
||||||
|
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||||
|
propagate the contents of its contributor version.
|
||||||
|
|
||||||
|
In the following three paragraphs, a "patent license" is any express
|
||||||
|
agreement or commitment, however denominated, not to enforce a patent
|
||||||
|
(such as an express permission to practice a patent or covenant not to
|
||||||
|
sue for patent infringement). To "grant" such a patent license to a
|
||||||
|
party means to make such an agreement or commitment not to enforce a
|
||||||
|
patent against the party.
|
||||||
|
|
||||||
|
If you convey a covered work, knowingly relying on a patent license,
|
||||||
|
and the Corresponding Source of the work is not available for anyone
|
||||||
|
to copy, free of charge and under the terms of this License, through a
|
||||||
|
publicly available network server or other readily accessible means,
|
||||||
|
then you must either (1) cause the Corresponding Source to be so
|
||||||
|
available, or (2) arrange to deprive yourself of the benefit of the
|
||||||
|
patent license for this particular work, or (3) arrange, in a manner
|
||||||
|
consistent with the requirements of this License, to extend the patent
|
||||||
|
license to downstream recipients. "Knowingly relying" means you have
|
||||||
|
actual knowledge that, but for the patent license, your conveying the
|
||||||
|
covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that
|
||||||
|
country that you have reason to believe are valid.
|
||||||
|
|
||||||
|
If, pursuant to or in connection with a single transaction or
|
||||||
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||||
|
covered work, and grant a patent license to some of the parties
|
||||||
|
receiving the covered work authorizing them to use, propagate, modify
|
||||||
|
or convey a specific copy of the covered work, then the patent license
|
||||||
|
you grant is automatically extended to all recipients of the covered
|
||||||
|
work and works based on it.
|
||||||
|
|
||||||
|
A patent license is "discriminatory" if it does not include within
|
||||||
|
the scope of its coverage, prohibits the exercise of, or is
|
||||||
|
conditioned on the non-exercise of one or more of the rights that are
|
||||||
|
specifically granted under this License. You may not convey a covered
|
||||||
|
work if you are a party to an arrangement with a third party that is
|
||||||
|
in the business of distributing software, under which you make payment
|
||||||
|
to the third party based on the extent of your activity of conveying
|
||||||
|
the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory
|
||||||
|
patent license (a) in connection with copies of the covered work
|
||||||
|
conveyed by you (or copies made from those copies), or (b) primarily
|
||||||
|
for and in connection with specific products or compilations that
|
||||||
|
contain the covered work, unless you entered into that arrangement,
|
||||||
|
or that patent license was granted, prior to 28 March 2007.
|
||||||
|
|
||||||
|
Nothing in this License shall be construed as excluding or limiting
|
||||||
|
any implied license or other defenses to infringement that may
|
||||||
|
otherwise be available to you under applicable patent law.
|
||||||
|
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
|
the Program, the only way you could satisfy both those terms and this
|
||||||
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
|
||||||
|
13. Use with the GNU Affero General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, you have
|
||||||
|
permission to link or combine any covered work with a work licensed
|
||||||
|
under version 3 of the GNU Affero General Public License into a single
|
||||||
|
combined work, and to convey the resulting work. The terms of this
|
||||||
|
License will continue to apply to the part which is the covered work,
|
||||||
|
but the special requirements of the GNU Affero General Public License,
|
||||||
|
section 13, concerning interaction through a network will apply to the
|
||||||
|
combination as such.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Program specifies that a certain numbered version of the GNU General
|
||||||
|
Public License "or any later version" applies to it, you have the
|
||||||
|
option of following the terms and conditions either of that numbered
|
||||||
|
version or of any later version published by the Free Software
|
||||||
|
Foundation. If the Program does not specify a version number of the
|
||||||
|
GNU General Public License, you may choose any version ever published
|
||||||
|
by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Program specifies that a proxy can decide which future
|
||||||
|
versions of the GNU General Public License can be used, that proxy's
|
||||||
|
public statement of acceptance of a version permanently authorizes you
|
||||||
|
to choose that version for the Program.
|
||||||
|
|
||||||
|
Later license versions may give you additional or different
|
||||||
|
permissions. However, no additional obligations are imposed on any
|
||||||
|
author or copyright holder as a result of your choosing to follow a
|
||||||
|
later version.
|
||||||
|
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||||
|
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||||
|
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||||
|
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. Limitation of Liability.
|
||||||
|
|
||||||
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||||
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||||
|
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||||
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||||
|
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGES.
|
||||||
|
|
||||||
|
17. Interpretation of Sections 15 and 16.
|
||||||
|
|
||||||
|
If the disclaimer of warranty and limitation of liability provided
|
||||||
|
above cannot be given local legal effect according to their terms,
|
||||||
|
reviewing courts shall apply local law that most closely approximates
|
||||||
|
an absolute waiver of all civil liability in connection with the
|
||||||
|
Program, unless a warranty or assumption of liability accompanies a
|
||||||
|
copy of the Program in return for a fee.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
state the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program does terminal interaction, make it output a short
|
||||||
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
|
<program> Copyright (C) <year> <name of author>
|
||||||
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, your program's commands
|
||||||
|
might be different; for a GUI interface, you would use an "about box".
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
|
For more information on this, and how to apply and follow the GNU GPL, see
|
||||||
|
<https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
The GNU General Public License does not permit incorporating your program
|
||||||
|
into proprietary programs. If your program is a subroutine library, you
|
||||||
|
may consider it more useful to permit linking proprietary applications with
|
||||||
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License. But first, please read
|
||||||
|
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||||
34
Makefile
|
|
@ -1,4 +1,4 @@
|
||||||
TARGET = iphone:clang:16.2:14.0
|
TARGET = iphone:clang:16.5:14.0
|
||||||
YTLitePlus_USE_FISHHOOK = 0
|
YTLitePlus_USE_FISHHOOK = 0
|
||||||
ARCHS = arm64
|
ARCHS = arm64
|
||||||
MODULES = jailed
|
MODULES = jailed
|
||||||
|
|
@ -12,7 +12,10 @@ BUNDLE_ID = com.google.ios.youtube
|
||||||
|
|
||||||
EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks
|
EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks
|
||||||
|
|
||||||
YTLitePlus_INJECT_DYLIBS = .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTLite.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib
|
# Allow YouTubeHeader to be accessible using #include <...>
|
||||||
|
export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks
|
||||||
|
|
||||||
|
YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib .theos/obj/YouTimeStamp.dylib .theos/obj/YouLoop.dylib
|
||||||
YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \))
|
YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \))
|
||||||
YTLitePlus_IPA = ./tmp/Payload/YouTube.app
|
YTLitePlus_IPA = ./tmp/Payload/YouTube.app
|
||||||
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS)
|
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS)
|
||||||
|
|
@ -20,13 +23,18 @@ YTLitePlus_FRAMEWORKS = UIKit Security
|
||||||
|
|
||||||
include $(THEOS)/makefiles/common.mk
|
include $(THEOS)/makefiles/common.mk
|
||||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||||
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTLite Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings
|
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouTimeStamp Tweaks/YouGroupSettings Tweaks/YouLoop
|
||||||
include $(THEOS_MAKE_PATH)/aggregate.mk
|
include $(THEOS_MAKE_PATH)/aggregate.mk
|
||||||
|
|
||||||
|
YTLITE_PATH = Tweaks/YTLite
|
||||||
|
YTLITE_VERSION := 5.0.1
|
||||||
|
YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb
|
||||||
|
YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib
|
||||||
|
YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle
|
||||||
before-package::
|
before-package::
|
||||||
@echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m"
|
@echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m"
|
||||||
@mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \;
|
@mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \;
|
||||||
@cp -R Tweaks/YTLite/layout/Library/Application\ Support/YTLite.bundle Resources/
|
@cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/
|
||||||
@cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/
|
@cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/
|
||||||
@cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/
|
@cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/
|
||||||
@cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/
|
@cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/
|
||||||
|
|
@ -37,8 +45,24 @@ before-package::
|
||||||
@cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/
|
@cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/
|
||||||
@cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/
|
@cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/
|
||||||
@cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/
|
@cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/
|
||||||
|
@cp -R Tweaks/YouTimeStamp/layout/Library/Application\ Support/YouTimeStamp.bundle Resources/
|
||||||
|
@cp -R Tweaks/YouLoop/layout/Library/Application\ Support/YouLoop.bundle Resources/
|
||||||
@cp -R lang/YTLitePlus.bundle Resources/
|
@cp -R lang/YTLitePlus.bundle Resources/
|
||||||
@echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m"
|
@echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m"
|
||||||
@ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib
|
@ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib
|
||||||
@codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib
|
@codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib
|
||||||
|
|
||||||
|
internal-clean::
|
||||||
|
@rm -rf $(YTLITE_PATH)/*
|
||||||
|
|
||||||
|
before-all::
|
||||||
|
@if [[ ! -f $(YTLITE_DEB) ]]; then \
|
||||||
|
rm -rf $(YTLITE_PATH)/*; \
|
||||||
|
$(PRINT_FORMAT_BLUE) "Downloading YTLite"; \
|
||||||
|
echo "YTLITE_VERSION: $(YTLITE_VERSION)"; \
|
||||||
|
curl -s -L "https://github.com/dayanch96/YTLite/releases/download/v$(YTLITE_VERSION)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb" -o $(YTLITE_DEB); \
|
||||||
|
tar -xf $(YTLITE_DEB) -C $(YTLITE_PATH); tar -xf $(YTLITE_PATH)/data.tar* -C $(YTLITE_PATH); \
|
||||||
|
if [[ ! -f $(YTLITE_DYLIB) || ! -d $(YTLITE_BUNDLE) ]]; then \
|
||||||
|
$(PRINT_FORMAT_ERROR) "Failed to extract YTLite"; exit 1; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
|
|
||||||
179
README.md
|
|
@ -9,9 +9,8 @@
|
||||||
|
|
||||||

|

|
||||||
[](https://developer.apple.com/iphone/index.action)
|
[](https://developer.apple.com/iphone/index.action)
|
||||||

|
<a href="https://github.com/YTLitePlus/YTLitePlus/commit"><img src="https://custom-icon-badges.demolab.com/github/last-commit/Balackburn/YTLitePlus?style=flat&color=black&labelColor=black&logo=history&logoColor=white&label=Last commit" alt="Badge"></img></a>
|
||||||
<a href="https://github.com/Balackburn/YTLitePlus/commit"><img src="https://custom-icon-badges.demolab.com/github/last-commit/Balackburn/YTLitePlus?style=flat&color=black&labelColor=black&logo=history&logoColor=white&label=Last commit" alt="Badge"></img></a>
|
<a href="https://github.com/YTLitePlus/YTLitePlus/releases/latest"><img src="https://custom-icon-badges.demolab.com/github/v/release/Balackburn/YTLitePlus?labelColor=black&style=flat&color=black&label=Latest%20release" alt="Badge"></img></a>
|
||||||
<a href="https://github.com/Balackburn/YTLitePlus/releases/latest"><img src="https://custom-icon-badges.demolab.com/github/v/release/Balackburn/YTLitePlus?labelColor=black&style=flat&color=black&label=Latest%20release" alt="Badge"></img></a>
|
|
||||||
|
|
||||||
# Table of Contents
|
# Table of Contents
|
||||||
<a href="#credits"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Credits.png" width="170"></a>
|
<a href="#credits"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Credits.png" width="170"></a>
|
||||||
|
|
@ -26,122 +25,49 @@
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
<table id='ytliteplus credit'>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">
|
<td align="center"><a href="https://github.com/dayanch96"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/dayanch96.png" width="100px;" alt="dayanch96"/></a></td>
|
||||||
<a href='https://github.com/arichorn'>
|
<td align="center"><a href="https://github.com/Balackburn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Balackburn.png" width="100px;" alt="Balackburn"/></a></td>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/2753042f-9efa-404d-a719-4761ad48d323' width='120px'>
|
<td align="center"><a href="https://github.com/arichornloverALT"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/arichornloverALT.png" width="100px;" alt="arichornloverALT"/></a></td>
|
||||||
</a>
|
<td align="center"><a href="https://github.com/PoomSmart"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/PoomSmart.png" width="100px;" alt="PoomSmart"/></a></td>
|
||||||
</td>
|
<td align="center"><a href="https://github.com/qnblackcat"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/qnblackcat.png" width="100px;" alt="qnblackcat"/></a></td>
|
||||||
<td align="center">
|
</tr>
|
||||||
<a href='https://github.com/balackburn'>
|
<tr>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/d08ccf99-d3e5-4388-833f-22632dc66fd2' width='120px'>
|
<td align="center"><a href="https://github.com/SKEIDs"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/SKEIDs.png" width="100px;" alt="SKEIDs"/></a></td>
|
||||||
</td>
|
<td align="center"><a href="https://github.com/asdfzxcvbn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/asdfzxcvbn.png" width="100px;" alt="asdfzxcvbn"/></a></td>
|
||||||
</a>
|
<td align="center"><a href="https://github.com/matt911"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/matt911.png" width="100px;" alt="matt911"/></a></td>
|
||||||
<td align="center">
|
<td align="center"><a href="https://github.com/bhackel"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/bhackel.png" width="100px;" alt="bhackel"/></a></td>
|
||||||
<a href='https://github.com/dayanch96'>
|
<td align="center"><a href="https://github.com/AlexInABox"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AlexInABox.png" width="100px;" alt="AlexInABox"/></a></td>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/293f1a61-00b8-424a-9e00-f520f5a88064' width='120px;'>
|
</tr>
|
||||||
</a>
|
<tr>
|
||||||
</td>
|
<td align="center"><a href="https://github.com/Glenta"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Glenta.png" width="100px;" alt="Glenta"/></a></td>
|
||||||
<td id='ssuesskind'>
|
<td align="center"><a href="https://github.com/gototheskinny"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/gototheskinny.png" width="100px;" alt="gototheskinny"/></a></td>
|
||||||
<a href='https://github.com/ssuesskind'>
|
<td align="center"><a href="https://github.com/MrAlucardDante"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MrAlucardDante.png" width="100px;" alt="MrAlucardDante"/></a></td>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/ed6bc6a0-ef55-4548-8d60-32d86f2aa9f3' width='120px;'>
|
<td align="center"><a href="https://github.com/Galactic-Dev"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Galactic-Dev.png" width="100px;" alt="Galactic-Dev"/></a></td>
|
||||||
</a>
|
<td align="center"><a href="https://github.com/AhmedBafkir"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AhmedBafkir.png" width="100px;" alt="AhmedBafkir"/></a></td>
|
||||||
<td align="center">
|
</tr>
|
||||||
<a href='https://github.com/Deci8BelioS'>
|
<tr>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/8cca7bf9-4c52-4c25-99dd-2b26434b7deb' width='120px'>
|
<td align="center"><a href="https://github.com/MiRO92"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MiRO92.png" width="100px;" alt="MiRO92"/></a></td>
|
||||||
</a>
|
<td align="center"><a href="https://github.com/ichitaso"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ichitaso.png" width="100px;" alt="ichitaso"/></a></td>
|
||||||
<br>
|
<td align="center"><a href="https://github.com/Deci8BelioS"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Deci8BelioS.png" width="100px;" alt="Deci8BelioS"/></a></td>
|
||||||
</tr>
|
<td align="center"><a href="https://github.com/julioverne"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/julioverne.png" width="100px;" alt="julioverne"/></a></td>
|
||||||
<br>
|
<td align="center"><a href="https://github.com/therealFoxster"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/therealFoxster.png" width="100px;" alt="therealFoxster"/></a></td>
|
||||||
<tr>
|
</tr>
|
||||||
<td align="center">
|
<tr>
|
||||||
<a href='https://github.com/MiRO92'>
|
<td align="center"><a href="https://github.com/Lyvendia"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Lyvendia.png" width="100px;" alt="Lyvendia"/></a></td>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/ca462139-3a55-4ce1-a774-ffd13c459c80' width='120px'>
|
<td align="center"><a href="https://github.com/ssuesskind"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ssuesskind.png" width="100px;" alt="ssuesskind"/></a></td>
|
||||||
|
<td align="center"><a href="https://github.com/hbang"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/hbang.png" width="100px;" alt="hbang"/></a></td>
|
||||||
</a>
|
<td align="center"><a href="https://github.com/level3tjg"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/level3tjg.png" width="100px;" alt="level3tjg"/></a></td>
|
||||||
<br>
|
<td align="center"><a href="https://github.com/zSaaiq"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/zSaaiq.png" width="100px;" alt="zSaaiq"/></a></td>
|
||||||
</td>
|
</tr>
|
||||||
<td align="center">
|
<tr>
|
||||||
<a href='https://github.com/qnblackcat'>
|
<td align="center"><a href="https://github.com/ISnackable"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ISnackable.png" width="100px;" alt="ISnackable"/></a></td>
|
||||||
|
<td align="center"><a href="https://github.com/VictorxD70"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/VictorxD70.png" width="100px;" alt="VictorxD70"/></a></td>
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/20b0d6d9-d892-4af4-9762-6617d49743b8' width='120px'>
|
<td align="center"><a href="https://github.com/Macleykun"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Macleykun.png" width="100px;" alt="Macleykun"/></a></td>
|
||||||
</a>
|
<td align="center"><a href="https://github.com/BandarHL"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/BandarHL.png" width="100px;" alt="BandarHL"/></a></td>
|
||||||
</td>
|
<td align="center"><a href="https://github.com/CokePokes"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/CokePokes.png" width="100px;" alt="CokePokes"/></a></td>
|
||||||
<td align="center">
|
</tr>
|
||||||
<a href='https://github.com/PoomSmart'>
|
|
||||||
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/668fe74e-9da1-4115-8fd0-ed7c308976b3' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/level3tjg'>
|
|
||||||
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/b11fe92d-aceb-4aa1-88bf-7699c5f4ac5f' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/BandarHL'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/dc4f0597-017b-44c1-8b52-33ec168a56f3' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/Galactic-Dev'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/f489e91e-3b04-45d3-b094-68b83c43da25' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/julioverne'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/0f7336ea-7f54-4155-995f-dea58d39f022' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/hbang'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/2eec50db-e2df-4217-a230-5c5cc7223934' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/Lyvendia'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/36902aa9-1f81-403c-b9b5-ebbd9e8b9ef9' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/therealFoxster'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/60427fc8-e019-43d6-86ae-01ad8b4a1e77' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/ichitaso'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/6a1cb4b7-5eec-4cda-8bed-f5dea2408323' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/AhmedBafkir'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/55b270be-1d43-4e2c-81da-ee04d993d447' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/CokePokes'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/5a40346b-b652-4eca-955f-272baf45c6dd' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/ISnackable'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/5b5355b1-0a7d-4202-affe-725406e9af72' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href='https://github.com/theos/theos'>
|
|
||||||
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/e5c37588-95f4-4773-b3fe-40ba02499160' width='120px'>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
@ -166,8 +92,6 @@
|
||||||
|
|
||||||
10. **YTNoTracking**: An iOS YouTube Tweak that disables Tracking Parameters in the YouTube App.
|
10. **YTNoTracking**: An iOS YouTube Tweak that disables Tracking Parameters in the YouTube App.
|
||||||
|
|
||||||
11. **YTUnShorts**: Remove Shorts from YouTube app's feed.
|
|
||||||
|
|
||||||
12. **YTNoCheckLocalNetWor**k: Blocks the Local Network permission popup in YouTube.
|
12. **YTNoCheckLocalNetWor**k: Blocks the Local Network permission popup in YouTube.
|
||||||
|
|
||||||
13. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
|
13. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
|
||||||
|
|
@ -186,9 +110,7 @@
|
||||||
|
|
||||||
20. **OLDDarkmode**: Replace new official Youtube darkmode with old (grey) Youtube darkmode.
|
20. **OLDDarkmode**: Replace new official Youtube darkmode with old (grey) Youtube darkmode.
|
||||||
|
|
||||||
21. **LowContrastMode**: Makes the YouTube Interface Low Contrast as possible to make it easier on the eyes.
|
21. **LowContrastMode**: Makes the UI interface look dimmer to make it easier on the eyes. (App Compatibility: v17.33.2-v17.38.10)
|
||||||
|
|
||||||
22. **YTNoSuggestedVideo**: Removes the suggested video popup when finishing a video.
|
|
||||||
|
|
||||||
# AltStore
|
# AltStore
|
||||||
|
|
||||||
|
|
@ -201,10 +123,19 @@
|
||||||
<a href="https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/URL.png" width="200"></a>
|
<a href="https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/URL.png" width="200"></a>
|
||||||
|
|
||||||
# Donations
|
# Donations
|
||||||
|
<a href="https://buymeacoffee.com/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(buymeacoffee).png" width="200"></a>
|
||||||
|
|
||||||
|
<a href="https://github.com/sponsors/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(Github).png" width="200"></a>
|
||||||
|
|
||||||
|
<a href="https://ko-fi.com/dayanch966"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(ko-fi).png" width="200"></a>
|
||||||
|
|
||||||
|
<a href="https://www.paypal.com/paypalme/poomsmart"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Poomsmart.png" width="200"></a>
|
||||||
|
|
||||||
<a href="https://www.paypal.com/paypalme/DBrett684"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Paypal).png" width="200"></a>
|
<a href="https://www.paypal.com/paypalme/DBrett684"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Paypal).png" width="200"></a>
|
||||||
|
|
||||||
<a href="https://venmo.com/u/DavidBrett"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Venmo).png?raw=true" width="200"></a>
|
<a href="https://venmo.com/u/DavidBrett"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Venmo).png?raw=true" width="200"></a>
|
||||||
|
|
||||||
|
|
||||||
<a href="https://github.com/MiRO92/uYou-for-YouTube#support"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Donations/MIRO92.png" width="200"></a>
|
<a href="https://github.com/MiRO92/uYou-for-YouTube#support"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Donations/MIRO92.png" width="200"></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface AppIconOptionsController : UIViewController
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,147 +0,0 @@
|
||||||
#import "AppIconOptionsController.h"
|
|
||||||
|
|
||||||
@interface AppIconOptionsController () <UITableViewDataSource, UITableViewDelegate>
|
|
||||||
|
|
||||||
@property (strong, nonatomic) UITableView *tableView;
|
|
||||||
@property (strong, nonatomic) NSArray<NSString *> *appIcons;
|
|
||||||
@property (assign, nonatomic) NSInteger selectedIconIndex;
|
|
||||||
@property (strong, nonatomic) UIImageView *backButton;
|
|
||||||
@property (assign, nonatomic) UIUserInterfaceStyle pageStyle;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation AppIconOptionsController
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
|
|
||||||
self.title = @"Change App Icon";
|
|
||||||
[self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"YTSans-Bold" size:22], NSForegroundColorAttributeName: [UIColor whiteColor]}];
|
|
||||||
|
|
||||||
self.selectedIconIndex = -1;
|
|
||||||
|
|
||||||
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
|
|
||||||
self.tableView.dataSource = self;
|
|
||||||
self.tableView.delegate = self;
|
|
||||||
self.tableView.backgroundColor = (self.pageStyle == UIUserInterfaceStyleLight) ? [UIColor whiteColor] : [UIColor blackColor];
|
|
||||||
[self.view addSubview:self.tableView];
|
|
||||||
|
|
||||||
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Back.png" inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil] style:UIBarButtonItemStylePlain target:self action:@selector(back)];
|
|
||||||
[backButton setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor blackColor], NSFontAttributeName: [UIFont fontWithName:@"YTSans-Medium" size:20]} forState:UIControlStateNormal];
|
|
||||||
self.navigationItem.leftBarButtonItem = backButton;
|
|
||||||
|
|
||||||
UIBarButtonItem *resetButton = [[UIBarButtonItem alloc] initWithImage:[UIImage systemImageNamed:@"arrow.clockwise.circle.fill"] style:UIBarButtonItemStylePlain target:self action:@selector(resetIcon)];
|
|
||||||
|
|
||||||
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveIcon)];
|
|
||||||
[saveButton setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor colorWithRed:203.0/255.0 green:22.0/255.0 blue:51.0/255.0 alpha:1.0], NSFontAttributeName: [UIFont fontWithName:@"YTSans-Medium" size:20]} forState:UIControlStateNormal];
|
|
||||||
|
|
||||||
self.navigationItem.rightBarButtonItems = @[saveButton, resetButton];
|
|
||||||
|
|
||||||
NSString *path = [[NSBundle mainBundle] pathForResource:@"YTLitePlus" ofType:@"bundle"];
|
|
||||||
NSBundle *bundle = [NSBundle bundleWithPath:path];
|
|
||||||
self.appIcons = [bundle pathsForResourcesOfType:@"png" inDirectory:@"AppIcons"];
|
|
||||||
|
|
||||||
if (![UIApplication sharedApplication].supportsAlternateIcons) {
|
|
||||||
NSLog(@"Alternate icons are not supported on this device.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
return self.appIcons.count;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
|
|
||||||
if (!cell) {
|
|
||||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString *iconPath = self.appIcons[indexPath.row];
|
|
||||||
UIImage *iconImage = [UIImage imageWithContentsOfFile:iconPath];
|
|
||||||
|
|
||||||
cell.backgroundColor = [UIColor whiteColor];
|
|
||||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
|
||||||
|
|
||||||
UIImageView *iconImageView = [[UIImageView alloc] initWithImage:iconImage];
|
|
||||||
iconImageView.contentMode = UIViewContentModeScaleAspectFit;
|
|
||||||
iconImageView.frame = CGRectMake(16, 10, 30, 30);
|
|
||||||
[cell.contentView addSubview:iconImageView];
|
|
||||||
|
|
||||||
UILabel *iconNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(56, 5, self.view.frame.size.width - 56, 30)];
|
|
||||||
iconNameLabel.text = [iconPath.lastPathComponent stringByDeletingPathExtension];
|
|
||||||
iconNameLabel.textColor = [UIColor blackColor];
|
|
||||||
iconNameLabel.font = [UIFont systemFontOfSize:16.0 weight:UIFontWeightMedium];
|
|
||||||
[cell.contentView addSubview:iconNameLabel];
|
|
||||||
|
|
||||||
if (indexPath.row == self.selectedIconIndex) {
|
|
||||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
|
||||||
} else {
|
|
||||||
cell.accessoryType = UITableViewCellAccessoryNone;
|
|
||||||
}
|
|
||||||
|
|
||||||
UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1, cell.contentView.frame.size.width, 1)];
|
|
||||||
separatorView.backgroundColor = [UIColor lightGrayColor];
|
|
||||||
[cell.contentView addSubview:separatorView];
|
|
||||||
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
|
||||||
|
|
||||||
self.selectedIconIndex = indexPath.row;
|
|
||||||
[self.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)resetIcon {
|
|
||||||
[[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {
|
|
||||||
if (error) {
|
|
||||||
NSLog(@"Error resetting icon: %@", error.localizedDescription);
|
|
||||||
[self showAlertWithTitle:@"Error" message:@"Failed to reset icon"];
|
|
||||||
} else {
|
|
||||||
NSLog(@"Icon reset successfully");
|
|
||||||
[self showAlertWithTitle:@"Success" message:@"Icon reset successfully"];
|
|
||||||
[self.tableView reloadData];
|
|
||||||
}
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)saveIcon {
|
|
||||||
NSString *selectedIconPath = self.selectedIconIndex >= 0 ? self.appIcons[self.selectedIconIndex] : nil;
|
|
||||||
if (selectedIconPath) {
|
|
||||||
NSURL *iconURL = [NSURL fileURLWithPath:selectedIconPath];
|
|
||||||
if ([[UIApplication sharedApplication] respondsToSelector:@selector(setAlternateIconName:completionHandler:)]) {
|
|
||||||
[[UIApplication sharedApplication] setAlternateIconName:selectedIconPath completionHandler:^(NSError * _Nullable error) {
|
|
||||||
if (error) {
|
|
||||||
NSLog(@"Error setting alternate icon: %@", error.localizedDescription);
|
|
||||||
[self showAlertWithTitle:@"Error" message:@"Failed to set alternate icon"];
|
|
||||||
} else {
|
|
||||||
NSLog(@"Alternate icon set successfully");
|
|
||||||
[self showAlertWithTitle:@"Success" message:@"Alternate icon set successfully"];
|
|
||||||
}
|
|
||||||
}];
|
|
||||||
} else {
|
|
||||||
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
|
||||||
[dict setObject:iconURL forKey:@"iconURL"];
|
|
||||||
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
|
|
||||||
[dict writeToFile:filePath atomically:YES];
|
|
||||||
|
|
||||||
[self showAlertWithTitle:@"Alternate Icon" message:@"Please restart the app to apply the alternate icon"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)showAlertWithTitle:(NSString *)title message:(NSString *)message {
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
|
||||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
|
|
||||||
[alert addAction:okAction];
|
|
||||||
[self presentViewController:alert animated:YES completion:nil];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)back {
|
|
||||||
[self.navigationController popViewControllerAnimated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
#import "../YTLitePlus.h"
|
#import "../YTLitePlus.h"
|
||||||
|
|
||||||
//
|
// Low Contrast Mode
|
||||||
static BOOL IsEnabled(NSString *key) {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
|
|
||||||
}
|
|
||||||
static int contrastMode() {
|
static int contrastMode() {
|
||||||
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
|
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
|
||||||
}
|
}
|
||||||
|
|
@ -16,7 +13,7 @@ static BOOL customContrastMode() {
|
||||||
|
|
||||||
UIColor *lcmHexColor;
|
UIColor *lcmHexColor;
|
||||||
|
|
||||||
%group gLowContrastMode // Low Contrast Mode v1.4.3 (Compatible with only YouTube v16.46.5-v17.38.10)
|
%group gLowContrastMode // Low Contrast Mode v1.6.0 (Compatible with only YouTube v16.46.5-v17.38.10)
|
||||||
%hook UIColor
|
%hook UIColor
|
||||||
+ (UIColor *)whiteColor { // Dark Theme Color
|
+ (UIColor *)whiteColor { // Dark Theme Color
|
||||||
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
|
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
|
||||||
|
|
@ -42,32 +39,53 @@ UIColor *lcmHexColor;
|
||||||
%end
|
%end
|
||||||
%hook YTCommonColorPalette
|
%hook YTCommonColorPalette
|
||||||
- (UIColor *)textPrimary {
|
- (UIColor *)textPrimary {
|
||||||
|
NSLog(@"LowContrastMode: textPrimary called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)textSecondary {
|
- (UIColor *)textSecondary {
|
||||||
|
NSLog(@"LowContrastMode: textSecondary called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)overlayTextPrimary {
|
- (UIColor *)overlayTextPrimary {
|
||||||
|
NSLog(@"LowContrastMode: overlayTextPrimary called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)overlayTextSecondary {
|
- (UIColor *)overlayTextSecondary {
|
||||||
|
NSLog(@"LowContrastMode: overlayTextSecondary called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)iconActive {
|
- (UIColor *)iconActive {
|
||||||
|
NSLog(@"LowContrastMode: iconActive called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)iconActiveOther {
|
- (UIColor *)iconActiveOther {
|
||||||
|
NSLog(@"LowContrastMode: iconActiveOther called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)brandIconActive {
|
- (UIColor *)brandIconActive {
|
||||||
|
NSLog(@"LowContrastMode: brandIconActive called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)staticBrandWhite {
|
- (UIColor *)staticBrandWhite {
|
||||||
|
NSLog(@"LowContrastMode: staticBrandWhite called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
- (UIColor *)overlayIconActiveOther {
|
- (UIColor *)overlayIconActiveOther {
|
||||||
|
NSLog(@"LowContrastMode: overlayIconActiveOther called");
|
||||||
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
|
||||||
}
|
}
|
||||||
|
- (UIColor *)overlayIconInactive {
|
||||||
|
NSLog(@"LowContrastMode: overlayIconInactive called");
|
||||||
|
return self.pageStyle == 1 ? [[UIColor whiteColor] colorWithAlphaComponent:0.7] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)overlayIconDisabled {
|
||||||
|
NSLog(@"LowContrastMode: overlayIconDisabled called");
|
||||||
|
return self.pageStyle == 1 ? [[UIColor whiteColor] colorWithAlphaComponent:0.3] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)overlayFilledButtonActive {
|
||||||
|
NSLog(@"LowContrastMode: overlayFilledButtonActive called");
|
||||||
|
return self.pageStyle == 1 ? [[UIColor whiteColor] colorWithAlphaComponent:0.2] : %orig;
|
||||||
|
}
|
||||||
%end
|
%end
|
||||||
%hook YTColor
|
%hook YTColor
|
||||||
+ (UIColor *)white2 {
|
+ (UIColor *)white2 {
|
||||||
|
|
|
||||||
|
|
@ -5,21 +5,40 @@
|
||||||
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
|
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
|
||||||
#import "../Tweaks/YouTubeHeader/YTUIUtils.h"
|
#import "../Tweaks/YouTubeHeader/YTUIUtils.h"
|
||||||
#import "../Tweaks/YouTubeHeader/YTSettingsPickerViewController.h"
|
#import "../Tweaks/YouTubeHeader/YTSettingsPickerViewController.h"
|
||||||
#import "AppIconOptionsController.h"
|
#import "SettingsKeys.h"
|
||||||
|
// #import "AppIconOptionsController.h"
|
||||||
|
|
||||||
|
// Basic switch item
|
||||||
|
#define BASIC_SWITCH(title, description, key) \
|
||||||
|
[YTSettingsSectionItemClass switchItemWithTitle:title \
|
||||||
|
titleDescription:description \
|
||||||
|
accessibilityIdentifier:nil \
|
||||||
|
switchOn:IsEnabled(key) \
|
||||||
|
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) { \
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:key]; \
|
||||||
|
return YES; \
|
||||||
|
} \
|
||||||
|
settingItemId:0]
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Custom switch item that has customizable code
|
||||||
|
#define CUSTOM_SWITCH(title, description, key, code) \
|
||||||
|
[YTSettingsSectionItemClass switchItemWithTitle:title \
|
||||||
|
titleDescription:description \
|
||||||
|
accessibilityIdentifier:nil \
|
||||||
|
switchOn:IsEnabled(key) \
|
||||||
|
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enable) { \
|
||||||
|
code \
|
||||||
|
} \
|
||||||
|
settingItemId:0]
|
||||||
|
*/
|
||||||
|
|
||||||
static BOOL IsEnabled(NSString *key) {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
|
|
||||||
}
|
|
||||||
static int GetSelection(NSString *key) {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] integerForKey:key];
|
|
||||||
}
|
|
||||||
static int contrastMode() {
|
static int contrastMode() {
|
||||||
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
|
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
|
||||||
}
|
}
|
||||||
static int appVersionSpoofer() {
|
static int appVersionSpoofer() {
|
||||||
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
|
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
|
||||||
}
|
}
|
||||||
static const NSInteger YTLitePlusSection = 788;
|
|
||||||
|
|
||||||
@interface YTSettingsSectionItemManager (YTLitePlus)
|
@interface YTSettingsSectionItemManager (YTLitePlus)
|
||||||
- (void)updateYTLitePlusSectionWithEntry:(id)entry;
|
- (void)updateYTLitePlusSectionWithEntry:(id)entry;
|
||||||
|
|
@ -27,7 +46,25 @@ static const NSInteger YTLitePlusSection = 788;
|
||||||
|
|
||||||
extern NSBundle *YTLitePlusBundle();
|
extern NSBundle *YTLitePlusBundle();
|
||||||
|
|
||||||
// Settings
|
// Add both YTLite and YTLitePlus to YouGroupSettings
|
||||||
|
static const NSInteger YTLitePlusSection = 788;
|
||||||
|
static const NSInteger YTLiteSection = 789;
|
||||||
|
%hook YTSettingsGroupData
|
||||||
|
+ (NSMutableArray <NSNumber *> *)tweaks {
|
||||||
|
NSMutableArray <NSNumber *> *originalTweaks = %orig;
|
||||||
|
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
[originalTweaks addObject:@(YTLitePlusSection)];
|
||||||
|
[originalTweaks addObject:@(YTLiteSection)];
|
||||||
|
});
|
||||||
|
|
||||||
|
return originalTweaks;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
|
||||||
|
// Add YTLitePlus to the settings list
|
||||||
%hook YTAppSettingsPresentationData
|
%hook YTAppSettingsPresentationData
|
||||||
+ (NSArray *)settingsCategoryOrder {
|
+ (NSArray *)settingsCategoryOrder {
|
||||||
NSArray *order = %orig;
|
NSArray *order = %orig;
|
||||||
|
|
@ -55,16 +92,126 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
Class YTSettingsSectionItemClass = %c(YTSettingsSectionItem);
|
Class YTSettingsSectionItemClass = %c(YTSettingsSectionItem);
|
||||||
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
|
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
|
||||||
|
|
||||||
|
// Add item for going to the YTLitePlus GitHub page
|
||||||
YTSettingsSectionItem *main = [%c(YTSettingsSectionItem)
|
YTSettingsSectionItem *main = [%c(YTSettingsSectionItem)
|
||||||
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
|
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
|
||||||
titleDescription:LOC(@"VERSION_CHECK")
|
titleDescription:LOC(@"VERSION_CHECK")
|
||||||
accessibilityIdentifier:nil
|
accessibilityIdentifier:nil
|
||||||
detailTextBlock:nil
|
detailTextBlock:nil
|
||||||
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/Balackburn/YTLitePlus/releases/latest"]];
|
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/YTLitePlus/YTLitePlus/releases/latest"]];
|
||||||
}];
|
}];
|
||||||
[sectionItems addObject:main];
|
[sectionItems addObject:main];
|
||||||
|
|
||||||
|
# pragma mark - Copy and Paste Settings
|
||||||
|
YTSettingsSectionItem *copySettings = [%c(YTSettingsSectionItem)
|
||||||
|
itemWithTitle:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"EXPORT_SETTINGS") : LOC(@"COPY_SETTINGS")
|
||||||
|
titleDescription:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"EXPORT_SETTINGS_DESC") : LOC(@"COPY_SETTINGS_DESC")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:nil
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
if (IS_ENABLED(@"switchCopyandPasteFunctionality_enabled")) {
|
||||||
|
// Export Settings functionality
|
||||||
|
NSURL *tempFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"YTLitePlusSettings.txt"]];
|
||||||
|
NSMutableString *settingsString = [NSMutableString string];
|
||||||
|
for (NSString *key in NSUserDefaultsCopyKeys) {
|
||||||
|
id value = [[NSUserDefaults standardUserDefaults] objectForKey:key];
|
||||||
|
id defaultValue = NSUserDefaultsCopyKeysDefaults[key];
|
||||||
|
|
||||||
|
// Only include the setting if it is different from the default value
|
||||||
|
// If no default value is found, include it by default
|
||||||
|
if (value && (!defaultValue || ![value isEqual:defaultValue])) {
|
||||||
|
[settingsString appendFormat:@"%@: %@\n", key, value];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[settingsString writeToURL:tempFileURL atomically:YES encoding:NSUTF8StringEncoding error:nil];
|
||||||
|
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithURL:tempFileURL inMode:UIDocumentPickerModeExportToService];
|
||||||
|
documentPicker.delegate = (id<UIDocumentPickerDelegate>)self;
|
||||||
|
documentPicker.allowsMultipleSelection = NO;
|
||||||
|
[settingsViewController presentViewController:documentPicker animated:YES completion:nil];
|
||||||
|
} else {
|
||||||
|
// Copy Settings functionality (DEFAULT - Copies to Clipboard)
|
||||||
|
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
|
||||||
|
NSMutableString *settingsString = [NSMutableString string];
|
||||||
|
for (NSString *key in NSUserDefaultsCopyKeys) {
|
||||||
|
id value = [userDefaults objectForKey:key];
|
||||||
|
id defaultValue = NSUserDefaultsCopyKeysDefaults[key];
|
||||||
|
|
||||||
|
// Only include the setting if it is different from the default value
|
||||||
|
// If no default value is found, include it by default
|
||||||
|
if (value && (!defaultValue || ![value isEqual:defaultValue])) {
|
||||||
|
[settingsString appendFormat:@"%@: %@\n", key, value];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[[UIPasteboard generalPasteboard] setString:settingsString];
|
||||||
|
// Show a confirmation message or perform some other action here
|
||||||
|
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings copied"]];
|
||||||
|
|
||||||
|
// Show an option to export YouTube Plus settings
|
||||||
|
UIAlertController *exportAlert = [UIAlertController alertControllerWithTitle:@"Export Settings"
|
||||||
|
message:@"Note: This feature cannot save iSponsorBlock and most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
|
||||||
|
preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
|
||||||
|
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Export" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
// Export YouTube Plus Settings functionality
|
||||||
|
[%c(YTLUserDefaults) exportYtlSettings];
|
||||||
|
}]];
|
||||||
|
// Present the alert from the root view controller
|
||||||
|
[settingsViewController presentViewController:exportAlert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
[sectionItems addObject:copySettings];
|
||||||
|
|
||||||
|
YTSettingsSectionItem *pasteSettings = [%c(YTSettingsSectionItem)
|
||||||
|
itemWithTitle:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"IMPORT_SETTINGS") : LOC(@"PASTE_SETTINGS")
|
||||||
|
titleDescription:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"IMPORT_SETTINGS_DESC") : LOC(@"PASTE_SETTINGS_DESC")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:nil
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
if (IS_ENABLED(@"switchCopyandPasteFunctionality_enabled")) {
|
||||||
|
// Paste Settings functionality (ALTERNATE - Pastes from ".txt")
|
||||||
|
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.text"] inMode:UIDocumentPickerModeImport];
|
||||||
|
documentPicker.delegate = (id<UIDocumentPickerDelegate>)self;
|
||||||
|
documentPicker.allowsMultipleSelection = NO;
|
||||||
|
[settingsViewController presentViewController:documentPicker animated:YES completion:nil];
|
||||||
|
} else {
|
||||||
|
// Paste Settings functionality (DEFAULT - Pastes from Clipboard)
|
||||||
|
UIAlertController *confirmPasteAlert = [UIAlertController alertControllerWithTitle:LOC(@"PASTE_SETTINGS_ALERT") message:nil preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
[confirmPasteAlert addAction:[UIAlertAction actionWithTitle:LOC(@"Cancel") style:UIAlertActionStyleCancel handler:nil]];
|
||||||
|
[confirmPasteAlert addAction:[UIAlertAction actionWithTitle:LOC(@"Confirm") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
NSString *settingsString = [[UIPasteboard generalPasteboard] string];
|
||||||
|
if (settingsString.length > 0) {
|
||||||
|
NSArray *lines = [settingsString componentsSeparatedByString:@"\n"];
|
||||||
|
for (NSString *line in lines) {
|
||||||
|
NSArray *components = [line componentsSeparatedByString:@": "];
|
||||||
|
if (components.count == 2) {
|
||||||
|
NSString *key = components[0];
|
||||||
|
NSString *value = components[1];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
// Show a confirmation toast
|
||||||
|
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings applied"]];
|
||||||
|
// Show a reminder to import YouTube Plus settings as well
|
||||||
|
UIAlertController *reminderAlert = [UIAlertController alertControllerWithTitle:@"Reminder"
|
||||||
|
message:@"Remember to import your YouTube Plus settings as well"
|
||||||
|
preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
[reminderAlert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
|
||||||
|
[settingsViewController presentViewController:reminderAlert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
}]];
|
||||||
|
[settingsViewController presentViewController:confirmPasteAlert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
[sectionItems addObject:pasteSettings];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
YTSettingsSectionItem *appIcon = [%c(YTSettingsSectionItem)
|
YTSettingsSectionItem *appIcon = [%c(YTSettingsSectionItem)
|
||||||
itemWithTitle:LOC(@"CHANGE_APP_ICON")
|
itemWithTitle:LOC(@"CHANGE_APP_ICON")
|
||||||
|
|
@ -80,68 +227,203 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
[sectionItems addObject:appIcon];
|
[sectionItems addObject:appIcon];
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
# pragma mark - Player Gestures - @bhackel
|
||||||
|
// Helper to get the selected gesture mode
|
||||||
|
static NSString* (^sectionGestureSelectedModeToString)(GestureMode) = ^(GestureMode sectionIndex) {
|
||||||
|
switch (sectionIndex) {
|
||||||
|
case GestureModeVolume:
|
||||||
|
return LOC(@"VOLUME");
|
||||||
|
case GestureModeBrightness:
|
||||||
|
return LOC(@"BRIGHTNESS");
|
||||||
|
case GestureModeSeek:
|
||||||
|
return LOC(@"SEEK");
|
||||||
|
case GestureModeDisabled:
|
||||||
|
return LOC(@"DISABLED");
|
||||||
|
default:
|
||||||
|
return @"Invalid index - Report bug";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Helper to generate checkmark setting items for selecting gesture modes
|
||||||
|
static YTSettingsSectionItem* (^gestureCheckmarkSettingItem)(NSInteger, NSString *) = ^(NSInteger idx, NSString *key) {
|
||||||
|
return [YTSettingsSectionItemClass
|
||||||
|
checkmarkItemWithTitle:sectionGestureSelectedModeToString(idx)
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:idx forKey:key];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
// Helper to generate a section item for selecting a gesture mode
|
||||||
|
YTSettingsSectionItem *(^createSectionGestureSelector)(NSString *, NSString *) = ^YTSettingsSectionItem *(NSString *sectionLabel, NSString *sectionKey) {
|
||||||
|
return [YTSettingsSectionItemClass itemWithTitle:LOC(sectionLabel)
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
return sectionGestureSelectedModeToString(GetInteger(sectionKey));
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
|
gestureCheckmarkSettingItem(0, sectionKey), // Volume
|
||||||
|
gestureCheckmarkSettingItem(1, sectionKey), // Brightness
|
||||||
|
gestureCheckmarkSettingItem(2, sectionKey), // Seek
|
||||||
|
gestureCheckmarkSettingItem(3, sectionKey) // Disabled
|
||||||
|
];
|
||||||
|
// Present picker when selecting this settings item
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
|
||||||
|
initWithNavTitle:LOC(sectionLabel)
|
||||||
|
pickerSectionTitle:nil
|
||||||
|
rows:rows
|
||||||
|
selectedItemIndex:GetInteger(sectionKey)
|
||||||
|
parentResponder:[self parentResponder]
|
||||||
|
];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
// Configuration picker for deadzone to pick from 0 to 100 pixels with interval of 10
|
||||||
|
NSMutableArray<NSNumber *> *deadzoneValues = [NSMutableArray array];
|
||||||
|
for (CGFloat value = 0; value <= 100; value += 10) {
|
||||||
|
[deadzoneValues addObject:@(value)];
|
||||||
|
}
|
||||||
|
YTSettingsSectionItem *deadzonePicker = [YTSettingsSectionItemClass
|
||||||
|
itemWithTitle:LOC(@"DEADZONE")
|
||||||
|
titleDescription:LOC(@"DEADZONE_DESC")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
return [NSString stringWithFormat:@"%ld px", (long)GetFloat(@"playerGesturesDeadzone")];
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
// Generate rows for deadzone picker using the predefined array
|
||||||
|
NSMutableArray <YTSettingsSectionItem *> *deadzoneRows = [NSMutableArray array];
|
||||||
|
for (NSNumber *deadzoneValue in deadzoneValues) {
|
||||||
|
CGFloat deadzone = [deadzoneValue floatValue];
|
||||||
|
[deadzoneRows addObject:[YTSettingsSectionItemClass
|
||||||
|
checkmarkItemWithTitle:[NSString stringWithFormat:@"%ld px", (long)deadzone]
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setFloat:deadzone forKey:@"playerGesturesDeadzone"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
]];
|
||||||
|
}
|
||||||
|
// Determine the index of the currently selected deadzone
|
||||||
|
CGFloat currentDeadzone = GetFloat(@"playerGesturesDeadzone");
|
||||||
|
NSUInteger selectedIndex = [deadzoneValues indexOfObject:@(currentDeadzone)];
|
||||||
|
if (selectedIndex == NSNotFound) {
|
||||||
|
selectedIndex = 0; // Default to the first item if the current deadzone is not found
|
||||||
|
}
|
||||||
|
// Present deadzone picker when selecting this settings item
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
|
||||||
|
initWithNavTitle:LOC(@"DEADZONE")
|
||||||
|
pickerSectionTitle:nil
|
||||||
|
rows:deadzoneRows
|
||||||
|
selectedItemIndex:selectedIndex
|
||||||
|
parentResponder:[self parentResponder]
|
||||||
|
];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// Configuration picker for sensitivity to pick from 0.5 to 2.0 with interval of 0.1
|
||||||
|
NSMutableArray<NSNumber *> *sensitivityValues = [NSMutableArray array];
|
||||||
|
for (CGFloat value = 0.5; value <= 2.0; value += 0.1) {
|
||||||
|
[sensitivityValues addObject:@(value)];
|
||||||
|
}
|
||||||
|
YTSettingsSectionItem *sensitivityPicker = [YTSettingsSectionItemClass
|
||||||
|
itemWithTitle:LOC(@"SENSITIVITY")
|
||||||
|
titleDescription:LOC(@"SENSITIVITY_DESC")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
return [NSString stringWithFormat:@"%.1f", GetFloat(@"playerGesturesSensitivity")];
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
// Generate rows for sensitivity picker using the predefined array
|
||||||
|
NSMutableArray <YTSettingsSectionItem *> *sensitivityRows = [NSMutableArray array];
|
||||||
|
for (NSNumber *sensitivityValue in sensitivityValues) {
|
||||||
|
CGFloat sensitivity = [sensitivityValue floatValue];
|
||||||
|
[sensitivityRows addObject:[YTSettingsSectionItemClass
|
||||||
|
checkmarkItemWithTitle:[NSString stringWithFormat:@"%.1f", sensitivity]
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setFloat:sensitivity forKey:@"playerGesturesSensitivity"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
]];
|
||||||
|
}
|
||||||
|
// Determine the index of the currently selected sensitivity
|
||||||
|
CGFloat currentSensitivity = GetFloat(@"playerGesturesSensitivity");
|
||||||
|
NSUInteger selectedIndex = [sensitivityValues indexOfObject:@(currentSensitivity)];
|
||||||
|
if (selectedIndex == NSNotFound) {
|
||||||
|
selectedIndex = 0; // Default to the first item if the current sensitivity is not found
|
||||||
|
}
|
||||||
|
// Present sensitivity picker
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
|
||||||
|
initWithNavTitle:LOC(@"SENSITIVITY")
|
||||||
|
pickerSectionTitle:nil
|
||||||
|
rows:sensitivityRows
|
||||||
|
selectedItemIndex:selectedIndex
|
||||||
|
parentResponder:[self parentResponder]
|
||||||
|
];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// Create and add items to the high level gestures menu
|
||||||
|
YTSettingsSectionItem *playerGesturesGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYER_GESTURES_TITLE") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
|
// Description header item
|
||||||
|
[YTSettingsSectionItemClass
|
||||||
|
itemWithTitle:nil
|
||||||
|
titleDescription:LOC(@"PLAYER_GESTURES_DESC")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:nil
|
||||||
|
selectBlock:nil
|
||||||
|
],
|
||||||
|
// Toggle for enabling gestures
|
||||||
|
BASIC_SWITCH(LOC(@"PLAYER_GESTURES_TOGGLE"), nil, @"playerGestures_enabled"),
|
||||||
|
// Pickers for each gesture section
|
||||||
|
createSectionGestureSelector(@"TOP_SECTION", @"playerGestureTopSelection"),
|
||||||
|
createSectionGestureSelector(@"MIDDLE_SECTION", @"playerGestureMiddleSelection"),
|
||||||
|
createSectionGestureSelector(@"BOTTOM_SECTION", @"playerGestureBottomSelection"),
|
||||||
|
// Pickers for configuration settings
|
||||||
|
deadzonePicker,
|
||||||
|
sensitivityPicker,
|
||||||
|
// Toggle for haptic feedback
|
||||||
|
BASIC_SWITCH(LOC(@"PLAYER_GESTURES_HAPTIC_FEEDBACK"), nil, @"playerGesturesHapticFeedback_enabled"),
|
||||||
|
];
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"PLAYER_GESTURES_TITLE") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}];
|
||||||
|
[sectionItems addObject:playerGesturesGroup];
|
||||||
|
|
||||||
# pragma mark - Video Controls Overlay Options
|
# pragma mark - Video Controls Overlay Options
|
||||||
YTSettingsSectionItem *videoControlOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
YTSettingsSectionItem *videoControlOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
NSArray <YTSettingsSectionItem *> *rows = @[
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_SHARE_BUTTON")
|
BASIC_SWITCH(LOC(@"ENABLE_SHARE_BUTTON"), LOC(@"ENABLE_SHARE_BUTTON_DESC"), @"enableShareButton_enabled"),
|
||||||
titleDescription:LOC(@"ENABLE_SHARE_BUTTON_DESC")
|
BASIC_SWITCH(LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON"), LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC"), @"enableSaveToButton_enabled"),
|
||||||
accessibilityIdentifier:nil
|
BASIC_SWITCH(LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS"), LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS_DESC"), @"hideVideoPlayerShadowOverlayButtons_enabled"),
|
||||||
switchOn:IsEnabled(@"enableShareButton_enabled")
|
BASIC_SWITCH(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled"),
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
BASIC_SWITCH(LOC(@"HIDE_HEATWAVES"), LOC(@"HIDE_HEATWAVES_DESC"), @"hideHeatwaves_enabled"),
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableShareButton_enabled"];
|
BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_PORTRAIT"), LOC(@"DISABLE_AMBIENT_PORTRAIT_DESC"), @"disableAmbientModePortrait_enabled"),
|
||||||
return YES;
|
BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_FULLSCREEN"), LOC(@"DISABLE_AMBIENT_FULLSCREEN_DESC"), @"disableAmbientModeFullscreen_enabled"),
|
||||||
}
|
BASIC_SWITCH(LOC(@"FULLSCREEN_TO_THE_RIGHT"), LOC(@"FULLSCREEN_TO_THE_RIGHT_DESC"), @"fullscreenToTheRight_enabled"),
|
||||||
settingItemId:0],
|
BASIC_SWITCH(LOC(@"SEEK_ANYWHERE"), LOC(@"SEEK_ANYWHERE_DESC"), @"seekAnywhere_enabled"),
|
||||||
|
BASIC_SWITCH(LOC(@"ENABLE_TAP_TO_SEEK"), LOC(@"ENABLE_TAP_TO_SEEK_DESC"), @"YTTapToSeek_enabled"),
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON")
|
BASIC_SWITCH(LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE"), LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC"), @"disablePullToFull_enabled"),
|
||||||
titleDescription:LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC")
|
BASIC_SWITCH(LOC(@"ALWAYS_USE_REMAINING_TIME"), LOC(@"ALWAYS_USE_REMAINING_TIME_DESC"), @"alwaysShowRemainingTime_enabled"),
|
||||||
accessibilityIdentifier:nil
|
BASIC_SWITCH(LOC(@"DISABLE_TOGGLE_TIME_REMAINING"), LOC(@"DISABLE_TOGGLE_TIME_REMAINING_DESC"), @"disableRemainingTime_enabled"),
|
||||||
switchOn:IsEnabled(@"enableSaveToButton_enabled")
|
BASIC_SWITCH(LOC(@"DISABLE_ENGAGEMENT_OVERLAY"), LOC(@"DISABLE_ENGAGEMENT_OVERLAY_DESC"), @"disableEngagementOverlay_enabled"),
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
BASIC_SWITCH(LOC(@"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER"), LOC(@"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC"), @"hidePreviewCommentSection_enabled"),
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableSaveToButton_enabled"];
|
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW"), LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW_DESC"), @"hideAutoplayMiniPreview_enabled"),
|
||||||
return YES;
|
BASIC_SWITCH(LOC(@"HIDE_HUD_MESSAGES"), LOC(@"HIDE_HUD_MESSAGES_DESC"), @"hideHUD_enabled"),
|
||||||
}
|
BASIC_SWITCH(LOC(@"HIDE_COLLAPSE_BUTTON"), LOC(@"HIDE_COLLAPSE_BUTTON_DESC"), @"disableCollapseButton_enabled"),
|
||||||
settingItemId:0],
|
BASIC_SWITCH(LOC(@"HIDE_SPEED_TOAST"), LOC(@"HIDE_SPEED_TOAST_DESC"), @"hideSpeedToast_enabled"),
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS")
|
|
||||||
titleDescription:LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"hideVideoPlayerShadowOverlayButtons_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideVideoPlayerShadowOverlayButtons_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_RIGHT_PANEL")
|
|
||||||
titleDescription:LOC(@"HIDE_RIGHT_PANEL_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"hideRightPanel_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideRightPanel_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"NO_SUGGESTED_VIDEO")
|
|
||||||
titleDescription:LOC(@"NO_SUGGESTED_VIDEO_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"noSuggestedVideo_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"noSuggestedVideo_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_HEATWAVES")
|
|
||||||
titleDescription:LOC(@"HIDE_HEATWAVES_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"hideHeatwaves_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHeatwaves_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0]
|
|
||||||
];
|
];
|
||||||
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
||||||
[settingsViewController pushViewController:picker];
|
[settingsViewController pushViewController:picker];
|
||||||
|
|
@ -152,104 +434,24 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
# pragma mark - App Settings Overlay Options
|
# pragma mark - App Settings Overlay Options
|
||||||
YTSettingsSectionItem *appSettingsOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"APP_SETTINGS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
YTSettingsSectionItem *appSettingsOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"APP_SETTINGS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
NSArray <YTSettingsSectionItem *> *rows = @[
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_ACCOUNT_SECTION")
|
BASIC_SWITCH(LOC(@"HIDE_ACCOUNT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAccountSection_enabled"),
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAutoplaySection_enabled"),
|
||||||
accessibilityIdentifier:nil
|
BASIC_SWITCH(LOC(@"HIDE_TRYNEWFEATURES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableTryNewFeaturesSection_enabled"),
|
||||||
switchOn:IsEnabled(@"disableAccountSection_enabled")
|
BASIC_SWITCH(LOC(@"HIDE_VIDEOQUALITYPREFERENCES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableVideoQualityPreferencesSection_enabled"),
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
BASIC_SWITCH(LOC(@"HIDE_NOTIFICATIONS_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableNotificationsSection_enabled"),
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableAccountSection_enabled"];
|
BASIC_SWITCH(LOC(@"HIDE_MANAGEALLHISTORY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableManageAllHistorySection_enabled"),
|
||||||
return YES;
|
BASIC_SWITCH(LOC(@"HIDE_YOURDATAINYOUTUBE_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableYourDataInYouTubeSection_enabled"),
|
||||||
}
|
BASIC_SWITCH(LOC(@"HIDE_PRIVACY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disablePrivacySection_enabled"),
|
||||||
settingItemId:0],
|
BASIC_SWITCH(LOC(@"HIDE_LIVECHAT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableLiveChatSection_enabled")
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_AUTOPLAY_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableAutoplaySection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableAutoplaySection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_TRYNEWFEATURES_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableTryNewFeaturesSection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableTryNewFeaturesSection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_VIDEOQUALITYPREFERENCES_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableVideoQualityPreferencesSection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableVideoQualityPreferencesSection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_NOTIFICATIONS_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableNotificationsSection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableNotificationsSection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_MANAGEALLHISTORY_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableManageAllHistorySection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableManageAllHistorySection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_YOURDATAINYOUTUBE_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableYourDataInYouTubeSection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableYourDataInYouTubeSection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_PRIVACY_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disablePrivacySection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disablePrivacySection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_LIVECHAT_SECTION")
|
|
||||||
titleDescription:LOC(@"APP_RESTART_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"disableLiveChatSection_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableLiveChatSection_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0]
|
|
||||||
];
|
];
|
||||||
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"App Settings Overlay Options") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"APP_SETTINGS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
||||||
[settingsViewController pushViewController:picker];
|
[settingsViewController pushViewController:picker];
|
||||||
return YES;
|
return YES;
|
||||||
}];
|
}];
|
||||||
[sectionItems addObject:appSettingsOverlayGroup];
|
[sectionItems addObject:appSettingsOverlayGroup];
|
||||||
|
|
||||||
# pragma mark - LowContrastMode
|
# pragma mark - LowContrastMode
|
||||||
YTSettingsSectionItem *lowContrastModeSection = [YTSettingsSectionItemClass itemWithTitle:LOC(@"Low Contrast Mode")
|
YTSettingsSectionItem *lowContrastModeSection = [YTSettingsSectionItemClass itemWithTitle:LOC(@"LOW_CONTRAST_MODE")
|
||||||
accessibilityIdentifier:nil
|
accessibilityIdentifier:nil
|
||||||
detailTextBlock:^NSString *() {
|
detailTextBlock:^NSString *() {
|
||||||
switch (contrastMode()) {
|
switch (contrastMode()) {
|
||||||
|
|
@ -273,7 +475,7 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
return YES;
|
return YES;
|
||||||
}]
|
}]
|
||||||
];
|
];
|
||||||
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"Low Contrast Mode") pickerSectionTitle:nil rows:rows selectedItemIndex:contrastMode() parentResponder:[self parentResponder]];
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"LOW_CONTRAST_MODE") pickerSectionTitle:nil rows:rows selectedItemIndex:contrastMode() parentResponder:[self parentResponder]];
|
||||||
[settingsViewController pushViewController:picker];
|
[settingsViewController pushViewController:picker];
|
||||||
return YES;
|
return YES;
|
||||||
}];
|
}];
|
||||||
|
|
@ -345,7 +547,7 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
return YES;
|
return YES;
|
||||||
}]
|
}]
|
||||||
];
|
];
|
||||||
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:@"Version Spoofer Picker" pickerSectionTitle:nil rows:rows selectedItemIndex:appVersionSpoofer() parentResponder:[self parentResponder]];
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:@"VERSION_SPOOFER_TITLE" pickerSectionTitle:nil rows:rows selectedItemIndex:appVersionSpoofer() parentResponder:[self parentResponder]];
|
||||||
[settingsViewController pushViewController:picker];
|
[settingsViewController pushViewController:picker];
|
||||||
return YES;
|
return YES;
|
||||||
}];
|
}];
|
||||||
|
|
@ -354,10 +556,8 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
YTSettingsSectionItem *themeGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"THEME_OPTIONS")
|
YTSettingsSectionItem *themeGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"THEME_OPTIONS")
|
||||||
accessibilityIdentifier:nil
|
accessibilityIdentifier:nil
|
||||||
detailTextBlock:^NSString *() {
|
detailTextBlock:^NSString *() {
|
||||||
switch (GetSelection(@"appTheme")) {
|
switch (GetInteger(@"appTheme")) {
|
||||||
case 1:
|
case 1:
|
||||||
return LOC(@"OLED_DARK_THEME_2");
|
|
||||||
case 2:
|
|
||||||
return LOC(@"OLD_DARK_THEME");
|
return LOC(@"OLD_DARK_THEME");
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
|
|
@ -371,184 +571,93 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
[settingsViewController reloadData];
|
[settingsViewController reloadData];
|
||||||
return YES;
|
return YES;
|
||||||
}],
|
}],
|
||||||
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"OLED_DARK_THEME") titleDescription:LOC(@"OLED_DARK_THEME_DESC") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"OLD_DARK_THEME") titleDescription:LOC(@"OLD_DARK_THEME_DESC") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"appTheme"];
|
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"appTheme"];
|
||||||
[settingsViewController reloadData];
|
[settingsViewController reloadData];
|
||||||
return YES;
|
return YES;
|
||||||
}],
|
}],
|
||||||
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"OLD_DARK_THEME") titleDescription:LOC(@"OLD_DARK_THEME_DESC") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
BASIC_SWITCH(LOC(@"OLED_KEYBOARD"), LOC(@"OLED_KEYBOARD_DESC"), @"oledKeyBoard_enabled"),
|
||||||
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"appTheme"];
|
BASIC_SWITCH(LOC(@"LOW_CONTRAST_MODE"), LOC(@"LOW_CONTRAST_MODE_DESC"), @"lowContrastMode_enabled"),
|
||||||
[settingsViewController reloadData];
|
lowContrastModeSection
|
||||||
return YES;
|
];
|
||||||
}],
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"THEME_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:GetInteger(@"appTheme") parentResponder:[self parentResponder]];
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"OLED_KEYBOARD")
|
|
||||||
titleDescription:LOC(@"OLED_KEYBOARD_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"oledKeyBoard_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oledKeyBoard_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"LOW_CONTRAST_MODE")
|
|
||||||
titleDescription:LOC(@"LOW_CONTRAST_MODE_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"lowContrastMode_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"lowContrastMode_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0], lowContrastModeSection];
|
|
||||||
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"THEME_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:GetSelection(@"appTheme") parentResponder:[self parentResponder]];
|
|
||||||
[settingsViewController pushViewController:picker];
|
[settingsViewController pushViewController:picker];
|
||||||
return YES;
|
return YES;
|
||||||
}];
|
}];
|
||||||
[sectionItems addObject:themeGroup];
|
[sectionItems addObject:themeGroup];
|
||||||
|
|
||||||
|
# pragma mark - Copy of Playback in feeds section - @bhackel
|
||||||
|
// This section is hidden in vanilla YouTube when using the new settings UI, so
|
||||||
|
// we can recreate it here
|
||||||
|
YTSettingsSectionItem *playbackInFeedsGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYBACK_IN_FEEDS")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
// The specific values were gathered by checking the value for each setting
|
||||||
|
switch (GetInteger(@"inline_muted_playback_enabled")) {
|
||||||
|
case 3:
|
||||||
|
return LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY");
|
||||||
|
case 1:
|
||||||
|
return LOC(@"PLAYBACK_IN_FEEDS_OFF");
|
||||||
|
case 2:
|
||||||
|
default:
|
||||||
|
return LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_OFF") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"inline_muted_playback_enabled"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}],
|
||||||
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"inline_muted_playback_enabled"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}],
|
||||||
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"inline_muted_playback_enabled"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}],
|
||||||
|
];
|
||||||
|
// It seems values greater than 3 act the same as Always On (Index 1)
|
||||||
|
// Convert the stored value to an index for a picker (0 to 2)
|
||||||
|
NSInteger (^getInlineSelection)(void) = ^NSInteger(void) {
|
||||||
|
NSInteger selection = GetInteger(@"inline_muted_playback_enabled") - 1;
|
||||||
|
// Check if selection is within the valid bounds [0, 1, 2]
|
||||||
|
if (selection < 0 || selection > 2) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return selection;
|
||||||
|
};
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"PLAYBACK_IN_FEEDS") pickerSectionTitle:nil rows:rows selectedItemIndex:getInlineSelection() parentResponder:[self parentResponder]];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
# pragma mark - Miscellaneous
|
# pragma mark - Miscellaneous
|
||||||
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
NSArray <YTSettingsSectionItem *> *rows = @[
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_YT_STARTUP_ANIMATION")
|
playbackInFeedsGroup,
|
||||||
titleDescription:LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC")
|
// BASIC_SWITCH(LOC(@"NEW_SETTINGS_UI"), LOC(@"NEW_SETTINGS_UI_DESC"), @"newSettingsUI_enabled"), // disabled because YTLite is probably forcing it to NO
|
||||||
accessibilityIdentifier:nil
|
BASIC_SWITCH(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"),
|
||||||
switchOn:IsEnabled(@"ytStartupAnimation_enabled")
|
BASIC_SWITCH(LOC(@"HIDE_MODERN_INTERFACE"), LOC(@"HIDE_MODERN_INTERFACE_DESC"), @"ytNoModernUI_enabled"),
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
BASIC_SWITCH(LOC(@"IPAD_LAYOUT"), LOC(@"IPAD_LAYOUT_DESC"), @"iPadLayout_enabled"),
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytStartupAnimation_enabled"];
|
BASIC_SWITCH(LOC(@"IPHONE_LAYOUT"), LOC(@"IPHONE_LAYOUT_DESC"), @"iPhoneLayout_enabled"),
|
||||||
return YES;
|
BASIC_SWITCH(LOC(@"CAST_CONFIRM"), LOC(@"CAST_CONFIRM_DESC"), @"castConfirm_enabled"),
|
||||||
}
|
BASIC_SWITCH(LOC(@"NEW_MINIPLAYER_STYLE"), LOC(@"NEW_MINIPLAYER_STYLE_DESC"), @"bigYTMiniPlayer_enabled"),
|
||||||
settingItemId:0],
|
BASIC_SWITCH(LOC(@"HIDE_CAST_BUTTON"), LOC(@"HIDE_CAST_BUTTON_DESC"), @"hideCastButton_enabled"),
|
||||||
|
BASIC_SWITCH(LOC(@"VIDEO_PLAYER_BUTTON"), LOC(@"VIDEO_PLAYER_BUTTON_DESC"), @"videoPlayerButton_enabled"),
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_MODERN_INTERFACE")
|
BASIC_SWITCH(LOC(@"HIDE_SPONSORBLOCK_BUTTON"), LOC(@"HIDE_SPONSORBLOCK_BUTTON_DESC"), @"hideSponsorBlockButton_enabled"),
|
||||||
titleDescription:LOC(@"HIDE_MODERN_INTERFACE_DESC")
|
BASIC_SWITCH(LOC(@"HIDE_HOME_TAB"), LOC(@"HIDE_HOME_TAB_DESC"), @"hideHomeTab_enabled"),
|
||||||
accessibilityIdentifier:nil
|
BASIC_SWITCH(LOC(@"FIX_CASTING"), LOC(@"FIX_CASTING_DESC"), @"fixCasting_enabled"),
|
||||||
switchOn:IsEnabled(@"ytNoModernUI_enabled")
|
BASIC_SWITCH(LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS"), LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS_DESC"), @"switchCopyandPasteFunctionality_enabled"),
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
BASIC_SWITCH(LOC(@"ENABLE_FLEX"), LOC(@"ENABLE_FLEX_DESC"), @"flex_enabled"),
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytNoModernUI_enabled"];
|
BASIC_SWITCH(LOC(@"APP_VERSION_SPOOFER_LITE"), LOC(@"APP_VERSION_SPOOFER_LITE_DESC"), @"enableVersionSpoofer_enabled"),
|
||||||
return YES;
|
versionSpooferSection
|
||||||
}
|
];
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"IPAD_LAYOUT")
|
|
||||||
titleDescription:LOC(@"IPAD_LAYOUT_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"iPadLayout_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"iPadLayout_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"IPHONE_LAYOUT")
|
|
||||||
titleDescription:LOC(@"IPHONE_LAYOUT_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"iPhoneLayout_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"iPhoneLayout_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"CAST_CONFIRM")
|
|
||||||
titleDescription:LOC(@"CAST_CONFIRM_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"castConfirm_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"castConfirm_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"NEW_MINIPLAYER_STYLE")
|
|
||||||
titleDescription:LOC(@"NEW_MINIPLAYER_STYLE_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"bigYTMiniPlayer_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"bigYTMiniPlayer_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"STOCK_VOLUME_HUD")
|
|
||||||
titleDescription:LOC(@"STOCK_VOLUME_HUD_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"stockVolumeHUD_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"stockVolumeHUD_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"UN_SHORTS")
|
|
||||||
titleDescription:LOC(@"UN_SHORTS_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"UnShorts_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"UnShorts_enabled"];
|
|
||||||
return YES ;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_COMMUNITY_POSTS")
|
|
||||||
titleDescription:LOC(@"HIDE_COMMUNITY_POSTS_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"hideCommunityPosts_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCommunityPosts_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_CAST_BUTTON")
|
|
||||||
titleDescription:LOC(@"HIDE_CAST_BUTTON_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"hideCastButton_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCastButton_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_SPONSORBLOCK_BUTTON")
|
|
||||||
titleDescription:LOC(@"HIDE_SPONSORBLOCK_BUTTON_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"hideSponsorBlockButton_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideSponsorBlockButton_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"YT_SPEED")
|
|
||||||
titleDescription:LOC(@"YT_SPEED_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"ytSpeed_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytSpeed_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_FLEX")
|
|
||||||
titleDescription:LOC(@"ENABLE_FLEX_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"flex_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"flex_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0],
|
|
||||||
|
|
||||||
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"APP_VERSION_SPOOFER_LITE")
|
|
||||||
titleDescription:LOC(@"APP_VERSION_SPOOFER_LITE_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
switchOn:IsEnabled(@"enableVersionSpoofer_enabled")
|
|
||||||
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableVersionSpoofer_enabled"];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
settingItemId:0], versionSpooferSection];
|
|
||||||
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"MISCELLANEOUS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"MISCELLANEOUS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
|
||||||
[settingsViewController pushViewController:picker];
|
[settingsViewController pushViewController:picker];
|
||||||
return YES;
|
return YES;
|
||||||
|
|
@ -567,4 +676,59 @@ extern NSBundle *YTLitePlusBundle();
|
||||||
}
|
}
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Implement the delegate method for document picker
|
||||||
|
%new
|
||||||
|
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {
|
||||||
|
if (urls.count > 0) {
|
||||||
|
NSURL *pickedURL = [urls firstObject];
|
||||||
|
NSError *error;
|
||||||
|
// Check which mode the document picker is in
|
||||||
|
if (controller.documentPickerMode == UIDocumentPickerModeImport) {
|
||||||
|
// Import mode: Handle the import of settings from a text file
|
||||||
|
NSString *fileType = [pickedURL resourceValuesForKeys:@[NSURLTypeIdentifierKey] error:&error][NSURLTypeIdentifierKey];
|
||||||
|
|
||||||
|
if (UTTypeConformsTo((__bridge CFStringRef)fileType, kUTTypePlainText)) {
|
||||||
|
NSString *fileContents = [NSString stringWithContentsOfURL:pickedURL encoding:NSUTF8StringEncoding error:nil];
|
||||||
|
NSArray *lines = [fileContents componentsSeparatedByString:@"\n"];
|
||||||
|
for (NSString *line in lines) {
|
||||||
|
NSArray *components = [line componentsSeparatedByString:@": "];
|
||||||
|
if (components.count == 2) {
|
||||||
|
NSString *key = components[0];
|
||||||
|
NSString *value = components[1];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Reload settings view after importing
|
||||||
|
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
// Show a confirmation message or perform some other action here
|
||||||
|
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings applied"]];
|
||||||
|
// Show a reminder to import YouTube Plus settings as well
|
||||||
|
UIAlertController *reminderAlert = [UIAlertController alertControllerWithTitle:@"Reminder"
|
||||||
|
message:@"Remember to import your YouTube Plus settings as well"
|
||||||
|
preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
[reminderAlert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
|
||||||
|
[settingsViewController presentViewController:reminderAlert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (controller.documentPickerMode == UIDocumentPickerModeExportToService || controller.documentPickerMode == UIDocumentPickerModeMoveToService) {
|
||||||
|
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings saved"]];
|
||||||
|
// Export mode: Display a reminder to save YouTube Plus settings
|
||||||
|
UIAlertController *exportAlert = [UIAlertController alertControllerWithTitle:@"Export Settings"
|
||||||
|
message:@"Note: This feature cannot save iSponsorBlock and most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
|
||||||
|
preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
|
||||||
|
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Export" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
// Export YouTube Plus Settings functionality
|
||||||
|
[%c(YTLUserDefaults) exportYtlSettings];
|
||||||
|
}]];
|
||||||
|
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
|
||||||
|
// Present the alert from the root view controller
|
||||||
|
[settingsViewController presentViewController:exportAlert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
|
|
|
||||||
55
Source/SettingsKeys.h
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
#import "../YTLitePlus.h"
|
||||||
|
|
||||||
|
// Keys for "Copy Settings" button (for: YTLitePlus)
|
||||||
|
// In alphabetical order for tweaks after YTLitePlus
|
||||||
|
NSArray *NSUserDefaultsCopyKeys = @[
|
||||||
|
// YTLitePlus - gathered using get_keys.py
|
||||||
|
@"YTTapToSeek_enabled", @"alwaysShowRemainingTime_enabled", @"bigYTMiniPlayer_enabled", @"castConfirm_enabled",
|
||||||
|
@"disableAccountSection_enabled", @"disableAmbientModeFullscreen_enabled",
|
||||||
|
@"disableAmbientModePortrait_enabled", @"disableAutoplaySection_enabled", @"disableCollapseButton_enabled",
|
||||||
|
@"disableEngagementOverlay_enabled", @"disableLiveChatSection_enabled",
|
||||||
|
@"disableManageAllHistorySection_enabled", @"disableNotificationsSection_enabled",
|
||||||
|
@"disablePrivacySection_enabled", @"disablePullToFull_enabled", @"disableRemainingTime_enabled",
|
||||||
|
@"disableTryNewFeaturesSection_enabled", @"disableVideoQualityPreferencesSection_enabled",
|
||||||
|
@"disableYourDataInYouTubeSection_enabled", @"enableSaveToButton_enabled", @"enableShareButton_enabled",
|
||||||
|
@"enableVersionSpoofer_enabled", @"fixCasting_enabled", @"flex_enabled", @"fullscreenToTheRight_enabled",
|
||||||
|
@"hideAutoplayMiniPreview_enabled", @"hideCastButton_enabled", @"hideHUD_enabled", @"hideHeatwaves_enabled",
|
||||||
|
@"hideHomeTab_enabled", @"hidePreviewCommentSection_enabled", @"hideRightPanel_enabled",
|
||||||
|
@"hideSpeedToast_enabled", @"hideSponsorBlockButton_enabled", @"hideVideoPlayerShadowOverlayButtons_enabled",
|
||||||
|
@"iPadLayout_enabled", @"iPhoneLayout_enabled", @"inline_muted_playback_enabled", @"lowContrastMode_enabled",
|
||||||
|
@"newSettingsUI_enabled", @"oledKeyBoard_enabled", @"playerGesturesHapticFeedback_enabled",
|
||||||
|
@"playerGestures_enabled", @"seekAnywhere_enabled", @"switchCopyandPasteFunctionality_enabled",
|
||||||
|
@"videoPlayerButton_enabled", @"ytNoModernUI_enabled", @"ytStartupAnimation_enabled",
|
||||||
|
// DEMC - https://github.com/therealFoxster/DontEatMyContent/blob/master/Tweak.h
|
||||||
|
@"DEMC_enabled", @"DEMC_colorViewsEnabled", @"DEMC_safeAreaConstant", @"DEMC_disableAmbientMode",
|
||||||
|
@"DEMC_limitZoomToFill", @"DEMC_enableForAllVideos",
|
||||||
|
// iSponsorBlock cannot be exported using this method - it is also being removed in v5
|
||||||
|
// Return-YouTube-Dislike - https://github.com/PoomSmart/Return-YouTube-Dislikes/blob/main/TweakSettings.h
|
||||||
|
@"RYD-ENABLED", @"RYD-VOTE-SUBMISSION", @"RYD-EXACT-LIKE-NUMBER", @"RYD-EXACT-NUMBER",
|
||||||
|
// All YTVideoOverlay Tweaks - https://github.com/PoomSmart/YTVideoOverlay/blob/0fc6d29d1aa9e75f8c13d675daec9365f753d45e/Tweak.x#L28C1-L41C84
|
||||||
|
@"YTVideoOverlay-YouLoop-Enabled", @"YTVideoOverlay-YouTimeStamp-Enabled", @"YTVideoOverlay-YouMute-Enabled",
|
||||||
|
@"YTVideoOverlay-YouQuality-Enabled", @"YTVideoOverlay-YouLoop-Position", @"YTVideoOverlay-YouTimeStamp-Position",
|
||||||
|
@"YTVideoOverlay-YouMute-Position", @"YTVideoOverlay-YouQuality-Position",
|
||||||
|
// YouPiP - https://github.com/PoomSmart/YouPiP/blob/main/Header.h
|
||||||
|
@"YouPiPPosition", @"CompatibilityModeKey", @"PiPActivationMethodKey", @"PiPActivationMethod2Key",
|
||||||
|
@"NoMiniPlayerPiPKey", @"NonBackgroundableKey",
|
||||||
|
// YTABConfig cannot be reasonably exported using this method
|
||||||
|
// YTHoldForSpeed will be removed in v5
|
||||||
|
// YouTube Plus / YTLite cannot be exported using this method
|
||||||
|
// YTUHD - https://github.com/PoomSmart/YTUHD/blob/master/Header.h
|
||||||
|
@"EnableVP9", @"AllVP9",
|
||||||
|
// Useful YouTube Keys
|
||||||
|
@"inline_muted_playback_enabled",
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
// Some default values to ignore when exporting settings
|
||||||
|
NSDictionary *NSUserDefaultsCopyKeysDefaults = @{
|
||||||
|
@"fixCasting_enabled": @1,
|
||||||
|
@"inline_muted_playback_enabled": @5,
|
||||||
|
@"newSettingsUI_enabled": @1,
|
||||||
|
@"DEMC_safeAreaConstant": @21.5,
|
||||||
|
@"RYD-ENABLED": @1,
|
||||||
|
@"RYD-VOTE-SUBMISSION": @1,
|
||||||
|
// Duplicate keys are not allowed in NSDictionary. If present, only the last one will be kept.
|
||||||
|
};
|
||||||
|
|
@ -1,16 +1,10 @@
|
||||||
#import "../YTLitePlus.h"
|
#import "../YTLitePlus.h"
|
||||||
|
|
||||||
static BOOL IsEnabled(NSString *key) {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
|
|
||||||
}
|
|
||||||
static BOOL isDarkMode() {
|
static BOOL isDarkMode() {
|
||||||
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1);
|
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1);
|
||||||
}
|
}
|
||||||
static BOOL oledDarkTheme() {
|
|
||||||
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"] == 1);
|
|
||||||
}
|
|
||||||
static BOOL oldDarkTheme() {
|
static BOOL oldDarkTheme() {
|
||||||
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"] == 2);
|
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"] == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Themes.xm - Theme Options
|
// Themes.xm - Theme Options
|
||||||
|
|
@ -402,7 +396,7 @@ UIColor *customColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:
|
||||||
%end
|
%end
|
||||||
|
|
||||||
// OLED dark mode by @BandarHL and modified by @arichorn
|
// OLED dark mode by @BandarHL and modified by @arichorn
|
||||||
UIColor* raisedColor = [UIColor blackColor];
|
/*
|
||||||
%group gOLED
|
%group gOLED
|
||||||
%hook YTCommonColorPalette
|
%hook YTCommonColorPalette
|
||||||
- (UIColor *)background1 {
|
- (UIColor *)background1 {
|
||||||
|
|
@ -788,6 +782,7 @@ UIColor* raisedColor = [UIColor blackColor];
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
%end
|
%end
|
||||||
|
*/
|
||||||
|
|
||||||
// OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
|
// OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
|
||||||
%group gOLEDKB
|
%group gOLEDKB
|
||||||
|
|
@ -837,9 +832,6 @@ UIColor* raisedColor = [UIColor blackColor];
|
||||||
if (IsEnabled(@"oledKeyBoard_enabled")) {
|
if (IsEnabled(@"oledKeyBoard_enabled")) {
|
||||||
%init(gOLEDKB);
|
%init(gOLEDKB);
|
||||||
}
|
}
|
||||||
if (oledDarkTheme()) {
|
|
||||||
%init(gOLED);
|
|
||||||
}
|
|
||||||
if (oldDarkTheme()) {
|
if (oldDarkTheme()) {
|
||||||
%init(gOldDarkTheme);
|
%init(gOldDarkTheme);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
#import "../YTLitePlus.h"
|
#import "../YTLitePlus.h"
|
||||||
|
|
||||||
//
|
|
||||||
static BOOL IsEnabled(NSString *key) {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
|
|
||||||
}
|
|
||||||
static int appVersionSpoofer() {
|
static int appVersionSpoofer() {
|
||||||
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
|
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
100
Source/get_keys.py
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
|
||||||
|
def extract_values_from_file(file_path):
|
||||||
|
"""
|
||||||
|
Extracts keys that match the pattern @\"<some_text>_enabled\" from the given file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
file_path (str): The path to the file to be searched.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
list: A list of matching keys found in the file.
|
||||||
|
"""
|
||||||
|
# Define the regex pattern to match the strings that resemble the given examples
|
||||||
|
pattern = r'@\"[a-zA-Z0-9_]+_enabled\"'
|
||||||
|
matches = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Read the content of the file
|
||||||
|
with open(file_path, 'r') as file:
|
||||||
|
file_content = file.read()
|
||||||
|
|
||||||
|
# Find all matches
|
||||||
|
matches = re.findall(pattern, file_content)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error reading {file_path}: {e}")
|
||||||
|
|
||||||
|
return matches
|
||||||
|
|
||||||
|
def format_output(keys):
|
||||||
|
"""
|
||||||
|
Formats the keys with indentation and line breaks if the segment exceeds 120 characters (116 excluding indentation).
|
||||||
|
|
||||||
|
Args:
|
||||||
|
keys (list): The list of keys to be formatted.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: A formatted string with the keys.
|
||||||
|
"""
|
||||||
|
indent = " " * 4
|
||||||
|
line_length_limit = 116 # Limit excluding indentation
|
||||||
|
current_line = indent
|
||||||
|
formatted_output = ""
|
||||||
|
|
||||||
|
for key in keys:
|
||||||
|
# Check if adding the next key would exceed the line length limit
|
||||||
|
if len(current_line) + len(key) + 2 > line_length_limit: # +2 accounts for the comma and space
|
||||||
|
# Add the current line to the formatted output and start a new line
|
||||||
|
formatted_output += current_line.rstrip(", ") + ",\n"
|
||||||
|
current_line = indent # Start a new indented line
|
||||||
|
|
||||||
|
# Add the key to the current line
|
||||||
|
current_line += key + ", "
|
||||||
|
|
||||||
|
# Add the last line to the output
|
||||||
|
formatted_output += current_line.rstrip(", ") # Remove trailing comma and space from the final line
|
||||||
|
return formatted_output
|
||||||
|
|
||||||
|
def find_and_extract_keys():
|
||||||
|
"""
|
||||||
|
Recursively searches for .xm and .h files in the parent directory and extracts keys
|
||||||
|
that match the pattern @\"<some_text>_enabled\". The matching keys are then printed
|
||||||
|
with indentation and line breaks if the line exceeds 120 characters.
|
||||||
|
Ignores SettingsKeys.h
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
1. Place this script in the desired directory.
|
||||||
|
2. Run the script with the command: python extract_keys.py
|
||||||
|
3. The script will search for all .xm and .h files in the parent directory and
|
||||||
|
print any matching keys it finds.
|
||||||
|
|
||||||
|
Note:
|
||||||
|
- The script searches the directory where it is located (the parent directory).
|
||||||
|
- It only looks for files with extensions .xm and .h.
|
||||||
|
"""
|
||||||
|
# Get the parent directory
|
||||||
|
parent_directory = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
# Store the found keys
|
||||||
|
found_keys = set() # Use a set to automatically remove duplicates
|
||||||
|
|
||||||
|
# Walk through the parent directory and find all .xm and .h files
|
||||||
|
for root, dirs, files in os.walk(parent_directory):
|
||||||
|
for file in files:
|
||||||
|
if file.endswith(('.xm', '.h')):
|
||||||
|
# Skip SettingsKeys.h
|
||||||
|
if file == "SettingsKeys.h":
|
||||||
|
continue
|
||||||
|
file_path = os.path.join(root, file)
|
||||||
|
found_keys.update(extract_values_from_file(file_path))
|
||||||
|
|
||||||
|
# Print the found keys with formatting
|
||||||
|
if found_keys:
|
||||||
|
sorted_keys = sorted(found_keys)
|
||||||
|
print(format_output(sorted_keys))
|
||||||
|
else:
|
||||||
|
print("No keys found.")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
find_and_extract_keys()
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 2aa3086244d296cfb3c8e782ef09c76316452a9d
|
Subproject commit 15b061bf414cf29fd0d4e0e124e9e2ccb99326b0
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 95fecff296722df4a9938308c3bdb178cb690b7c
|
Subproject commit 6cae20899a26a0f007d19aadf386a8bae9861aeb
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8c163a80a47aa265df3ee2cd55066979617c97e0
|
Subproject commit 95fdebbb772c8cbcab2093afe10136d9890524ae
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7e2ec8305ca9cee44d5b8c47ab32bf92595700dc
|
Subproject commit 8578263c9f7caf7a22bd9364648e218974ee543c
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit a0a499818041feb274b3f81e0403e3ee334938d6
|
Subproject commit a22ef4deb929c6622069290bb340d21b280f300e
|
||||||
1
Tweaks/YTHeaders
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 436024cb4921775b32d514b8c58d8dbcec2bc066
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 2a4282fbdcbd0c8b586a64ad364fbb3ec880f606
|
Subproject commit 5af54ea6bf3aed6a615094fa285669a0e46ece51
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit d68f3866981c735d2ed6dcd7c95ca8a16b7ba585
|
|
||||||
1
Tweaks/YTLite/.gitkeep
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 9bf17bfdede78a236f5d67f780cf77709a9e5fdf
|
Subproject commit 02a5c915a7f4183307812a94759d73f25e7fdba6
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 159da3e9569e8f156a73df80b153c57cccc1dad1
|
Subproject commit 5cb04eeb62386941ef9c7817902364866e2ec7b7
|
||||||
1
Tweaks/YouLoop
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 58f76b1271c1ec05d6513e054f46e4080780a0d9
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7f36c985716839fa9398186cd33ef7e638ed1d5c
|
Subproject commit 63fe2c05fd23a517191645cd450115dc6965e0d8
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit c52a48f9a7750a9c3df642d06d5c0c552e7381de
|
Subproject commit da1e64a037368ac944c356834a7c7727a76e110e
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 29ef6bfb8787780d14469ce718291381b82496d0
|
Subproject commit 5b571fd76ccf4ea5e89cc99e87062cd89713997f
|
||||||
1
Tweaks/YouTimeStamp
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit e89ffe8be85564fe2bfc04345a186c4a02ef456a
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 721d46407f5fe6d389d7a814969a127563d2a3e4
|
Subproject commit 794171d7785bc7f974e278b39ce6e82eb5693273
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit fb2cc71e91bdbfd7a612b1d1bd2b1e875900564f
|
Subproject commit b4e1bc798149d68029c89510948600be2986968b
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit ea4c77ca48711d5583796ca1f0efc2917c19b29f
|
Subproject commit 6690ab42d855ea19d9a24cd99b0375910ea772ca
|
||||||
113
YTLitePlus.h
|
|
@ -6,6 +6,10 @@
|
||||||
#import <sys/utsname.h>
|
#import <sys/utsname.h>
|
||||||
#import <substrate.h>
|
#import <substrate.h>
|
||||||
#import <rootless.h>
|
#import <rootless.h>
|
||||||
|
#import <MediaPlayer/MediaPlayer.h>
|
||||||
|
#import <AVFoundation/AVFoundation.h>
|
||||||
|
#import <AVKit/AVKit.h> // For AVPlayer and AVPlayerViewController
|
||||||
|
#import <MobileCoreServices/MobileCoreServices.h> // For kUTTypeMovie and kUTTypeVideo
|
||||||
|
|
||||||
#import "Tweaks/FLEX/FLEX.h"
|
#import "Tweaks/FLEX/FLEX.h"
|
||||||
#import "Tweaks/YouTubeHeader/YTAppDelegate.h"
|
#import "Tweaks/YouTubeHeader/YTAppDelegate.h"
|
||||||
|
|
@ -33,6 +37,18 @@
|
||||||
#import "Tweaks/YouTubeHeader/YTVideoWithContextNode.h"
|
#import "Tweaks/YouTubeHeader/YTVideoWithContextNode.h"
|
||||||
#import "Tweaks/YouTubeHeader/ELMCellNode.h"
|
#import "Tweaks/YouTubeHeader/ELMCellNode.h"
|
||||||
#import "Tweaks/YouTubeHeader/ELMNodeController.h"
|
#import "Tweaks/YouTubeHeader/ELMNodeController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTMainAppVideoPlayerOverlayViewController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTInlinePlayerBarContainerView.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTWatchViewController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTWatchPullToFullController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTPlayerBarController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTResponder.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTMainAppControlsOverlayView.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTMultiSizeViewController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTWatchLayerViewController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTPageStyleController.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTRightNavigationButtons.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTInlinePlayerBarView.h"
|
||||||
|
|
||||||
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
|
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
|
||||||
#define YT_BUNDLE_ID @"com.google.ios.youtube"
|
#define YT_BUNDLE_ID @"com.google.ios.youtube"
|
||||||
|
|
@ -41,6 +57,30 @@
|
||||||
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
|
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
|
||||||
#define APP_THEME_IDX [[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"]
|
#define APP_THEME_IDX [[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"]
|
||||||
|
|
||||||
|
// Avoid issues with multiple includes of this file
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Helper methods for key retrieval
|
||||||
|
#define IsEnabled(key) [[NSUserDefaults standardUserDefaults] boolForKey:key]
|
||||||
|
#define GetInteger(key) [[NSUserDefaults standardUserDefaults] integerForKey:key] // NSInteger type
|
||||||
|
#define GetFloat(key) [[NSUserDefaults standardUserDefaults] floatForKey:key] // float type
|
||||||
|
|
||||||
|
|
||||||
|
// Player Gesture selected mode enum
|
||||||
|
typedef NS_ENUM(NSUInteger, GestureMode) {
|
||||||
|
GestureModeVolume,
|
||||||
|
GestureModeBrightness,
|
||||||
|
GestureModeSeek,
|
||||||
|
GestureModeDisabled
|
||||||
|
};
|
||||||
|
// Gesture Section Enum
|
||||||
|
typedef NS_ENUM(NSUInteger, GestureSection) {
|
||||||
|
GestureSectionTop,
|
||||||
|
GestureSectionMiddle,
|
||||||
|
GestureSectionBottom,
|
||||||
|
GestureSectionInvalid
|
||||||
|
};
|
||||||
|
|
||||||
// YTSpeed
|
// YTSpeed
|
||||||
@interface YTVarispeedSwitchControllerOption : NSObject
|
@interface YTVarispeedSwitchControllerOption : NSObject
|
||||||
- (id)initWithTitle:(id)title rate:(float)rate;
|
- (id)initWithTitle:(id)title rate:(float)rate;
|
||||||
|
|
@ -61,7 +101,6 @@
|
||||||
- (void)setRate:(float)rate;
|
- (void)setRate:(float)rate;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
// IAmYouTube
|
|
||||||
@interface SSOConfiguration : NSObject
|
@interface SSOConfiguration : NSObject
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
@ -73,9 +112,6 @@
|
||||||
- (void)confirmAlertDidPressConfirm;
|
- (void)confirmAlertDidPressConfirm;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface YTMainAppControlsOverlayView: UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface YTTransportControlsButtonView : UIView
|
@interface YTTransportControlsButtonView : UIView
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
@ -94,17 +130,82 @@
|
||||||
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
|
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
// Hide YouTube Plus incompatibility warning popup - @bhackel
|
||||||
|
@interface HelperVC : UIViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hide Autoplay Mini Preview - @bhackel
|
||||||
|
@interface YTAutonavPreviewView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
// OLED Live Chat - @bhackel
|
||||||
|
@interface YTLUserDefaults : NSUserDefaults
|
||||||
|
+ (void)exportYtlSettings;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hide Home Tab - @bhackel
|
||||||
|
@interface YTPivotBarViewController : UIViewController
|
||||||
|
@property NSString *selectedPivotIdentifier;
|
||||||
|
@property YTIPivotBarRenderer *renderer;
|
||||||
|
- (void)selectItemWithPivotIdentifier:(NSString *)pivotIdentifier;
|
||||||
|
- (void)resetViewControllersCache;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Disable ambient mode & Fullscreen to the Right - @bhackel
|
||||||
|
@interface YTWatchViewController (YTLitePlus) <YTResponder>
|
||||||
|
@property (nonatomic, assign, readwrite, getter=isFullscreen) BOOL fullscreen;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTWatchCinematicContainerController : NSObject
|
||||||
|
@property id <YTResponder> parentResponder;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Player Gestures - @bhackel
|
||||||
|
@interface YTFineScrubberFilmstripView : UIView
|
||||||
|
@end
|
||||||
|
@interface YTFineScrubberFilmstripCollectionView : UICollectionView
|
||||||
|
@end
|
||||||
|
@interface YTPlayerViewController (YTLitePlus) <UIGestureRecognizerDelegate>
|
||||||
|
@property (nonatomic, retain) UIPanGestureRecognizer *YTLitePlusPanGesture;
|
||||||
|
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
|
||||||
|
@end
|
||||||
|
@interface YTWatchFullscreenViewController : YTMultiSizeViewController
|
||||||
|
@end
|
||||||
|
@interface MPVolumeController : NSObject
|
||||||
|
@property (nonatomic, assign, readwrite) float volumeValue;
|
||||||
|
@end
|
||||||
|
@interface YTPlayerBarController (YTLitePlus)
|
||||||
|
- (void)didScrub:(UIPanGestureRecognizer *)gestureRecognizer;
|
||||||
|
- (void)startScrubbing;
|
||||||
|
- (void)didScrubToPoint:(CGPoint)point;
|
||||||
|
- (void)endScrubbingForSeekSource:(int)seekSource;
|
||||||
|
@end
|
||||||
|
@interface YTMainAppVideoPlayerOverlayViewController (YTLitePlus)
|
||||||
|
@property (nonatomic, strong, readwrite) YTPlayerBarController *playerBarController;
|
||||||
|
@end
|
||||||
|
@interface YTInlinePlayerBarContainerView (YTLitePlus)
|
||||||
|
@property UIPanGestureRecognizer *scrubGestureRecognizer;
|
||||||
|
@property (nonatomic, strong, readwrite) YTFineScrubberFilmstripView *fineScrubberFilmstrip;
|
||||||
|
- (CGFloat)scrubXForScrubRange:(CGFloat)scrubRange;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hide Collapse Button - @arichornlover
|
||||||
|
@interface YTMainAppControlsOverlayView (YTLitePlus)
|
||||||
|
@property (nonatomic, assign, readwrite) YTQTMButton *watchCollapseButton;
|
||||||
|
@end
|
||||||
|
|
||||||
// SponsorBlock button in Nav bar
|
// SponsorBlock button in Nav bar
|
||||||
@interface MDCButton : UIButton
|
@interface MDCButton : UIButton
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface YTRightNavigationButtons : UIView
|
@interface YTRightNavigationButtons (YTLitePlus)
|
||||||
@property YTQTMButton *notificationButton;
|
@property YTQTMButton *notificationButton;
|
||||||
@property YTQTMButton *sponsorBlockButton;
|
@property YTQTMButton *sponsorBlockButton;
|
||||||
|
@property YTQTMButton *videoPlayerButton;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
// BigYTMiniPlayer
|
// BigYTMiniPlayer
|
||||||
@interface YTMainAppVideoPlayerOverlayView : UIView
|
@interface YTMainAppVideoPlayerOverlayView (YTLitePlus)
|
||||||
- (UIViewController *)_viewControllerForAncestor;
|
- (UIViewController *)_viewControllerForAncestor;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
|
||||||
985
YTLitePlus.xm
|
Before Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 40 KiB |
BIN
lang/YTLitePlus.bundle/YTLitePlusColored-1024.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
lang/YTLitePlus.bundle/YTLitePlusColored-128.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
lang/YTLitePlus.bundle/YTLitePlusDarkMode-1024.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
lang/YTLitePlus.bundle/YTLitePlusLightMode-1024.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
|
@ -1,114 +1,193 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "نسخة YTLitePlus: %@";
|
"VERSION" = "نسخة YTLitePlus: %@";
|
||||||
"VERSION_CHECK" = "انقر للتحقق من وجود تحديث";
|
"VERSION_CHECK" = "انقر للتحقق من وجود تحديث";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy Settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "خيارات تراكب ضوابط الفيديو";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste Settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "إخفاء اللوحة اليمنى في وضع ملء الشاشة";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "مطلوب إعادة تشغيل التطبيق";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "إخفاء موجات الحر";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق.";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "خيارات تراكب ضوابط الفيديو";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Theme Options";
|
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
||||||
"OLED_DARK_THEME" = "مظهر OLED الداكن (تجريبي)";
|
|
||||||
"OLED_DARK_THEME_2" = "موضوع OLED الداكن";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
||||||
"OLED_DARK_THEME_DESC" = "مظهر مظلم حقيقي. قد لا يعمل بشكل صحيح في بعض الحالات. يلزم إعادة تشغيل التطبيق بعد تمكين / تعطيل هذا الخيار";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "مظهر مظلم قديم";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
||||||
"OLD_DARK_THEME_DESC" = "مظهر YouTube القديم الداكن (مظهر رمادي). مطلوب إعادة تشغيل التطبيق";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "تقصير";
|
"HIDE_RIGHT_PANEL" = "إخفاء اللوحة اليمنى في وضع ملء الشاشة";
|
||||||
"DEFAULT_THEME_DESC" = "المظهر الافتراضي الداكن (إيه) لموقع YouTube. مطلوب إعادة تشغيل التطبيق";
|
"HIDE_RIGHT_PANEL_DESC" = "مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "لوحة مفاتيح OLED (تجريبية)";
|
"HIDE_HEATWAVES" = "إخفاء موجات الحر";
|
||||||
"OLED_KEYBOARD_DESC" = "قد لا يعمل بشكل صحيح في بعض الحالات. مطلوب إعادة تشغيل التطبيق";
|
"HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "وضع التباين المنخفض";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "سيؤدي ذلك إلى ظهور نصوص وأزرار منخفضة التباين تمامًا مثل واجهة YouTube القديمة. مطلوب إعادة تشغيل التطبيق";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"MISCELLANEOUS" = "متنوع";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "إخفاء الواجهة الحديثة (YTNoModernUI)";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "قم بتبديل هذا الخيار لإخفاء أي عنصر حديث أضافه YouTube. يزيل الوضع المحيط والتصميم المستدير والمزيد. مطلوب إعادة تشغيل التطبيق";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "تخطيط iPad";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPAD_LAYOUT_DESC" = "استخدم هذا فقط إذا كنت ترغب في الحصول على iPad Layout على جهاز iPhone / iPod الحالي. مطلوب إعادة تشغيل التطبيق";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "تخطيط iPhone";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPHONE_LAYOUT_DESC" = "استخدم هذا فقط إذا كنت ترغب في الحصول على iPhone Layout على جهاز iPad الحالي. مطلوب إعادة تشغيل التطبيق";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "تأكيد التنبيه قبل الإرسال (YTCastConfirm)";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"CAST_CONFIRM_DESC" = "أظهر تنبيه تأكيد قبل الإرسال لمنع اختطاف التلفزيون عن طريق الخطأ";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"CASTING" = "المسبوكات";
|
|
||||||
"MSG_ARE_YOU_SURE" = "هل أنت متأكد أنك تريد بدء الإرسال؟";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"MSG_YES" = "نعم";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"MSG_CANCEL" = "يلغي";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"NEW_MINIPLAYER_STYLE" = "نمط شريط miniplayer جديد (BigYTMiniPlayer)";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "مطلوب إعادة تشغيل التطبيق";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "إخفاء رسائل المعلومات";
|
||||||
"HIDE_CAST_BUTTON" = "زر "إخفاء الإرسال" ;
|
"HIDE_HUD_MESSAGES_DESC" = "مثلاً: تم إيقاف الترجمة...";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "مطلوب إعادة تشغيل التطبيق";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"YT_SPEED" = "Enable YTSpeed";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "تمكين FLEX";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
||||||
"ENABLE_FLEX_DESC" = "تمكين FLEX للتصحيح (غير مستحسن). اترك هذا إلا إذا كنت تعرف ما تفعله";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "App restart is required.";
|
"OLED_DARK_THEME" = "مظهر OLED الداكن (تجريبي)";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "موضوع OLED الداكن";
|
||||||
|
"OLED_DARK_THEME_DESC" = "مظهر مظلم حقيقي. قد لا يعمل بشكل صحيح في بعض الحالات. يلزم إعادة تشغيل التطبيق بعد تمكين / تعطيل هذا الخيار";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "مظهر مظلم قديم";
|
||||||
|
"OLD_DARK_THEME_DESC" = "مظهر YouTube القديم الداكن (مظهر رمادي). مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "تقصير";
|
||||||
|
"DEFAULT_THEME_DESC" = "المظهر الافتراضي الداكن (إيه) لموقع YouTube. مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "لوحة مفاتيح OLED (تجريبية)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "قد لا يعمل بشكل صحيح في بعض الحالات. مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "وضع التباين المنخفض";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "سيؤدي ذلك إلى ظهور نصوص وأزرار منخفضة التباين تمامًا مثل واجهة YouTube القديمة. مطلوب إعادة تشغيل التطبيق";
|
||||||
|
"LCM_SELECTOR" = "Low contrast mode selection";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "متنوع";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "إخفاء الواجهة الحديثة (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "قم بتبديل هذا الخيار لإخفاء أي عنصر حديث أضافه YouTube. يزيل الوضع المحيط والتصميم المستدير والمزيد. مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "تخطيط iPad";
|
||||||
|
"IPAD_LAYOUT_DESC" = "استخدم هذا فقط إذا كنت ترغب في الحصول على iPad Layout على جهاز iPhone / iPod الحالي. مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "تخطيط iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "استخدم هذا فقط إذا كنت ترغب في الحصول على iPhone Layout على جهاز iPad الحالي. مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "تأكيد التنبيه قبل الإرسال (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "أظهر تنبيه تأكيد قبل الإرسال لمنع اختطاف التلفزيون عن طريق الخطأ";
|
||||||
|
"CASTING" = "المسبوكات";
|
||||||
|
"MSG_ARE_YOU_SURE" = "هل أنت متأكد أنك تريد بدء الإرسال؟";
|
||||||
|
"MSG_YES" = "نعم";
|
||||||
|
"MSG_CANCEL" = "يلغي";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "نمط شريط miniplayer جديد (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "زر "إخفاء الإرسال" ;
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "مطلوب إعادة تشغيل التطبيق";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "تمكين FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "تمكين FLEX للتصحيح (غير مستحسن). اترك هذا إلا إذا كنت تعرف ما تفعله";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "App restart is required.";
|
||||||
|
"CHANGE_APP_ICON" = "Change App Icon";
|
||||||
|
|
||||||
|
// Newly added strings
|
||||||
|
"HIDE_CAST_BUTTON" = "HIDE_CAST_BUTTON";
|
||||||
|
|
|
||||||
190
lang/YTLitePlus.bundle/bg.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,190 @@
|
||||||
|
// Settings
|
||||||
|
"VERSION" = "Версия на YTLitePlus: %@";
|
||||||
|
"VERSION_CHECK" = "Докоснете, за да проверите за актуализация!";
|
||||||
|
|
||||||
|
"COPY_SETTINGS" = "Копиране на настройки";
|
||||||
|
"COPY_SETTINGS_DESC" = "Копиране на всички текущи настройки в клипборда";
|
||||||
|
"PASTE_SETTINGS" = "Поставяне на настройки";
|
||||||
|
"PASTE_SETTINGS_DESC" = "Поставяне на настройки от клипборда и прилагане";
|
||||||
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Експортиране на настройки";
|
||||||
|
"EXPORT_SETTINGS_DESC" = "Експортиране на всички текущи настройки в .txt файл";
|
||||||
|
"IMPORT_SETTINGS" = "Импортиране на настройки";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Натиснете, за да импортирате настройки (.txt)";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Заменете бутоните 'Копиране на настройки' и 'Поставяне на настройки'";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Заменете бутоните с 'Експортиране на настройки' и 'Импортиране на настройки'";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
|
// Player Gestures
|
||||||
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
|
"BRIGHTNESS" = "Brightness";
|
||||||
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
|
"DEADZONE" = "Deadzone";
|
||||||
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
|
"TOP_SECTION" = "Top Section";
|
||||||
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Опции за контрол на видеото";
|
||||||
|
|
||||||
|
"ENABLE_SHARE_BUTTON" = "Активирайте бутона за споделяне";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Активирайте бутона за споделяне в контролите на видеото.";
|
||||||
|
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Активирайте бутона 'Запази в плейлист'";
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Активирайте бутона 'Запази в плейлист' в контролите на видеото.";
|
||||||
|
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Скрийте бутоните с сенчест слой";
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Скрийте сенчестия слой на бутоните за възпроизвеждане/пауза, предишен, следващ, напред и въртене назад.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Скрийте дясната панел в режим на цял екран";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"HIDE_HEATWAVES" = "Скрийте топлинните вълни";
|
||||||
|
"HIDE_HEATWAVES_DESC" = "Скрийте топлинните вълни в видеоплеъра. Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "Деактивирайте Ambient Mode (Портрет)";
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Деактивирайте осветлението около заглавието на видеото";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "Деактивирайте Ambient Mode (Цял екран)";
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Деактивирайте осветлението около видеоплеъра";
|
||||||
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "Цял екран вдясно";
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Винаги влизайте в режим на цял екран с бутона за начало от дясната страна.";
|
||||||
|
|
||||||
|
"SEEK_ANYWHERE" = "Търсене навсякъде жест";
|
||||||
|
"SEEK_ANYWHERE_DESC" = "Задръжте и плъзнете върху видеоплеъра, за да търсите. Трябва да деактивирате YTLite - Задръжте, за да увеличите скоростта";
|
||||||
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "Активирайте докосване за търсене";
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "Скочете навсякъде в видео, като докоснете един път лентата за търсене";
|
||||||
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Деактивирайте жеста за плъзгане до цял екран";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Деактивирайте жеста за плъзгане, за да влезете в вертикален режим на цял екран. Приложимо само за видеа в ландшафтен режим.";
|
||||||
|
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "Винаги използвайте оставащото време";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Променете настройката по подразбиране да показва оставащото време в лентата на плейъра.";
|
||||||
|
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Деактивирайте превключването на оставащото време";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Деактивирайте променянето на изминалото време на оставащото време. Използвайте с друга настройка, за да показвате винаги оставащото време.";
|
||||||
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Деактивирайте ангажиращия слой в режим на цял екран";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Деактивирайте жеста за плъзгане нагоре и списъка с предложени видеа в режим на цял екран";
|
||||||
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Скрийте прегледите на коментари под плейъра";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Скрийте спойлера на коментарите в бутона за коментари";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Скрийте мини прегледа за автоматично възпроизвеждане";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Скрийте малкия прозорец с предложени видеа близо до заглавието в режим на цял екран";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Скрийте съобщенията на HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Скрийте съобщенията, които се показват за определени действия (напр. CC включен/изключен)";
|
||||||
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Скрийте бутона за свиване";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Скрийте бутона за свиване на стрелка, който беше показан в горния ляв ъгъл на видеоплеъра.";
|
||||||
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Скрийте съобщението за скорост";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "Скрийте изскачащото съобщение за 2X скорост при задържане на плейъра";
|
||||||
|
|
||||||
|
// App settings overlay options
|
||||||
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Опции за настройки на приложението";
|
||||||
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Скрийте секцията \"Акаунт\"";
|
||||||
|
"HIDE_AUTOPLAY_SECTION" = "Скрийте секцията \"Автоматично възпроизвеждане\"";
|
||||||
|
"HIDE_TRYNEWFEATURES_SECTION" = "Скрийте секцията \"Опитайте нови функции\"";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Скрийте секцията \"Предпочитания за качество на видеото\"";
|
||||||
|
"HIDE_NOTIFICATIONS_SECTION" = "Скрийте секцията \"Уведомления\"";
|
||||||
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Скрийте секцията \"Управление на цялата история\"";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Скрийте секцията \"Вашите данни в YouTube\"";
|
||||||
|
"HIDE_PRIVACY_SECTION" = "Скрийте секцията \"Поверителност\"";
|
||||||
|
"HIDE_LIVECHAT_SECTION" = "Скрийте секцията \"Жив чат\"";
|
||||||
|
|
||||||
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Опции за тема";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED тъмен режим";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED тъмен режим";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Истински тъмен режим. Може да не работи правилно в някои случаи. Необходим е рестарт на приложението след включване/изключване на тази опция.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Стар тъмен режим";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Старият тъмен режим на YouTube (сив режим). Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "По подразбиране";
|
||||||
|
"DEFAULT_THEME_DESC" = "Тъмен(и) режим(и) по подразбиране на YouTube. Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED клавиатура";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Може да не работи правилно в някои случаи. Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Режим с нисък контраст";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "Тази опция ще намали контраста на текстовете и бутоните, както беше в стария интерфейс на YouTube. Необходим е рестарт на приложението.";
|
||||||
|
"LCM_SELECTOR" = "Избор на режим с нисък контраст";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(По подразбиране) Режим с нисък контраст";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Персонализиран цвят) Режим с нисък контраст";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Разни";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Възпроизвеждане в новините";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Винаги включено";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Само Wi-Fi";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Изключено";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "Нов потребителски интерфейс на настройките";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Използвайте новия групиран потребителски интерфейс за настройки. Може да скрие някои настройки";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Активирайте анимацията при стартиране на YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Скрийте съвременния интерфейс (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "Включете това, за да скриете съвременните елементи, добавени от YouTube. Премахва Ambient Mode, закръглен дизайн и други. Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "Оформление за iPad";
|
||||||
|
"IPAD_LAYOUT_DESC" = "Използвайте това, само ако искате да имате оформлението за iPad на текущия си iPhone/iPod. Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Оформление за iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Използвайте това, само ако искате да имате оформлението за iPhone на текущия си iPad. Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Потвърдете предупреждението преди стрийминг (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Показвайте потвърдително предупреждение преди стрийминг, за да предотвратите случайно преекспониране на TV.";
|
||||||
|
"CASTING" = "Стрийминг";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Сигурни ли сте, че искате да започнете стрийминг?";
|
||||||
|
"MSG_YES" = "Да";
|
||||||
|
"MSG_CANCEL" = "Отказ";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Нов стил на мини плейъра (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Скрийте бутона за стрийминг";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "Необходим е рестарт на приложението.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Скрийте бутона за iSponsorBlock в навигационната лента";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Скрийте таба \"Начало\"";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Бъдете внимателни при скриване на всички табове";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Поправете стрийминг";
|
||||||
|
"FIX_CASTING_DESC" = "Променя някои AB флагове, за да поправи стрийминг";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Активирайте FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Активирайте FLEX за отстраняване на проблеми (не се препоръчва). Оставете това изключено, освен ако не знаете какво правите.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Активирайте Промяна на версията на приложението (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Активирайте това, за да използвате Промяната на версията (Lite) и изберете предпочитаната версия по-долу. Необходим е рестарт на приложението.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Избор на Промяна на версията";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "Необходим е рестарт на приложението.";
|
||||||
|
"CHANGE_APP_ICON" = "Промяна на иконата на приложението";
|
||||||
|
|
@ -1,114 +1,197 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus's version: %@";
|
"VERSION" = "YTLitePlus's version: %@";
|
||||||
"VERSION_CHECK" = "Tippe hier, um nach Updates zu suchen!";
|
"VERSION_CHECK" = "Tippe hier, um nach Updates zu suchen!";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy Settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Overlay-Optionen für Videosteuerungen";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste Settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "Schaltfläche „Teilen“ aktivieren";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Die Schaltfläche "Teilen" im Overlay der Videosteuerung aktivieren.";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Schaltfläche „In Playlist speichern“ aktivieren";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Die Schaltfläche "In Playlist speichern" im Overlay der Videosteuerung aktivieren.";
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Schattenüberlagerung ausblenden";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Blende die Schattenüberlagerung auf den Schaltflächen „Wiedergabe/Pause“, „Zurück“, „Weiter“, „Vorwärts“ & „Rücklauf“ aus.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Rechtes Bedienfeld im Vollbildmodus ausbleden";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "Blende das rechte Bedienfeld im Vollbildmodus aus. Ein Neustart der App ist erforderlich.";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Vorgeschlagenes Video ausblenden";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "(YTNoSuggestedVideo) Entferne das vorgeschlagene Video-Popup, wenn ein Video endet.";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "Hitzewellen ausblenden";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "Versteckt die Hitzewellen im Videoplayer. Ein Neustart der App ist erforderlich.";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "Overlay-Optionen für App-Einstellungen";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Verstecke \"Konto\"";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Verstecke \"Autoplay\"";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Verstecke \"Neue Testfunktionen ausprobieren\"";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Verstecke \"Einstellungen für Videoqualität\"";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Verstecke \"Benachrichtigungen\"";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Verstecke \"Verlauf verwalten\"";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Verstecke \"Meine Daten auf YouTube\"";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_PRIVACY_SECTION" = "Verstecke \"Datenschutz\"";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Verstecke \"Livechat\"";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Overlay-Optionen für Videosteuerungen";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Darstellungs Optionen";
|
"ENABLE_SHARE_BUTTON" = "Schaltfläche \"Teilen\" aktivieren";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Die Schaltfläche \"Teilen\" im Overlay der Videosteuerung aktivieren.";
|
||||||
"OLED_DARK_THEME" = "OLED dunkles Design";
|
|
||||||
"OLED_DARK_THEME_2" = "OLED dunkles Design";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Schaltfläche \"In Playlist speichern\" aktivieren";
|
||||||
"OLED_DARK_THEME_DESC" = "Wirklich dunkles Design. Funktioniert in manchen Fällen nicht richtig. Nachdem du diese Option aktiviert/deaktiviert hast, ist ein Neustart der App erforderlich.";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Die Schaltfläche \"In Playlist speichern\" im Overlay der Videosteuerung aktivieren.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Altes dunkles design";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Schattenüberlagerung ausblenden";
|
||||||
"OLD_DARK_THEME_DESC" = "Das dunkle Design des alten YouTube's (graues Design). Ein Neustart der App ist erforderlich.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Blende die Schattenüberlagerung auf den Schaltflächen \"Wiedergabe/Pause\", \"Zurück\", \"Weiter\", \"Vorwärts\" & \"Rücklauf\" aus.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Standard";
|
"HIDE_RIGHT_PANEL" = "Rechtes Bedienfeld im Vollbildmodus ausbleden";
|
||||||
"DEFAULT_THEME_DESC" = "Dunkles Standardthema von YouTube. Ein Neustart der App ist erforderlich.";
|
"HIDE_RIGHT_PANEL_DESC" = "Blende das rechte Bedienfeld im Vollbildmodus aus. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Tastatur";
|
"HIDE_HEATWAVES" = "Hitzewellen ausblenden";
|
||||||
"OLED_KEYBOARD_DESC" = "Funktioniert in manchen Fällen nicht richtig. Ein Neustart der App ist erforderlich.";
|
"HIDE_HEATWAVES_DESC" = "Versteckt die Hitzewellen im Videoplayer. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Geringer Kontrast Modus";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "Diese Option führt zu einem niedrigen Kontrast der Texte und Schaltflächen, genau wie bei der alten YouTube-Benutzeroberfläche. Ein Neustart der App ist erforderlich.";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
"LCM_SELECTOR" = "Auswahl des Modus für niedrigen Kontrast";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Standard) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Benutzerdefinierte Farbe) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"MISCELLANEOUS" = "Verschiedenes";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube-Startanimation aktivieren";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Moderne Interfaces ausblenden";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "(YTNoModernUI) Schalte diese Option ein, um alle von YouTube hinzugefügten modernen Elemente auszublenden. Entfernt den Umgebungsmodus, das abgerundete Design & mehr. Ein Neustart der App ist erforderlich.";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad Layout";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPAD_LAYOUT_DESC" = "Verwende dies nur, wenn du das iPad-Layout auf deinem aktuellen iPhone/iPod haben möchtest. Ein Neustart der App ist erforderlich.";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone Layout";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPHONE_LAYOUT_DESC" = "Verwende dies nur, wenn du das iPhone-Layout auf deinem aktuellen iPad haben möchtest. Ein Neustart der App ist erforderlich.";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Warnung vor dem Casting";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"CAST_CONFIRM_DESC" = "(YTCastConfirm) Zeige vor dem nutzen von Google-Cast eine Bestätigungswarnung an, um zu verhindern, dass versehentlich auf Fernsehgeräte gestreamt wird.";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Bist du dir sicher, dass du mit dem Casting beginnen möchtest?";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"MSG_YES" = "Ja";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"MSG_CANCEL" = "Abbrechen";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"NEW_MINIPLAYER_STYLE" = "Neuer Mini-Player-Leistenstil";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "(BigYTMiniPlayer) Ein Neustart der App ist erforderlich.";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"STOCK_VOLUME_HUD" = "iOS Lautstärkeanzeige";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "Verwende die iOS Lautstärkeanzeige, wenn du die Lautstärke anpasst.";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUD-Nachrichten ausblenden";
|
||||||
"HIDE_CAST_BUTTON" = "Cast button verstecken";
|
"HIDE_HUD_MESSAGES_DESC" = "z.B.: Untertitel sind aktiviert/deaktiviert, Videoschleife ist an, ...";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Google-Cast Button verstecken. Ein Neustart der App ist erforderlich.";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "iSponsorBlock ausblenden";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "Blende die iSponsorBlock-Schaltfläche in der Navigationsleiste aus";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"YT_SPEED" = "YTSpeed aktivieren";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"YT_SPEED_DESC" = "Aktiviere YTSpeed, um mehr Optionen für die Wiedergabegeschwindigkeit freizuschalten. Ein Neustart der App ist erforderlich.";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "FLEX aktivieren";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Overlay-Optionen für App-Einstellungen";
|
||||||
"ENABLE_FLEX_DESC" = "Aktiviere FLEX zum Debuggen (nicht empfohlen). Lass diese Option deaktiviert, es sei denn, du weißt, was du tust.";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Verstecke \"Konto\"";
|
||||||
"UN_SHORTS" = "Shorts ausblenden (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "Verstecke \"Autoplay\"";
|
||||||
"UN_SHORTS_DESC" = "Entferne die Shorts aus dem YouTube-Feed.";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Verstecke \"Neue Testfunktionen ausprobieren\"";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Verstecke \"Einstellungen für Videoqualität\"";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Community-Beiträge ausblenden";
|
"HIDE_NOTIFICATIONS_SECTION" = "Verstecke \"Benachrichtigungen\"";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Versteckt die Community-Beiträge. Ein Neustart der App ist erforderlich.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Verstecke \"Verlauf verwalten\"";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Verstecke \"Meine Daten auf YouTube\"";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "Verstecke \"Datenschutz\"";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "App-Version-Spoofer aktivieren (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "Verstecke \"Livechat\"";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Aktiviere dies, um den Version-Spoofer (Lite) zu verwenden, und wähle unten deine bevorzugte Version aus. Ein Neustart der App ist erforderlich.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Version-Spoofer-Auswahl";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Darstellungs Optionen";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "Ein Neustart der App ist erforderlich.";
|
"OLED_DARK_THEME" = "OLED dunkles Design";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "OLED dunkles Design";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Wirklich dunkles Design. Funktioniert in manchen Fällen nicht richtig. Nachdem du diese Option aktiviert/deaktiviert hast, ist ein Neustart der App erforderlich.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Altes dunkles design";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Das dunkle Design des alten YouTube's (graues Design). Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Standard";
|
||||||
|
"DEFAULT_THEME_DESC" = "Dunkles Standardthema von YouTube. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Tastatur";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Funktioniert in manchen Fällen nicht richtig. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Geringer Kontrast Modus";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "Diese Option führt zu einem niedrigen Kontrast der Texte und Schaltflächen, genau wie bei der alten YouTube-Benutzeroberfläche. Ein Neustart der App ist erforderlich.";
|
||||||
|
"LCM_SELECTOR" = "Auswahl des Modus für niedrigen Kontrast";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Standard) LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Benutzerdefinierte Farbe) LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Verschiedenes";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube-Startanimation aktivieren";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Moderne Interfaces ausblenden";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "(YTNoModernUI) Schalte diese Option ein, um alle von YouTube hinzugefügten modernen Elemente auszublenden. Entfernt den Umgebungsmodus, das abgerundete Design & mehr. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad Layout";
|
||||||
|
"IPAD_LAYOUT_DESC" = "Verwende dies nur, wenn du das iPad-Layout auf deinem aktuellen iPhone/iPod haben möchtest. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Verwende dies nur, wenn du das iPhone-Layout auf deinem aktuellen iPad haben möchtest. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Warnung vor dem Casting";
|
||||||
|
"CAST_CONFIRM_DESC" = "(YTCastConfirm) Zeige vor dem nutzen von Google-Cast eine Bestätigungswarnung an, um zu verhindern, dass versehentlich auf Fernsehgeräte gestreamt wird.";
|
||||||
|
"CASTING" = "Castings";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Bist du dir sicher, dass du mit dem Casting beginnen möchtest?";
|
||||||
|
"MSG_YES" = "Ja";
|
||||||
|
"MSG_CANCEL" = "Abbrechen";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Neuer Mini-Player-Leistenstil";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "(BigYTMiniPlayer) Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Cast button verstecken";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "Google-Cast Button verstecken. Ein Neustart der App ist erforderlich.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "iSponsorBlock ausblenden";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "Blende die iSponsorBlock-Schaltfläche in der Navigationsleiste aus";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEX aktivieren";
|
||||||
|
"ENABLE_FLEX_DESC" = "Aktiviere FLEX zum Debuggen (nicht empfohlen). Lass diese Option deaktiviert, es sei denn, du weißt, was du tust.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "App-Version-Spoofer aktivieren (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Aktiviere dies, um den Version-Spoofer (Lite) zu verwenden, und wähle unten deine bevorzugte Version aus. Ein Neustart der App ist erforderlich.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Version-Spoofer-Auswahl";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "Ein Neustart der App ist erforderlich.";
|
||||||
|
"CHANGE_APP_ICON" = "App-Symbol ändern";
|
||||||
|
|
||||||
|
// Newly added strings
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "HIDE_SHADOW_OVERLAY_BUTTONS_DESC";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "ENABLE_SHARE_BUTTON_DESC";
|
||||||
|
"ENABLE_SHARE_BUTTON" = "ENABLE_SHARE_BUTTON";
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "ENABLE_SAVE_TO_PLAYLIST_BUTTON";
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC";
|
||||||
|
|
|
||||||
|
|
@ -1,114 +1,190 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus's version: %@";
|
"VERSION" = "YTLitePlus's version: %@";
|
||||||
"VERSION_CHECK" = "Tap to check for update!";
|
"VERSION_CHECK" = "Tap to check for update!";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
"IMPORT_SETTINGS" = "Import settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy settings' & 'Paste settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export settings' and 'Import settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Theme Options";
|
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
||||||
"OLED_DARK_THEME" = "OLED dark theme";
|
|
||||||
"OLED_DARK_THEME_2" = "OLED dark theme";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
||||||
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Old dark theme";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
||||||
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Default";
|
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
||||||
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Keyboard";
|
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
||||||
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
|
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad Layout";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone Layout";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"MSG_YES" = "Yes";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"MSG_CANCEL" = "Cancel";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Hide HUD messages";
|
||||||
"HIDE_CAST_BUTTON" = "Hide Cast button";
|
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"YT_SPEED" = "Enable YTSpeed";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "Enable FLEX";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
||||||
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "App restart is required.";
|
"OLED_DARK_THEME" = "OLED dark theme";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "OLED dark theme";
|
||||||
|
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Old dark theme";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Keyboard";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
||||||
|
"LCM_SELECTOR" = "Low contrast mode selection";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Disable Modern YouTube Interface (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "This reverts the YouTube app to go back to a more traditional design from v17.38.10. This also removes some rounded elements, ambient mode, and other modern features. App restart is required.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad Layout";
|
||||||
|
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
||||||
|
"CASTING" = "Castings";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
||||||
|
"MSG_YES" = "Yes";
|
||||||
|
"MSG_CANCEL" = "Cancel";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Hide Cast button";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "App restart is required.";
|
||||||
|
"CHANGE_APP_ICON" = "Change App Icon";
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,38 @@
|
||||||
"VERSION" = "Versión de YTLitePlus: %@";
|
"VERSION" = "Versión de YTLitePlus: %@";
|
||||||
"VERSION_CHECK" = "Pulse para comprobar si hay actualizaciones.";
|
"VERSION_CHECK" = "Pulse para comprobar si hay actualizaciones.";
|
||||||
|
|
||||||
|
"COPY_SETTINGS" = "Copiar Configuraciones";
|
||||||
|
"COPY_SETTINGS_DESC" = "Copiar todas las configuraciones actuales al portapapeles";
|
||||||
|
"PASTE_SETTINGS" = "Pegar Configuraciones";
|
||||||
|
"PASTE_SETTINGS_DESC" = "Pegar configuraciones desde el portapapeles y aplicar";
|
||||||
|
"PASTE_SETTINGS_ALERT" = "¿Aplicar configuraciones desde el portapapeles?";
|
||||||
|
"EXPORT_SETTINGS" = "Exportar Configuraciones";
|
||||||
|
"EXPORT_SETTINGS_DESC" = "Exportar todas las configuraciones actuales a un archivo .txt";
|
||||||
|
"IMPORT_SETTINGS" = "Importar Configuraciones";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Presiona para importar configuraciones (.txt)";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Reemplazar Botones de 'Copiar Configuraciones' y 'Pegar Configuraciones'";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Reemplaza los botones con 'Exportar Configuraciones' e 'Importar Configuraciones'";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER" = "Reproductor de vídeo (Beta)";
|
||||||
|
"VIDEO_PLAYER_DESC" = "Abrir un vídeo descargado en el reproductor de Apple";
|
||||||
|
|
||||||
|
// Player Gestures
|
||||||
|
"PLAYER_GESTURES_TOGGLE" = "Habilitar Gestos del Reproductor";
|
||||||
|
"VOLUME" = "Volumen";
|
||||||
|
"BRIGHTNESS" = "Brillo";
|
||||||
|
"SEEK" = "Buscar";
|
||||||
|
"DISABLED" = "Deshabilitado";
|
||||||
|
"DEADZONE" = "Zona Muerta";
|
||||||
|
"DEADZONE_DESC" = "Distancia mínima a mover antes de que se reconozca un gesto";
|
||||||
|
"SENSITIVITY" = "Sensibilidad";
|
||||||
|
"SENSITIVITY_DESC" = "Multiplicador en gestos de volumen y brillo";
|
||||||
|
"PLAYER_GESTURES_TITLE" = "Gestos del Reproductor";
|
||||||
|
"PLAYER_GESTURES_DESC" = "Configura los gestos de desplazamiento horizontal para el reproductor";
|
||||||
|
"TOP_SECTION" = "Sección Superior";
|
||||||
|
"MIDDLE_SECTION" = "Sección Media";
|
||||||
|
"BOTTOM_SECTION" = "Sección Inferior";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Habilitar Retroalimentación Háptica";
|
||||||
|
|
||||||
// Video controls overlay options
|
// Video controls overlay options
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opciones de superposición de controles de vídeo";
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opciones de superposición de controles de vídeo";
|
||||||
|
|
||||||
|
|
@ -17,12 +49,51 @@
|
||||||
"HIDE_RIGHT_PANEL" = "Ocultar el panel derecho en modo pantalla completa";
|
"HIDE_RIGHT_PANEL" = "Ocultar el panel derecho en modo pantalla completa";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "Es necesario reiniciar la aplicación.";
|
"HIDE_RIGHT_PANEL_DESC" = "Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Ocultar vídeos sugeridos (YTNoSuggestedVideo)";
|
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Eliminar la ventana emergente de vídeo sugerido al terminar un vídeo";
|
|
||||||
|
|
||||||
"HIDE_HEATWAVES" = "Ocultar Heatwaves";
|
"HIDE_HEATWAVES" = "Ocultar Heatwaves";
|
||||||
"HIDE_HEATWAVES_DESC" = "Oculta las Heatwaves en el reproductor de vídeo. Es necesario reiniciar la aplicación.";
|
"HIDE_HEATWAVES_DESC" = "Oculta las Heatwaves en el reproductor de vídeo. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "Desactivar el modo ambiente (Retrato)";
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Desactivar la iluminación alrededor del título del vídeo";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "Desactivar el modo ambiente (pantalla completa)";
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Desactivar la iluminación que rodea al reproductor de vídeo";
|
||||||
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "Pantalla completa a la derecha";
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Entra siempre en pantalla completa con el botón de inicio a la derecha.";
|
||||||
|
|
||||||
|
"SEEK_ANYWHERE" = "Busca cualquier gesto";
|
||||||
|
"SEEK_ANYWHERE_DESC" = "Mantén pulsado y arrastra en el reproductor de vídeo para buscar. Debe desactivar YTLite - Mantener para acelerar";
|
||||||
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "Activar el toque para buscar";
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "Salta a cualquier parte de un vídeo pulsando una sola vez la barra de búsqueda";
|
||||||
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Desactivar el gesto de pantalla completa";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Desactiva el gesto de arrastrar para entrar en pantalla completa vertical. Solo se aplica a los vídeos apaisados.";
|
||||||
|
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "Utilizar siempre el tiempo restante";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Cambia el valor predeterminado para mostrar el tiempo restante en la barra del reproductor.";
|
||||||
|
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Desactivar alternar tiempo restante";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Desactiva el cambio de tiempo transcurrido a tiempo restante. Utilícelo con otro ajuste para mostrar siempre el tiempo restante.";
|
||||||
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Desactivar la superposición de compromiso a pantalla completa";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Desactivar el gesto de deslizar hacia arriba y la lista de vídeos sugeridos en pantalla completa";
|
||||||
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ocultar vistas previas de comentarios debajo del reproductor";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Ocultar spoilers de comentarios en el botón de comentarios";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ocultar mini vista previa de reproducción automática";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Ocultar la pequeña caja de vídeo sugerido cerca del título en pantalla completa";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ocultar mensajes HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Ejemplo: CC está activado/desactivado, vídeo en bucle está activado,...";
|
||||||
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Ocultar botón de colapso";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Oculta el botón de colapso en forma de flecha que se mostraba en la parte superior izquierda del reproductor de vídeo.";
|
||||||
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Ocultar notificación de velocidad";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "Oculta la notificación de velocidad 2X cuando se mantiene presionado el reproductor";
|
||||||
|
|
||||||
// App settings overlay options
|
// App settings overlay options
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opciones de superposición de los ajustes de la aplicación";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opciones de superposición de los ajustes de la aplicación";
|
||||||
|
|
||||||
|
|
@ -55,12 +126,20 @@
|
||||||
"LOW_CONTRAST_MODE" = "Modo de bajo contraste";
|
"LOW_CONTRAST_MODE" = "Modo de bajo contraste";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "Esta opción bajará el contraste de los textos y botones como en la antigua interfaz de YouTube. Es necesario reiniciar la aplicación.";
|
"LOW_CONTRAST_MODE_DESC" = "Esta opción bajará el contraste de los textos y botones como en la antigua interfaz de YouTube. Es necesario reiniciar la aplicación.";
|
||||||
"LCM_SELECTOR" = "Selección de modo de bajo contraste";
|
"LCM_SELECTOR" = "Selección de modo de bajo contraste";
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Por defecto) LowContrastMode";
|
"DEFAULT_LOWCONTRASTMODE" = "(Por defecto) Modo de bajo contraste";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Color personalizado) LowContrastMode";
|
"CUSTOM_LOWCONTRASTMODE" = "(Color personalizado) Modo de bajo contraste";
|
||||||
|
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Misceláneos";
|
"MISCELLANEOUS" = "Misceláneos";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Reproducción en feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Siempre encendido";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Sólo Wi-Fi";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Desactivado";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "Nueva interfaz de configuración";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Utiliza la nueva interfaz de configuración agrupada. Puede ocultar algunos ajustes";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
|
@ -74,36 +153,33 @@
|
||||||
"IPHONE_LAYOUT_DESC" = "use esto sólo si desea tener el iPhone Layout en su iPad actual. Es necesario reiniciar la aplicación.";
|
"IPHONE_LAYOUT_DESC" = "use esto sólo si desea tener el iPhone Layout en su iPad actual. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirmar alerta antes de emitir (YTCastConfirm)";
|
"CAST_CONFIRM" = "Confirmar alerta antes de emitir (YTCastConfirm)";
|
||||||
"CAST_CONFIRM_DESC" = "Mostrar una alerta de confirmación antes del casting para evitar el secuestro accidental de la TV";
|
"CAST_CONFIRM_DESC" = "Mostrar una alerta de confirmación antes de emitir para evitar el secuestro accidental de la TV";
|
||||||
"CASTING" = "Castings";
|
"CASTING" = "Emitir";
|
||||||
"MSG_ARE_YOU_SURE" = "¿Seguro que quieres empezar el casting?";
|
"MSG_ARE_YOU_SURE" = "¿Seguro que quieres empezar la emisión?";
|
||||||
"MSG_YES" = "Sí";
|
"MSG_YES" = "Sí";
|
||||||
"MSG_CANCEL" = "Cancelar";
|
"MSG_CANCEL" = "Cancelar";
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Nuevo estilo de barra de minirreproductores (BigYTMiniPlayer)";
|
"NEW_MINIPLAYER_STYLE" = "Nuevo estilo de barra de minirreproductores (BigYTMiniPlayer)";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Es necesario reiniciar la aplicación";
|
"NEW_MINIPLAYER_STYLE_DESC" = "Es necesario reiniciar la aplicación";
|
||||||
|
|
||||||
"STOCK_VOLUME_HUD" = "Utilizar el HUD de volumen de acciones de iOS";
|
"HIDE_CAST_BUTTON" = "Ocultar botón Emitir";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
|
||||||
"HIDE_CAST_BUTTON" = "Ocultar botón Cast";
|
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Es necesario reiniciar la aplicación";
|
"HIDE_CAST_BUTTON_DESC" = "Es necesario reiniciar la aplicación";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Botón del reproductor de vídeo";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Mostrar un botón en la barra de navegación para abrir vídeo descargados en el reproductor de Apple";
|
||||||
|
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Ocultar el botón iSponsorBlock en la barra de navegación";
|
"HIDE_SPONSORBLOCK_BUTTON" = "Ocultar el botón iSponsorBlock en la barra de navegación";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
"YT_SPEED" = "Activar YTSpeed";
|
"HIDE_HOME_TAB" = "Ocultar pestaña Inicio";
|
||||||
"YT_SPEED_DESC" = "Activa YTSpeed para tener más opciones de velocidad de reproducción. Es necesario reiniciar la aplicación.";
|
"HIDE_HOME_TAB_DESC" = "Cuidado al ocultar todas las pestañas";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Reparación de emisión";
|
||||||
|
"FIX_CASTING_DESC" = "Cambia algunas banderas AB para fijar la emisión";
|
||||||
|
|
||||||
"ENABLE_FLEX" = "Habilitar FLEX";
|
"ENABLE_FLEX" = "Habilitar FLEX";
|
||||||
"ENABLE_FLEX_DESC" = "Habilitar FLEX para depuración (no recomendado). Déjelo desactivado a menos que sepa lo que está haciendo";
|
"ENABLE_FLEX_DESC" = "Habilitar FLEX para depuración (no recomendado). Déjelo desactivado a menos que sepa lo que está haciendo";
|
||||||
|
|
||||||
"UN_SHORTS" = "Ocultar Shorts (YTUnShorts)";
|
|
||||||
"UN_SHORTS_DESC" = "Quitar los Shorts de YouTube";
|
|
||||||
|
|
||||||
"HIDE_COMMUNITY_POSTS" = "Ocultar publicaciones de la comunidad";
|
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Oculta las publicaciones de la comunidad. Es necesario reiniciar la aplicación.";
|
|
||||||
|
|
||||||
// Version Spoofer
|
// Version Spoofer
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Activar App Version Spoofer (Lite)";
|
"APP_VERSION_SPOOFER_LITE" = "Activar App Version Spoofer (Lite)";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Active esta opción para utilizar Version Spoofer (Lite) y seleccione su versión preferida a continuación. Es necesario reiniciar la aplicación.";
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Active esta opción para utilizar Version Spoofer (Lite) y seleccione su versión preferida a continuación. Es necesario reiniciar la aplicación.";
|
||||||
|
|
@ -111,4 +187,4 @@
|
||||||
|
|
||||||
// Other Localization
|
// Other Localization
|
||||||
"APP_RESTART_DESC" = "Es necesario reiniciar la aplicación.";
|
"APP_RESTART_DESC" = "Es necesario reiniciar la aplicación.";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"CHANGE_APP_ICON" = "Cambiar el icono de la aplicación";
|
||||||
|
|
|
||||||
|
|
@ -1,117 +1,199 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus version : %@";
|
"VERSION" = "YTLitePlus version : %@";
|
||||||
"VERSION_CHECK" = "Appuyez pour vérifier les mises à jour !";
|
"VERSION_CHECK" = "Appuyez pour vérifier les mises à jour !";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy Settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Options de l'overlay des contrôles vidéo";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste Settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "Activer le bouton Partager";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Activer le bouton Partager dans l'overlay des contrôles vidéo.";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Activer le bouton 'Enregistrer dans la liste de lecture'";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Activer le bouton 'Enregistrer dans la liste de lecture' dans l'overlay des contrôles vidéo.";
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Masquer l'overlay sombre";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Masquer l'overlay sombre sur les boutons Lecture/Pause, Précédent, Suivant, Avancer et Retour en arrière.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Masquer le panneau de droite en mode plein écran";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "Le redémarrage de l'application est requis.";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Masquer la vidéo suggérée (YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Supprime le popup de suggestion de vidéo à la fin d'une vidéo";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "Masquer les Heatwaves";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis.";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Masquer la section \"Compte\"";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_DONTEATMYCONTENT_SECTION" = "Masquer la section \"DontEatMyContent\"";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_YOUTUBERETURNDISLIKE_SECTION" = "Masquer la section \"YouTube Return Dislike\"";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_YOUPIP_SECTION" = "Masquer la section \"YouPiP\"";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Masquer la section \"Autoplay\"";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Masquer la section \"Essayer de nouvelles fonctionnalités\"";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Masquer la section \"Préférences de qualité vidéo\"";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Masquer la section \"Notifications\"";
|
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Masquer la section \"Gérer tout l'historique\"";
|
// Video controls overlay options
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Masquer la section \"Vos données dans YouTube\"";
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Options de l'overlay des contrôles vidéo";
|
||||||
"HIDE_PRIVACY_SECTION" = "Masquer la section \"Confidentialité\"";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Masquer la section \"Chat en direct\"";
|
"ENABLE_SHARE_BUTTON" = "Activer le bouton Partager";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Activer le bouton Partager dans l'overlay des contrôles vidéo.";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Options de thème";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Activer le bouton 'Enregistrer dans la liste de lecture'";
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Activer le bouton 'Enregistrer dans la liste de lecture' dans l'overlay des contrôles vidéo.";
|
||||||
"OLED_DARK_THEME" = "Thème sombre OLED";
|
|
||||||
"OLED_DARK_THEME_2" = "Thème sombre OLED";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Masquer l'overlay sombre";
|
||||||
"OLED_DARK_THEME_DESC" = "Vrai thème sombre. Peut ne pas fonctionner correctement dans certains cas. Le redémarrage de l'application est requis après avoir activé/désactivé cette option.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Masquer l'overlay sombre sur les boutons Lecture/Pause, Précédent, Suivant, Avancer et Retour en arrière.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Ancien thème sombre";
|
"HIDE_RIGHT_PANEL" = "Masquer le panneau de droite en mode plein écran";
|
||||||
"OLD_DARK_THEME_DESC" = "Ancien thème sombre de YouTube (thème gris). Le redémarrage de l'application est requis.";
|
"HIDE_RIGHT_PANEL_DESC" = "Le redémarrage de l'application est requis.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Par défaut";
|
"HIDE_HEATWAVES" = "Masquer les Heatwaves";
|
||||||
"DEFAULT_THEME_DESC" = "Thème sombre (plus foncé) par défaut de YouTube. Le redémarrage de l'application est requis.";
|
"HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "Clavier OLED";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"OLED_KEYBOARD_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Le redémarrage de l'application est requis.";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Mode faible contraste";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "Cette option réduira le contraste des textes et des boutons, comme l'ancienne interface YouTube. Le redémarrage de l'application est requis.";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
// Miscellaneous
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"MISCELLANEOUS" = "Divers";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage YouTube";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Masquer l'interface moderne (YTNoModernUI)";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Activez cette option pour masquer tout élément moderne ajouté par YouTube. Supprime le mode Ambiant, le design arrondi et plus encore. Un redémarrage de l'application est requis.";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "Disposition iPad";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPAD_LAYOUT_DESC" = "Utilisez ceci uniquement si vous souhaitez avoir la disposition iPad sur votre iPhone/iPod actuel. Un redémarrage de l'application est requis.";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "Disposition iPhone";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"IPHONE_LAYOUT_DESC" = "Utilisez ceci uniquement si vous souhaitez avoir la disposition iPhone sur votre iPad actuel. Un redémarrage de l'application est requis.";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Alerte de confirmation avant la diffusion (YTCastConfirm)";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"CAST_CONFIRM_DESC" = "Affiche une alerte de confirmation avant la diffusion pour éviter de prendre accidentellement le contrôle de la télévision.";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"CASTING" = "Casting";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Êtes-vous sûr de vouloir commencer à diffuser ?";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"MSG_YES" = "Oui";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"MSG_CANCEL" = "Annuler";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"NEW_MINIPLAYER_STYLE" = "Nouveau style de mini-lecteur (BigYTMiniPlayer)";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Un redémarrage de l'application est requis.";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Masquer les messages de l'ATH";
|
||||||
"STOCK_VOLUME_HUD" = "Utiliser le HUD de volume iOS par défaut";
|
"HIDE_HUD_MESSAGES_DESC" = "Exemple : Les sous-titres sont activés/désactivés, la boucle vidéo est activée,...";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"HIDE_CAST_BUTTON" = "Masquer le bouton Cast";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Un redémarrage de l'application est requis.";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Masquer le bouton iSponsorBlock dans la barre de navigation";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
// App settings overlay options
|
||||||
"YT_SPEED" = "Activer YTSpeed";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application";
|
||||||
"YT_SPEED_DESC" = "Activez YTSpeed pour avoir plus d'options de vitesse de lecture. Un redémarrage de l'application est requis.";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Masquer la section \"Compte\"";
|
||||||
"ENABLE_FLEX" = "Activer FLEX";
|
"HIDE_DONTEATMYCONTENT_SECTION" = "Masquer la section \"DontEatMyContent\"";
|
||||||
"ENABLE_FLEX_DESC" = "Activez FLEX pour le débogage (non recommandé). Laissez cette option désactivée, sauf si vous savez ce que vous faites.";
|
"HIDE_YOUTUBERETURNDISLIKE_SECTION" = "Masquer la section \"YouTube Return Dislike\"";
|
||||||
|
"HIDE_YOUPIP_SECTION" = "Masquer la section \"YouPiP\"";
|
||||||
"UN_SHORTS" = "Masquer les Shorts (YTUnShorts)" ;
|
"HIDE_AUTOPLAY_SECTION" = "Masquer la section \"Autoplay\"";
|
||||||
"UN_SHORTS_DESC" = "Supprimer les Shorts du feed de YouTube" ;
|
"HIDE_TRYNEWFEATURES_SECTION" = "Masquer la section \"Essayer de nouvelles fonctionnalités\"";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Masquer la section \"Préférences de qualité vidéo\"";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Masquer les messages de la communauté";
|
"HIDE_NOTIFICATIONS_SECTION" = "Masquer la section \"Notifications\"";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Masque les messages de la communauté. Le redémarrage de l'application est nécessaire.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Masquer la section \"Gérer tout l'historique\"";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Masquer la section \"Vos données dans YouTube\"";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "Masquer la section \"Confidentialité\"";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Activer le Spoofer de Version de l'Application (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "Masquer la section \"Chat en direct\"";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Activez cette option pour utiliser le Spoofer de Version de l'Application (Lite) et sélectionnez votre version préférée ci-dessous. Un redémarrage de l'application est requis.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Sélectionneur de Spoofer de Version";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Options de thème";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "Un redémarrage de l'application est requis.";
|
"OLED_DARK_THEME" = "Thème sombre OLED";
|
||||||
“CHANGE_APP_ICON" = “Changer l'icône de l'application";
|
"OLED_DARK_THEME_2" = "Thème sombre OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Vrai thème sombre. Peut ne pas fonctionner correctement dans certains cas. Le redémarrage de l'application est requis après avoir activé/désactivé cette option.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Ancien thème sombre";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Ancien thème sombre de YouTube (thème gris). Le redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Par défaut";
|
||||||
|
"DEFAULT_THEME_DESC" = "Thème sombre (plus foncé) par défaut de YouTube. Le redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Clavier OLED";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Le redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Mode faible contraste";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "Cette option réduira le contraste des textes et des boutons, comme l'ancienne interface YouTube. Le redémarrage de l'application est requis.";
|
||||||
|
"LCM_SELECTOR" = "Low contrast mode selection";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Divers";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Masquer l'interface moderne (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "Activez cette option pour masquer tout élément moderne ajouté par YouTube. Supprime le mode Ambiant, le design arrondi et plus encore. Un redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "Disposition iPad";
|
||||||
|
"IPAD_LAYOUT_DESC" = "Utilisez ceci uniquement si vous souhaitez avoir la disposition iPad sur votre iPhone/iPod actuel. Un redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Disposition iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Utilisez ceci uniquement si vous souhaitez avoir la disposition iPhone sur votre iPad actuel. Un redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Alerte de confirmation avant la diffusion (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Affiche une alerte de confirmation avant la diffusion pour éviter de prendre accidentellement le contrôle de la télévision.";
|
||||||
|
"CASTING" = "Casting";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Êtes-vous sûr de vouloir commencer à diffuser ?";
|
||||||
|
"MSG_YES" = "Oui";
|
||||||
|
"MSG_CANCEL" = "Annuler";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nouveau style de mini-lecteur (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Un redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Masquer le bouton Cast";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "Un redémarrage de l'application est requis.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Masquer le bouton iSponsorBlock dans la barre de navigation";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Activer FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Activez FLEX pour le débogage (non recommandé). Laissez cette option désactivée, sauf si vous savez ce que vous faites.";
|
||||||
|
|
||||||
|
"UN_SHORTS" = "Masquer les Shorts (YTUnShorts)" ;
|
||||||
|
"UN_SHORTS_DESC" = "Supprimer les Shorts du feed de YouTube" ;
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Activer le Spoofer de Version de l'Application (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Activez cette option pour utiliser le Spoofer de Version de l'Application (Lite) et sélectionnez votre version préférée ci-dessous. Un redémarrage de l'application est requis.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Sélectionneur de Spoofer de Version";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "Un redémarrage de l'application est requis.";
|
||||||
|
“CHANGE_APP_ICON" = “Changer l'icône de l'application";
|
||||||
|
|
||||||
|
// Newly added strings
|
||||||
|
"CHANGE_APP_ICON" = "CHANGE_APP_ICON";
|
||||||
|
|
|
||||||
|
|
@ -1,114 +1,190 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlusのバージョン: %@";
|
"VERSION" = "YTLitePlusのバージョン: %@";
|
||||||
"VERSION_CHECK" = "タップして更新をチェック!";
|
"VERSION_CHECK" = "タップして更新をチェック!";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "設定をコピー";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "動画コントロールオーバーレイの設定";
|
"COPY_SETTINGS_DESC" = "現在のすべての設定をクリップボードにコピーします";
|
||||||
|
"PASTE_SETTINGS" = "設定を貼り付け";
|
||||||
"ENABLE_SHARE_BUTTON" = "共有ボタンを有効化";
|
"PASTE_SETTINGS_DESC" = "クリップボードから設定を貼り付けて適用します";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "動画コントロールオーバーレイの共有ボタンを有効にします。";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "再生リストに保存ボタンを有効化";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "動画コントロールオーバーレイの「再生リストに保存」ボタンを有効にします。";
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "シャドウオーバーレイボタンを非表示";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "再生/一時停止,前へ/次へ,早送り/巻き戻しボタンのシャドウオーバーレイを非表示にします。";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "フルスクリーンモードで右パネルを非表示";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "アプリの再起動が必要です。";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "おすすめ動画を非表示(YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "動画終了時のおすすめ動画のポップアップを非表示にします。";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "ヒートウェーブを非表示";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "動画プレーヤーのヒートウェーブを非表示にします。アプリの再起動が必要です。";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "アプリの設定オーバーレイの設定";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "「アカウント」を非表示にする";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "「自動再生」を非表示にする";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "「試験運用版の新機能を試す」を非表示にする";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "「動画の画質設定」を非表示にする";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "「通知」を非表示にする";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "「すべての履歴を管理」を非表示にする";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "「YouTubeでのデータ」を非表示にする";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_PRIVACY_SECTION" = "「プライバシー」を非表示にする";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "「チャット」を非表示にする";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "動画コントロールオーバーレイの設定";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "テーマの設定";
|
"ENABLE_SHARE_BUTTON" = "共有ボタンを有効化";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "動画コントロールオーバーレイの共有ボタンを有効にします。";
|
||||||
"OLED_DARK_THEME" = "OLEDダークテーマ(実験的)";
|
|
||||||
"OLED_DARK_THEME_2" = "OLEDダークテーマ";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "再生リストに保存ボタンを有効化";
|
||||||
"OLED_DARK_THEME_DESC" = "真のダークテーマです。\n正しく動作しない場合があります。アプリの再起動が必要です。";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "動画コントロールオーバーレイの「再生リストに保存」ボタンを有効にします。";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "古いダークモード";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "シャドウオーバーレイボタンを非表示";
|
||||||
"OLD_DARK_THEME_DESC" = "以前のダークモードです(グレー) アプリの再起動が必要です。";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "再生/一時停止,前へ/次へ,早送り/巻き戻しボタンのシャドウオーバーレイを非表示にします。";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "通常";
|
"HIDE_RIGHT_PANEL" = "フルスクリーンモードで右パネルを非表示";
|
||||||
"DEFAULT_THEME_DESC" = "通常のダークモードです。アプリの再起動が必要です。";
|
"HIDE_RIGHT_PANEL_DESC" = "アプリの再起動が必要です。";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLEDキーボード(実験的)";
|
"HIDE_HEATWAVES" = "ヒートウェーブを非表示";
|
||||||
"OLED_KEYBOARD_DESC" = "正しく動作しない場合があります。アプリの再起動が必要です。";
|
"HIDE_HEATWAVES_DESC" = "動画プレーヤーのヒートウェーブを非表示にします。アプリの再起動が必要です。";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "低コントラストモード";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "このオプションは、テキストとボタンのコントラストを以前のYouTubeインターフェイスのように低くします。アプリの再起動が必要です。";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
"LCM_SELECTOR" = "低コントラストモードの選択";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "低コントラストモード(デフォルト)";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "低コントラストモード(カスタムカラー)";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"MISCELLANEOUS" = "その他";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時のアニメーションを有効化";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "モダンインターフェイスを非表示 (YTNoModernUI)";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "YouTubeによって追加されたモダンな要素を非表示にします。アンビエントモード,丸みを帯びたデザインなどを削除します。アプリの再起動が必要です。";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPadレイアウト";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPAD_LAYOUT_DESC" = "現在使用しているiPhone/iPodでiPadのレイアウトを使用したい場合にのみ使用して下さい。アプリの再起動が必要です。";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhoneレイアウト";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPHONE_LAYOUT_DESC" = "現在使用しているiPadでiPhoneのレイアウトを使用したい場合にのみ使用して下さい。アプリの再起動が必要です。";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "キャストする前に確認する (YTCastConfirm)";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"CAST_CONFIRM_DESC" = "誤ってテレビにキャストしないように、確認の警告を表示します。";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"CASTING" = "キャスト";
|
|
||||||
"MSG_ARE_YOU_SURE" = "本当にキャストを開始しますか";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"MSG_YES" = "はい";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"MSG_CANCEL" = "いいえ";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "プレーヤー下のコメントプレビューを隠す";
|
||||||
"NEW_MINIPLAYER_STYLE" = "新しいミニプレーヤーバー (BigYTMiniPlayer)";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "プレーヤーの下にあるコメントのプレビューを非表示にします。";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "アプリの再起動が必要です。";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"STOCK_VOLUME_HUD" = "iOSの標準の音量HUDを使用する";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUDメッセージを非表示";
|
||||||
"HIDE_CAST_BUTTON" = "キャストボタンを非表示";
|
"HIDE_HUD_MESSAGES_DESC" = "特定のアクション後に表示されるスナックバーを非表示にします。(例: 字幕がオン/オフになりました など)";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "アプリの再起動が必要です。";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "折りたたみボタンを隠す";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "ナビゲーションバーのiSponsorBlockボタンを非表示";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "プレーヤー左上の折りたたみボタンを非表示にします。";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"YT_SPEED" = "YTSpeedを有効化";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"YT_SPEED_DESC" = "より多くの再生速度を選択できるようになります。アプリの再起動が必要です。";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "FLEXを有効化";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "アプリの設定オーバーレイの設定";
|
||||||
"ENABLE_FLEX_DESC" = "デバッグ用のFLEXを有効化します(推奨しません) \n何をやっているのか分からない場合はオフにしてください。";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "「アカウント」を非表示にする";
|
||||||
"UN_SHORTS" = "ショートを非表示 (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "「自動再生」を非表示にする";
|
||||||
"UN_SHORTS_DESC" = "YouTubeフィードからショート動画を非表示にします。";
|
"HIDE_TRYNEWFEATURES_SECTION" = "「試験運用版の新機能を試す」を非表示にする";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "「動画の画質設定」を非表示にする";
|
||||||
"HIDE_COMMUNITY_POSTS" = "コミュニティを非表示";
|
"HIDE_NOTIFICATIONS_SECTION" = "「通知」を非表示にする";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "コミュニティを非表示にします。アプリの再起動が必要です。";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "「すべての履歴を管理」を非表示にする";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "「YouTubeでのデータ」を非表示にする";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "「プライバシー」を非表示にする";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "アプリのバージョン偽装(Lite)を有効にする";
|
"HIDE_LIVECHAT_SECTION" = "「チャット」を非表示にする";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "バージョン偽装(Lite)を使用するにはこれを有効にし、以下でお好みのバージョンを選択してください。アプリの再起動が必要です。";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "偽装バージョンの選択";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "テーマの設定";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "アプリの再起動が必要です。";
|
"OLED_DARK_THEME" = "OLEDダークテーマ(実験的)";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "OLEDダークテーマ";
|
||||||
|
"OLED_DARK_THEME_DESC" = "真のダークテーマです。\n正しく動作しない場合があります。アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "古いダークモード";
|
||||||
|
"OLD_DARK_THEME_DESC" = "以前のダークモードです(グレー) アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "通常";
|
||||||
|
"DEFAULT_THEME_DESC" = "通常のダークモードです。アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLEDキーボード(実験的)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "正しく動作しない場合があります。アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "低コントラストモード";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "このオプションは、テキストとボタンのコントラストを以前のYouTubeインターフェイスのように低くします。アプリの再起動が必要です。";
|
||||||
|
"LCM_SELECTOR" = "低コントラストモードの選択";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "低コントラストモード(デフォルト)";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "低コントラストモード(カスタムカラー)";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "その他";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時のアニメーションを有効化";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "モダンインターフェイスを非表示 (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "YouTubeによって追加されたモダンな要素を非表示にします。アンビエントモード,丸みを帯びたデザインなどを削除します。アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPadレイアウト";
|
||||||
|
"IPAD_LAYOUT_DESC" = "現在使用しているiPhone/iPodでiPadのレイアウトを使用したい場合にのみ使用して下さい。アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhoneレイアウト";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "現在使用しているiPadでiPhoneのレイアウトを使用したい場合にのみ使用して下さい。アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "キャストする前に確認する (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "誤ってテレビにキャストしないように、確認の警告を表示します。";
|
||||||
|
"CASTING" = "キャスト";
|
||||||
|
"MSG_ARE_YOU_SURE" = "本当にキャストを開始しますか";
|
||||||
|
"MSG_YES" = "はい";
|
||||||
|
"MSG_CANCEL" = "いいえ";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "新しいミニプレーヤーバー (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "キャストボタンを非表示";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "アプリの再起動が必要です。";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "ナビゲーションバーのiSponsorBlockボタンを非表示";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEXを有効化";
|
||||||
|
"ENABLE_FLEX_DESC" = "デバッグ用のFLEXを有効化します(推奨しません) \n何をやっているのか分からない場合はオフにしてください。";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "アプリのバージョン偽装(Lite)を有効にする";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "バージョン偽装(Lite)を使用するにはこれを有効にし、以下でお好みのバージョンを選択してください。アプリの再起動が必要です。";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "偽装バージョンの選択";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "アプリの再起動が必要です。";
|
||||||
|
"CHANGE_APP_ICON" = "Change App Icon";
|
||||||
|
|
|
||||||
190
lang/YTLitePlus.bundle/ko.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,190 @@
|
||||||
|
// Settings
|
||||||
|
"VERSION" = "YTLitePlus 버전: %@";
|
||||||
|
"VERSION_CHECK" = "업데이트를 확인하려면 탭하세요!";
|
||||||
|
|
||||||
|
"COPY_SETTINGS" = "설정 복사";
|
||||||
|
"COPY_SETTINGS_DESC" = "현재 설정을 모두 클립보드에 복사합니다";
|
||||||
|
"PASTE_SETTINGS" = "설정 붙여넣기";
|
||||||
|
"PASTE_SETTINGS_DESC" = "클립보드에서 설정을 붙여넣고 적용합니다";
|
||||||
|
"PASTE_SETTINGS_ALERT" = "클립보드에서 설정을 적용할까요?";
|
||||||
|
"EXPORT_SETTINGS" = "설정 내보내기";
|
||||||
|
"EXPORT_SETTINGS_DESC" = "현재 설정을 .txt 파일로 내보냅니다";
|
||||||
|
"IMPORT_SETTINGS" = "설정 가져오기";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "설정(.txt)을 가져오려면 누르세요";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "'설정 복사' & '설정 붙여넣기' 버튼 교체";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "버튼을 '설정 내보내기'와 '설정 가져오기'로 교체합니다";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER" = "동영상 플레이어 (베타)";
|
||||||
|
"VIDEO_PLAYER_DESC" = "다운로드한 동영상을 Apple 기본 플레이어에서 재생하기";
|
||||||
|
|
||||||
|
// Player Gestures
|
||||||
|
"PLAYER_GESTURES_TOGGLE" = "플레이어 제스처 활성화";
|
||||||
|
"VOLUME" = "음량";
|
||||||
|
"BRIGHTNESS" = "밝기";
|
||||||
|
"SEEK" = "탐색";
|
||||||
|
"DISABLED" = "비활성화됨";
|
||||||
|
"DEADZONE" = "데드존";
|
||||||
|
"DEADZONE_DESC" = "제스처 인식을 위한 최소 이동 거리";
|
||||||
|
"SENSITIVITY" = "민감도";
|
||||||
|
"SENSITIVITY_DESC" = "음량 및 밝기 제스처의 민감도 조정";
|
||||||
|
"PLAYER_GESTURES_TITLE" = "플레이어 제스처";
|
||||||
|
"PLAYER_GESTURES_DESC" = "플레이어 좌우 스와이프 제스처 설정";
|
||||||
|
"TOP_SECTION" = "상단";
|
||||||
|
"MIDDLE_SECTION" = "중앙";
|
||||||
|
"BOTTOM_SECTION" = "하단";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "햅틱 피드백 활성화";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "동영상 컨트롤 오버레이";
|
||||||
|
|
||||||
|
"ENABLE_SHARE_BUTTON" = "공유 버튼 활성화";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "동영상 컨트롤 오버레이에 공유 버튼 활성화";
|
||||||
|
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "'저장' 버튼 활성화";
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "동영상 컨트롤 오버레이에 '저장' 버튼 활성화";
|
||||||
|
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "그림자 오버레이 버튼 숨기기";
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "재생/일시정지, 이전, 다음, 앞으로/뒤로 버튼의 그림자 오버레이를 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "전체화면 모드에서 오른쪽 패널 숨기기";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"HIDE_HEATWAVES" = "히트 웨이브 숨기기";
|
||||||
|
"HIDE_HEATWAVES_DESC" = "동영상 플레이어에서 히트 웨이브를 숨깁니다. 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "앰비언트 모드 비활성화 (세로)";
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "동영상 제목 주변의 조명 효과를 비활성화합니다.";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "앰비언트 모드 비활성화 (전체화면)";
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "동영상 주변의 조명 효과를 비활성화합니다.";
|
||||||
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "오른쪽으로 전체화면 전환";
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "항상 기기 하단이 오른쪽에 있는 전체화면으로 전환합니다.";
|
||||||
|
|
||||||
|
"SEEK_ANYWHERE" = "아무 곳에서나 밀어서 탐색";
|
||||||
|
"SEEK_ANYWHERE_DESC" = "동영상에서 드래그하여 탐색합니다. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "탭해서 탐색 활성화";
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "재생 바에서 한 번만 탭해서 원하는 위치로 이동합니다.";
|
||||||
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "확대하여 전체화면 비활성화";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "확대하여 세로 전체화면으로 전환하는 제스처를 비활성화합니다. 가로 동영상에만 적용됩니다.";
|
||||||
|
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "항상 남은 시간 표시";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "재생 바에서 남은 시간을 기본 설정으로 표시하도록 변경합니다.";
|
||||||
|
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "남은 시간 토글 비활성화";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "경과 시간과 남은 시간을 변경하는 기능을 비활성화합니다. 항상 남은 시간을 표시하는 다른 설정과 함께 사용하세요.";
|
||||||
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "전체화면 오버레이 비활성화";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "전체화면에서 위로 스와이프 제스처와 추천 동영상 목록을 비활성화합니다.";
|
||||||
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "플레이어 하단 댓글 미리보기 숨기기";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "댓글 구역에서 댓글 미리보기를 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "자동 재생 미리보기 숨기기";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "전체화면에서 제목 근처의 추천 동영상 상자를 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUD 메세지 숨기기";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "특정 동작 시 표시되는 메시지를 숨깁니다. (예: 자막 켜짐/꺼짐)";
|
||||||
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "축소 버튼 숨기기";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "동영상 플레이어 왼쪽 상단에 표시된 화살표 축소 버튼을 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_SPEED_TOAST" = "재생 속도 팝업 숨기기";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "플레이어를 홀드할 때 나타나는 2배속 팝업을 숨깁니다.";
|
||||||
|
|
||||||
|
// App settings overlay options
|
||||||
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "설정 오버레이";
|
||||||
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "\"계정 전환\" 숨기기";
|
||||||
|
"HIDE_AUTOPLAY_SECTION" = "\"자동 재생\" 숨기기";
|
||||||
|
"HIDE_TRYNEWFEATURES_SECTION" = "\"새 실험 기능 사용해보기\" 숨기기";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "\"동영상 화질 환경설정\" 숨기기";
|
||||||
|
"HIDE_NOTIFICATIONS_SECTION" = "\"알림\" 숨기기";
|
||||||
|
"HIDE_MANAGEALLHISTORY_SECTION" = "\"전체 기록 관리\" 숨기기";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "\"YouTube의 내 데이터\" 숨기기";
|
||||||
|
"HIDE_PRIVACY_SECTION" = "\"공개 설정\" 숨기기";
|
||||||
|
"HIDE_LIVECHAT_SECTION" = "\"실시간 채팅\" 숨기기";
|
||||||
|
|
||||||
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "어두운 테마 설정";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED 다크 테마";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED 다크 테마";
|
||||||
|
"OLED_DARK_THEME_DESC" = "진정한 다크 테마입니다. 일부 상황에서는 올바르게 작동하지 않을 수 있습니다. 이 옵션을 켜거나 끈 후에는 앱을 재시작해야 합니다.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "구형 어두운 테마";
|
||||||
|
"OLD_DARK_THEME_DESC" = "예전 유튜브의 어두운 테마(회색 테마). 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "기본";
|
||||||
|
"DEFAULT_THEME_DESC" = "유튜브의 기본 어두운 테마입니다. 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED 키보드";
|
||||||
|
"OLED_KEYBOARD_DESC" = "일부 상황에서 올바르게 작동하지 않을 수 있습니다. 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "저대비 모드";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "텍스트와 버튼의 대비를 낮춥니다. 예전 유튜브 인터페이스처럼 보일 수 있습니다. 앱 재시작이 필요합니다.";
|
||||||
|
"LCM_SELECTOR" = "저대비 모드 선택";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(기본) 저대비 모드";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(사용자 지정 색상) 저대비 모드";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "기타";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "피드에서 재생";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "항상 사용";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi 전용";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "사용 안함";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "새로운 설정 UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "새로운 그룹화된 설정 UI를 사용합니다. 일부 설정이 숨겨질 수 있습니다.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "유튜브 시작 애니메이션 활성화";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "새로운 인터페이스 비활성화 (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "17.38.10 이전의 전통적인 디자인으로 되돌립니다. 일부 둥근 요소, 앰비언트 모드 및 새로운 기능도 제거됩니다. 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad 레이아웃";
|
||||||
|
"IPAD_LAYOUT_DESC" = "iPhone/iPod에서 iPad 레이아웃을 사용하려면 이 옵션을 켜세요. 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone 레이아웃";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "iPad에서 iPhone 레이아웃을 사용하려면 이 옵션을 켜세요. 앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "TV로 시청하기 전 확인 (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "실수로 TV에 영상을 띄우지 않도록 시청 전에 확인 메세지를 표시합니다.";
|
||||||
|
"CASTING" = "TV로 시청하기";
|
||||||
|
"MSG_ARE_YOU_SURE" = "TV로 시청하시겠습니까?";
|
||||||
|
"MSG_YES" = "확인";
|
||||||
|
"MSG_CANCEL" = "취소";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "새로운 미니 플레이어 스타일 (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "TV로 시청하기 버튼 숨기기";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "앱 재시작이 필요합니다.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "동영상 플레이어 버튼";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "다운로드한 동영상를 Apple 기본 플레이어에서 열 수 있는 버튼을 네비게이션 바에 표시합니다.";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "네비게이션 바에서 iSponsorBlock 버튼 숨기기";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "홈 탭 숨기기";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "모든 탭을 숨길 때는 주의하세요";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "TV로 시청하기 수정";
|
||||||
|
"FIX_CASTING_DESC" = "일부 AB 플래그를 변경하여 TV로 시청하기 문제를 해결합니다.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEX 활성화";
|
||||||
|
"ENABLE_FLEX_DESC" = "디버깅을 위해 FLEX를 활성화합니다(권장하지 않음). 이 동작에 대해 잘 아는 경우에만 사용하세요.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "앱 버전 변조 활성화 (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "버전 변조(Lite)를 사용하려면 이 옵션을 켜고 아래에서 원하는 버전을 선택하세요. 앱 재시작이 필요합니다.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "버전 변조 선택";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "앱 재시작이 필요합니다.";
|
||||||
|
"CHANGE_APP_ICON" = "앱 아이콘 변경";
|
||||||
|
|
@ -1,114 +1,191 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "Versão do CercubePlus: %@";
|
"VERSION" = "Versão do YTLitePlus: %@";
|
||||||
"VERSION_CHECK" = "Toque para verificar se há atualização!";
|
"VERSION_CHECK" = "Toque para verificar se há atualização!";
|
||||||
|
|
||||||
|
"COPY_SETTINGS" = "Copiar Configurações";
|
||||||
|
"COPY_SETTINGS_DESC" = "Copia todas as configurações atuais para a área de transferência";
|
||||||
|
"PASTE_SETTINGS" = "Colar Configurações";
|
||||||
|
"PASTE_SETTINGS_DESC" = "Cola as configurações da área de transferência e aplica";
|
||||||
|
"PASTE_SETTINGS_ALERT" = "Aplicar configurações da área de transferência?";
|
||||||
|
"EXPORT_SETTINGS" = "Exportar Configurações";
|
||||||
|
"EXPORT_SETTINGS_DESC" = "Exporta todas as configurações atuais para um arquivo .txt";
|
||||||
|
"IMPORT_SETTINGS" = "Importar Configurações";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Pressione para importar as configurações (.txt)";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Substituir os Botões 'Copiar Configurações' e 'Colar Configurações'";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Substitui os Botões 'Exportar Configurações' e 'Importar Configurações'";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER" = "Reprodutor de Vídeo (Beta)";
|
||||||
|
"VIDEO_PLAYER_DESC" = "Abra um vídeo baixado no Reprodutor de video da Apple";
|
||||||
|
|
||||||
|
// Player Gestures
|
||||||
|
"PLAYER_GESTURES_TOGGLE" = "Habilitar Gestos no Reprodutor de video";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
|
"BRIGHTNESS" = "Brilho";
|
||||||
|
"SEEK" = "Busca";
|
||||||
|
"DISABLED" = "Desabilitado";
|
||||||
|
"DEADZONE" = "Zona morta";
|
||||||
|
"DEADZONE_DESC" = "Distância mínima a percorrer antes de um gesto ser reconhecido";
|
||||||
|
"SENSITIVITY" = "Sensibilidade";
|
||||||
|
"SENSITIVITY_DESC" = "Multiplicador em gestos de volume e brilho";
|
||||||
|
"PLAYER_GESTURES_TITLE" = "Gestos do Reprodutor de video";
|
||||||
|
"PLAYER_GESTURES_DESC" = "Configurar gestos panorâmicos horizontal para o player";
|
||||||
|
"TOP_SECTION" = "Seção Superior";
|
||||||
|
"MIDDLE_SECTION" = "Seção do Meio";
|
||||||
|
"BOTTOM_SECTION" = "Seção Inferior";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Habilitar Feedback Tátil";
|
||||||
|
|
||||||
// Video controls overlay options
|
// Video controls overlay options
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opções de Sobreposição de Controles de Vídeo";
|
||||||
|
|
||||||
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
"ENABLE_SHARE_BUTTON" = "Ativar o botão 'Compartilhar'";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
"ENABLE_SHARE_BUTTON_DESC" = "Ativa o botão Compartilhar na sobreposição de controles de vídeo.";
|
||||||
|
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Ativar o botão 'Salvar'";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Ativa o botão 'Salvar' na sobreposição de controles de vídeo.";
|
||||||
|
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ocultar Sombras nos Botões de Sobreposição";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Oculta as sombras nos botões de sobreposição Reproduzir/Pausar, Anterior, Próximo, Avançar e Retroceder.";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
"HIDE_RIGHT_PANEL" = "Ocultar o painel direito no modo de tela cheia";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
"HIDE_RIGHT_PANEL_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
"HIDE_HEATWAVES" = "Ocultar Ondas de calor";
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"HIDE_HEATWAVES_DESC" = "Oculta as Ondas de calor no player de vídeo. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "Desativar Iluminação cinematográfica (Retrato)";
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Desativa a iluminação ao redor do título do vídeo";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "Desativar Iluminação cinematográfica (Tela cheia)";
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Desativa a iluminação ao redor do player de vídeo";
|
||||||
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "Tela cheia para a direita";
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Sempre entre em tela cheia com o botão home no lado direito.";
|
||||||
|
|
||||||
|
"SEEK_ANYWHERE" = "Gesto de Busca em qualquer lugar";
|
||||||
|
"SEEK_ANYWHERE_DESC" = "Segure e arraste o player de vídeo para buscar. Você deve desativar o YTLite - Segurar para velocidade (Hold for speed)";
|
||||||
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "Ativar Toque para Buscar";
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "Vá para qualquer lugar em um vídeo tocando uma vez na barra de busca";
|
||||||
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Desativar gesto de puxar para tela cheia";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Desativa o gesto de arrastar para entrar em tela cheia vertical. Aplica-se apenas a vídeos em paisagem.";
|
||||||
|
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "Sempre usar o tempo restante";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Altera o padrão para mostrar o tempo restante na barra do player.";
|
||||||
|
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Desativar alternar tempo restante";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Desativa a alteração do tempo decorrido para o tempo restante. Use com outra configuração para mostrar sempre o tempo restante.";
|
||||||
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Desativar sobreposição de engajamento em tela cheia";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Desativa o gesto de deslizar para cima e a lista de vídeos sugeridos em tela cheia";
|
||||||
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ocultar Visualizações de comentários sob o player";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Oculta a Prévia de comentário no botão de comentários";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ocultar mini visualização de reprodução automática";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Oculta a pequena caixa de vídeo sugerida perto do título em tela cheia";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ocultar Mensagens do HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Exemplo: Legendas/CC ativadas/desativadas, A repetição do vídeo está ativada,...";
|
||||||
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Ocultar Botão de Recolhimento";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Oculta o botão de seta para recolher que era exibido no canto superior esquerdo do player de vídeo.";
|
||||||
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Ocultar Toast de Velocidade";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "Ocultar o popup de Velocidade 2X ao segurar o player";
|
||||||
|
|
||||||
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
|
||||||
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
|
||||||
|
|
||||||
// App settings overlay options
|
// App settings overlay options
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Configurações do Aplicativo";
|
||||||
|
|
||||||
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
"HIDE_ACCOUNT_SECTION" = "Ocultar a sessão \"Conta\"";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
"HIDE_AUTOPLAY_SECTION" = "Ocultar a sessão \"Reprodução automática\"";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Ocultar a sessão \"Experimente novos recursos\"";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ocultar a sessão \"Preferências de qualidade de vídeo\"";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
"HIDE_NOTIFICATIONS_SECTION" = "Ocultar a sessão \"Notificações\"";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Ocultar a sessão \"Gerencie todo o histórico\"";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ocultar a sessão \"Seus dados no YouTube\"";
|
||||||
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
"HIDE_PRIVACY_SECTION" = "Ocultar a sessão \"Privacidade\"";
|
||||||
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
"HIDE_LIVECHAT_SECTION" = "Ocultar a sessão \"Chat ao vivo\"";
|
||||||
|
|
||||||
// Theme
|
// Theme
|
||||||
"THEME_OPTIONS" = "Theme Options";
|
"THEME_OPTIONS" = "Opções de Temas";
|
||||||
|
|
||||||
"OLED_DARK_THEME" = "OLED dark theme";
|
"OLED_DARK_THEME" = "Modo escuro OLED";
|
||||||
"OLED_DARK_THEME_2" = "OLED dark theme";
|
"OLED_DARK_THEME_2" = "Modo escuro OLED";
|
||||||
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
"OLED_DARK_THEME_DESC" = "Verdadeiro tema escuro. Pode não funcionar corretamente em alguns casos. App restart is required after you enable/disable this option.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Old dark theme";
|
"OLD_DARK_THEME" = "Antigo tema escuro";
|
||||||
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
"OLD_DARK_THEME_DESC" = "Tema escuro do YouTube antigo (tema cinza). A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Default";
|
"DEFAULT_THEME" = "Padrão";
|
||||||
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
"DEFAULT_THEME_DESC" = "Tema escuro padrão do YouTube. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "Teclado OLED";
|
"OLED_KEYBOARD" = "Teclado OLED";
|
||||||
"OLED_KEYBOARD_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária.";
|
"OLED_KEYBOARD_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
"LOW_CONTRAST_MODE" = "Modo de Baixo Contraste";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
"LOW_CONTRAST_MODE_DESC" = "Esta opção terá baixo contraste dos textos e botões, assim como era a antiga interface do YouTube. A reinicialização do app é necessária.";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
"LCM_SELECTOR" = "Seleção do modo de baixo contraste";
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"DEFAULT_LOWCONTRASTMODE" = "(Padrão) LowContrastMode";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"CUSTOM_LOWCONTRASTMODE" = "(Cor Personalizada) LowContrastMode";
|
||||||
|
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"MISCELLANEOUS" = "Diversos";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"PLAYBACK_IN_FEEDS" = "Reprodução nos feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Sempre ativada";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Somente Wi-Fi";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Desativada";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "Nova Interface de Configurações";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Usa a nova Interface de configurações agrupadas. Pode ocultar algumas configurações";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Ative a animação de inicialização do YouTube";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
|
"HIDE_MODERN_INTERFACE" = "Ocultar Interface Moderna (YTNoModernUI)";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
|
"HIDE_MODERN_INTERFACE_DESC" = "Ative esta opção para ocultar qualquer elemento moderno adicionado pelo YouTube. Remove a iluminação cinematogrática, design arredondado e muito mais. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad Layout";
|
"IPAD_LAYOUT" = "Layout do iPad";
|
||||||
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
"IPAD_LAYOUT_DESC" = "Use isso apenas se quiser ter o layout do iPad no seu iPhone/iPod atual. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone Layout";
|
"IPHONE_LAYOUT" = "Layout do iPhone";
|
||||||
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
"IPHONE_LAYOUT_DESC" = "Use isso apenas se quiser ter o layout do iPhone no seu iPad atual. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
"CAST_CONFIRM" = "Alerta de confirmação antes de transmitir (YTCastConfirm)";
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
"CAST_CONFIRM_DESC" = "Mostra um alerta de confirmação antes da transmissão para evitar o sequestro acidental da TV.";
|
||||||
"CASTING" = "Castings";
|
"CASTING" = "Transmissão";
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
"MSG_ARE_YOU_SURE" = "Tem certeza de que deseja começar a transmitir?";
|
||||||
"MSG_YES" = "Yes";
|
"MSG_YES" = "Sim";
|
||||||
"MSG_CANCEL" = "Cancel";
|
"MSG_CANCEL" = "Cancelar";
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Novo estilo de barra de miniplayer (BigYTMiniPlayer)";
|
"NEW_MINIPLAYER_STYLE" = "Novo estilo de barra de miniplayer (BigYTMiniPlayer)";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "A reinicialização do app é necessária.";
|
"NEW_MINIPLAYER_STYLE_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"HIDE_CAST_BUTTON" = "Ocultar o botão Transmitir";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
|
||||||
"HIDE_CAST_BUTTON" = "Ocultar Botão de transmissão";
|
|
||||||
"HIDE_CAST_BUTTON_DESC" = "A reinicialização do app é necessária.";
|
"HIDE_CAST_BUTTON_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
"VIDEO_PLAYER_BUTTON" = "Botão do Reprodutor de Vídeo";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Mostra um botão na barra de navegação para abrir vídeos baixados no Reprodutor de video da Apple";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Ocultar o botão iSponsorBlock na barra de navegação";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
"YT_SPEED" = "Enable YTSpeed";
|
"HIDE_HOME_TAB" = "Ocultar guia Início";
|
||||||
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
|
"HIDE_HOME_TAB_DESC" = "Tenha cuidado ao ocultar todas as guias";
|
||||||
|
|
||||||
"ENABLE_FLEX" = "Enable FLEX";
|
"FIX_CASTING" = "Corrigir Transmissão";
|
||||||
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
"FIX_CASTING_DESC" = "Altera alguns sinalizadores AB para corrigir a transmissão";
|
||||||
|
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"ENABLE_FLEX" = "Ativar FLEX";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"ENABLE_FLEX_DESC" = "Ativa o FLEX para depuração (não recomendado). Deixe isso desligado, a menos que você saiba o que está fazendo.";
|
||||||
|
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
|
||||||
|
|
||||||
// Version Spoofer
|
// Version Spoofer
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
"APP_VERSION_SPOOFER_LITE" = "Ativar Falsificação da Versão do App (Lite)";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Ative isto para usar a Falsificação de Versão (Lite) e selecione sua versão preferida abaixo. A reinicialização do app é necessária.";
|
||||||
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
"VERSION_SPOOFER_TITLE" = "Selecionar Versão Falsa";
|
||||||
|
|
||||||
// Other Localization
|
// Other Localization
|
||||||
"APP_RESTART_DESC" = "App restart is required.";
|
"APP_RESTART_DESC" = "A reinicialização do app é necessária.";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"CHANGE_APP_ICON" = "Mudar o Ícone do Aplicativo";
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,38 @@
|
||||||
"VERSION" = "Versiune YTLitePlus: %@";
|
"VERSION" = "Versiune YTLitePlus: %@";
|
||||||
"VERSION_CHECK" = "Căutați actualizări";
|
"VERSION_CHECK" = "Căutați actualizări";
|
||||||
|
|
||||||
|
"COPY_SETTINGS" = "Copy Settings";
|
||||||
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste Settings";
|
||||||
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
|
// Player Gestures
|
||||||
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
|
"BRIGHTNESS" = "Brightness";
|
||||||
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
|
"DEADZONE" = "Deadzone";
|
||||||
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
|
"TOP_SECTION" = "Top Section";
|
||||||
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
|
|
||||||
// Video controls overlay options
|
// Video controls overlay options
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opțiuni Overlay Controale Video";
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opțiuni Overlay Controale Video";
|
||||||
|
|
||||||
|
|
@ -17,12 +49,51 @@
|
||||||
"HIDE_RIGHT_PANEL" = "Ascunde panoul lateral în modul ecran complet";
|
"HIDE_RIGHT_PANEL" = "Ascunde panoul lateral în modul ecran complet";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "Este necesară repornirea aplicației.";
|
"HIDE_RIGHT_PANEL_DESC" = "Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Ascundere videoclipuri sugerate (YTNoSuggestedVideo)";
|
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Ascunde fereastra de clipuri sugerate care apare după terminarea videoclipului curent.";
|
|
||||||
|
|
||||||
"HIDE_HEATWAVES" = "Ascunde Heatwaves";
|
"HIDE_HEATWAVES" = "Ascunde Heatwaves";
|
||||||
"HIDE_HEATWAVES_DESC" = "Ascundere Heatwaves în player-ul video. Este necesară repornirea aplicației.";
|
"HIDE_HEATWAVES_DESC" = "Ascundere Heatwaves în player-ul video. Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ascundere Mesaje HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Exemplu: Subtitrările sunt activate/dezactivate, Redarea în buclă este activată,...";
|
||||||
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
|
|
||||||
// App settings overlay options
|
// App settings overlay options
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație";
|
||||||
|
|
||||||
|
|
@ -61,6 +132,14 @@
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Diverse";
|
"MISCELLANEOUS" = "Diverse";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
|
@ -83,27 +162,24 @@
|
||||||
"NEW_MINIPLAYER_STYLE" = "Stil nou bară Miniplayer (BigYTMiniPlayer)";
|
"NEW_MINIPLAYER_STYLE" = "Stil nou bară Miniplayer (BigYTMiniPlayer)";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Este necesară repornirea aplicației.";
|
"NEW_MINIPLAYER_STYLE_DESC" = "Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
"STOCK_VOLUME_HUD" = "Utilizare aspect bară volum al iOS-ului";
|
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
|
||||||
"HIDE_CAST_BUTTON" = "Ascundere buton Proiectare";
|
"HIDE_CAST_BUTTON" = "Ascundere buton Proiectare";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Este necesară repornirea aplicației.";
|
"HIDE_CAST_BUTTON_DESC" = "Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Ascundere buton iSponsorBlock în bara de navigație";
|
"HIDE_SPONSORBLOCK_BUTTON" = "Ascundere buton iSponsorBlock în bara de navigație";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
"YT_SPEED" = "Activare YTSpeed";
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
"YT_SPEED_DESC" = "Activați YTSpeed pentru a avea mai multe opțiuni pentru viteza redării. Este necesară repornirea aplicației.";
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
"ENABLE_FLEX" = "Activare FLEX";
|
"ENABLE_FLEX" = "Activare FLEX";
|
||||||
"ENABLE_FLEX_DESC" = "Activați FLEX pentru depanare (nerecomandat). Lăsați această opțiune dezactivată dacă nu știți ce faceți.";
|
"ENABLE_FLEX_DESC" = "Activați FLEX pentru depanare (nerecomandat). Lăsați această opțiune dezactivată dacă nu știți ce faceți.";
|
||||||
|
|
||||||
"UN_SHORTS" = "Ascunde Shorts (YTUnShorts)";
|
|
||||||
"UN_SHORTS_DESC" = "Ascunde Shorts din feed-ul YouTube.";
|
|
||||||
|
|
||||||
"HIDE_COMMUNITY_POSTS" = "Ascunde posturi Comunitate";
|
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Ascunde posturile tip Comunitate. Este necesară repornirea aplicației.";
|
|
||||||
|
|
||||||
// Version Spoofer
|
// Version Spoofer
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Activare Spoofer Versiune Aplicație (Lite)";
|
"APP_VERSION_SPOOFER_LITE" = "Activare Spoofer Versiune Aplicație (Lite)";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Activați pentru a utiliza Version Spoofer (Lite) și alegeți versiunea preferată. Este necesară repornirea aplicației.";
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Activați pentru a utiliza Version Spoofer (Lite) și alegeți versiunea preferată. Este necesară repornirea aplicației.";
|
||||||
|
|
@ -111,4 +187,4 @@
|
||||||
|
|
||||||
// Other Localization
|
// Other Localization
|
||||||
"APP_RESTART_DESC" = "Este necesară repornirea aplicației.";
|
"APP_RESTART_DESC" = "Este necesară repornirea aplicației.";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"CHANGE_APP_ICON" = "Schimbă iconița aplicației";
|
||||||
|
|
|
||||||
|
|
@ -1,114 +1,190 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus's version: %@";
|
"VERSION" = "YTLitePlus's version: %@";
|
||||||
"VERSION_CHECK" = "Tap to check for update!";
|
"VERSION_CHECK" = "Tap to check for update!";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy Settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste Settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Theme Options";
|
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
||||||
"OLED_DARK_THEME" = "OLED dark theme";
|
|
||||||
"OLED_DARK_THEME_2" = "OLED dark theme";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
||||||
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Old dark theme";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
||||||
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Default";
|
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
||||||
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED-клавиатура (Бета)";
|
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
||||||
"OLED_KEYBOARD_DESC" = "Возможно, на некоторых устройствах будет работать криво. Потребуется перезагрузка.";
|
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad Layout";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone Layout";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"MSG_YES" = "Yes";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"MSG_CANCEL" = "Cancel";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"NEW_MINIPLAYER_STYLE" = "Мини-плеер в стиле iPad (BigYTMiniPlayer)";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Потребуется перезагрузка.";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Скрыть сообщения плеера";
|
||||||
"HIDE_CAST_BUTTON" = "Скрыть кнопку «Транслировать»";
|
"HIDE_HUD_MESSAGES_DESC" = "Скрывает надписи YouTube, появляющиеся поверх видео.";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Потребуется перезагрузка.";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"YT_SPEED" = "Enable YTSpeed";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "Enable FLEX";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
||||||
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "App restart is required.";
|
"OLED_DARK_THEME" = "OLED dark theme";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "OLED dark theme";
|
||||||
|
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Old dark theme";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED-клавиатура (Бета)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Возможно, на некоторых устройствах будет работать криво. Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
||||||
|
"LCM_SELECTOR" = "Low contrast mode selection";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad Layout";
|
||||||
|
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
||||||
|
"CASTING" = "Castings";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
||||||
|
"MSG_YES" = "Yes";
|
||||||
|
"MSG_CANCEL" = "Cancel";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Мини-плеер в стиле iPad (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Скрыть кнопку «Транслировать»";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "App restart is required.";
|
||||||
|
"CHANGE_APP_ICON" = "Change App Icon";
|
||||||
|
|
|
||||||
|
|
@ -1,129 +1,205 @@
|
||||||
/* Read me:
|
/* Read me:
|
||||||
- How to translate YTLitePlus (if your language already exists then feel free to check it and/or improve it):
|
- How to translate YTLitePlus (if your language already exists then feel free to check it and/or improve it):
|
||||||
1. Fork YTLitePlus repo
|
1. Fork YTLitePlus repo
|
||||||
2. Duplicate the template.lproj folder, and edit the duplicated folder's name to your <lang_code>.lproj id.
|
2. Duplicate the template.lproj folder, and edit the duplicated folder's name to your <lang_code>.lproj id.
|
||||||
For example: <ru.lproj> for Russia. For more details, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
For example: <ru.lproj> for Russia. For more details, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
||||||
3. Translate each line below after each =
|
3. Translate each line below after each =
|
||||||
4. Open a Pull Request
|
4. Open a Pull Request
|
||||||
|
|
||||||
- You can also add your localization to YTABConfig, YouPiP, YTUHD, Return YouTube Dislike. The process is the same:
|
- You can also add your localization to YTABConfig, YouPiP, YTUHD, Return YouTube Dislike. The process is the same:
|
||||||
https://github.com/PoomSmart/YTABConfig/tree/main/layout/Library/Application%20Support/YTABC.bundle
|
https://github.com/PoomSmart/YTABConfig/tree/main/layout/Library/Application%20Support/YTABC.bundle
|
||||||
https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
|
https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
|
||||||
https://github.com/PoomSmart/YTUHD/tree/master/layout/Library/Application%20Support/YTUHD.bundle
|
https://github.com/PoomSmart/YTUHD/tree/master/layout/Library/Application%20Support/YTUHD.bundle
|
||||||
https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
|
https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus's version: %@";
|
"VERSION" = "YTLitePlus's version: %@";
|
||||||
"VERSION_CHECK" = "Tap to check for update!";
|
"VERSION_CHECK" = "Tap to check for update!";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
"IMPORT_SETTINGS" = "Import settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy settings' & 'Paste settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export settings' and 'Import settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
"BRIGHTNESS" = "Brightness";
|
||||||
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Deadzone";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Theme Options";
|
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
||||||
"OLED_DARK_THEME" = "OLED dark theme";
|
|
||||||
"OLED_DARK_THEME_2" = "OLED dark theme";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
||||||
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Old dark theme";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
||||||
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Default";
|
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
||||||
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Keyboard";
|
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
||||||
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
|
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad Layout";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone Layout";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"MSG_YES" = "Yes";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"MSG_CANCEL" = "Cancel";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Hide HUD messages";
|
||||||
"HIDE_CAST_BUTTON" = "Hide Cast button";
|
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"YT_SPEED" = "Enable YTSpeed";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "Enable FLEX";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
||||||
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "App restart is required.";
|
"OLED_DARK_THEME" = "OLED dark theme";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "OLED dark theme";
|
||||||
|
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Old dark theme";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Keyboard";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
||||||
|
"LCM_SELECTOR" = "Low contrast mode selection";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Disable Modern YouTube Interface (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "This reverts the YouTube app to go back to a more traditional design from v17.38.10. This also removes some rounded elements, ambient mode, and other modern features. App restart is required.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad Layout";
|
||||||
|
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
||||||
|
"CASTING" = "Castings";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
||||||
|
"MSG_YES" = "Yes";
|
||||||
|
"MSG_CANCEL" = "Cancel";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Hide Cast button";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "App restart is required.";
|
||||||
|
"CHANGE_APP_ICON" = "Change App Icon";
|
||||||
|
|
|
||||||
|
|
@ -1,114 +1,190 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus'ın sürümü: %@";
|
"VERSION" = "YTLitePlus'ın sürümü: %@";
|
||||||
"VERSION_CHECK" = "Güncellemeyi kontrol etmek için dokunun!";
|
"VERSION_CHECK" = "Güncelleme kontrolü için dokun!";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Ayarları Kopyala";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
|
"COPY_SETTINGS_DESC" = "Tüm mevcut ayarları panoya kopyala";
|
||||||
|
"PASTE_SETTINGS" = "Ayarları Yapıştır";
|
||||||
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
|
"PASTE_SETTINGS_DESC" = "Panodaki ayarları yapıştır ve uygula";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
|
"PASTE_SETTINGS_ALERT" = "Panodan ayarları uygulamak istiyor musun?";
|
||||||
|
"EXPORT_SETTINGS" = "Ayarları Dışa Aktar";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
|
"EXPORT_SETTINGS_DESC" = "Tüm mevcut ayarları bir .txt dosyasına dışa aktarır";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
|
"IMPORT_SETTINGS" = "Ayarları İçe Aktar";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Ayarları içe aktarmak için basın (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "'Ayarları Kopyala' ve 'Ayarları Yapıştır' Düğmelerini Değiştir";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Düğmeleri 'Ayarları Dışa Aktar' ve 'Ayarları İçe Aktar' ile değiştirir";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
"VIDEO_PLAYER" = "Video Oynatıcı (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
"VIDEO_PLAYER_DESC" = "İndirilen bir videoyu Apple oynatıcısında aç";
|
||||||
|
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
// Player Gestures
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"PLAYER_GESTURES_TOGGLE" = "Oynatıcı Hareketlerini Etkinleştir";
|
||||||
|
"VOLUME" = "Ses";
|
||||||
"HIDE_HEATWAVES" = "Hide Heatwaves";
|
"BRIGHTNESS" = "Parlaklık";
|
||||||
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
|
"SEEK" = "Arama";
|
||||||
|
"DISABLED" = "Devre Dışı";
|
||||||
// App settings overlay options
|
"DEADZONE" = "Ölü Bölge";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
|
"DEADZONE_DESC" = "Bir hareketin tanınması için minimum mesafe";
|
||||||
|
"SENSITIVITY" = "Hassasiyet";
|
||||||
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
|
"SENSITIVITY_DESC" = "Ses ve parlaklık hareketleri için çarpan";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
|
"PLAYER_GESTURES_TITLE" = "Oynatıcı Hareketleri";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
|
"PLAYER_GESTURES_DESC" = "Oynatıcı için yatay kaydırma hareketlerini yapılandır";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
|
"TOP_SECTION" = "Üst Bölüm";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
|
"MIDDLE_SECTION" = "Orta Bölüm";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
|
"BOTTOM_SECTION" = "Alt Bölüm";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Haptik(titreşim) Geri Bildirimi Etkinleştir";
|
||||||
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
|
|
||||||
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Kontrol Seç.";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "Theme Options";
|
"ENABLE_SHARE_BUTTON" = "Paylaş Butonunu Aç";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "Video kontrolünde Paylaş Butonunu aç.";
|
||||||
"OLED_DARK_THEME" = "OLED dark theme";
|
|
||||||
"OLED_DARK_THEME_2" = "OLED dark theme";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "'Listeye Kaydet' Butonunu Aç";
|
||||||
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Video kontrolünde 'Listeye Kaydet' Butonunu aç.";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "Old dark theme";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Gölge Düğmelerini Gizle";
|
||||||
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Oynat/Duraklat, Önceki, Sonraki, İleri/Geri Düğmelerindeki gölgeyi gizle.";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "Default";
|
"HIDE_RIGHT_PANEL" = "Tam ekranda sağ paneli gizle";
|
||||||
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
|
"HIDE_RIGHT_PANEL_DESC" = "Uyg. yeniden başlatılmalı.";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Klavye (Deneysel)";
|
"HIDE_HEATWAVES" = "Sıcak Dalgaları Gizle";
|
||||||
"OLED_KEYBOARD_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Uygulamanın yeniden başlatılması gerekir.";
|
"HIDE_HEATWAVES_DESC" = "Sıcak Dalgaları gizler. Uyg. yeniden başlatılmalı.";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
|
"DISABLE_AMBIENT_PORTRAIT" = "Ortam Modunu Kapat (Dikey)";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Video başlığı çevresindeki aydınlatmayı kapat";
|
||||||
"LCM_SELECTOR" = "Low contrast mode selection";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN" = "Ortam Modunu Kapat (Tam Ekran)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Video oynatıcının çevresindeki aydınlatmayı kapat";
|
||||||
|
|
||||||
// Miscellaneous
|
"FULLSCREEN_TO_THE_RIGHT" = "Tam Ekran Sağda";
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Tam ekrana sağda ev düğmesi ile gir.";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"SEEK_ANYWHERE" = "Her Yerde Ara";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"SEEK_ANYWHERE_DESC" = "Video oynatıcıda basılı tutarak sürükleyin. YTLite - Hızlandırmak için basılı tutmayı kapatmanız gerek.";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
|
"ENABLE_TAP_TO_SEEK" = "Dokunarak Ara";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Arama çubuğuna tek dokunarak videonun herhangi bir yerine git";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad Layout";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Tam ekran çekme hareketini kapat";
|
||||||
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Dikey tam ekrana geçmek için çekme hareketini kapat. Sadece yatay videolar için geçerli.";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone Layout";
|
"ALWAYS_USE_REMAINING_TIME" = "Her zaman kalan süreyi göster";
|
||||||
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Oynatıcı çubuğunda kalan süreyi gösterir.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Kalan zamanı değiştirmeyi kapat";
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Geçen zamanı kalan zamanla değiştirmeyi kapatır.";
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Tam ekranda kaplamayı kapat";
|
||||||
"MSG_YES" = "Yes";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Tam ekranda yukarı kaydırma hareketini ve önerilen videoları kapat";
|
||||||
"MSG_CANCEL" = "Cancel";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Oynatıcının Altındaki Yorum Önizlemelerini Gizle";
|
||||||
"NEW_MINIPLAYER_STYLE" = "Yeni mini oynatıcı çubuğu stili (BigYTMiniPlayer)";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Video oynatıcının altındaki yorum önizlemelerini gizler.";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Otomatik Oynatma Mini Önizlemesini Gizle";
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Tam ekranda başlık yakınındaki küçük önerilen video kutusunu gizle";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUD mesajlarını gizle";
|
||||||
"HIDE_CAST_BUTTON" = "Yayınla düğmesini gizle";
|
"HIDE_HUD_MESSAGES_DESC" = "Belirli işlemler için görüntülenen bildirim çubuklarını gizler (ör. CC açıldı/kapandı)";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Daraltma Düğmesini Gizle";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Video oynatıcıda sol üstte görünen ok ile daraltma düğmesini gizler.";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hız Bildirimini Gizle";
|
||||||
"YT_SPEED" = "Enable YTSpeed";
|
"HIDE_SPEED_TOAST_DESC" = "Oynatıcıya basılı tutarken 2X Hız bildirimini gizle";
|
||||||
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
|
|
||||||
|
// App settings overlay options
|
||||||
"ENABLE_FLEX" = "Enable FLEX";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Uyg. Ayarları Kaplama Seç.";
|
||||||
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "\"Hesap\" Bölümünü Gizle";
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"HIDE_AUTOPLAY_SECTION" = "\"Otomatik Oynatma\" Bölümünü Gizle";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"HIDE_TRYNEWFEATURES_SECTION" = "\"Yeni Özellikler\" Bölümünü Gizle";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "\"Video Kalite\" Bölümünü Gizle";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
"HIDE_NOTIFICATIONS_SECTION" = "\"Bildirimler\" Bölümünü Gizle";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "\"Tüm Geçmişi Yönet\" Bölümünü Gizle";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "\"YouTube Verileriniz\" Bölümünü Gizle";
|
||||||
// Version Spoofer
|
"HIDE_PRIVACY_SECTION" = "\"Gizlilik\" Bölümünü Gizle";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
|
"HIDE_LIVECHAT_SECTION" = "\"Canlı Sohbet\" Bölümünü Gizle";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
|
|
||||||
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "Tema Seç";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "App restart is required.";
|
"OLED_DARK_THEME" = "OLED koyu tema";
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"OLED_DARK_THEME_2" = "OLED koyu tema";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Gerçek koyu tema. Bazı durumlarda düzgün çalışmayabilir. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Eski koyu tema";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Eski YouTube koyu teması. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Varsayılan";
|
||||||
|
"DEFAULT_THEME_DESC" = "YouTube'un varsayılan koyu teması. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Klavye (Deneysel)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "Düşük Kontrast Modu";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "Metinlerin ve düğmelerin kontrastını düşürür. Yeniden başlatılmalı.";
|
||||||
|
"LCM_SELECTOR" = "Düşük kontrast modu seçimi";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Varsayılan) DüşükKontrastModu";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(Özel Renk) DüşükKontrastModu";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "Diğer";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Akışlarda Oto Oynatma";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Her zaman açık";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Yalnızca Wi-Fi";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Kapalı";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "Yeni Ayarlar Arayüzü";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Yeni gruplandırılmış ayarlar arayüzünü kullan. Bazı ayarları gizleyebilir.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube açılış animasyonunu aç";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "Modern Arayüzü Gizle (YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "YouTube'un eklediği Modern Öğeleri gizlemek için aç. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad Düzeni";
|
||||||
|
"IPAD_LAYOUT_DESC" = "Mevcut iPhone/iPod'unuzda iPad Düzenini kullanmak için aç. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Düzeni";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Mevcut iPad'inizde iPhone Düzenini kullanmak için aç. Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Yayın öncesi onay (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "TV'yi yanlışlıkla kontrol etmeyi önlemek için yayın öncesi onay göster.";
|
||||||
|
"CASTING" = "Yayınlar";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Yayın başlatmak istediğinizden emin misiniz?";
|
||||||
|
"MSG_YES" = "Evet";
|
||||||
|
"MSG_CANCEL" = "İptal";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Yeni mini oynatıcı çubuğu (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Yayınla düğmesini gizle";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "Yeniden başlatılmalı.";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Oynatıcı Butonu";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "İndirilen videoları Apple oynatıcısında açmak için gezinme çubuğunda bir buton göster";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Gezinme çubuğunda iSponsorBlock düğmesini gizle";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Ana Sekmeyi Gizle";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Tüm sekmeleri gizlerken dikkatli olun";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Yayınlamayı Düzelt";
|
||||||
|
"FIX_CASTING_DESC" = "Yayınlamayı düzeltmek için bazı ayarları değiştirir";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEX'i Aç";
|
||||||
|
"ENABLE_FLEX_DESC" = "Hata ayıklama için FLEX'i aç (tavsiye edilmez). Ne yaptığınızı bilmiyorsanız kapalı tutun.";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "Uyg. Sürüm Spoofer'ını Aç (Lite)";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Sürüm Spoofer (Lite) kullanmak için açın ve sürümü seçin. Yeniden başlatılmalı.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Sürüm Seçici";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "Uyg. yeniden başlatılmalı.";
|
||||||
|
"CHANGE_APP_ICON" = "Uyg. Simgesini Değiştir";
|
||||||
|
|
|
||||||
|
|
@ -1,205 +1,190 @@
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "Phiên bản của CercubePlus: %@";
|
"VERSION" = "Phiên bản YTLitePlus: %@";
|
||||||
"VERSION_CHECK" = "Nhấn để kiểm tra cập nhật!";
|
"VERSION_CHECK" = "Nhấn để kiểm tra cập nhật!";
|
||||||
|
|
||||||
// Video player options
|
"COPY_SETTINGS" = "Sao chép cài đặt";
|
||||||
"VIDEO_PLAYER_OPTIONS" = "Tùy chọn trình phát video";
|
"COPY_SETTINGS_DESC" = "Sao chép cài đặt hiện tại vào bảng nhớ tạm";
|
||||||
|
"PASTE_SETTINGS" = "Dán cài đặt";
|
||||||
"SNAP_TO_CHAPTER" = "Vô hiệu hóa đính vào chương";
|
"PASTE_SETTINGS_DESC" = "Dán cài đặt từ bảng nhớ tạm và áp dụng";
|
||||||
"SNAP_TO_CHAPTER_DESC" = "Tắt tính năng tự động chuyển sang chương khi tìm kiếm trong video. Khởi động lại ứng dụng là bắt buộc.";
|
"PASTE_SETTINGS_ALERT" = "Áp dụng các cài đặt?";
|
||||||
|
"EXPORT_SETTINGS" = "Xuất cài đặt";
|
||||||
"PINCH_TO_ZOOM" = "Vô hiệu hóa chụm để thu phóng";
|
"EXPORT_SETTINGS_DESC" = "Xuất tất cài đặt hiện tại vào tệp .txt";
|
||||||
"PINCH_TO_ZOOM_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
|
"IMPORT_SETTINGS" = "Nhập cài đặt";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Nhấn để nhập cài đặt (.txt)";
|
||||||
"YT_MINIPLAYER" = "Bật trình phát mini cho tất cả các video trên YouTube";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Thay thế nút 'Sao chép cài đặt' và 'Dán cài đặt'";
|
||||||
"YT_MINIPLAYER_DESC" = "Ví dụ: video dành cho trẻ em";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Thay thế các nút thành 'Xuất cài đặt' và 'Nhập cài đặt'";
|
||||||
|
|
||||||
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
"VIDEO_PLAYER" = "Trình phát video (Beta)";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
"VIDEO_PLAYER_DESC" = "Mở video đã tải xuống trong trình phát Apple";
|
||||||
|
|
||||||
// Video controls overlay options
|
// Player Gestures
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển video";
|
"PLAYER_GESTURES_TOGGLE" = "Bật cử chỉ trình phát";
|
||||||
|
"VOLUME" = "Âm lượng";
|
||||||
"HIDE_CHANNEL_WATERMARK" = "Ẩn hình mờ kênh";
|
"BRIGHTNESS" = "Độ sáng";
|
||||||
"HIDE_CHANNEL_WATERMARK_DESC" = "Ẩn hình mờ của kênh trong lớp phủ điều khiển video. Khởi động lại ứng dụng là bắt buộc.";
|
"SEEK" = "Tua";
|
||||||
|
"DISABLED" = "Vô hiệu hóa";
|
||||||
"RED_PROGRESS_BAR" = "Thanh tiến trình màu đỏ";
|
"DEADZONE" = "Vùng chết";
|
||||||
"RED_PROGRESS_BAR_DESC" = "Mang lại thanh tiến trình màu đỏ. Khởi động lại ứng dụng là bắt buộc.";
|
"DEADZONE_DESC" = "Khoảng cách tối thiểu để nhận diện cử chỉ";
|
||||||
|
"SENSITIVITY" = "Độ nhạy";
|
||||||
"DONT_EAT_MY_CONTENT" = "Ngăn Notch/Đảo trên nội dung video 2:1 (DontEatMyContent)";
|
"SENSITIVITY_DESC" = "Hệ số nhân cho cử chỉ âm lượng và độ sáng";
|
||||||
"DONT_EAT_MY_CONTENT_DESC" = "Ngăn notch/Dynamic Island nghiền ngẫm nội dung video 2:1 trên YouTube. Khởi động lại ứng dụng là bắt buộc.";
|
"PLAYER_GESTURES_TITLE" = "Cử chỉ trình phát";
|
||||||
|
"PLAYER_GESTURES_DESC" = "Cấu hình cử chỉ vuốt ngang cho trình phát";
|
||||||
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
|
"TOP_SECTION" = "Phần trên";
|
||||||
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
|
"MIDDLE_SECTION" = "Phần giữa";
|
||||||
|
"BOTTOM_SECTION" = "Phần dưới";
|
||||||
"HIDE_HEATWAVES" = "Ẩn sóng nhiệt";
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Bật phản hồi xúc giác";
|
||||||
"HIDE_HEATWAVES_DESC" = "Ẩn Sóng nhiệt trong trình phát video. Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
// Video controls overlay options
|
||||||
// Shorts controls overlay options
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Lớp phủ video";
|
||||||
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển quần short";
|
|
||||||
|
"ENABLE_SHARE_BUTTON" = "Bật nút chia sẻ";
|
||||||
"HIDE_SHORTS_CHANNEL_AVATAR" = "Ẩn hình đại diện của kênh Shorts";
|
"ENABLE_SHARE_BUTTON_DESC" = "Thêm nút chia sẻ trong trình phát video.";
|
||||||
"HIDE_SHORTS_CHANNEL_AVATAR_DESC" = "";
|
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Bật nút 'Lưu vào danh sách phát'";
|
||||||
"HIDE_SHORTS_LIKE_BUTTON" = "Ẩn nút thích Shorts";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Thêm nút 'Lưu vào danh sách phát' trong trình phát video.";
|
||||||
"HIDE_SHORTS_LIKE_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ẩn bóng các nút";
|
||||||
"HIDE_SHORTS_DISLIKE_BUTTON" = "Ẩn nút không thích Shorts";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Ẩn bóng các nút Phát/Tạm dừng, Trước/Tiếp theo, Tua tới/Tua lại.";
|
||||||
"HIDE_SHORTS_DISLIKE_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Ẩn bảng bên phải ở chế độ toàn màn hình";
|
||||||
"HIDE_SHORTS_COMMENT_BUTTON" = "Ẩn nút bình luận Shorts";
|
"HIDE_RIGHT_PANEL_DESC" = "Điều nãy sẽ khiến bạn không thể xem nội dung mô tả, bình luận, v.v ở chế độ toàn màn hình. Cần khởi động lại ứng dụng.";
|
||||||
"HIDE_SHORTS_COMMENT_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_HEATWAVES" = "Ẩn sóng nhiệt";
|
||||||
"HIDE_SHORTS_REMIX_BUTTON" = "Ẩn nút phối lại video ngắn";
|
"HIDE_HEATWAVES_DESC" = "Ẩn sóng nhiệt khỏi trình phát video. Cần khởi động lại ứng dụng.";
|
||||||
"HIDE_SHORTS_REMIX_BUTTON_DESC" = "";
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "Tắt chế độ môi trường (Chân dung)";
|
||||||
"HIDE_SHORTS_SHARE_BUTTON" = "Ẩn nút chia sẻ Shorts";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Tắt ánh sáng xung quanh tiêu đề video";
|
||||||
"HIDE_SHORTS_SHARE_BUTTON_DESC" = "";
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "Tắt chế độ môi trường (Toàn màn hình)";
|
||||||
"HIDE_SUBSCRIPTIONS" = "Hide Subscriptions button";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Tắt ánh sáng xung quanh trình phát video";
|
||||||
"HIDE_SUBSCRIPTIONS_DESC" = "Hide Subscriptions button which shows up when paused.";
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "Toàn màn hình bên phải";
|
||||||
"HIDE_SUPER_THANKS" = "Ẩn biểu ngữ Mua hàng Vô cùng cảm ơn";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Luôn vào chế độ toàn màn hình với nút home ở bên phải.";
|
||||||
"HIDE_SUPER_THANKS_DESC" = "Ẩn biểu ngữ Mua hàng Vô cùng cảm ơn trong Shorts.";
|
|
||||||
|
"SEEK_ANYWHERE" = "Tua ở mọi nơi";
|
||||||
"DISABLE_RESUME_TO_SHORTS" = "Vô hiệu hóa sơ yếu lý lịch cho Shorts";
|
"SEEK_ANYWHERE_DESC" = "Giữ và kéo bất kỳ đâu trên trình phát video để tua. Bạn phải tắt tùy chỉnh YTLite - Giữ để tua";
|
||||||
"DISABLE_RESUME_TO_SHORTS_DESC" = "Nếu bạn đóng YouTube khi đang xem các video ngắn, thì các video ngắn đó sẽ không tự động phát vào lần tới khi bạn mở YouTube.";
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "Nhấn để tua";
|
||||||
// Theme
|
"ENABLE_TAP_TO_SEEK_DESC" = "Nhấn một lần vào thanh tua để tua đến bất kỳ vị trí nào trong video";
|
||||||
"THEME_OPTIONS" = "Tùy chọn chủ đề";
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Tắt cử chỉ kéo để vào toàn màn hình";
|
||||||
"OLED_DARK_THEME" = "Chủ đề tối OLED (Thử nghiệm)";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Tắt cử chỉ kéo để vào toàn màn hình dọc. Chỉ áp dụng cho video ngang.";
|
||||||
"OLED_DARK_THEME_2" = "chủ đề tối OLED";
|
|
||||||
"OLED_DARK_THEME_DESC" = "Chủ đề tối thực sự. Có thể không hoạt động chính xác trong một số trường hợp. Cần phải khởi động lại ứng dụng sau khi bạn bật/tắt tùy chọn này.";
|
"ALWAYS_USE_REMAINING_TIME" = "Hiển thị thời gian còn lại";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Luôn hiển thị thời gian còn lại trên thanh trình phát video.";
|
||||||
"OLD_DARK_THEME" = "Chủ đề tối cũ";
|
|
||||||
"OLD_DARK_THEME_DESC" = "Chủ đề tối cũ của YouTube (chủ đề màu xám). Khởi động lại ứng dụng là bắt buộc.";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Tắt chuyển đổi thời gian còn lại";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Tắt chức năng chuyển đổi từ thời gian đã phát sang thời gian còn lại. Sử dụng với cài đặt khác để luôn hiển thị thời gian còn lại.";
|
||||||
"DEFAULT_THEME" = "Vỡ nợ";
|
|
||||||
"DEFAULT_THEME_DESC" = "Chủ đề (er) tối mặc định của YouTube. Khởi động lại ứng dụng là bắt buộc.";
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Tắt lớp phủ tương tác toàn màn hình";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Tắt cử chỉ vuốt lên để xem video gợi ý ở chế độ toàn màn hình";
|
||||||
"OLED_KEYBOARD" = "Bàn phím OLED (Thử nghiệm)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Có thể không hoạt động chính xác trong một số trường hợp. Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ẩn bản xem trước bình luận dưới trình phát";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Ngăn tiết lộ nội dung bình luận trong nút bình luận";
|
||||||
// Customization Options
|
|
||||||
"CUSTOMIZATION_OPTIONS" = "Tùy chọn tùy chỉnh";
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ẩn bản xem trước tự động phát nhỏ";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Ẩn hộp gợi ý video nhỏ gần tiêu đề ở chế độ toàn màn hình";
|
||||||
"HIDE_MODERN_INTERFACE" = "Ẩn giao diện hiện đại (YTNoModernUI)";
|
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "Bật tính năng này để ẩn mọi Thành phần hiện đại do YouTube thêm vào. Loại bỏ Chế độ môi trường xung quanh, Thiết kế bo tròn và hơn thế nữa. Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_HUD_MESSAGES" = "Ẩn thông báo HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Ẩn các thông báo xuất hiện khi thực hiện các hành động (ví dụ: bật/tắt CC)";
|
||||||
"HIDE_YOUTUBE_LOGO" = "Ẩn biểu trưng YouTube";
|
|
||||||
"HIDE_YOUTUBE_LOGO_DESC" = "thao tác này sẽ Ẩn Logo YouTube ở trên cùng bên trái của Giao diện. Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_COLLAPSE_BUTTON" = "Ẩn nút thu gọn";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Ẩn nút thu gọn (mũi tên) xuất hiện ở góc trái trên của trình phát Video.";
|
||||||
"HIDE_TAB_BAR_LABELS" = "Ẩn Nhãn trong Thanh Tab";
|
|
||||||
"HIDE_TAB_BAR_LABELS_DESC" = "điều này sẽ Ẩn tất cả các nhãn trong Thanh tab. Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_SPEED_TOAST" = "Ẩn thông báo tốc độ";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "Ẩn thông báo tốc độ 2X khi giữ trình phát video";
|
||||||
"LOW_CONTRAST_MODE" = "Chế độ tương phản thấp";
|
|
||||||
"LOW_CONTRAST_MODE_DESC" = "điều này sẽ tạo ra các văn bản và nút có độ tương phản thấp giống như Giao diện YouTube cũ. Khởi động lại ứng dụng là bắt buộc.";
|
// App settings overlay options
|
||||||
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "Lớp phủ cài đặt";
|
||||||
"RED_UI" = "Màu đỏ";
|
|
||||||
"RED_UI_DESC" = "Giao diện người dùng màu đỏ (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_ACCOUNT_SECTION" = "Ẩn cài đặt \"Chuyển đổi tài khoản\"";
|
||||||
|
"HIDE_AUTOPLAY_SECTION" = "Ẩn cài đặt \"Tự động phát\"";
|
||||||
"BLUE_UI" = "Giao diện người dùng màu xanh lam";
|
"HIDE_TRYNEWFEATURES_SECTION" = "Ẩn cài đặt \"Thử các tính năng mới\"";
|
||||||
"BLUE_UI_DESC" = "Giao diện người dùng màu xanh lam (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ẩn cài đặt \"Lựa chọn ưu tiên về chất lượng video\"";
|
||||||
|
"HIDE_NOTIFICATIONS_SECTION" = "Ẩn cài đặt \"Thông báo\"";
|
||||||
"GREEN_UI" = "Giao diện xanh";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "Ẩn cài đặt \"Quản lý toàn bộ nhật ký hoạt động\"";
|
||||||
"GREEN_UI_DESC" = "Giao diện người dùng xanh (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ẩn cài đặt \"Dữ liệu của bạn trong YouTube\"";
|
||||||
|
"HIDE_PRIVACY_SECTION" = "Ẩn cài đặt \"Quyền riêng tư\"";
|
||||||
"YELLOW_UI" = "Giao diện người dùng màu vàng";
|
"HIDE_LIVECHAT_SECTION" = "Ẩn cài đặt \"Trò chuyện trực tiếp\"";
|
||||||
"YELLOW_UI_DESC" = "Giao diện người dùng màu vàng (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
// Theme
|
||||||
"ORANGE_UI" = "Giao diện người dùng màu cam";
|
"THEME_OPTIONS" = "Tùy chọn giao diện";
|
||||||
"ORANGE_UI_DESC" = "Giao diện người dùng màu cam (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
"OLED_DARK_THEME" = "Giao diện tối OLED";
|
||||||
"PURPLE_UI" = "Giao diện người dùng màu tím";
|
"OLED_DARK_THEME_2" = "Giao diện tối OLED";
|
||||||
"PURPLE_UI_DESC" = "Giao diện người dùng màu tím (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
"OLED_DARK_THEME_DESC" = "Giao diện tối thực sự. Có thể không hoạt động đúng trong một số trường hợp. Cần khởi động lại ứng dụng sau khi bạn bật/tắt tùy chọn này.";
|
||||||
|
|
||||||
"PINK_UI" = "Giao diện người dùng màu hồng";
|
"OLD_DARK_THEME" = "Giao diện tối cũ";
|
||||||
"PINK_UI_DESC" = "Giao diện người dùng màu hồng (tắt mọi màu giao diện người dùng khác) Khởi động lại ứng dụng là bắt buộc.";
|
"OLD_DARK_THEME_DESC" = "Giao diện tối cũ của YouTube (giao diện xám). Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
// Miscellaneous
|
"DEFAULT_THEME" = "Mặc định";
|
||||||
"MISCELLANEOUS" = "Điều khoản khác";
|
"DEFAULT_THEME_DESC" = "Giao diện mặc định của YouTube. Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Xác nhận cảnh báo trước khi truyền (YTCastConfirm)";
|
"OLED_KEYBOARD" = "Bàn phím OLED";
|
||||||
"CAST_CONFIRM_DESC" = "Hiển thị cảnh báo xác nhận trước khi truyền để tránh vô tình chiếm quyền điều khiển TV.";
|
"OLED_KEYBOARD_DESC" = "Có thể hoạt động không đúng trong một số trường hợp. Cần khởi động lại ứng dụng.";
|
||||||
"CASTING" = "Đúc";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Bạn có chắc chắn muốn bắt đầu truyền không?";
|
"LOW_CONTRAST_MODE" = "Chế độ tương phản thấp";
|
||||||
"MSG_YES" = "Đúng";
|
"LOW_CONTRAST_MODE_DESC" = "Tùy chọn này sẽ giảm tương phản của văn bản và nút giống như giao diện YouTube cũ. Cần khởi động lại ứng dụng.";
|
||||||
"MSG_CANCEL" = "Hủy bỏ";
|
"LCM_SELECTOR" = "Chọn chế độ tương phản thấp";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(Mặc định) Chế độ tương phản thấp";
|
||||||
"DISABLE_HINTS" = "Tắt gợi ý";
|
"CUSTOM_LOWCONTRASTMODE" = "(Màu tùy chỉnh) Chế độ tương phản thấp";
|
||||||
"DISABLE_HINTS_DESC" = "Tắt gợi ý tính năng từ YouTube thường hiển thị khi ứng dụng mới được cài đặt.";
|
|
||||||
|
// Miscellaneous
|
||||||
"ENABLE_FLEX" = "Kích hoạt FLEX";
|
"MISCELLANEOUS" = "Tùy chọn khác";
|
||||||
"ENABLE_FLEX_DESC" = "Bật FLEX để gỡ lỗi (không khuyến nghị). Bỏ qua điều này trừ khi bạn biết những gì bạn đang làm.";
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Phát trong các trang danh sách video";
|
||||||
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Luôn bật";
|
||||||
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Chỉ Wi-Fi";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Tắt";
|
||||||
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
|
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
|
"NEW_SETTINGS_UI" = "Giao diện cài đặt mới";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Nhóm các giao diện cài đặt. Một số cài đặt có thể bị ẩn";
|
||||||
"FIX_GOOGLE_SIGNIN" = "Sửa lỗi Đăng nhập bằng Google (chỉ dành cho người dùng TrollStore)";
|
|
||||||
"FIX_GOOGLE_SIGNIN_DESC" = "Chỉ bật tùy chọn này khi bạn không thể đăng nhập bằng tài khoản Google của mình và ứng dụng đã được cài đặt qua TrollStore. Nếu bạn có thể đăng nhập bình thường, hãy tắt nó đi. Khởi động lại ứng dụng là bắt buộc.";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Hoạt ảnh khởi động YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "Hiển thị hoạt ảnh khi mở YouTube";
|
||||||
"HIDE_CHIP_BAR" = "Ẩn thanh trên";
|
|
||||||
"HIDE_CHIP_BAR_DESC" = "Ẩn thanh trên trong nguồn cấp dữ liệu Trang chủ (Xu hướng, Âm nhạc, Trò chơi...) và nguồn cấp dữ liệu Đăng ký (Tất cả video, Tiếp tục xem...).";
|
"HIDE_MODERN_INTERFACE" = "Giao diện YouTube cũ";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "Đưa giao diện cũ của YouTube trở lại từ phiên bản v17.38.10. Loại bỏ một số yếu tố bo tròn, chế độ môi trường, và các tính năng hiện đại khác. Cần khởi động lại ứng dụng.";
|
||||||
"NEW_MINIPLAYER_STYLE" = "Phong cách thanh người chơi mini mới (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "";
|
"IPAD_LAYOUT" = "Bố cục iPad";
|
||||||
|
"IPAD_LAYOUT_DESC" = "Chỉ sử dụng nếu muốn có bố cục iPad trên iPhone/iPod của mình. Cần khởi động lại ứng dụng.";
|
||||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Thay nút Previous và Next";
|
|
||||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Thay thế nút Trước và Tiếp theo bằng nút Tua đi và Tua lại. Khởi động lại ứng dụng là bắt buộc.";
|
"IPHONE_LAYOUT" = "Bố cục iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Chỉ sử dụng nếu muốn có bố cục iPhone trên iPad của mình. Cần khởi động lại ứng dụng.";
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ẩn nút Trước và Tiếp theo";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ẩn nút Trước đó và Tiếp theo trong lớp phủ điều khiển video.";
|
"CAST_CONFIRM" = "Xác nhận trước khi truyền";
|
||||||
|
"CAST_CONFIRM_DESC" = "Hiển thị thông báo xác nhận trước khi truyền.";
|
||||||
"HIDE_SHORTS_VIDEOS" = "Ẩn video ngắn";
|
"CASTING" = "Truyền";
|
||||||
"HIDE_SHORTS_VIDEOS_DESC" = "Ẩn video ngắn trong Trang chủ, được đề xuất...";
|
"MSG_ARE_YOU_SURE" = "Bạn có chắc chắn muốn bắt đầu truyền không?";
|
||||||
|
"MSG_YES" = "Có";
|
||||||
"HIDE_CERCUBE_BUTTON" = "Ẩn nút Cercube trong thanh Điều hướng";
|
"MSG_CANCEL" = "Không";
|
||||||
"HIDE_CERCUBE_BUTTON_DESC" = "";
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = Trình phát thu nhỏ kiểu mới";
|
||||||
"HIDE_CERCUBE_PIP_BUTTON" = "Ẩn nút PiP của Cercube";
|
"NEW_MINIPLAYER_STYLE_DESC" = "Thay thế trình phát thu nhỏ mặc định thành (BigYTMiniPlayer). Cần khởi động lại ứng dụng.";
|
||||||
"HIDE_CERCUBE_PIP_BUTTON_DESC" = "Ẩn nút PiP của Cercube trong lớp phủ điều khiển video.";
|
|
||||||
|
"HIDE_CAST_BUTTON" = "Ẩn nút truyền";
|
||||||
"HIDE_CERCUBE_DOWNLOAD_BUTTON" = "Ẩn nút Tải xuống của Cercube";
|
"HIDE_CAST_BUTTON_DESC" = "Cần khởi động lại ứng dụng.";
|
||||||
"HIDE_CERCUBE_DOWNLOAD_BUTTON_DESC" = "Tùy chọn ẩn nút Tải xuống của Cercube đã được bật theo mặc định. bởi vì hiện tại bạn không thể tải xuống bất kỳ thứ gì vì Máy chủ tải xuống của Cercube đã biến mất.";
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Nút Trình phát video";
|
||||||
"HIDE_CAST_BUTTON" = "Ẩn nút Truyền";
|
"VIDEO_PLAYER_BUTTON_DESC" = "Hiển thị nút trong thanh điều hướng để mở video đã tải xuống trong trình phát Apple";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "Ẩn nút iSponsorBlock";
|
||||||
"HIDE_HOVER_CARD" = "Ẩn thẻ di chuột trên Màn hình kết thúc (YTNoHoverCards)";
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "Ẩn cài đặt iSponsorBlock trên thanh điều hướng";
|
||||||
"HIDE_HOVER_CARD_DESC" = "Ẩn màn hình kết thúc (hình thu nhỏ) của người tạo ở cuối video.";
|
|
||||||
|
"HIDE_HOME_TAB" = "Ẩn tab Trang chủ";
|
||||||
"HIDE_RIGHT_PANEL" = "Ẩn bảng điều khiển bên phải ở chế độ toàn màn hình";
|
"HIDE_HOME_TAB_DESC" = "Hãy cẩn thận khi ẩn tất cả các tab";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
"FIX_CASTING" = "Sửa truyền";
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Ẩn nút phụ đề";
|
"FIX_CASTING_DESC" = "Thay đổi một số cờ AB để sửa truyền";
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Ẩn nút Phụ đề trong lớp phủ điều khiển video.";
|
|
||||||
|
"ENABLE_FLEX" = "Bật FLEX";
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Ẩn công tắc Tự động phát";
|
"ENABLE_FLEX_DESC" = "Bật FLEX để gỡ lỗi (không khuyến khích). Để tùy chọn này tắt trừ khi bạn biết rõ bạn đang làm gì.";
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ẩn công tắc Tự động phát trong lớp phủ điều khiển video.";
|
|
||||||
|
// Version Spoofer
|
||||||
"AUTO_FULLSCREEN" = "Tự động toàn màn hình(YTAutoFullScreen)";
|
"APP_VERSION_SPOOFER_LITE" = "Giả mạo phiên bản ứng dụng (Lite)";
|
||||||
"AUTO_FULLSCREEN_DESC" = "Tự động phát video ở chế độ toàn màn hình.";
|
"APP_VERSION_SPOOFER_LITE_DESC" = "Bật tính năng này để làm giả phiên bản YouTube (Lite). Chọn phiên bản bạn ưa thích bên dưới. Cần khởi động lại ứng dụng.";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "Chọn phiên bản giả mạo";
|
||||||
"HIDE_HUD_MESSAGES" = "Ẩn tin nhắn HUD";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Ví dụ: Bật/tắt CC, Bật vòng lặp video,...";
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "Cần khởi động lại ứng dụng.";
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Ẩn thẻ Khuyến mại trả phí";
|
"CHANGE_APP_ICON" = "Đổi biểu tượng ứng dụng";
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ẩn thẻ Bao gồm quảng cáo trả phí trong một số video.";
|
|
||||||
|
|
||||||
"HIDE_NOTIFICATION_BUTTON" = "Ẩn nút Thông báo trong thanh Điều hướng";
|
|
||||||
"HIDE_NOTIFICATION_BUTTON_DESC" = "";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Thay thế tab Shorts bằng tab Khám phá (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "Bố cục iPad";
|
|
||||||
"IPAD_LAYOUT_DESC" = "Chỉ sử dụng tùy chọn này nếu bạn muốn tải Bố cục iPad trên iPhone/iPod hiện tại của mình. Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "Bố cục iPhone";
|
|
||||||
"IPHONE_LAYOUT_DESC" = "Chỉ sử dụng tùy chọn này nếu bạn muốn tải Bố cục iPhone trên iPad hiện tại của mình. Khởi động lại ứng dụng là bắt buộc.";
|
|
||||||
|
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
|
||||||
|
|
|
||||||
194
lang/YTLitePlus.bundle/zh_CN.lproj/Localizable.strings
Normal file
|
|
@ -0,0 +1,194 @@
|
||||||
|
// Settings
|
||||||
|
"VERSION" = "YTLitePlus版本: %@";
|
||||||
|
"VERSION_CHECK" = "点击检查更新!";
|
||||||
|
|
||||||
|
"COPY_SETTINGS" = "复制设置";
|
||||||
|
"COPY_SETTINGS_DESC" = "将当前所有设置复制到剪贴板";
|
||||||
|
"PASTE_SETTINGS" = "粘贴设置";
|
||||||
|
"PASTE_SETTINGS_DESC" = "从剪贴板粘贴设置并应用";
|
||||||
|
"PASTE_SETTINGS_ALERT" = "应用剪贴板中的设置?";
|
||||||
|
"EXPORT_SETTINGS" = "导出设置";
|
||||||
|
"EXPORT_SETTINGS_DESC" = "将当前所有设置导出为txt文件";
|
||||||
|
"IMPORT_SETTINGS" = "导入设置";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "从txt文件导入设置";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "替换「复制设置」和「粘贴设置」按钮";
|
||||||
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "将按钮替换为「导出设置」和「导入设置」";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER" = "视频播放器(测试版)";
|
||||||
|
"VIDEO_PLAYER_DESC" = "使用系统自带播放器打开下载的视频";
|
||||||
|
|
||||||
|
// Player Gestures
|
||||||
|
"PLAYER_GESTURES_TOGGLE" = "启用播放器手势";
|
||||||
|
"VOLUME" = "音量";
|
||||||
|
"BRIGHTNESS" = "亮度";
|
||||||
|
"SEEK" = "快进";
|
||||||
|
"DISABLED" = "禁用";
|
||||||
|
"DEADZONE" = "盲区";
|
||||||
|
"DEADZONE_DESC" = "识别手势前需要移动的最小距离";
|
||||||
|
"SENSITIVITY" = "灵敏度";
|
||||||
|
"SENSITIVITY_DESC" = "对音量和亮度手势的倍数";
|
||||||
|
"PLAYER_GESTURES_TITLE" = "播放器手势";
|
||||||
|
"PLAYER_GESTURES_DESC" = "配置播放器的水平滑动手势";
|
||||||
|
"TOP_SECTION" = "顶部区域";
|
||||||
|
"MIDDLE_SECTION" = "中间区域";
|
||||||
|
"BOTTOM_SECTION" = "底部区域";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "启用触觉反馈";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "视频控件覆盖选项";
|
||||||
|
|
||||||
|
"ENABLE_SHARE_BUTTON" = "启用分享按钮";
|
||||||
|
"ENABLE_SHARE_BUTTON_DESC" = "在播放器覆盖按钮区域中启用分享按钮";
|
||||||
|
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "启用「保存到播放列表」按钮";
|
||||||
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "在播放器覆盖按钮区域中启用「保存到播放列表」按钮";
|
||||||
|
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "隐藏按钮阴影效果";
|
||||||
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "隐藏播放/暂停、上一个、下一个、前进和后退按钮上的阴影效果";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "隐藏全屏模式中的右侧面板";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "需要重启应用";
|
||||||
|
|
||||||
|
"HIDE_HEATWAVES" = "隐藏Heatwaves";
|
||||||
|
"HIDE_HEATWAVES_DESC" = "隐藏视频播放器中的Heatwaves,需要重启应用";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT" = "禁用环境模式(纵向)";
|
||||||
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "禁用视频标题周围的光效";
|
||||||
|
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN" = "禁用环境模式(全屏)";
|
||||||
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "禁用视频播放器周围的光效";
|
||||||
|
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT" = "全屏向右";
|
||||||
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "进入全屏时始终使主页按钮在右侧";
|
||||||
|
|
||||||
|
"SEEK_ANYWHERE" = "任意位置快进手势";
|
||||||
|
"SEEK_ANYWHERE_DESC" = "按住并拖动视频播放器以快进,您必须禁用YTLite的「Hold to speed(按住加速)」功能";
|
||||||
|
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "启用点击快进";
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "通过单击进度条跳转到视频的任意位置";
|
||||||
|
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "禁用拉动全屏手势";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "禁用拖动手势进入垂直全屏,仅适用于横向视频";
|
||||||
|
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "始终使用剩余时间";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "将默认设置为在播放器栏中显示剩余时间";
|
||||||
|
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "禁用切换剩余时间";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "禁用将已用时间更改为剩余时间,与其他设置一起使用以始终显示剩余时间";
|
||||||
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "禁用全屏参与覆盖";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "禁用上滑手势和全屏模式中的建议视频列表";
|
||||||
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "隐藏播放器下方的评论预览";
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "隐藏评论按钮中的评论预览";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "隐藏自动播放迷你预览";
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "隐藏全屏模式下标题附近的小型建议视频框";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "隐藏HUD消息";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "隐藏某些操作(如开启/关闭字幕)时显示的通知";
|
||||||
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "隐藏折叠按钮";
|
||||||
|
"HIDE_COLLAPSE_BUTTON_DESC" = "隐藏显示在视频播放器左上角的箭头折叠按钮";
|
||||||
|
|
||||||
|
"HIDE_SPEED_TOAST" = "隐藏速度提示";
|
||||||
|
"HIDE_SPEED_TOAST_DESC" = "隐藏按住播放器时显示的2X速度弹窗";
|
||||||
|
|
||||||
|
// App settings overlay options
|
||||||
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "隐藏设置中的选项";
|
||||||
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "隐藏「帐户」";
|
||||||
|
"HIDE_AUTOPLAY_SECTION" = "隐藏「自动播放」";
|
||||||
|
"HIDE_TRYNEWFEATURES_SECTION" = "隐藏「试用新功能」";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "隐藏「视频画质偏好」";
|
||||||
|
"HIDE_NOTIFICATIONS_SECTION" = "隐藏「通知」";
|
||||||
|
"HIDE_MANAGEALLHISTORY_SECTION" = "隐藏「管理所有历史记录」";
|
||||||
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "隐藏「YouTube个人数据管理」";
|
||||||
|
"HIDE_PRIVACY_SECTION" = "隐藏「隐私设置」";
|
||||||
|
"HIDE_LIVECHAT_SECTION" = "隐藏「实时聊天」";
|
||||||
|
|
||||||
|
// Theme
|
||||||
|
"THEME_OPTIONS" = "主题选项";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED暗色主题";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED暗色主题";
|
||||||
|
"OLED_DARK_THEME_DESC" = "真正的暗色主题,在某些情况下可能无法正常工作,启用/禁用此选项后需要重启应用";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "旧暗色主题";
|
||||||
|
"OLD_DARK_THEME_DESC" = "旧版YouTube的暗色主题(灰色主题),启用后需要重启应用";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "默认";
|
||||||
|
"DEFAULT_THEME_DESC" = "YouTube的默认深色主题,启用后需要重启应用";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED键盘";
|
||||||
|
"OLED_KEYBOARD_DESC" = "在某些情况下可能无法正常工作,启用后需要重启应用";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "低对比度模式";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "此选项将降低文本和按钮的对比度,就像旧的YouTube界面一样,启用后需要重启应用";
|
||||||
|
"LCM_SELECTOR" = "低对比度模式选择";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(默认) 低对比度模式";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(自定义颜色) 低对比度模式";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "其它";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Feeds后台播放";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "始终开启";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "仅限Wi-Fi";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "关闭";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "新的设置界面";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "使用新的分组设置界面,可能会隐藏某些设置";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "启用YouTube启动动画";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "禁用现代YouTube界面(YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "这会将YouTube应用恢复到v17.38.10之前的传统设计,此操作还会移除某些圆角元素、环境模式和其他现代功能,启用后需要重启应用";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad 布局";
|
||||||
|
"IPAD_LAYOUT_DESC" = "仅当您希望在当前的 iPhone/iPod 上使用 iPad 布局时使用,需要重新启动应用程序";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone 布局";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "仅当您希望在当前的 iPad 上使用 iPhone 布局时使用,需要重新启动应用程序";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "投屏前确认警告 (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "投屏前显示确认警告,以防止意外劫持电视";
|
||||||
|
"CASTING" = "投屏";
|
||||||
|
"MSG_ARE_YOU_SURE" = "您确定要开始投屏吗?";
|
||||||
|
"MSG_YES" = "确定";
|
||||||
|
"MSG_CANCEL" = "取消";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "新的迷你播放器样式 (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "需要重新启动应用程序";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "隐藏投屏按钮";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "需要重新启动应用程序";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "视频播放器按钮";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "在导航栏中显示按钮,以便在系统自带播放器中打开已下载的视频";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "隐藏导航栏中的 iSponsorBlock 按钮";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "隐藏首页标签栏";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "隐藏所有标签栏时请小心";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "修复投屏";
|
||||||
|
"FIX_CASTING_DESC" = "更改一些 AB 标志以修复投屏功能";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "启用 FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "启用 FLEX 进行调试(不推荐),除非您了解操作,否则请保持关闭状态";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "修改应用程序版本";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "要修改YouTube版本,请在下方选择您偏好的版本号,重新启动应用程序生效";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "版本选择器";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "需要重新启动应用程序";
|
||||||
|
"CHANGE_APP_ICON" = "更改应用程序图标";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,112 +1,204 @@
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
"VERSION" = "YTLitePlus 版本:%@";
|
"VERSION" = "YTLitePlus 版本:%@";
|
||||||
"VERSION_CHECK" = "檢查更新";
|
"VERSION_CHECK" = "檢查更新";
|
||||||
|
|
||||||
// Video controls overlay options
|
"COPY_SETTINGS" = "Copy Settings";
|
||||||
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "影片區覆蓋按鈕設定";
|
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
|
||||||
|
"PASTE_SETTINGS" = "Paste Settings";
|
||||||
"ENABLE_SHARE_BUTTON" = "顯示分享按鈕";
|
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
|
||||||
"ENABLE_SHARE_BUTTON_DESC" = "在影片覆蓋按鈕區域中顯示分享按鈕";
|
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
|
||||||
|
"EXPORT_SETTINGS" = "Export Settings";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "顯示「儲存至播放清單」按鈕";
|
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
|
||||||
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "在播放器覆蓋按鈕區域中顯示「儲存至播放清單」";
|
"IMPORT_SETTINGS" = "Import Settings";
|
||||||
|
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS" = "停用按鈕影子效果";
|
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
|
||||||
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "隱藏播放/暫停、上一首、下一首、快轉和倒轉按鈕影子。";
|
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
|
||||||
|
|
||||||
"HIDE_RIGHT_PANEL" = "在全螢幕中隱藏右面板";
|
"VIDEO_PLAYER" = "Video Player (Beta)";
|
||||||
"HIDE_RIGHT_PANEL_DESC" = "需要重新啟動應用程式";
|
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
|
||||||
|
|
||||||
"HIDE_HEATWAVES" = "隱藏熱浪";
|
// Player Gestures
|
||||||
"HIDE_HEATWAVES_DESC" = "在播放器中隱藏熱浪";
|
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
|
||||||
|
"VOLUME" = "Volume";
|
||||||
// App settings overlay options
|
"BRIGHTNESS" = "Brightness";
|
||||||
"APP_SETTINGS_OVERLAY_OPTIONS" = "應用程式設定隱藏項目";
|
"SEEK" = "Seek";
|
||||||
|
"DISABLED" = "Disabled";
|
||||||
"HIDE_ACCOUNT_SECTION" = "購買會員與會員資格";
|
"DEADZONE" = "Deadzone";
|
||||||
"HIDE_AUTOPLAY_SECTION" = "自動播放";
|
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
|
||||||
"HIDE_TRYNEWFEATURES_SECTION" = "";
|
"SENSITIVITY" = "Sensitivity";
|
||||||
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "影片畫質偏好設定";
|
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
|
||||||
"HIDE_NOTIFICATIONS_SECTION" = "通知";
|
"PLAYER_GESTURES_TITLE" = "Player Gestures";
|
||||||
"HIDE_MANAGEALLHISTORY_SECTION" = "管理所有紀錄";
|
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
|
||||||
"HIDE_YOURDATAINYOUTUBE_SECTION" = "已連結的應用程式";
|
"TOP_SECTION" = "Top Section";
|
||||||
"HIDE_PRIVACY_SECTION" = "隱私設定";
|
"MIDDLE_SECTION" = "Middle Section";
|
||||||
"HIDE_LIVECHAT_SECTION" = "聊天室";
|
"BOTTOM_SECTION" = "Bottom Section";
|
||||||
|
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
|
||||||
// Theme
|
|
||||||
"THEME_OPTIONS" = "外觀";
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "影片區覆蓋按鈕設定";
|
||||||
"OLED_DARK_THEME" = "OLED 暗黑主題";
|
|
||||||
"OLED_DARK_THEME_2" = "OLED 暗黑主題";
|
"ENABLE_SHARE_BUTTON" = "顯示分享按鈕";
|
||||||
"OLED_DARK_THEME_DESC" = "全黑主題。此功能不穩定。重新啟動應用程式以套用變更。";
|
"ENABLE_SHARE_BUTTON_DESC" = "在影片覆蓋按鈕區域中顯示分享按鈕";
|
||||||
|
|
||||||
"OLD_DARK_THEME" = "懷舊亮灰主題";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "顯示「儲存至播放清單」按鈕";
|
||||||
"OLD_DARK_THEME_DESC" = "YouTube 亮灰懷舊暗黑主題。重新啟動應用程式以套用變更。";
|
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "在播放器覆蓋按鈕區域中顯示「儲存至播放清單」";
|
||||||
|
|
||||||
"DEFAULT_THEME" = "預設主題";
|
"HIDE_SHADOW_OVERLAY_BUTTONS" = "停用按鈕影子效果";
|
||||||
"DEFAULT_THEME_DESC" = "";
|
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "隱藏播放/暫停、上一首、下一首、快轉和倒轉按鈕影子。";
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED 鍵盤";
|
"HIDE_RIGHT_PANEL" = "在全螢幕中隱藏右面板";
|
||||||
"OLED_KEYBOARD_DESC" = "此功能不穩定。重新啟動應用程式以套用變更。";
|
"HIDE_RIGHT_PANEL_DESC" = "需要重新啟動應用程式";
|
||||||
|
|
||||||
"LOW_CONTRAST_MODE" = "低對比模式";
|
"HIDE_HEATWAVES" = "隱藏熱浪";
|
||||||
"LOW_CONTRAST_MODE_DESC" = "模擬舊式 YouTube。重新啟動應用程式以套用變更。";
|
"HIDE_HEATWAVES_DESC" = "在播放器中隱藏熱浪";
|
||||||
"LCM_SELECTOR" = "低對比模式樣是";
|
|
||||||
"DEFAULT_LOWCONTRASTMODE" = "(預設)LowContrastMode";
|
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
|
||||||
"CUSTOM_LOWCONTRASTMODE" = "(自訂顏色)LowContrastMode";
|
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
|
||||||
|
|
||||||
// Miscellaneous
|
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
|
||||||
"MISCELLANEOUS" = "更多";
|
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
|
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
|
||||||
|
|
||||||
"HIDE_MODERN_INTERFACE" = "懷舊 YouTube 介面(YTNoModernUI)";
|
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
|
||||||
"HIDE_MODERN_INTERFACE_DESC" = "可移除微光效果、曲線按鈕邊緣等等。重新啟動應用程式以套用變更。";
|
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
|
||||||
|
|
||||||
"IPAD_LAYOUT" = "iPad 排版";
|
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
|
||||||
"IPAD_LAYOUT_DESC" = "重新啟動應用程式以套用變更";
|
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
|
||||||
|
|
||||||
"IPHONE_LAYOUT" = "iPhone 排版";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
|
||||||
"IPHONE_LAYOUT_DESC" = "重新啟動應用程式以套用變更。";
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
|
||||||
|
|
||||||
"CAST_CONFIRM" = "在投放前確認(YTCastConfirm)";
|
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
|
||||||
"CAST_CONFIRM_DESC" = "再三確認以避免被家人訐譙";
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
|
||||||
"CASTING" = "投放";
|
|
||||||
"MSG_ARE_YOU_SURE" = "是否投放影片?";
|
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
|
||||||
"MSG_YES" = "確認";
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
|
||||||
"MSG_CANCEL" = "取消";
|
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
|
||||||
"NEW_MINIPLAYER_STYLE" = "啟用應用程式內的新迷你播放器(BigYTMiniPlayer)";
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "重新啟動應用程式以套用變更。";
|
|
||||||
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
|
||||||
"STOCK_VOLUME_HUD" = "使用 iOS 預設音量條";
|
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
|
||||||
"STOCK_VOLUME_HUD_DESC" = "";
|
|
||||||
|
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
|
||||||
"HIDE_CAST_BUTTON" = "隱藏投放按鈕";
|
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
|
||||||
"HIDE_CAST_BUTTON_DESC" = "重新啟動應用程式以套用變更。";
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "隱藏 HUD 訊息";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON" = "隱藏 iSponsorBlock 按鈕";
|
"HIDE_HUD_MESSAGES_DESC" = "例如:CC字幕、開啟/關閉、影片循環開啟等...";
|
||||||
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
|
||||||
|
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
|
||||||
"YT_SPEED" = "啟用 YTSpeed";
|
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
|
||||||
"YT_SPEED_DESC" = "擁有更多種影片速度。重新啟動應用程式以套用變更。";
|
|
||||||
|
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
|
||||||
"ENABLE_FLEX" = "啟用 FLEX(不建議使用)";
|
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
|
||||||
"ENABLE_FLEX_DESC" = "如果不知道這是什麼,請勿啟用";
|
|
||||||
|
// App settings overlay options
|
||||||
"UN_SHORTS" = "隱藏 Shorts(YTUnShorts)";
|
"APP_SETTINGS_OVERLAY_OPTIONS" = "應用程式設定隱藏項目";
|
||||||
"UN_SHORTS_DESC" = "瀏覽影片時隱藏 Shorts";
|
|
||||||
|
"HIDE_ACCOUNT_SECTION" = "購買會員與會員資格";
|
||||||
"HIDE_COMMUNITY_POSTS" = "隱藏社群貼文";
|
"HIDE_AUTOPLAY_SECTION" = "自動播放";
|
||||||
"HIDE_COMMUNITY_POSTS_DESC" = "重新啟動應用程式以套用變更。";
|
"HIDE_TRYNEWFEATURES_SECTION" = "";
|
||||||
|
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "影片畫質偏好設定";
|
||||||
// Version Spoofer
|
"HIDE_NOTIFICATIONS_SECTION" = "通知";
|
||||||
"APP_VERSION_SPOOFER_LITE" = "改變應用程式版本";
|
"HIDE_MANAGEALLHISTORY_SECTION" = "管理所有紀錄";
|
||||||
"APP_VERSION_SPOOFER_LITE_DESC" = "請在底下選擇版本。重新啟動應用程式以套用變更。";
|
"HIDE_YOURDATAINYOUTUBE_SECTION" = "已連結的應用程式";
|
||||||
"VERSION_SPOOFER_TITLE" = "版本選擇器";
|
"HIDE_PRIVACY_SECTION" = "隱私設定";
|
||||||
|
"HIDE_LIVECHAT_SECTION" = "聊天室";
|
||||||
// Other Localization
|
|
||||||
"APP_RESTART_DESC" = "重新啟動應用程式以套用變更。";
|
// Theme
|
||||||
"CHANGE_APP_ICON" = "Change App Icon";
|
"THEME_OPTIONS" = "外觀";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED 暗黑主題";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED 暗黑主題";
|
||||||
|
"OLED_DARK_THEME_DESC" = "全黑主題。此功能不穩定。重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "懷舊亮灰主題";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube 亮灰懷舊暗黑主題。重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "預設主題";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED 鍵盤";
|
||||||
|
"OLED_KEYBOARD_DESC" = "此功能不穩定。重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"LOW_CONTRAST_MODE" = "低對比模式";
|
||||||
|
"LOW_CONTRAST_MODE_DESC" = "模擬舊式 YouTube。重新啟動應用程式以套用變更。";
|
||||||
|
"LCM_SELECTOR" = "低對比模式樣是";
|
||||||
|
"DEFAULT_LOWCONTRASTMODE" = "(預設)LowContrastMode";
|
||||||
|
"CUSTOM_LOWCONTRASTMODE" = "(自訂顏色)LowContrastMode";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "更多";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_MODERN_INTERFACE" = "懷舊 YouTube 介面(YTNoModernUI)";
|
||||||
|
"HIDE_MODERN_INTERFACE_DESC" = "可移除微光效果、曲線按鈕邊緣等等。重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"IPAD_LAYOUT" = "iPad 排版";
|
||||||
|
"IPAD_LAYOUT_DESC" = "重新啟動應用程式以套用變更";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone 排版";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "在投放前確認(YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "再三確認以避免被家人訐譙";
|
||||||
|
"CASTING" = "投放";
|
||||||
|
"MSG_ARE_YOU_SURE" = "是否投放影片?";
|
||||||
|
"MSG_YES" = "確認";
|
||||||
|
"MSG_CANCEL" = "取消";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "啟用應用程式內的新迷你播放器(BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"HIDE_CAST_BUTTON" = "隱藏投放按鈕";
|
||||||
|
"HIDE_CAST_BUTTON_DESC" = "重新啟動應用程式以套用變更。";
|
||||||
|
|
||||||
|
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
|
||||||
|
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
|
||||||
|
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON" = "隱藏 iSponsorBlock 按鈕";
|
||||||
|
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOME_TAB" = "Hide Home Tab";
|
||||||
|
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
|
||||||
|
|
||||||
|
"FIX_CASTING" = "Fix Casting";
|
||||||
|
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "啟用 FLEX(不建議使用)";
|
||||||
|
"ENABLE_FLEX_DESC" = "如果不知道這是什麼,請勿啟用";
|
||||||
|
|
||||||
|
// Version Spoofer
|
||||||
|
"APP_VERSION_SPOOFER_LITE" = "改變應用程式版本";
|
||||||
|
"APP_VERSION_SPOOFER_LITE_DESC" = "請在底下選擇版本。重新啟動應用程式以套用變更。";
|
||||||
|
"VERSION_SPOOFER_TITLE" = "版本選擇器";
|
||||||
|
|
||||||
|
// Other Localization
|
||||||
|
"APP_RESTART_DESC" = "重新啟動應用程式以套用變更。";
|
||||||
|
"CHANGE_APP_ICON" = "Change App Icon";
|
||||||
|
|
||||||
|
// Newly added strings
|
||||||
|
"ENABLE_TAP_TO_SEEK_DESC" = "ENABLE_TAP_TO_SEEK_DESC";
|
||||||
|
"ENABLE_TAP_TO_SEEK" = "ENABLE_TAP_TO_SEEK";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME" = "ALWAYS_USE_REMAINING_TIME";
|
||||||
|
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "DISABLE_PULL_TO_FULLSCREEN_GESTURE";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING" = "DISABLE_TOGGLE_TIME_REMAINING";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY" = "DISABLE_ENGAGEMENT_OVERLAY";
|
||||||
|
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "DISABLE_TOGGLE_TIME_REMAINING_DESC";
|
||||||
|
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "DISABLE_ENGAGEMENT_OVERLAY_DESC";
|
||||||
|
"ALWAYS_USE_REMAINING_TIME_DESC" = "ALWAYS_USE_REMAINING_TIME_DESC";
|
||||||
|
"DEFAULT_THEME_DESC" = "DEFAULT_THEME_DESC";
|
||||||
|
|
|
||||||