Compare commits

...

1007 commits

Author SHA1 Message Date
GitHub Actions
914079f410 updated submodules 2026-01-10 01:03:42 +00:00
GitHub Actions
9012074d43 updated submodules 2026-01-09 01:06:31 +00:00
GitHub Actions
ce7046192e updated submodules 2026-01-08 01:05:34 +00:00
GitHub Actions
258241fd38 updated submodules 2026-01-07 01:06:03 +00:00
GitHub Actions
fd6eb71bf5 updated submodules 2026-01-06 01:05:37 +00:00
GitHub Actions
df0e2eff67 updated submodules 2026-01-05 01:11:08 +00:00
RWC
19ac69f476
Update build environment to macos-15-intel and Add necessary imports to Settings.xm (#679) 2026-01-03 14:39:50 +01:00
GitHub Actions
b55ab6d370 updated submodules 2026-01-03 01:01:30 +00:00
GitHub Actions
d8e11f5c09 updated submodules 2025-12-31 01:06:00 +00:00
GitHub Actions
2f4684c192 updated submodules 2025-12-30 01:04:08 +00:00
GitHub Actions
da7d5382a5 updated submodules 2025-12-29 01:09:29 +00:00
GitHub Actions
3f501b75ea updated submodules 2025-12-28 01:11:36 +00:00
GitHub Actions
1167ce6e0d updated submodules 2025-12-27 01:02:21 +00:00
GitHub Actions
8c138f7194 updated submodules 2025-12-24 01:03:09 +00:00
GitHub Actions
b58f86a60a updated submodules 2025-12-23 01:03:49 +00:00
GitHub Actions
1649b9d982 updated submodules 2025-12-21 01:08:00 +00:00
GitHub Actions
3e47046f27 updated submodules 2025-12-20 01:00:24 +00:00
GitHub Actions
339a6309d3 updated submodules 2025-12-19 01:04:03 +00:00
GitHub Actions
36c68e5085 updated submodules 2025-12-18 01:00:35 +00:00
GitHub Actions
8b65b523af updated submodules 2025-12-17 01:00:05 +00:00
GitHub Actions
116a24ecb0 updated submodules 2025-12-16 01:04:28 +00:00
GitHub Actions
4fba6fb67d updated submodules 2025-12-13 01:00:17 +00:00
GitHub Actions
61b3f0fcd3 updated submodules 2025-12-12 01:04:07 +00:00
GitHub Actions
3b62c2c78b updated submodules 2025-12-11 01:04:16 +00:00
GitHub Actions
9abd78b1e6 updated submodules 2025-12-10 01:03:36 +00:00
GitHub Actions
e081a03ef0 updated submodules 2025-12-09 01:01:52 +00:00
GitHub Actions
9dd29dc14b updated submodules 2025-12-06 00:59:09 +00:00
GitHub Actions
280cf44c38 updated submodules 2025-12-05 01:02:13 +00:00
GitHub Actions
e4397175e6 updated submodules 2025-12-04 01:01:49 +00:00
GitHub Actions
5346b8335f updated submodules 2025-12-03 01:02:17 +00:00
GitHub Actions
97c8925a5d updated submodules 2025-12-02 01:01:47 +00:00
GitHub Actions
1a2773f29e updated submodules 2025-11-30 01:08:08 +00:00
GitHub Actions
cc57ab349f updated submodules 2025-11-28 00:58:29 +00:00
GitHub Actions
941c6652b5 updated submodules 2025-11-27 00:59:28 +00:00
tkgstrator
da01c763df
fix: typos and improvements in en/ja localizations (#659) 2025-11-26 18:49:12 +01:00
GitHub Actions
9e2059be85 updated submodules 2025-11-26 01:00:20 +00:00
GitHub Actions
f41af77723 updated submodules 2025-11-25 00:59:53 +00:00
GitHub Actions
2f0fc81b2f updated submodules 2025-11-23 01:08:06 +00:00
GitHub Actions
ac2179438e updated submodules 2025-11-22 00:57:31 +00:00
GitHub Actions
093b279a39 updated submodules 2025-11-21 00:59:48 +00:00
GitHub Actions
74a422bdf3 updated submodules 2025-11-20 00:58:57 +00:00
GitHub Actions
58faa4ceba updated submodules 2025-11-19 01:00:21 +00:00
GitHub Actions
012c636e89 updated submodules 2025-11-18 00:59:59 +00:00
GitHub Actions
1f6f9d7c8a updated submodules 2025-11-17 01:01:44 +00:00
GitHub Actions
18a74f79c7 updated submodules 2025-11-16 01:04:35 +00:00
GitHub Actions
27c04e8152 updated submodules 2025-11-15 00:58:46 +00:00
GitHub Actions
0380232e6f updated submodules 2025-11-14 01:00:17 +00:00
GitHub Actions
5bcb840a20 updated submodules 2025-11-13 01:00:41 +00:00
GitHub Actions
3c11379dd8 updated submodules 2025-11-12 01:00:45 +00:00
GitHub Actions
5303ab83b8 updated submodules 2025-11-11 01:00:49 +00:00
GitHub Actions
6950eb40b5 updated submodules 2025-11-10 01:02:53 +00:00
GitHub Actions
45cd9667eb updated submodules 2025-11-09 01:02:54 +00:00
GitHub Actions
ade7319020 updated submodules 2025-11-08 00:56:23 +00:00
GitHub Actions
a46a3b3770 updated submodules 2025-11-07 00:59:53 +00:00
GitHub Actions
49b40904da updated submodules 2025-11-06 00:59:52 +00:00
GitHub Actions
c79617add8 updated submodules 2025-11-05 01:01:14 +00:00
GitHub Actions
483d137298 updated submodules 2025-11-04 00:59:25 +00:00
GitHub Actions
0ab668fcbd updated submodules 2025-11-02 01:02:51 +00:00
GitHub Actions
1bf21827ae updated submodules 2025-11-01 01:02:03 +00:00
GitHub Actions
cb4412d16c updated submodules 2025-10-31 00:58:53 +00:00
GitHub Actions
e3556c358e updated submodules 2025-10-30 01:00:54 +00:00
GitHub Actions
d9ec7d8434 updated submodules 2025-10-29 01:01:08 +00:00
GitHub Actions
712b944767 updated submodules 2025-10-28 00:57:08 +00:00
GitHub Actions
0897cd2b4c updated submodules 2025-10-27 01:03:39 +00:00
GitHub Actions
f98459482c updated submodules 2025-10-26 01:01:50 +00:00
GitHub Actions
27d099a3dc updated submodules 2025-10-25 00:56:11 +00:00
GitHub Actions
1414781236 updated submodules 2025-10-24 00:54:42 +00:00
GitHub Actions
b026e15411 updated submodules 2025-10-23 00:58:22 +00:00
GitHub Actions
2d8095f3d9 updated submodules 2025-10-22 00:59:27 +00:00
GitHub Actions
7596ccbf1a updated submodules 2025-10-21 00:58:35 +00:00
GitHub Actions
8375d51126 updated submodules 2025-10-20 01:01:43 +00:00
Aahlaad Mantravadi
56635563fb
Fix link to YTLitePlus Building Wiki (#636) 2025-10-19 13:36:30 +02:00
GitHub Actions
1758a6f21b updated submodules 2025-10-19 01:03:37 +00:00
GitHub Actions
b86cbf3d8b updated submodules 2025-10-18 00:54:28 +00:00
GitHub Actions
67ec8758a0 updated submodules 2025-10-17 00:56:46 +00:00
GitHub Actions
516ac7f20b updated submodules 2025-10-16 00:57:30 +00:00
GitHub Actions
1c70bbda11 updated submodules 2025-10-15 00:57:44 +00:00
GitHub Actions
cc686229ba updated submodules 2025-10-14 00:56:10 +00:00
GitHub Actions
f77e4f81ab updated submodules 2025-10-12 00:58:48 +00:00
GitHub Actions
a68e833172 updated submodules 2025-10-11 00:53:39 +00:00
GitHub Actions
012e858852 updated submodules 2025-10-10 00:56:08 +00:00
GitHub Actions
1eaa7cf2e1 updated submodules 2025-10-09 00:56:25 +00:00
GitHub Actions
caf55eb5aa updated submodules 2025-10-08 00:55:28 +00:00
GitHub Actions
bac8b17e8e updated submodules 2025-10-07 00:56:07 +00:00
GitHub Actions
4483b0e983 updated submodules 2025-10-06 00:57:11 +00:00
GitHub Actions
b38ea8d805 updated submodules 2025-10-05 01:00:52 +00:00
GitHub Actions
6783a74e2c updated submodules 2025-10-04 00:52:35 +00:00
GitHub Actions
973f373878 updated submodules 2025-10-03 00:55:28 +00:00
GitHub Actions
99f326ed25 updated submodules 2025-10-02 00:54:55 +00:00
aricloverGitHub (INACTIVE)
c84f4d8a4b
Merge pull request #615 from DelofJ/main
Fix AltStore repo auto update with Catbox
2025-10-01 16:09:42 -05:00
GitHub Actions
6186192dd6 updated submodules 2025-10-01 01:02:36 +00:00
GitHub Actions
27b0268cd9 updated submodules 2025-09-30 00:56:44 +00:00
DelofJ
8409e97c04
Fix AltStore repo auto update with Catbox 2025-09-29 16:46:25 +02:00
GitHub Actions
74ae6ba724 updated submodules 2025-09-29 00:58:00 +00:00
GitHub Actions
ccf95561e6 updated submodules 2025-09-28 01:01:42 +00:00
GitHub Actions
eb7e05e9da updated submodules 2025-09-27 00:53:53 +00:00
GitHub Actions
08144107dd updated submodules 2025-09-26 00:55:43 +00:00
GitHub Actions
9e33386a63 updated submodules 2025-09-25 00:57:06 +00:00
GitHub Actions
8743b6d5b1 updated submodules 2025-09-24 00:56:04 +00:00
GitHub Actions
a1449d78f3 updated submodules 2025-09-23 00:55:48 +00:00
GitHub Actions
fa754350a7 updated submodules 2025-09-22 01:00:16 +00:00
GitHub Actions
9f1db5f657 updated submodules 2025-09-20 00:53:41 +00:00
GitHub Actions
d7fc3bffdf updated submodules 2025-09-19 00:56:58 +00:00
GitHub Actions
a976024fb2 updated submodules 2025-09-18 00:54:41 +00:00
GitHub Actions
8ad01c1b9a updated submodules 2025-09-17 00:55:09 +00:00
GitHub Actions
741b8c6724 updated submodules 2025-09-16 00:55:27 +00:00
GitHub Actions
e49da866dc updated submodules 2025-09-15 01:00:03 +00:00
GitHub Actions
e8aa5f6357 updated submodules 2025-09-14 00:59:23 +00:00
GitHub Actions
97ec986702 updated submodules 2025-09-13 00:52:00 +00:00
GitHub Actions
509eb04516 updated submodules 2025-09-12 00:54:24 +00:00
GitHub Actions
71b23abc62 updated submodules 2025-09-11 00:56:20 +00:00
GitHub Actions
6511bba7c8 updated submodules 2025-09-10 00:55:25 +00:00
GitHub Actions
0b8548cac5 updated submodules 2025-09-09 00:56:29 +00:00
GitHub Actions
6c29d89b71 updated submodules 2025-09-07 01:00:12 +00:00
GitHub Actions
696e00d15f updated submodules 2025-09-06 00:54:22 +00:00
GitHub Actions
ff351c458b updated submodules 2025-09-05 00:55:42 +00:00
GitHub Actions
909e553624 updated submodules 2025-09-04 00:54:43 +00:00
GitHub Actions
793555661f updated submodules 2025-09-03 00:54:21 +00:00
GitHub Actions
71013d4714 updated submodules 2025-09-02 00:58:18 +00:00
GitHub Actions
1a35573f6f updated submodules 2025-08-30 00:54:23 +00:00
GitHub Actions
840e6d0b77 updated submodules 2025-08-29 00:57:21 +00:00
GitHub Actions
0678653dc9 updated submodules 2025-08-28 00:56:43 +00:00
GitHub Actions
2722c8e26d updated submodules 2025-08-27 00:58:04 +00:00
GitHub Actions
bf3daf9756 updated submodules 2025-08-26 00:59:22 +00:00
GitHub Actions
fcd016602b updated submodules 2025-08-25 01:00:55 +00:00
GitHub Actions
add498dd8a updated submodules 2025-08-24 01:05:10 +00:00
GitHub Actions
94e6cfc81b updated submodules 2025-08-23 00:56:24 +00:00
GitHub Actions
49c98938a7 updated submodules 2025-08-22 00:58:53 +00:00
GitHub Actions
64dd729988 updated submodules 2025-08-21 00:57:51 +00:00
GitHub Actions
10b77eb936 updated submodules 2025-08-20 23:27:00 +00:00
aricloverGitHub (INACTIVE)
046e3d5a26
Better solution (.gitmodules)
Usually I was able to use ref’s in .gitmodule, couldn’t get that to work so I decided to fix it with my fork.
2025-08-20 18:26:20 -05:00
aricloverGitHub (INACTIVE)
69fad6613d
Update .gitmodules 2025-08-20 18:17:05 -05:00
aricloverGitHub (INACTIVE)
5e74965ddd
Update .gitmodules
Reverts recent YTUHD changes.
2025-08-20 18:11:55 -05:00
GitHub Actions
7e1aa8e868 updated submodules 2025-08-20 00:58:17 +00:00
GitHub Actions
64350a1ead updated submodules 2025-08-19 01:00:25 +00:00
GitHub Actions
0b7202dfab updated submodules 2025-08-17 01:07:23 +00:00
GitHub Actions
41aae512f0 updated submodules 2025-08-16 01:00:08 +00:00
GitHub Actions
f5bca0e606 updated submodules 2025-08-15 01:02:59 +00:00
GitHub Actions
faff00b5b3 updated submodules 2025-08-14 01:02:56 +00:00
GitHub Actions
e383a98545 updated submodules 2025-08-13 01:02:44 +00:00
GitHub Actions
561c74e6e0 updated submodules 2025-08-12 01:01:37 +00:00
GitHub Actions
9d2fad5c11 updated submodules 2025-08-10 01:11:10 +00:00
GitHub Actions
6e70caf886 updated submodules 2025-08-09 01:01:17 +00:00
GitHub Actions
56f0b5316c updated submodules 2025-08-08 01:07:37 +00:00
GitHub Actions
eb759274a6 updated submodules 2025-08-07 01:07:41 +00:00
GitHub Actions
d27d1f0959 updated submodules 2025-08-06 01:07:13 +00:00
GitHub Actions
4152a8a2bc updated submodules 2025-08-05 01:08:26 +00:00
GitHub Actions
162d260750 updated submodules 2025-08-03 01:13:23 +00:00
GitHub Actions
a5c1e45fca updated submodules 2025-08-02 01:03:49 +00:00
GitHub Actions
572a918bb1 updated submodules 2025-08-01 01:14:26 +00:00
GitHub Actions
4b97b763c8 updated submodules 2025-07-31 01:06:44 +00:00
GitHub Actions
b54d4c2f11 updated submodules 2025-07-30 01:06:55 +00:00
GitHub Actions
85f8a8c969 updated submodules 2025-07-29 01:13:32 +00:00
GitHub Actions
3ec701f9e5 updated submodules 2025-07-27 01:11:57 +00:00
GitHub Actions
0165ca1f79 updated submodules 2025-07-26 01:03:57 +00:00
GitHub Actions
5b9af2b770 updated submodules 2025-07-25 01:05:22 +00:00
GitHub Actions
3cd68ce312 updated submodules 2025-07-24 01:05:52 +00:00
GitHub Actions
9a34424c61 updated submodules 2025-07-23 01:07:02 +00:00
GitHub Actions
2acfa03b27 updated submodules 2025-07-22 01:05:29 +00:00
GitHub Actions
dc10654866 updated submodules 2025-07-21 01:09:07 +00:00
GitHub Actions
88587414b4 updated submodules 2025-07-20 01:12:12 +00:00
GitHub Actions
ee081620ce updated submodules 2025-07-19 01:03:28 +00:00
GitHub Actions
72554056e6 updated submodules 2025-07-18 01:05:01 +00:00
GitHub Actions
7ceca01d63 updated submodules 2025-07-17 01:05:53 +00:00
GitHub Actions
2e93e923a6 updated submodules 2025-07-16 01:05:09 +00:00
GitHub Actions
965b65b9f1 updated submodules 2025-07-15 01:06:43 +00:00
GitHub Actions
135f5719d2 updated submodules 2025-07-12 01:05:30 +00:00
GitHub Actions
27c5cc7f61 updated submodules 2025-07-11 01:04:04 +00:00
GitHub Actions
ad28124b17 updated submodules 2025-07-10 01:03:38 +00:00
GitHub Actions
592bb29cb0 updated submodules 2025-07-09 01:03:28 +00:00
GitHub Actions
f10f6a4394 updated submodules 2025-07-08 01:02:50 +00:00
GitHub Actions
234466fe27 updated submodules 2025-07-03 01:02:18 +00:00
GitHub Actions
669a45ac81 updated submodules 2025-07-02 01:02:24 +00:00
GitHub Actions
48503951bb updated submodules 2025-07-01 01:09:36 +00:00
GitHub Actions
38bd11b66f updated submodules 2025-06-29 01:09:03 +00:00
GitHub Actions
18f18d98fd updated submodules 2025-06-28 01:00:31 +00:00
GitHub Actions
57ee056951 updated submodules 2025-06-27 01:02:32 +00:00
GitHub Actions
346ee86e13 updated submodules 2025-06-26 01:01:52 +00:00
GitHub Actions
43e1ea28c0 updated submodules 2025-06-25 01:02:59 +00:00
GitHub Actions
b6a257938a updated submodules 2025-06-24 01:02:13 +00:00
GitHub Actions
4604da5bfc updated submodules 2025-06-22 01:07:47 +00:00
GitHub Actions
df5416f31d updated submodules 2025-06-21 01:00:27 +00:00
GitHub Actions
b94b94887b updated submodules 2025-06-20 01:01:33 +00:00
GitHub Actions
0a4766fa70 updated submodules 2025-06-19 01:01:40 +00:00
GitHub Actions
798e8b9fb9 updated submodules 2025-06-18 01:01:46 +00:00
GitHub Actions
8c89858dc0 updated submodules 2025-06-17 01:01:37 +00:00
GitHub Actions
8cc0ecc25b updated submodules 2025-06-16 01:03:48 +00:00
GitHub Actions
73fbef60b9 updated submodules 2025-06-15 01:08:17 +00:00
GitHub Actions
dcb74059a4 updated submodules 2025-06-14 00:59:19 +00:00
GitHub Actions
f247932b4c updated submodules 2025-06-13 01:01:59 +00:00
GitHub Actions
a0e27d1706 updated submodules 2025-06-12 01:01:05 +00:00
GitHub Actions
2faeaeb529 updated submodules 2025-06-11 01:01:44 +00:00
aricloverGitHub (INACTIVE)
596a409d61
LowContrastMode v1.7.1.1 2025-06-10 11:56:14 -05:00
GitHub Actions
ccc4ab55a3 updated submodules 2025-06-10 01:02:28 +00:00
GitHub Actions
1bc5e70b24 updated submodules 2025-06-09 01:04:51 +00:00
GitHub Actions
578a5dfd5f updated submodules 2025-06-08 01:06:57 +00:00
GitHub Actions
0ad65e8cc2 updated submodules 2025-06-07 01:00:08 +00:00
UnoCap
95500ab0f2
Update (#588) 2025-06-06 11:34:02 +02:00
GitHub Actions
40eec73776 updated submodules 2025-06-06 01:01:05 +00:00
GitHub Actions
a2bcc4dcc4 updated submodules 2025-06-05 01:00:46 +00:00
GitHub Actions
7a63fad293 updated submodules 2025-06-04 01:01:31 +00:00
GitHub Actions
9086575975 updated submodules 2025-06-03 01:02:03 +00:00
GitHub Actions
317b3434c8 updated submodules 2025-06-01 01:12:54 +00:00
GitHub Actions
31f9e30d7d updated submodules 2025-05-31 00:59:25 +00:00
GitHub Actions
d53f0181ac updated submodules 2025-05-30 00:59:58 +00:00
GitHub Actions
136149c586 updated submodules 2025-05-29 01:00:48 +00:00
GitHub Actions
30925e6464 updated submodules 2025-05-28 01:00:50 +00:00
GitHub Actions
2259fa5d67 updated submodules 2025-05-27 00:59:15 +00:00
GitHub Actions
87202b70fb updated submodules 2025-05-26 01:01:54 +00:00
GitHub Actions
9c761884af updated submodules 2025-05-25 01:05:53 +00:00
GitHub Actions
9841105ef7 updated submodules 2025-05-24 00:57:41 +00:00
GitHub Actions
f2c6c6669c updated submodules 2025-05-23 00:59:57 +00:00
GitHub Actions
e18a3d045d updated submodules 2025-05-22 01:00:15 +00:00
GitHub Actions
4b08bf4d7c updated submodules 2025-05-21 01:00:32 +00:00
GitHub Actions
b7480a7a98 updated submodules 2025-05-20 01:00:56 +00:00
GitHub Actions
85470b596a updated submodules 2025-05-18 01:04:24 +00:00
GitHub Actions
65748bec6d updated submodules 2025-05-17 00:58:42 +00:00
GitHub Actions
f749bfb3a7 updated submodules 2025-05-16 01:00:39 +00:00
GitHub Actions
d128edf48b updated submodules 2025-05-15 00:57:55 +00:00
GitHub Actions
3003e5ba03 updated submodules 2025-05-14 00:59:40 +00:00
GitHub Actions
8851b0d13e updated submodules 2025-05-13 01:00:23 +00:00
GitHub Actions
499dd9216e updated submodules 2025-05-11 01:03:21 +00:00
GitHub Actions
fa28082a56 updated submodules 2025-05-10 00:57:07 +00:00
GitHub Actions
f18142670d updated submodules 2025-05-09 00:59:22 +00:00
GitHub Actions
cdbe1d5143 updated submodules 2025-05-08 01:00:04 +00:00
GitHub Actions
b8f152fd0f updated submodules 2025-05-07 00:59:23 +00:00
GitHub Actions
e555ed6db4 updated submodules 2025-05-06 00:59:16 +00:00
GitHub Actions
78a8a25196 updated submodules 2025-05-05 01:01:45 +00:00
GitHub Actions
e7f554fcbf updated submodules 2025-05-04 01:04:33 +00:00
GitHub Actions
eefc726477 updated submodules 2025-05-03 00:57:15 +00:00
GitHub Actions
952e9e3ea8 updated submodules 2025-05-02 00:58:52 +00:00
GitHub Actions
5332008ab6 updated submodules 2025-05-01 01:04:29 +00:00
GitHub Actions
692b788e29 updated submodules 2025-04-30 00:58:36 +00:00
GitHub Actions
c598ae56ca updated submodules 2025-04-29 00:58:10 +00:00
GitHub Actions
7f287fa802 updated submodules 2025-04-28 01:00:26 +00:00
Jas
4a234af8b8
patch SDK_PATH in Makefile when using non-default sdk version (#569) 2025-04-27 15:37:50 +02:00
GitHub Actions
55e97337c0 updated submodules 2025-04-27 01:01:45 +00:00
GitHub Actions
3907396298 updated submodules 2025-04-26 00:56:30 +00:00
GitHub Actions
667ef63648 updated submodules 2025-04-25 00:58:04 +00:00
GitHub Actions
d86918b23b updated submodules 2025-04-24 00:58:25 +00:00
GitHub Actions
91472c96ac updated submodules 2025-04-23 00:58:15 +00:00
GitHub Actions
4bd0fa406f updated submodules 2025-04-22 00:57:53 +00:00
GitHub Actions
d2af95c4de updated submodules 2025-04-21 01:00:50 +00:00
GitHub Actions
24b4c3d199 updated submodules 2025-04-20 01:01:50 +00:00
GitHub Actions
ebea1adaf9 updated submodules 2025-04-19 00:54:50 +00:00
GitHub Actions
569016b1d3 updated submodules 2025-04-18 00:56:33 +00:00
GitHub Actions
ac2665637f updated submodules 2025-04-17 00:57:06 +00:00
GitHub Actions
405437c7ba updated submodules 2025-04-16 00:58:22 +00:00
GitHub Actions
16fd5e0e96 updated submodules 2025-04-15 00:58:24 +00:00
GitHub Actions
459fbfec8a updated submodules 2025-04-14 00:59:42 +00:00
GitHub Actions
ae12f3b108 updated submodules 2025-04-13 02:26:46 +00:00
GitHub Actions
908d5cec7b updated submodules 2025-04-12 00:55:55 +00:00
GitHub Actions
1d9749bfe1 updated submodules 2025-04-11 00:57:04 +00:00
GitHub Actions
d29dbd4e6e updated submodules 2025-04-10 00:56:28 +00:00
GitHub Actions
433a836654 updated submodules 2025-04-09 00:56:33 +00:00
GitHub Actions
12ec82e2ba updated submodules 2025-04-08 00:56:27 +00:00
GitHub Actions
264765ae26 updated submodules 2025-04-07 00:58:55 +00:00
GitHub Actions
16f49fe06b updated submodules 2025-04-06 00:59:59 +00:00
GitHub Actions
45d129335a updated submodules 2025-04-05 00:55:06 +00:00
GitHub Actions
1bba324efa updated submodules 2025-04-04 00:56:00 +00:00
GitHub Actions
a056e24ff2 updated submodules 2025-04-03 00:56:19 +00:00
GitHub Actions
f69b8ae39f updated submodules 2025-04-02 00:57:10 +00:00
GitHub Actions
7b7995bc93 updated submodules 2025-04-01 01:03:12 +00:00
GitHub Actions
595b99665a updated submodules 2025-03-31 00:59:04 +00:00
GitHub Actions
3c385cdc11 updated submodules 2025-03-30 01:02:28 +00:00
GitHub Actions
591cfc3dd2 updated submodules 2025-03-29 00:55:14 +00:00
GitHub Actions
6933a5f99f updated submodules 2025-03-28 00:55:44 +00:00
GitHub Actions
ebea3e68eb updated submodules 2025-03-27 00:55:32 +00:00
GitHub Actions
1a5a351ba7 updated submodules 2025-03-26 00:55:49 +00:00
GitHub Actions
1d7d9eef8a updated submodules 2025-03-25 00:56:15 +00:00
GitHub Actions
bb871ea2e5 updated submodules 2025-03-22 00:54:13 +00:00
GitHub Actions
dcef0146d8 updated submodules 2025-03-21 00:55:53 +00:00
GitHub Actions
9e2c07c92d updated submodules 2025-03-20 00:54:31 +00:00
GitHub Actions
31109ad1ef updated submodules 2025-03-19 00:55:28 +00:00
GitHub Actions
6f783652ca updated submodules 2025-03-18 00:54:58 +00:00
GitHub Actions
8ec7e261b9 updated submodules 2025-03-16 00:59:16 +00:00
GitHub Actions
23d18fdd5d updated submodules 2025-03-15 00:54:04 +00:00
GitHub Actions
daa168d3cf updated submodules 2025-03-14 00:54:23 +00:00
GitHub Actions
fb230f0e84 updated submodules 2025-03-13 00:55:02 +00:00
GitHub Actions
3d11b79420 updated submodules 2025-03-12 00:54:33 +00:00
GitHub Actions
c2fc41b43f updated submodules 2025-03-11 00:55:02 +00:00
cassowaree
fd03af5793
Update buildapp.yml with FINALPACKAGE=1 (#546) 2025-03-09 21:09:59 +01:00
cassowaree
cf83e243f4
Update buildapp.yml with THEOS_PACKAGE_SCHEME=rootless (#544) 2025-03-09 10:27:28 +01:00
GitHub Actions
fc79126e33 updated submodules 2025-03-09 00:46:59 +00:00
GitHub Actions
764388f252 updated submodules 2025-03-08 00:42:13 +00:00
GitHub Actions
b6b75a1c03 updated submodules 2025-03-07 00:54:51 +00:00
GitHub Actions
0e9fd4a17b updated submodules 2025-03-06 00:54:33 +00:00
GitHub Actions
1f28b32cfd updated submodules 2025-03-05 00:54:39 +00:00
GitHub Actions
1045fb20e6 updated submodules 2025-03-04 00:54:31 +00:00
GitHub Actions
0a6cb2ed7c updated submodules 2025-03-02 00:56:58 +00:00
GitHub Actions
e63fa1fdcd updated submodules 2025-03-01 00:57:47 +00:00
GitHub Actions
d56776c9d2 updated submodules 2025-02-28 00:53:39 +00:00
GitHub Actions
0a065c1ffd updated submodules 2025-02-27 00:53:34 +00:00
GitHub Actions
7056701c0a updated submodules 2025-02-26 00:53:33 +00:00
GitHub Actions
c2214d3857 updated submodules 2025-02-25 00:53:37 +00:00
GitHub Actions
1ef19f0670 updated submodules 2025-02-23 00:56:54 +00:00
GitHub Actions
c3b3089228 updated submodules 2025-02-22 00:50:42 +00:00
GitHub Actions
89849152c1 updated submodules 2025-02-21 00:52:39 +00:00
GitHub Actions
ec9a763919 updated submodules 2025-02-20 00:52:44 +00:00
GitHub Actions
71f546487a updated submodules 2025-02-19 00:52:25 +00:00
GitHub Actions
3f01f901ab updated submodules 2025-02-15 00:51:37 +00:00
GitHub Actions
7467bc3dfd updated submodules 2025-02-14 00:51:58 +00:00
GitHub Actions
8e19249862 updated submodules 2025-02-13 00:52:47 +00:00
GitHub Actions
86153244c2 updated submodules 2025-02-12 00:52:12 +00:00
GitHub Actions
de86681f7e updated submodules 2025-02-11 00:52:08 +00:00
himaisogin
0c32b77ff4
完全日本語化 (#525) 2025-02-10 17:37:50 +01:00
GitHub Actions
2905436e4d updated submodules 2025-02-10 00:53:23 +00:00
GitHub Actions
3de513b693 updated submodules 2025-02-09 00:54:54 +00:00
GitHub Actions
78c535637d updated submodules 2025-02-08 00:51:02 +00:00
GitHub Actions
6d8e7bd5bf updated submodules 2025-02-07 00:52:19 +00:00
GitHub Actions
d4403e6fa7 updated submodules 2025-02-06 00:52:27 +00:00
GitHub Actions
2567fa7287 updated submodules 2025-02-05 00:52:09 +00:00
aricloverGitHub (INACTIVE)
2191e69479
Remove duplicate (YTLitePlus.h)
MLPlayerEventCenter is now a duplicate header, which has been removed to resolve error.
2025-02-04 04:40:57 -06:00
aricloverGitHub (INACTIVE)
1411675b86
Update Makefile 2025-02-04 04:38:29 -06:00
GitHub Actions
3a097e08f6 updated submodules 2025-02-04 00:51:24 +00:00
GitHub Actions
b83803ae8f updated submodules 2025-02-03 00:52:26 +00:00
GitHub Actions
587e0d16a5 updated submodules 2025-02-02 00:54:02 +00:00
GitHub Actions
9ffd3b52a3 updated submodules 2025-02-01 00:54:45 +00:00
GitHub Actions
c56944a230 updated submodules 2025-01-31 00:51:21 +00:00
GitHub Actions
46cfb946dd updated submodules 2025-01-30 00:50:08 +00:00
GitHub Actions
c0813e7db5 updated submodules 2025-01-29 00:51:25 +00:00
GitHub Actions
cdd4518e8e updated submodules 2025-01-28 00:51:12 +00:00
GitHub Actions
8e1ee7568c updated submodules 2025-01-27 00:52:23 +00:00
GitHub Actions
c7bc1d09a7 updated submodules 2025-01-26 00:52:48 +00:00
GitHub Actions
133e7984d7 updated submodules 2025-01-25 00:47:52 +00:00
GitHub Actions
58fb0cb664 updated submodules 2025-01-24 00:51:05 +00:00
GitHub Actions
564bae4b93 updated submodules 2025-01-23 00:51:09 +00:00
GitHub Actions
5b86c1cadf updated submodules 2025-01-22 00:52:12 +00:00
GitHub Actions
cfc9d6fe10 updated submodules 2025-01-21 00:50:32 +00:00
GitHub Actions
5383f6b370 updated submodules 2025-01-19 00:54:48 +00:00
GitHub Actions
2846c46fd1 updated submodules 2025-01-18 00:48:23 +00:00
GitHub Actions
5121e67e4b updated submodules 2025-01-17 00:50:39 +00:00
GitHub Actions
f2bfa9486c updated submodules 2025-01-16 00:51:04 +00:00
GitHub Actions
eff4e00c32 updated submodules 2025-01-15 00:51:39 +00:00
GitHub Actions
2c09318ba9 updated submodules 2025-01-14 00:49:59 +00:00
aricloverGitHub (INACTIVE)
0ccc3359c8
Rewrite VersionSpooferLite.xm
Consistency with the uYouEnhanced version. also the new version spoofer code is structured better and isn’t poorly made.
2025-01-13 05:53:22 -06:00
GitHub Actions
1e6153ed78 updated submodules 2025-01-13 00:56:01 +00:00
GitHub Actions
5ee7ae4a54 updated submodules 2025-01-12 00:57:38 +00:00
GitHub Actions
a8432b57b2 updated submodules 2025-01-11 00:52:39 +00:00
GitHub Actions
e22a5e3643 updated submodules 2025-01-10 00:54:10 +00:00
GitHub Actions
c1a48126b8 updated submodules 2025-01-09 00:52:15 +00:00
GitHub Actions
479a0c4136 updated submodules 2025-01-08 00:52:50 +00:00
GitHub Actions
587b991c52 updated submodules 2025-01-07 00:52:38 +00:00
GitHub Actions
fce3e190fb updated submodules 2025-01-05 00:56:40 +00:00
GitHub Actions
a48dae1d33 updated submodules 2025-01-04 00:51:30 +00:00
GitHub Actions
838fc8c234 updated submodules 2025-01-03 00:52:18 +00:00
GitHub Actions
caeb27b320 updated submodules 2025-01-02 00:51:51 +00:00
GitHub Actions
a267366b8c updated submodules 2024-12-31 00:51:46 +00:00
GitHub Actions
1fa4520698 updated submodules 2024-12-29 00:57:01 +00:00
GitHub Actions
fbeec03962 updated submodules 2024-12-28 00:50:56 +00:00
GitHub Actions
d836f01233 updated submodules 2024-12-27 00:51:58 +00:00
aricloverGitHub (INACTIVE)
60f2386ed7
Update .gitmodules 2024-12-26 13:59:52 -06:00
GitHub Actions
8b2c1c83ae updated submodules 2024-12-26 00:51:56 +00:00
GitHub Actions
5e8a22d15e updated submodules 2024-12-25 00:51:52 +00:00
GitHub Actions
7ad8532f09 updated submodules 2024-12-24 00:52:20 +00:00
GitHub Actions
4ad3d98eef updated submodules 2024-12-23 00:53:54 +00:00
GitHub Actions
5f7b41ecc9 updated submodules 2024-12-22 00:56:31 +00:00
GitHub Actions
a26e368e40 updated submodules 2024-12-21 00:51:25 +00:00
GitHub Actions
4da27d630d updated submodules 2024-12-20 00:52:19 +00:00
GitHub Actions
2a079837f0 updated submodules 2024-12-19 00:55:02 +00:00
aricloverGitHub (INACTIVE)
6dd1ccd9ee
Update buildapp.yml
I’m trying to make so that it uses 5.0.1 instead the latest release. I think it’s intentionally causing the app to crash?
2024-12-18 12:28:48 -06:00
GitHub Actions
335b477930 updated submodules 2024-12-18 00:54:30 +00:00
GitHub Actions
31f92d6d83 updated submodules 2024-12-17 00:56:55 +00:00
GitHub Actions
c7fa4e56e7 updated submodules 2024-12-16 00:58:49 +00:00
GitHub Actions
a3d8fea67f updated submodules 2024-12-15 01:01:18 +00:00
GitHub Actions
185a063688 updated submodules 2024-12-14 00:54:59 +00:00
aricloverGitHub (INACTIVE)
aa4b67bc09
Update .gitignore 2024-12-13 00:40:59 -06:00
GitHub Actions
343ccf43bd updated submodules 2024-12-13 00:57:31 +00:00
GitHub Actions
59919bfa4e updated submodules 2024-12-12 00:56:25 +00:00
GitHub Actions
3357e8da83 updated submodules 2024-12-11 00:57:09 +00:00
aricloverGitHub (INACTIVE)
4a12ae65d1
Add files via upload 2024-12-10 16:42:03 -06:00
aricloverGitHub (INACTIVE)
86a65208de
Add YTLite 5.0.1 Deb
This is needed in case YTLite 5.0.2/5.1 doesn’t work.
2024-12-10 16:21:56 -06:00
GitHub Actions
05a63a09bb updated submodules 2024-12-10 00:57:43 +00:00
aricloverGitHub (INACTIVE)
1ce50f9a93
Update update-submodules.yml 2024-12-08 18:18:25 -06:00
GitHub Actions
6360f6c469 Added YouSpeed bundle 2024-12-09 00:16:29 +00:00
GitHub Actions
6b7ee5eb9f added YouSpeed submodule 2024-12-09 00:16:28 +00:00
aricloverGitHub (INACTIVE)
a5cf56c8da
Update update-submodules.yml 2024-12-08 18:16:05 -06:00
aricloverGitHub (INACTIVE)
024ea651f7
Update Makefile 2024-12-08 18:12:38 -06:00
aricloverGitHub (INACTIVE)
d3d9f24ee7
Update Makefile 2024-12-08 16:13:14 -06:00
GitHub Actions
fa0cca1058 updated submodules 2024-12-08 21:47:27 +00:00
GitHub Actions
bc364219f1 updated submodules 2024-12-08 01:00:53 +00:00
GitHub Actions
985bb6d6b2 updated submodules 2024-12-07 00:55:52 +00:00
GitHub Actions
030a86f6ec updated submodules 2024-12-06 00:56:18 +00:00
aricloverGitHub (INACTIVE)
d56c94b5c9
Update Makefile 2024-12-05 02:33:11 -06:00
GitHub Actions
fc3cb9798a updated submodules 2024-12-05 00:56:53 +00:00
aricloverGitHub (INACTIVE)
90e45c3bac
Added New Versions (VersionSpooferLite.xm)
Like I said. 17.33.2-18.34.5 are still deprecated. Will start removing those versions once they stop completely working.
2024-12-04 16:51:23 -06:00
aricloverGitHub (INACTIVE)
c050913eae
Update buildapp.yml 2024-12-04 15:54:40 -06:00
GitHub Actions
1882e35154 updated submodules 2024-12-04 21:26:58 +00:00
aricloverGitHub (INACTIVE)
a0f499eb1f
Support for SDK_PATH (buildapp.yml) 2024-12-04 15:02:11 -06:00
aricloverGitHub (INACTIVE)
a3e0f9b6e4
Update Makefile
Revert changes. I assumed it was broken but it was a different problem that caused this not to work.
2024-12-04 14:47:51 -06:00
aricloverGitHub (INACTIVE)
f3a32cbdd4
Remove FLEX (Makefile) 2024-12-04 14:46:42 -06:00
aricloverGitHub (INACTIVE)
42c5b2f446
Update buildapp.yml 2024-12-04 14:41:44 -06:00
aricloverGitHub (INACTIVE)
7d85731bcb
Update to iOS 17.5 SDK (Makefile) 2024-12-04 14:41:24 -06:00
aricloverGitHub (INACTIVE)
825889bae7
Update buildapp.yml
Change had to happen. macOS-12 is gone.
2024-12-04 14:39:03 -06:00
GitHub Actions
f1dc45da6e updated submodules 2024-12-04 00:56:54 +00:00
GitHub Actions
ad349b0631 updated submodules 2024-12-03 00:57:12 +00:00
GitHub Actions
16931abdaf updated submodules 2024-12-02 00:57:54 +00:00
GitHub Actions
b4a641c6e1 updated submodules 2024-12-01 01:05:18 +00:00
GitHub Actions
446cb4a83f updated submodules 2024-11-29 00:55:52 +00:00
GitHub Actions
c75b429bd1 updated submodules 2024-11-28 00:55:34 +00:00
GitHub Actions
97d1b2f68d updated submodules 2024-11-27 00:55:27 +00:00
GitHub Actions
092b2371a7 updated submodules 2024-11-26 00:54:56 +00:00
GitHub Actions
67622a5a12 updated submodules 2024-11-24 00:58:08 +00:00
GitHub Actions
41c40796a6 updated submodules 2024-11-23 00:53:46 +00:00
GitHub Actions
423404c6e0 updated submodules 2024-11-22 00:55:06 +00:00
GitHub Actions
1e82d9ebc8 updated submodules 2024-11-21 00:54:10 +00:00
GitHub Actions
e23c63cd06 updated submodules 2024-11-20 00:54:02 +00:00
GitHub Actions
a37ce87d39 updated submodules 2024-11-19 00:54:34 +00:00
GitHub Actions
fc41194e8e updated submodules 2024-11-18 00:56:24 +00:00
GitHub Actions
911c2f9b4d updated submodules 2024-11-17 00:57:52 +00:00
GitHub Actions
84278342db updated submodules 2024-11-16 00:53:21 +00:00
Balackburn
39c54ed658
Update README.md 2024-11-15 13:53:48 +01:00
GitHub Actions
64c8c28950 updated submodules 2024-11-15 00:54:58 +00:00
GitHub Actions
eeedadd136 updated submodules 2024-11-14 00:51:53 +00:00
GitHub Actions
a640144fd8 updated submodules 2024-11-13 00:51:41 +00:00
GitHub Actions
f198493476 updated submodules 2024-11-12 00:50:26 +00:00
GitHub Actions
a11f96a529 updated submodules 2024-11-11 00:52:38 +00:00
aricloverGitHub (INACTIVE)
bce5f16614
Update buildapp.yml 2024-11-10 04:20:37 -06:00
aricloverGitHub (INACTIVE)
fb389af99a
Revert Makefile changes
Everything is reverted so users can compile normally on macos-12. But I did keep libFLEX
2024-11-10 04:19:14 -06:00
aricloverGitHub (INACTIVE)
ba4b78d8c4
Fix VI Localizable.strings 2024-11-10 00:46:55 -06:00
aricloverGitHub (INACTIVE)
ed69adf807
Remove some AR Localizable.strings
I had to remove some localization. I was having trouble fixing it.
2024-11-10 00:37:39 -06:00
aricloverGitHub (INACTIVE)
33dc896860
Fix AR Localizable.strings 2024-11-10 00:14:32 -06:00
aricloverGitHub (INACTIVE)
e7f658474b
Rewrite YTLitePlus Makefile 2024-11-10 00:13:34 -06:00
aricloverGitHub (INACTIVE)
54c845e08b
Remove FLEX Header (YTLitePlus.h) 2024-11-09 22:22:50 -06:00
aricloverGitHub (INACTIVE)
6d49ceeaa6
Update update-submodules.yml 2024-11-09 21:57:56 -06:00
GitHub Actions
9225d7e934 added FLEXing 2024-11-10 03:57:09 +00:00
aricloverGitHub (INACTIVE)
10fc9b86ef
Added FLEXing (update-submodules.yml) 2024-11-09 21:56:15 -06:00
GitHub Actions
9bfc5d9431 Renamed FLEX to FLEXing 2024-11-10 03:48:31 +00:00
aricloverGitHub (INACTIVE)
880a27a51b
Rename a submodule (update-submodules.yml) 2024-11-09 21:48:14 -06:00
aricloverGitHub (INACTIVE)
4e2be39be8
Update update-submodules.yml 2024-11-09 21:32:02 -06:00
GitHub Actions
5709c5f04a updated submodules 2024-11-10 03:31:13 +00:00
GitHub Actions
c6ef41c5fc Added bundles 2024-11-10 03:30:51 +00:00
aricloverGitHub (INACTIVE)
e75364c765
Add bundles support (update-submodules.yml) 2024-11-09 21:30:35 -06:00
aricloverGitHub (INACTIVE)
2600ee6ff6
Fix FLEX (YTLitePlus.xm) 2024-11-09 21:26:55 -06:00
aricloverGitHub (INACTIVE)
f855d02462
Change FLEX submodule 2024-11-09 21:20:46 -06:00
GitHub Actions
bf0fff9f8f updated submodules 2024-11-10 00:54:22 +00:00
aricloverGitHub (INACTIVE)
a891c5fd67
Update Makefile 2024-11-09 16:25:11 -06:00
aricloverGitHub (INACTIVE)
d6c6b9ae77
Update Alderis (Makefile) 2024-11-09 14:35:46 -06:00
aricloverGitHub (INACTIVE)
93f28eeb2b
Update Settings.xm 2024-11-09 13:07:20 -06:00
aricloverGitHub (INACTIVE)
1db5cdb939
Update YTLitePlus.xm 2024-11-09 13:02:08 -06:00
aricloverGitHub (INACTIVE)
f4b911a0cd
Update Settings.xm 2024-11-09 12:18:41 -06:00
aricloverGitHub (INACTIVE)
45991e71d8
Update YTLitePlus.h Headers 2024-11-09 12:12:46 -06:00
aricloverGitHub (INACTIVE)
7eda827ba9
Update Makefile (MACOS-13 Compatibility) 2024-11-09 11:56:50 -06:00
aricloverGitHub (INACTIVE)
1cdc905d30
Update buildapp.yml to macos-13 2024-11-09 11:55:57 -06:00
GitHub Actions
1634254916 updated submodules 2024-11-09 00:49:33 +00:00
GitHub Actions
9f29df756d updated submodules 2024-11-08 00:51:05 +00:00
GitHub Actions
602b5d8523 updated submodules 2024-11-07 00:51:04 +00:00
GitHub Actions
e8c01d9b2e updated submodules 2024-11-06 00:50:58 +00:00
GitHub Actions
cffd06dd20 updated submodules 2024-11-05 00:50:57 +00:00
GitHub Actions
8c774a5d7c updated submodules 2024-11-02 00:51:22 +00:00
GitHub Actions
e8a8cb1c45 updated submodules 2024-11-01 00:56:45 +00:00
GitHub Actions
5610850412 updated submodules 2024-10-31 00:52:58 +00:00
GitHub Actions
0e46cb44a5 updated submodules 2024-10-30 00:52:23 +00:00
aric3435 (INACTIVE)
8593539c3f
Update LowContrastMode.xm 2024-10-29 18:55:38 -05:00
aric3435 (INACTIVE)
607ac6fee7
LowContrastMode v1.6.1
The update that potentially changes the way LowContrastMode works.
It now works with YouTube Versions 17.33.2-18.34.5.

It’s no longer 17.33.2-17.38.10
2024-10-29 18:54:43 -05:00
GitHub Actions
4833ba7b38 updated submodules 2024-10-29 00:53:14 +00:00
GitHub Actions
7788d6d635 updated submodules 2024-10-28 00:54:17 +00:00
GitHub Actions
9fee4555a4 updated submodules 2024-10-27 00:55:47 +00:00
GitHub Actions
7f9f3311cb updated submodules 2024-10-26 00:50:36 +00:00
GitHub Actions
64c512740e updated submodules 2024-10-25 00:52:09 +00:00
GitHub Actions
378e55adb2 updated submodules 2024-10-24 00:51:27 +00:00
Balackburn
f13e9c83b9
Update README.md 2024-10-23 14:09:37 +02:00
GitHub Actions
57cd4a8be8 updated submodules 2024-10-23 00:51:43 +00:00
GitHub Actions
69b9004241 updated submodules 2024-10-22 00:52:33 +00:00
aric3435 (INACTIVE)
b71c090b64
Deprecated some versions in version spoofer 2024-10-21 17:30:04 -05:00
GitHub Actions
8fbe97736e updated submodules 2024-10-21 22:00:44 +00:00
GitHub Actions
ca36abc99c updated submodules 2024-10-19 00:51:11 +00:00
GitHub Actions
cf752eff9e updated submodules 2024-10-18 00:51:40 +00:00
aric3435 (INACTIVE)
5ec51c8e4b
Update buildapp.yml 2024-10-16 20:40:49 -05:00
GitHub Actions
1dc1cca08b updated submodules 2024-10-17 00:51:50 +00:00
aric3435 (INACTIVE)
5b266ef656
Update Makefile 2024-10-16 18:07:46 -05:00
aric3435 (INACTIVE)
ff9c8ec093
Update buildapp.yml 2024-10-16 17:00:20 -05:00
aric3435 (INACTIVE)
32c729428f
Revert buildapp.yml changes
This has been temporary changed back to the way it was. buildapp.yml will likely break in December 3rd, 2024
2024-10-16 16:47:35 -05:00
aric3435 (INACTIVE)
773cf0278c
Revert Makefile Changes 2024-10-16 16:45:33 -05:00
GitHub Actions
dfacb597e9 updated submodules 2024-10-16 00:52:07 +00:00
aric3435 (INACTIVE)
a33d47daa3
Update Makefile 2024-10-15 18:26:19 -05:00
aric3435 (INACTIVE)
99a28d7e58
Update buildapp.yml
Fixes Theos (substrate error for macos-13 or higher)
2024-10-15 18:03:30 -05:00
aric3435 (INACTIVE)
af22134fbc
Merge pull request #458 from matt911/main
Update romanian localization
2024-10-15 17:31:59 -05:00
aric3435 (INACTIVE)
ef11bed46b
Update buildapp.yml
Added step hiding URL to decrypted YOUTUBE ipa from public actions workflow log. - these changes were by “marcinmajsc” in https://github.com/arichornlover/uYouEnhanced/pull/768
2024-10-15 17:24:58 -05:00
GitHub Actions
ea5dff7bb5 updated submodules 2024-10-15 00:52:26 +00:00
GitHub Actions
9a224a8128 updated submodules 2024-10-15 00:47:56 +00:00
matt911
03907dee3d Update romanian localization 2024-10-13 18:39:11 +03:00
GitHub Actions
e6cc6dc38e updated submodules 2024-10-13 00:55:35 +00:00
GitHub Actions
ea7f6be9f4 updated submodules 2024-10-12 00:50:18 +00:00
GitHub Actions
eaf3df66c5 updated submodules 2024-10-11 00:51:15 +00:00
aric3435 (INACTIVE)
f4452531da
Update theos (buildapp.yml) 2024-10-09 23:04:49 -05:00
aric3435 (INACTIVE)
2d33383e3d
Fix YTLitePlus not being built (Makefile)
Added: PACKAGE_NAME
2024-10-09 23:02:31 -05:00
GitHub Actions
9914648050 updated submodules 2024-10-10 00:51:28 +00:00
aric3435 (INACTIVE)
f02840a31b
Update Makefile
Fixes Preferences not found error on Alderis.
2024-10-09 17:07:52 -05:00
aric3435 (INACTIVE)
452f9f59bd
Update buildapp.yml to macos-13 2024-10-09 17:07:04 -05:00
GitHub Actions
bb71f4bfd6 updated submodules 2024-10-09 00:51:11 +00:00
GitHub Actions
130ee40335 updated submodules 2024-10-08 00:51:33 +00:00
GitHub Actions
791376c8f8 updated submodules 2024-10-07 00:53:22 +00:00
GitHub Actions
96f960132a updated submodules 2024-10-06 00:55:49 +00:00
GitHub Actions
32b0961b74 updated submodules 2024-10-05 00:51:08 +00:00
GitHub Actions
227714a4f7 updated submodules 2024-10-04 00:51:41 +00:00
GitHub Actions
13a4642894 updated submodules 2024-10-03 00:51:35 +00:00
GitHub Actions
3afdd8a16e updated submodules 2024-10-02 00:51:28 +00:00
GitHub Actions
aa8c4018f7 updated submodules 2024-10-01 00:56:52 +00:00
GitHub Actions
ed2efc7876 updated submodules 2024-09-30 00:53:43 +00:00
GitHub Actions
dd8495b40e updated submodules 2024-09-28 00:50:55 +00:00
GitHub Actions
98058daa0f updated submodules 2024-09-27 00:51:50 +00:00
GitHub Actions
e4082c491e updated submodules 2024-09-26 00:50:55 +00:00
GitHub Actions
03c5b12a3b updated submodules 2024-09-25 00:52:17 +00:00
GitHub Actions
5fbb9ebada updated submodules 2024-09-24 00:51:32 +00:00
Balackburn
df888c2b55
Update README.md 2024-09-23 14:01:52 +02:00
GitHub Actions
23fe341199 updated submodules 2024-09-23 00:51:46 +00:00
GitHub Actions
111ee9fb75 updated submodules 2024-09-22 00:54:58 +00:00
GitHub Actions
04b91e6502 updated submodules 2024-09-21 00:48:32 +00:00
GitHub Actions
39807ec54d updated submodules 2024-09-20 00:50:24 +00:00
GitHub Actions
730140360b updated submodules 2024-09-19 00:49:42 +00:00
GitHub Actions
6696128300 updated submodules 2024-09-18 00:48:45 +00:00
Sunwoo Jung
1c23b5cb0e
Add Korean localization (#435) 2024-09-17 16:05:38 +02:00
GitHub Actions
8b1eb37b13 updated submodules 2024-09-17 00:40:04 +00:00
GitHub Actions
8135fc4e0f updated submodules 2024-09-16 00:52:36 +00:00
GitHub Actions
abe20ade53 updated submodules 2024-09-15 00:55:06 +00:00
arichornlover
1d7c7c9b22
Update .gitignore 2024-09-14 01:46:41 -05:00
GitHub Actions
3e5f3bbe85 updated submodules 2024-09-14 00:47:36 +00:00
GitHub Actions
d52a485d61 updated submodules 2024-09-13 00:48:21 +00:00
arichornlover
3d54ed60ef
LowContrastMode v1.6.0 2024-09-11 19:57:54 -05:00
GitHub Actions
83f5cfdc01 updated submodules 2024-09-12 00:48:42 +00:00
GitHub Actions
268d31de36 updated submodules 2024-09-11 00:48:07 +00:00
Cregin
6a50764aa9
Update Localizable.strings (#422) 2024-09-10 17:41:52 +02:00
GitHub Actions
9f80f6d386 updated submodules 2024-09-10 00:48:40 +00:00
Cregin
192010ed09
Create Localizable.strings (#420)
Added Simplified Chinese support
2024-09-09 11:43:43 +02:00
GitHub Actions
7f254511c9 updated submodules 2024-09-09 00:51:05 +00:00
GitHub Actions
e1d0560cf2 updated submodules 2024-09-08 00:52:57 +00:00
arichornlover
5eb16b09b2
Remove Code related to disabling YTLite Popup
I am removing it to respect the developer’s choice, no one should hate me for doing this decision of but I really don’t want to disrespect the creator of YTLite.
I’m one of the “YTLitePlus Devs” and I am not the one who wanted the Popup to be hidden. It was a bad idea from the start and I should’ve removed this sooner when I saw it. Anyways have a good day everyone.

- arichornlover
2024-09-07 15:12:26 -05:00
gototheskinny
376191c3a4
tr loc update (#413) 2024-09-07 14:04:15 +02:00
GitHub Actions
361e62aad3 updated submodules 2024-09-07 00:46:55 +00:00
GitHub Actions
c2f2a1f9eb updated submodules 2024-09-06 00:47:28 +00:00
GitHub Actions
3939a29d0b updated submodules 2024-09-05 00:47:45 +00:00
GitHub Actions
c82171f6e4 updated submodules 2024-09-04 00:47:53 +00:00
GitHub Actions
1de1ccb1ae updated submodules 2024-09-03 18:35:23 +00:00
GitHub Actions
827ff03bfb updated submodules 2024-09-03 18:17:26 +00:00
Bryce Hackel
ebf3edcc49
Merge pull request #396 from bhackel/v5
V5
2024-09-02 21:53:43 -07:00
Bryce Hackel
55494e2e91
coding on my phone 2024-09-02 20:27:38 -07:00
Bryce Hackel
7674805f75
ee 2024-09-02 19:34:12 -07:00
GitHub Actions
5b554ecc0a updated submodules 2024-09-03 00:47:07 +00:00
Bryce Hackel
d6c995b1be
Improve hiding warning 2024-09-02 15:24:27 -07:00
Bryce Hackel
df0be8c66e
Change hiding method 2024-09-01 19:45:54 -07:00
Bryce Hackel
9d62ce75ce
Fix bugs 2024-09-01 19:10:38 -07:00
GitHub Actions
e66f68ebc6 updated submodules 2024-09-02 00:49:42 +00:00
Bryce Hackel
c73cd63db4
Cancel gesture after 1 second of inactivity 2024-09-01 13:10:59 -07:00
Bryce Hackel
d4f8a41ff2
Fix smoothing for player gestures 2024-09-01 13:10:51 -07:00
Bryce Hackel
861a9fd30b
Remove OLED live chat fix 2024-09-01 12:27:07 -07:00
Bryce Hackel
a3ac8e9735
Default disable iSponsorBlock 2024-09-01 11:19:09 -07:00
Bryce Hackel
810aca2f16
Disable warning popup 2024-09-01 11:18:48 -07:00
ChuTuanVu
2134ae02d2
Update Vietnamese localization (#392) 2024-09-01 18:41:20 +02:00
DeciBelioS
d9a9ef5563
Update Localizable.strings Spanish (#391) 2024-09-01 18:41:09 +02:00
GitHub Actions
0d87774cd7 updated submodules 2024-09-01 00:56:34 +00:00
GitHub Actions
108deb8d6b updated submodules 2024-08-31 00:47:00 +00:00
Victor Alves
197f31edf4
Update Portuguese Localization (#389)
* Update Portuguese Localization

* Update Portuguese Localization

* Update Portuguese localization

* Update Portuguese Localization
2024-08-30 20:44:40 +02:00
GitHub Actions
b5a45c15ac updated submodules 2024-08-30 00:47:31 +00:00
GitHub Actions
4a92378939 updated submodules 2024-08-29 00:47:16 +00:00
GitHub Actions
f17bb793d4 updated submodules 2024-08-28 00:46:43 +00:00
Bryce Hackel
64bd324ec2
Merge pull request #380 from bhackel/update-settings-export
Update settings export
2024-08-26 23:33:40 -07:00
Bryce Hackel
5fb849297a
Fix bug with reminder again 2024-08-26 23:12:24 -07:00
Bryce Hackel
09721d4b3a
Fix reminder popups 2024-08-26 21:41:19 -07:00
GitHub Actions
a46b3b4e20 updated submodules 2024-08-27 00:46:19 +00:00
Bryce Hackel
5741d7c900
Fix black tinting in light mode 2024-08-26 12:40:39 -07:00
Bryce Hackel
969efaaf4d
Revert default Player Button, reduce image size 2024-08-26 12:36:26 -07:00
Bryce Hackel
6996c0ed66
Add keys, fix toasts 2024-08-26 12:33:02 -07:00
Bryce Hackel
5095267b4c
Merge branch 'main' into update-settings-export 2024-08-26 01:17:35 -07:00
Bryce Hackel
53e42e1dd4
Merge pull request #377 from bhackel/gesture-improvement
Gesture improvement
2024-08-26 01:12:43 -07:00
Bryce Hackel
9b83103e92
Merge branch 'main' into gesture-improvement 2024-08-26 00:55:52 -07:00
Bryce Hackel
963b9d5fd3
Ignore fine scrubber gesture overlap 2024-08-26 00:43:56 -07:00
Bryce Hackel
573c2d2f43
Add setting for haptic feedback 2024-08-26 00:06:39 -07:00
Bryce Hackel
268568b106
Improve audio smoothness visuals 2024-08-26 00:06:18 -07:00
Bryce Hackel
235e2966bc
Fix bugs, only allow one seek gesture 2024-08-25 23:10:49 -07:00
Bryce Hackel
8118240125
Merge pull request #376 from bhackel/update-video-player
Update video player
2024-08-25 22:16:12 -07:00
Bryce Hackel
d4add482d7
Merge branch 'main' into update-video-player 2024-08-25 22:15:00 -07:00
Bryce Hackel
6aa1f62140
Add smoothing, improve seek, adjust sensitivity 2024-08-25 21:58:18 -07:00
GitHub Actions
c82b31d181 updated submodules 2024-08-26 00:46:08 +00:00
Bryce Hackel
fa922a1acd
Add player button in navbar 2024-08-25 17:39:12 -07:00
Bryce Hackel
aa5300f54f
Refactor, update seek implementation, improve speed 2024-08-25 17:31:11 -07:00
Bryce Hackel
2097308a83
Improve localizations, fix bugs 2024-08-25 12:03:43 -07:00
Bryce Hackel
3795d543ad
Update LICENSE 2024-08-25 11:51:34 -07:00
arichornlover
7083d30d9c
Update Localizable.strings 2024-08-24 21:36:44 -05:00
arichornlover
a8c21a202a
Update English localization 2024-08-24 21:06:34 -05:00
arichornlover
cba079cefa
Update template localization 2024-08-24 21:06:02 -05:00
Bryce Hackel
7d75eac440
Merge pull request #373 from bhackel/fix-settings-crash
Fix settings crash
2024-08-24 16:49:58 -07:00
Bryce Hackel
6e9ec38c4a
Add reminder for YouTube Plus 2024-08-24 16:38:20 -07:00
Bryce Hackel
312f84eb78
Merge branch 'main' into fix-settings-crash 2024-08-24 16:34:16 -07:00
GitHub Actions
525f10dcda updated submodules 2024-08-24 00:43:58 +00:00
GitHub Actions
2e6f678f34 updated submodules 2024-08-23 00:44:53 +00:00
Bryce Hackel
beeb9eb19f
Add default value ignore 2024-08-21 22:46:32 -07:00
Bryce Hackel
0d72c03167
Add keys to Copy Settings 2024-08-21 22:23:02 -07:00
Bryce Hackel
8eed3ce8bc
Fix playback in feeds on iPad 2024-08-21 21:01:27 -07:00
Bryce Hackel
3f24f6440f
Merge pull request #370 from bhackel/revert-miniplayer
Revert bigytminiplayer
2024-08-21 20:58:53 -07:00
Bryce Hackel
c0a2ec26ed
Revert bigytminiplayer 2024-08-21 20:34:37 -07:00
GitHub Actions
7797875a87 updated submodules 2024-08-22 00:46:07 +00:00
GitHub Actions
4f890f4e0d updated submodules 2024-08-21 00:44:32 +00:00
Bryce Hackel
2ece340746
Merge pull request #358 from bhackel/gestures
Gestures and Loop
2024-08-20 00:52:28 -07:00
Bryce Hackel
ca84635cf4
Merge branch 'main' into gestures 2024-08-20 00:40:52 -07:00
Bryce Hackel
5066716f7f
Localizations for Gestures 2024-08-20 00:24:56 -07:00
Bryce Hackel
bed87298f6
Update Submodule 2024-08-19 23:42:02 -07:00
GitHub Actions
87d7b576dd updated submodules 2024-08-20 00:53:21 +00:00
GitHub Actions
f652976a53 updated submodules 2024-08-20 00:44:56 +00:00
Bryce Hackel
44d6ffe781
Create LICENSE 2024-08-19 14:08:08 -07:00
Bryce Hackel
023fafae15
Added YouLoop submodule to Tweaks/ folder 2024-08-18 18:17:32 -07:00
GitHub Actions
4c5e2ee0e8 updated submodules 2024-08-18 00:49:27 +00:00
GitHub Actions
de89f7aca8 updated submodules 2024-08-17 00:43:19 +00:00
Bryce Hackel
36f9da844b
Add disable option 2024-08-16 09:58:32 -07:00
Bryce Hackel
e63bc374cf
Fix defaults and text descriptions 2024-08-16 09:21:19 -07:00
Bryce Hackel
067ad5a373
Merge pull request #345 from bhackel/video-player
Basic Video player
2024-08-16 01:40:45 -07:00
Bryce Hackel
6e8bbcb49e
Add localization 2024-08-16 01:34:51 -07:00
Bryce Hackel
e21e026c30
Fix compile 2024-08-16 00:54:07 -07:00
Bryce Hackel
1647358a9e
Merge branch 'main' into video-player 2024-08-16 00:35:06 -07:00
Bryce Hackel
feaaa07e9e
Revert "Prototype 2"
This reverts commit 8f578bb741.
2024-08-16 00:33:37 -07:00
Bryce Hackel
f434239419
Merge branch 'main' into gestures 2024-08-16 00:26:24 -07:00
Bryce Hackel
e62699749d
Sensitivity and Deadzone settings 2024-08-16 00:25:24 -07:00
Bryce Hackel
4602b74e6f
Add deadzone 2024-08-15 23:24:07 -07:00
Bryce Hackel
6854f91c1e
Implement gesture selection 2024-08-15 19:48:41 -07:00
GitHub Actions
b081d5b52e updated submodules 2024-08-16 00:44:28 +00:00
Bryce Hackel
8ed3d97d2d
Gesture refactor for settings 2024-08-15 00:01:53 -07:00
Bryce Hackel
e92ada8427
Gesture settings 2024-08-14 23:16:49 -07:00
Bryce Hackel
8f578bb741
Prototype 2 2024-08-14 18:28:42 -07:00
GitHub Actions
2d82e0b532 updated submodules 2024-08-15 00:43:33 +00:00
Bryce Hackel
b963c807bb
Video player prototype 2024-08-14 09:23:15 -07:00
Bryce Hackel
10882e5d61
Merge branch 'main' into gestures 2024-08-14 09:00:51 -07:00
Bryce Hackel
4ed8e94880
Merge branch 'main' into gestures 2024-08-13 23:41:37 -07:00
Bryce Hackel
b588b7f6d0
Attempt seek gesture 2024-08-13 22:51:30 -07:00
GitHub Actions
9aa33a676d updated submodules 2024-08-14 00:53:53 +00:00
GitHub Actions
76f48a2700 updated submodules 2024-08-14 00:45:08 +00:00
schweppes
45b7cd948e
Bulgarian translations (#332)
Co-authored-by: tonydalov <t.dalov@dictu.nl>
2024-08-14 01:33:23 +02:00
gototheskinny
4c24c0c336
Turkish loc updated (#336) 2024-08-14 01:33:12 +02:00
Bryce Hackel
dd88efc631
Merge pull request #331 from bhackel/fix-oled-live-chat
Fix OLED live chat
2024-08-12 23:05:35 -07:00
Bryce Hackel
e067e8dec5
Fix OLED live chat 2024-08-12 23:04:29 -07:00
Bryce Hackel
6e609d56e7
Merge pull request #330 from bhackel/remove-speed-popup
Remove speed popup
2024-08-12 22:43:28 -07:00
Bryce Hackel
11faee3f1e
Merge branch 'main' into remove-speed-popup
I used a translator, hopefully it is fine
2024-08-12 22:42:56 -07:00
Bryce Hackel
82e4f21d24
Add Hide Speed Toast 2024-08-12 22:16:05 -07:00
GitHub Actions
916bcf33ff updated submodules 2024-08-13 00:46:14 +00:00
Victor Alves
9d0fb16075
Update Portuguese localization (#326)
* Update Portuguese Localization
2024-08-12 22:12:18 +02:00
Balackburn
21df218f2f
Updated Credits 2024-08-12 10:42:23 +02:00
GitHub Actions
f384a00e04 updated submodules 2024-08-12 00:46:59 +00:00
Bryce Hackel
10a536880b
Merge pull request #320 from bhackel/hud-and-collapse
Copy Hide HUD and Hide Collapse Button
2024-08-10 05:28:47 -07:00
Bryce Hackel
08c263fdf0
Copy Hide HUD and Hide Collapse Button 2024-08-10 04:18:36 -07:00
Bryce Hackel
818005d73c
Merge pull request #319 from bhackel/misc-features
Misc features
2024-08-10 03:48:54 -07:00
Bryce Hackel
1a9758770d
Fix bugs 2024-08-10 03:21:45 -07:00
Bryce Hackel
f64aab1b58
Fix build error 2024-08-10 02:19:23 -07:00
Bryce Hackel
762cd8f618
Remove YTLitePlus OLED Theme 2024-08-10 02:11:17 -07:00
Bryce Hackel
ba13d1b987
Live Chat OLED dark mode 2024-08-10 02:11:17 -07:00
Bryce Hackel
753d690b78
Hide autoplay mini preview 2024-08-10 02:11:16 -07:00
Bryce Hackel
c9875ec8b7
Fix localization, fix copy/paste switch 2024-08-10 02:11:16 -07:00
Bryce Hackel
11a3e75b0d
Default disable big mini player 2024-08-10 02:11:16 -07:00
Bryce Hackel
794fb561c9
Fix import export settings localization 2024-08-10 02:11:16 -07:00
Bryce Hackel
4f2b55a897
Hide comment previews by @arichornlover 2024-08-10 02:11:15 -07:00
GitHub Actions
948ea5ff29 updated submodules 2024-08-10 00:53:31 +00:00
GitHub Actions
37582ecbf8 updated submodules 2024-08-10 00:44:53 +00:00
Bryce Hackel
64c712d630
Attempt brightness and volume gestures 2024-08-09 16:51:12 -07:00
Bryce Hackel
91290efdfe
Allow other gestures 2024-08-09 15:39:52 -07:00
GitHub Actions
f2e7c234eb updated submodules 2024-08-09 00:45:23 +00:00
GitHub Actions
e7523dc08d updated submodules 2024-08-08 00:44:57 +00:00
Bryce Hackel
09ddc42e32
Add reporting option 2024-08-07 12:11:03 -07:00
Bryce Hackel
d4679b8414
Attempt Volume Sliding 2024-08-07 10:59:10 -07:00
Bryce Hackel
df3d09e81d
Gesture test using YTHFS code 2024-08-06 23:09:19 -07:00
arichornlover
d731dbddec
Fix LowContrastMode description
also added Version compatibility, LowContrastMode will not work once v17.38.10 is gone in the future.
2024-08-06 21:06:02 -05:00
GitHub Actions
00bb15a868 updated submodules 2024-08-07 00:45:08 +00:00
GitHub Actions
8a717e763a updated submodules 2024-08-06 00:44:29 +00:00
ChuDucManh
47562c543b
Update Localizable.strings (#305) 2024-08-05 20:52:29 +02:00
Bryce Hackel
d27150b11d
Fix delete workflows 2024-08-05 03:16:34 -07:00
Bryce Hackel
46d6b163b9
Fix YouTube Extensions bug 2024-08-05 03:09:41 -07:00
GitHub Actions
cd63b80b77 updated submodules 2024-08-03 00:43:56 +00:00
GitHub Actions
f6afc111e6 updated submodules 2024-08-02 00:44:17 +00:00
Bryce Hackel
bdc3b68954
Fix dylib injection issue 2024-07-31 20:18:13 -07:00
Balackburn
c947854b44 added some missing strings (still some missing) 2024-08-01 02:56:08 +02:00
GitHub Actions
585a38d2c2 updated submodules 2024-08-01 00:49:54 +00:00
GitHub Actions
3b187cfa01 updated submodules 2024-07-31 23:36:37 +00:00
arichornlover
f08e836f02
Fix errors (Settings.xm)
* fixed errors, removed uYouEnhanced stuff. Sorry about that.
2024-07-30 19:48:07 -05:00
GitHub Actions
8f060b6fc9 updated submodules 2024-07-31 00:36:50 +00:00
arichornlover
2802e0102d
Added "Copy Settings" and "Paste Settings"
Added and adjusted for YTLitePlus.
2024-07-30 16:36:37 -05:00
GitHub Actions
64793e4d96 updated submodules 2024-07-30 00:44:13 +00:00
Bryce Hackel
8a1fa0cac4
Merge pull request #285 from bhackel/cleanup-makefile
Add job summary when building with actions
2024-07-28 17:45:38 -07:00
Bryce Hackel
c43ae5fb50
Merge branch 'main' into cleanup-makefile 2024-07-28 17:41:22 -07:00
Bryce Hackel
7a2f0b013d
Revert Revert Revert Makefile 2024-07-28 17:15:56 -07:00
arichornlover
ce97bb8667
Merge pull request #283 from uyou-icin/main
Proper Turkish loc added
2024-07-28 14:43:40 -05:00
gototheskinny
2d36d3d01d
Proper Turkish loc added 2024-07-28 16:05:24 +03:00
Bryce Hackel
a70a4c5e0b
Copy from uYouEnhanced 2024-07-27 17:20:05 -07:00
Bryce Hackel
11bebd527e
Revert Revert Makefile but it works plz 2024-07-27 15:14:23 -07:00
Bryce Hackel
911425b9eb
Add code to remove UISupportedDevices 2024-07-27 00:50:07 -07:00
Bryce Hackel
665abdd65a
Add job summary 2024-07-27 00:50:00 -07:00
Bryce Hackel
3ec1985ed9
Merge pull request #278 from bhackel/bhackel-iOS14
Fix building on iOS 14
2024-07-26 23:23:40 -07:00
arichornlover
7282c45b74
Merge pull request #277 from arichornloverALT/main
Added YouTimeStamp
2024-07-27 01:22:23 -05:00
arichornloverALT
64fa639451
Update building 2024-07-27 01:20:32 -05:00
arichornloverALT
585be0e4b8
Update update-submodules.yml 2024-07-27 01:17:44 -05:00
GitHub Actions
0266735ab6 added YouTimeStamp submodule 2024-07-27 06:16:53 +00:00
arichornloverALT
d80fe14be4
Update update-submodules.yml 2024-07-27 01:16:36 -05:00
Bryce Hackel
8c509c8ee8
Revert Makefile 2024-07-26 22:54:55 -07:00
Bryce Hackel
f274cf7664
Cleanup makefile and actions script 2024-07-26 22:54:55 -07:00
Bryce Hackel
324f9c1d92
Fix building on iOS 14 2024-07-26 22:45:17 -07:00
GitHub Actions
77fb75f2ae updated submodules 2024-07-27 00:43:52 +00:00
GitHub Actions
acbc392db0 updated submodules 2024-07-26 00:43:41 +00:00
GitHub Actions
d5a7267606 updated submodules 2024-07-25 00:44:01 +00:00
GitHub Actions
8f515b14b3 updated submodules 2024-07-24 00:45:08 +00:00
GitHub Actions
77b45f4aa0 updated submodules 2024-07-23 00:44:12 +00:00
GitHub Actions
73f2ddcbac updated submodules 2024-07-22 19:18:59 +00:00
Balackburn
df21184ca5 Add YTHeaders submodule 2024-07-22 21:13:15 +02:00
GitHub Actions
b00838b0e8 updated submodules 2024-07-22 16:59:44 +00:00
GitHub Actions
335d345ac3 updated submodules 2024-07-22 00:46:12 +00:00
arichornlover
392b325bba
Merge pull request #259 from bhackel/fix-youpip
Switch Submodules
2024-07-21 00:40:13 -05:00
GitHub Actions
129896358d updated submodules 2024-07-21 00:48:41 +00:00
Bryce Hackel
222671232b
Merge branch 'main' into fix-youpip 2024-07-20 15:04:48 -07:00
Bryce Hackel
ebb6e15503
Switch Return-YouTube-Dislikes 2024-07-20 15:02:13 -07:00
GitHub Actions
393fecdbec updated submodules 2024-07-20 00:43:02 +00:00
arichornlover
08680d523c
Merge pull request #260 from Deci8BelioS/main
Update Spanish Translation
2024-07-19 17:51:58 -05:00
DeciBelioS
89cb221e2e
Update Spanish Translation 2024-07-20 00:34:26 +02:00
Bryce Hackel
2c6abe9aaa
Updated YouQuality submodule 2024-07-19 02:54:55 -07:00
Bryce Hackel
2d1669883e
Updated YouMute submodule 2024-07-19 02:54:12 -07:00
Bryce Hackel
1c8d1882a1
Updated YouGroupSettings submodule 2024-07-19 02:54:05 -07:00
Bryce Hackel
3f6f421287
Updated YTUHD submodule 2024-07-19 02:53:57 -07:00
Bryce Hackel
e007de8504
Updated Return-YouTube-Dislikes submodule 2024-07-19 02:48:21 -07:00
Bryce Hackel
626e3975b3
Updated YTABConfig submodule 2024-07-19 02:46:40 -07:00
Bryce Hackel
15ffcdb45f
Updated YouPiP submodule 2024-07-19 00:54:48 -07:00
Bryce Hackel
d2b3fc5bf3
Fix building 2024-07-19 00:01:19 -07:00
Bryce Hackel
1af0d7dace
Replaced submodule at Tweaks/YouPiP with https://github.com/bhackel/YouPiP 2024-07-19 00:01:07 -07:00
Bryce Hackel
62df9c5a6b
Fix compilation error 2024-07-18 23:54:59 -07:00
arichornlover
b68abacc63
mark “Fullscreen to the Right” as iPhone-Exclusive 2024-07-18 16:39:38 -05:00
arichornlover
4f793a00b2
Merge pull request #250 from bhackel/fix-fullscreen-to-the-right
Fix fullscreen to the right
2024-07-18 15:37:34 -05:00
Bryce Hackel
1db21b468e
Merge remote-tracking branch 'origin/main' into fix-fullscreen-to-the-right 2024-07-18 13:26:50 -07:00
Victor Alves
240437e885
Update Portuguese Localization (#254) 2024-07-18 21:06:34 +02:00
Victor Alves
48509f2224
Update Portuguese Localization (#253) 2024-07-18 20:55:40 +02:00
GitHub Actions
9f523e1905 updated submodules 2024-07-18 17:45:26 +00:00
GitHub Actions
8c4a246766 updated submodules 2024-07-18 00:43:31 +00:00
Bryce Hackel
1c1efa75d9
Fix fullscreen to the right 2024-07-17 16:16:51 -07:00
Bryce Hackel
11233c287c
Merge pull request #249 from bhackel/main
Sync uYouEnhanced Templates
2024-07-17 15:47:20 -07:00
Bryce Hackel
09403eca45
Merge pull request #248 from bhackel/disable-fullscreen-engagement-overlay
Add Disable Engagement Overlay
2024-07-17 15:46:34 -07:00
Bryce Hackel
df2a390d85
Sync uYouEnhanced Templates 2024-07-17 15:43:02 -07:00
Bryce Hackel
6c2ae1996e
Add Disable Engagement Overlay 2024-07-17 14:55:25 -07:00
GitHub Actions
8ef2ec493e updated submodules 2024-07-17 00:44:30 +00:00
arichornlover
0698fa5759
Update YTWatchViewController header description
Included **Fullscreen to the Right** since it’s also using the property used in **Disable ambient mode**
2024-07-16 12:13:22 -05:00
GitHub Actions
d1d55da304 updated submodules 2024-07-16 00:44:03 +00:00
arichornlover
eb8e4cb073
Updated iPhone Layout Option 2024-07-13 10:16:51 -05:00
arichornlover
6b78aba609
Remove Deprecated Code (Fullscreen to the Right)
UI_USER_INTERFACE_IDIOM() was the wrong Idiom and was deprecated, I am sorry for using the incorrect Device Type Checker 😅
2024-07-13 05:23:27 -05:00
GitHub Actions
0d600a2650 updated submodules 2024-07-13 00:44:06 +00:00
arichornlover
690ed21204
Merge pull request #241 from TbhLovers/main
fix: redefinition of -userInterfaceIdiom
2024-07-12 16:58:00 -05:00
zx
9086f42b6e
fix: redefinition of -userInterfaceIdiom 2024-07-12 16:54:26 -04:00
arichornlover
767a0fbe81
Update iPad Layout Option
Other hooks/classes of iPad Layout may get removed soon.
2024-07-12 11:45:43 -05:00
GitHub Actions
48b63b06bc updated submodules 2024-07-12 00:43:14 +00:00
GitHub Actions
3551f76da4 updated submodules 2024-07-11 00:44:02 +00:00
arichornlover
62fb789039
Update .gitmodules 2024-07-10 14:49:41 -05:00
arichornlover
cdb3536d7e
Merge pull request #230 from YTLitePlus/revert-229-main
Revert "YouTubeHeader changes"
2024-07-10 05:11:02 -05:00
arichornlover
c14f567a13
Revert "updated submodules" 2024-07-10 05:10:41 -05:00
arichornlover
94814d7fa0
Merge pull request #229 from arichornloverALT/main
updated submodules
2024-07-10 04:51:18 -05:00
GitHub Actions
c223fad764 updated submodules 2024-07-10 09:48:16 +00:00
arichornlover
cd72b8d8f3
Added Fullscreen to the Right stuff (YTLitePlus.xm) 2024-07-10 04:25:06 -05:00
arichornlover
e5a3ff0645
Switch back to arichornloverALT repo
Even if there is YTReel errors, I have to switch it back for “Fullscreen to the Right”
2024-07-10 04:17:20 -05:00
arichornlover
d4529dcfe5
Temp-Disable CUSTOM_SWITCH (Settings.xm) 2024-07-10 03:51:18 -05:00
arichornlover
7fe04c0d01
Update Settings.xm 2024-07-10 03:31:01 -05:00
arichornlover
c5b46308da
Added Fullscreen to the Right Option 2024-07-10 02:33:47 -05:00
GitHub Actions
5ac15f6844 updated submodules 2024-07-10 00:43:57 +00:00
arichornlover
c0d4342317
Update YTLitePlus.xm 2024-07-09 13:30:02 -05:00
arichornlover
f3363f40e4
Restore duplicate
I re-added the duplicate but it’s the version from YTLite’s Sideloading.x
the old version of this would likely result with no icons at the top and bottom all over again.
2024-07-09 13:10:06 -05:00
GitHub Actions
fe517222bd updated submodules 2024-07-09 00:43:37 +00:00
arichornlover
5875e7d56b
Merge pull request #225 from YTLitePlus/revert-223-main
Revert "Switch to arichornloverALT repo"
2024-07-08 18:49:45 -05:00
arichornlover
1f8bc5079a
Revert "Switch to arichorn repo (#223)"
This reverts commit 1e041989d9.
2024-07-08 18:48:22 -05:00
GitHub Actions
ba15981d28 updated submodules 2024-07-08 20:13:35 +00:00
GitHub Actions
7e73e33152 updated submodules 2024-07-08 19:55:38 +00:00
Balackburn
5c516af1cc Switch to Balackburn Return-YouTube-Dislikes fork 2024-07-08 21:54:45 +02:00
Bryce Hackel
1e041989d9
Switch to arichorn repo (#223) 2024-07-08 19:25:57 +02:00
Bryce Hackel
f63957ed01
Misc features (#220)
* Add YTTapToSeek

* Add Disable pull-to-full

* Add always remaining time/disable toggle time

* Fix headers

* Add disable ambient mode
2024-07-08 18:05:20 +02:00
arichornlover
1cb51102ba
Remove another duplicate 2024-07-07 05:48:10 -05:00
arichornlover
bdaaf70098
Update YTLitePlus.h 2024-07-07 05:19:42 -05:00
arichornlover
42c24afbf6
Merge pull request #217 from bhackel/remove-duplicates
Remove duplicates
2024-07-07 05:12:49 -05:00
arichornlover
92e738f54b
Merge pull request #216 from bhackel/misc-updates
Misc updates
2024-07-07 04:24:13 -05:00
Bryce Hackel
0369070984
Remove Hide Community Posts 2024-07-06 23:56:12 -07:00
Bryce Hackel
ac7267e573
Remove YTSpeed 2024-07-06 23:19:23 -07:00
Bryce Hackel
44075f5bec
Remove YTUnShorts 2024-07-06 22:54:45 -07:00
Bryce Hackel
71cde24094
Remove stock volume HUD 2024-07-06 22:52:15 -07:00
Bryce Hackel
bb9efe5df4
Remove YTNoSuggestedVideo 2024-07-06 22:46:42 -07:00
Bryce Hackel
4131412566
Merge remote-tracking branch 'origin/main' into misc-updates 2024-07-06 20:00:17 -07:00
Bryce Hackel
b0a2dd49ce
give up on new settings UI 2024-07-06 19:52:58 -07:00
GitHub Actions
dd9155f85e updated submodules 2024-07-07 00:47:54 +00:00
Bryce Hackel
25fda866ec
Try to debug new settings UI toggle 2024-07-05 23:05:07 -07:00
Bryce Hackel
4de07c2d7a
Fix YouGroupSettings addition 2024-07-05 22:42:48 -07:00
Bryce Hackel
4074281265
Add casting fix from uYouEnhanced 2024-07-05 01:33:58 -07:00
Bryce Hackel
3c63594fc6
Fix crash caused by edge case 2024-07-05 01:28:41 -07:00
arichornlover
5f28d954d9
Sync delete-workflow-runs.yml
Updated to be in sync with new changes from https://github.com/Mattraks/delete-workflow-runs
2024-07-04 20:07:27 -05:00
GitHub Actions
6be58e6bd6 updated submodules 2024-07-05 00:42:55 +00:00
Bryce Hackel
bed3d1571f
New Settings UI, Playback in feeds 2024-07-04 16:21:28 -07:00
Bryce Hackel
172154a836
Add classic Seek Anywhere gesture 2024-07-04 15:53:54 -07:00
Bryce Hackel
8a79f37aba
Cleanup and add workflow settings 2024-07-04 15:53:53 -07:00
arichornlover
09ae20505f
Updated YTNoModernUI Option 2024-07-04 17:35:42 -05:00
Bryce Hackel
d3c6da1a54
refactor settings 2024-07-04 14:30:56 -07:00
Bryce Hackel
fdfc1fe390
Fix home contents bug 2024-07-04 14:30:36 -07:00
Bryce Hackel
c3ec08fbb8
Add Hide Home Tab (#210) 2024-07-04 17:52:02 +02:00
arichornlover
bf8ff2ab35
Merge pull request #213 from arichornloverALT/main
updated submodules
2024-07-04 07:28:59 -05:00
GitHub Actions
175c80a64c updated submodules 2024-07-04 12:27:42 +00:00
Bryce Hackel
a4cb5548d7
Add Hide Home Tab 2024-07-04 01:17:57 -07:00
GitHub Actions
ca20cb6d87 updated submodules 2024-07-04 00:43:11 +00:00
GitHub Actions
69dcbbeec9 updated submodules 2024-07-03 00:42:50 +00:00
GitHub Actions
dd4d58858e updated submodules 2024-07-02 00:42:50 +00:00
GitHub Actions
406505e54b updated submodules 2024-07-01 00:49:31 +00:00
GitHub Actions
4445c56a9e updated submodules 2024-06-29 00:41:56 +00:00
GitHub Actions
3e06b3561f updated submodules 2024-06-28 00:42:49 +00:00
arichornlover
b7946797d1
Fix SDK caching 2024-06-27 19:02:12 -05:00
arichornlover
17e4afcdd1
Merge pull request #202 from arichornloverALT/main
Fix submodules
2024-06-26 16:32:24 -05:00
GitHub Actions
ee7cbf7122 updated submodules 2024-06-26 21:31:25 +00:00
arichornlover
e9afb3eeb7
Update .gitmodules 2024-06-26 16:18:39 -05:00
arichornlover
656a083f30
Update .gitmodules 2024-06-26 16:00:23 -05:00
arichornlover
ca298f8714
Merge pull request #200 from arichornloverALT/patch-1
Temporary fix SDK not compiling
2024-06-26 13:51:53 -05:00
arichornloverALT
f808ab9f63
Update compiling for YouTube v19.21.2+
Minimum is iOS 15.0 and the SDK will be using iOS 16.5
2024-06-26 13:20:33 -05:00
arichornloverALT
0b025a9959
Temporary fix SDK not compiling 2024-06-26 12:46:13 -05:00
Balackburn
4787f64a7e updated .gitmodules 2024-06-21 19:38:16 +02:00
GitHub Actions
500d94b5f5 updated submodules 2024-06-21 00:41:48 +00:00
GitHub Actions
b8ee85e4c8 updated submodules 2024-06-20 00:41:35 +00:00
GitHub Actions
749fe4330c updated submodules 2024-06-18 23:10:16 +00:00
Balackburn
76d130cdc7 removed YTNOCheckLocalNetWork 2024-06-18 23:55:16 +02:00
GitHub Actions
2feb55f049 updated submodules 2024-06-18 16:35:09 +00:00
GitHub Actions
258f0c58a3 updated submodules 2024-06-18 00:43:03 +00:00
Alexander Betke
f19a7c860e
fix escaping quotes (#187) 2024-06-17 22:18:33 +02:00
Alexander Betke
d9ccf7bad5
translated new "CHANGE_APP_ICON" string to german (#186) 2024-06-16 20:14:31 +02:00
GitHub Actions
d889cf9c2f updated submodules 2024-06-15 00:41:49 +00:00
GitHub Actions
0d4c8c7232 updated submodules 2024-06-14 00:42:05 +00:00
GitHub Actions
0e0f921097 updated submodules 2024-06-13 00:42:26 +00:00
GitHub Actions
54ecc9303f updated submodules 2024-06-12 00:42:37 +00:00
GitHub Actions
5b8ada6438 updated submodules 2024-06-11 00:42:21 +00:00
Balackburn
4c90b27713 typo 2024-06-10 23:40:43 +02:00
Balackburn
04fbeb3df4 buildapp.yml 2024-06-10 23:29:40 +02:00
Balackburn
2759c71f5a Added catbox.moe artifact upload & bypass rate limit 2024-06-10 23:03:47 +02:00
arichornlover
2d5aa7fbc6
Compling Resolved (buildapp.yml) 2024-06-08 23:48:56 -05:00
GitHub Actions
41e4f86d71 updated submodules 2024-06-09 04:39:05 +00:00
arichornlover
e273ab906a
Fix iSponsorBlock 2024-06-08 23:38:16 -05:00
GitHub Actions
66f986a17e updated submodules 2024-06-09 00:46:49 +00:00
GitHub Actions
ae93a16a2e updated submodules 2024-06-08 00:42:17 +00:00
GitHub Actions
120f054af9 updated submodules 2024-06-07 00:43:11 +00:00
GitHub Actions
7217136174 updated submodules 2024-06-06 00:41:28 +00:00
arichornlover
5677c32827
Update buildapp.yml (Modified Commit ID)
It will default to f78647efe0 Until issues are resolved. Something is wrong with both iSponsorBlock+YouTubeHeader.
2024-06-05 16:11:01 -05:00
GitHub Actions
18e9c37347 updated submodules 2024-06-05 20:45:46 +00:00
GitHub Actions
1fbfe9a771 updated submodules 2024-06-05 20:42:53 +00:00
GitHub Actions
2182df3570 updated submodules 2024-06-05 19:54:47 +00:00
arichornlover
62312be4b3
Update iSponsorBlock
Switched it to use my fork instead to resolve compiling errors.
2024-06-05 14:53:54 -05:00
arichornlover
3c509e8938
Update iSponsorBlock
temporary change using ref “f8c8ebdc0590bad24f46fb155181d7fe667dbde1”
just to exclude the following commit: 9c210c497d since it brings back the compiling errors.
2024-06-05 14:48:12 -05:00
Macley
f78647efe0
Revert "Fix Theo’s warning about not defining build version" (#169)
* Revert "Fix Theo’s warning about not defining build version (#164)"

This reverts commit 5f5560e41a.

* Remove empty line
2024-06-05 20:22:28 +02:00
Balackburn
3a39bca8b1
Added missing donation (@poomsmart and @dayanch96) 2024-06-05 14:14:49 +02:00
Balackburn
a9fb0921a3
Update Release.md 2024-06-05 13:35:59 +02:00
GitHub Actions
b455a519d5 updated submodules 2024-06-05 09:44:16 +00:00
arichornlover
89063c0a79
Improve buildapp.yml 2024-06-04 21:30:30 -05:00
GitHub Actions
8251704760 updated submodules 2024-06-05 00:41:37 +00:00
Balackburn
434c715966
Update README.md 2024-06-04 01:59:28 +02:00
Macley
5f5560e41a
Fix Theo’s warning about not defining build version (#164) 2024-06-03 23:33:14 +02:00
Balackburn
ac18fa40a2 Added support for 4.0 2024-06-03 03:45:51 +02:00
GitHub Actions
c64164f107 updated submodules 2024-06-01 00:44:09 +00:00
GitHub Actions
a042a01c4b updated submodules 2024-05-31 00:42:29 +00:00
GitHub Actions
a1cee85983 updated submodules 2024-05-30 00:41:17 +00:00
GitHub Actions
3ddf57cf26 updated submodules 2024-05-29 00:44:18 +00:00
GitHub Actions
d0967eceb6 updated submodules 2024-05-26 00:44:21 +00:00
GitHub Actions
15daf53c6c updated submodules 2024-05-25 00:40:03 +00:00
GitHub Actions
91fb500295 updated submodules 2024-05-24 00:41:33 +00:00
GitHub Actions
21691ad9dd updated submodules 2024-05-23 00:40:32 +00:00
GitHub Actions
b699489451 updated submodules 2024-05-22 00:40:43 +00:00
GitHub Actions
d14e5928c1 updated submodules 2024-05-21 00:40:52 +00:00
GitHub Actions
6395472dff updated submodules 2024-05-20 00:41:34 +00:00
GitHub Actions
a6e881fb84 updated submodules 2024-05-18 00:40:17 +00:00
Balackburn
c529b8685f Revert "New Option & Auto-Start Certain Tab" 2024-05-17 16:39:07 +02:00
arichornlover
67db44a5d0
Update YTLitePlus.xm 2024-05-16 21:46:50 -05:00
arichornlover
f39cd5daf0
New Option & Auto-Start Certain Tab
Added a new Option called `Auto-Hide Home Indicator`.

Added a way to auto-start to a certain tab.
Closes #145
2024-05-16 21:41:20 -05:00
GitHub Actions
8f642547cc updated submodules 2024-05-17 00:40:39 +00:00
Balackburn
7d7bb3f1d0 Fixed #55 (Updated YTUnshorts from Poomsmart) 2024-05-16 23:09:17 +02:00
GitHub Actions
6e35e4735b updated submodules 2024-05-16 00:40:08 +00:00
GitHub Actions
c649b3fd3f updated submodules 2024-05-15 00:40:24 +00:00
GitHub Actions
f7c9343de1 updated submodules 2024-05-14 00:40:18 +00:00
Matt
9416685360
Update romanian localization (#144) 2024-05-13 21:11:56 +02:00
GitHub Actions
7b6f26895c updated submodules 2024-05-13 00:41:47 +00:00
GitHub Actions
0e55ae2066 updated submodules 2024-05-12 00:43:51 +00:00
GitHub Actions
b0dfe09816 updated submodules 2024-05-11 00:39:28 +00:00
GitHub Actions
06beac8dfc updated submodules 2024-05-10 00:40:06 +00:00
GitHub Actions
7fdb887eac updated submodules 2024-05-09 00:40:13 +00:00
GitHub Actions
5c034b1017 updated submodules 2024-05-08 00:33:42 +00:00
GitHub Actions
d91dbb946f updated submodules 2024-05-07 00:40:06 +00:00
GitHub Actions
d329f73ff9 updated submodules 2024-05-06 00:40:41 +00:00
Balackburn
783e0162b1 updated .gitmodules 2024-05-06 00:12:52 +02:00
GitHub Actions
38075b937b updated submodules 2024-05-04 00:39:07 +00:00
GitHub Actions
c9cc590c78 updated submodules 2024-05-03 00:41:52 +00:00
GitHub Actions
35c4132dba updated submodules 2024-05-02 00:39:06 +00:00
arichornlover
438075d035
Update Settings.xm 2024-05-01 19:12:00 -05:00
GitHub Actions
d7548d295b updated submodules 2024-05-01 00:42:35 +00:00
arichornlover
8028438503
Delete Source/AppIconOptionsController.m 2024-04-30 17:24:33 -05:00
arichornlover
efec256ab4
Delete Source/AppIconOptionsController.h 2024-04-30 17:24:26 -05:00
arichornlover
1dd034d7b2
Delete AppIcons directory 2024-04-30 17:24:05 -05:00
arichornlover
ca1fdd49d6
Better AppIconOptionsController UI 2024-04-30 00:17:59 -05:00
arichornlover
ae2957dfcb
Fix Google sign in 2024-04-29 22:20:33 -05:00
GitHub Actions
c8f0fef06c updated submodules 2024-04-30 00:38:42 +00:00
GitHub Actions
081f178b8c updated submodules 2024-04-29 00:40:13 +00:00
GitHub Actions
c73dc0d137 updated submodules 2024-04-27 21:21:06 +00:00
GitHub Actions
7db3a39c82 updated submodules 2024-04-27 21:09:16 +00:00
Balackburn
b43802dd84 deleted empty folder 2024-04-27 23:08:13 +02:00
Balackburn
849b8789d4 Updated .gitmodules 2024-04-27 22:51:49 +02:00
arichornlover
95a2f6465e
Merge pull request #133 from MrAlucardDante/patch-1
Update iOS SDK
2024-04-27 11:56:29 -05:00
MrAlucardDante
087117a86b
Update iOS SDK
uYouEnhanced and YoutubeRebornPlus use the version 16.4 of the iOS SDK.
I was able to build the app successfully using this version
2024-04-27 15:05:31 +02:00
arichornlover
22b896e389
Update Makefile (Compiling Fix)
Resolves header errors
2024-04-27 01:16:41 -05:00
arichornlover
1837fb1154
Fix YTLitePlus building 2024-04-26 21:15:37 -05:00
arichornlover
9df539b8bf
Add new icon (Back Arrow) 2024-04-26 20:52:43 -05:00
arichornlover
2927ea02ec
Improved AppIconOptionsController Interface 2024-04-26 20:40:20 -05:00
GitHub Actions
5aa496fff6 updated submodules 2024-04-27 00:38:53 +00:00
GitHub Actions
69a9408900 updated submodules 2024-04-26 00:39:14 +00:00
GitHub Actions
2a1fff76a7 updated submodules 2024-04-25 00:41:38 +00:00
GitHub Actions
99cf0dc243 updated submodules 2024-04-24 00:39:02 +00:00
GitHub Actions
76f52cafed updated submodules 2024-04-23 00:39:20 +00:00
GitHub Actions
8d7347ec91 updated submodules 2024-04-20 00:39:11 +00:00
GitHub Actions
29fb17fc5e updated submodules 2024-04-19 00:38:57 +00:00
GitHub Actions
28ab8bea59 updated submodules 2024-04-18 00:38:26 +00:00
GitHub Actions
3e286581fb updated submodules 2024-04-17 00:39:15 +00:00
arichornlover
8c2bddb5c0
Updated AppIcons 2024-04-16 01:50:25 -05:00
arichornlover
c2ae647567
Improve AppIconOptionsController Menu
Some of the improvements were suggested by Balackburn. Thanks!
2024-04-16 01:49:12 -05:00
GitHub Actions
7058a72305 updated submodules 2024-04-16 00:38:20 +00:00
arichornlover
674004faa5
Update Settings.xm 2024-04-15 16:58:03 -05:00
Balackburn
a03a9fd871 TYPO 2024-04-15 04:48:25 +02:00
arichornlover
d077cb451a
Fix AppIconOptionsController icons not showing 2024-04-14 13:51:39 -05:00
arichornlover
c9221c7315
Update AppIconOptionsController (Better Interface) 2024-04-14 13:40:50 -05:00
arichornlover
1eb6ac4334
Reposition Change App Icon Button 2024-04-14 13:27:49 -05:00
Balackburn
0c856af02b Added "change app icon" localization 2024-04-14 20:21:38 +02:00
Balackburn
01563ae25b Updated Themes.xm 2024-04-14 17:14:03 +02:00
arichornlover
90169017cd
Update YTLitePlus.xm 2024-04-14 01:00:52 -05:00
arichornlover
b949b1c17b
Added “Change App Icon” Button (Settings.xm) 2024-04-13 23:53:55 -05:00
arichornlover
1022bf88f4
Added Custom App Icons (YTLitePlus) 2024-04-13 22:52:58 -05:00
arichornlover
6fa7720403
Create AppIconOptionsController.h 2024-04-13 22:45:16 -05:00
arichornlover
57db1efd85
App Icon Customization (YTLitePlus) 2024-04-13 22:44:27 -05:00
GitHub Actions
d197f2ef8f updated submodules 2024-04-14 00:45:35 +00:00
GitHub Actions
e3e5244efe updated submodules 2024-04-13 00:40:49 +00:00
Balackburn
bc072b1b8c Added YouGroupSettings 2024-04-13 02:34:49 +02:00
GitHub Actions
f46efc9966 updated submodules 2024-04-13 00:32:53 +00:00
GitHub Actions
66e6d0e5d1 updated submodules 2024-04-12 17:01:33 +00:00
Alexander Betke
78c144c627
Update Localizable.strings (german) (#123)
* Update Localizable.strings

This file, obviously translated with google translate, has been corrected and adapted by me as far as possible. Several sentences had to be roughly adapted for a better German understanding.

* formatted quotation marks
2024-04-12 18:51:11 +02:00
GitHub Actions
bb36d79cb3 updated submodules 2024-04-12 00:38:58 +00:00
GitHub Actions
f752eabfb9 updated submodules 2024-04-11 00:38:58 +00:00
Kevin Müller
16ba2ccabb
Add German Localization (#121)
* Added german localization

* Fix german language
2024-04-10 17:06:37 +02:00
GitHub Actions
c4ade41cd4 updated submodules 2024-04-10 00:38:20 +00:00
GitHub Actions
48b56857e9 updated submodules 2024-04-09 00:38:57 +00:00
GitHub Actions
2f160ad951 updated submodules 2024-04-08 00:40:17 +00:00
GitHub Actions
62fab6b9c2 updated submodules 2024-04-07 00:42:43 +00:00
GitHub Actions
c4549b04c0 updated submodules 2024-04-06 00:37:41 +00:00
GitHub Actions
6022039eca updated submodules 2024-04-05 00:38:55 +00:00
GitHub Actions
4a4c1d82ea updated submodules 2024-04-04 00:39:43 +00:00
GitHub Actions
0a44092ff9 updated submodules 2024-04-03 00:37:50 +00:00
GitHub Actions
9bc1ef7fa7 updated submodules 2024-04-02 00:39:53 +00:00
GitHub Actions
4602c4c295 updated submodules 2024-04-01 00:42:27 +00:00
GitHub Actions
e39e7709c2 updated submodules 2024-03-31 00:42:25 +00:00
GitHub Actions
9cc0939efb updated submodules 2024-03-30 00:37:16 +00:00
GitHub Actions
1265a03aaf updated submodules 2024-03-29 00:38:04 +00:00
GitHub Actions
68e3d6e0ab updated submodules 2024-03-28 00:38:16 +00:00
Balackburn
10e4076d3f
Update README.md 2024-03-27 23:35:48 +01:00
GitHub Actions
0e549dc4cd updated submodules 2024-03-27 22:15:27 +00:00
GitHub Actions
e12ff26636 updated submodules 2024-03-27 00:37:54 +00:00
GitHub Actions
4d49e04609 updated submodules 2024-03-26 00:38:10 +00:00
GitHub Actions
626dee777e updated submodules 2024-03-25 00:39:43 +00:00
arichornlover
28d6d4be3f
Re-added it (VersionSpooferLite.xm)
Instead of v17.01.4, it will be v17.33.2
Since it is now the oldest supported version in the app now.
2024-03-23 21:34:36 -05:00
arichornlover
70a19c27b8
Update Settings.xm 2024-03-23 21:32:36 -05:00
arichornlover
5e49e29acb
Remove incompatible stuff (VersionSpooferLite.xm) 2024-03-23 21:31:40 -05:00
arichornlover
c707e3fdaa
Update LowContrastMode Compatibility (Release.md) 2024-03-23 21:30:12 -05:00
GitHub Actions
5f3d5e7efa updated submodules 2024-03-24 00:42:28 +00:00
GitHub Actions
7441acecc1 updated submodules 2024-03-23 00:37:00 +00:00
GitHub Actions
a80d17159a updated submodules 2024-03-22 17:38:44 +00:00
Balackburn
6388ba106f Edited submodule 2024-03-22 18:37:49 +01:00
GitHub Actions
e3bed5a49e updated submodules 2024-03-22 17:20:58 +00:00
GitHub Actions
e8b7f712d2 updated submodules 2024-03-22 00:37:50 +00:00
GitHub Actions
bc5a536f72 updated submodules 2024-03-21 00:39:17 +00:00
GitHub Actions
f71fa5acfd updated submodules 2024-03-20 00:37:34 +00:00
GitHub Actions
b20f6cfae5 updated submodules 2024-03-19 00:37:45 +00:00
GitHub Actions
52e22ff036 updated submodules 2024-03-18 13:05:09 +00:00
Balackburn
6b48ed17ad .gitmodules updated 2024-03-18 13:30:24 +01:00
Macley
6407c62986
Get ytlite ver from project instead of manual input (#101)
* Update buildapp.yml
2024-03-18 12:34:41 +01:00
Balackburn
f132f83469
Updated Assets 2024-03-18 11:52:58 +01:00
Macley
3b64ad3aba
Automatically get Youtube version from the ipa itself (#100)
* See what's inside an unpacked .ipa

* cat the plist that has the info which yt version we're getting

* extract the version and see how available the variable is

* Use yt_version variable in build process

* single quote also the first sed to avoid double quoting

* Update buildapp.yml

* Update buildapp.yml

* Update buildapp.yml

* Update buildapp.yml

* try it this way?

* the grand final!

* Use Info.plist within ipa to determin yt version instead
2024-03-18 11:27:35 +01:00
Balackburn
b70f981c7e Updated make and gh actions (thank's @Macleykun) 2024-03-17 19:04:31 +01:00
Balackburn
afef27f630
Update README.md 2024-03-17 11:27:23 +01:00
Balackburn
5607e58b04
Merge pull request #97 from matt911/main
Update Localizable.strings
2024-03-17 11:23:48 +01:00
matt911
2d7d6c8e27 Update Localizable.strings
Update romanian localization
2024-03-17 12:00:46 +02:00
GitHub Actions
3bcc5f5a56 updated submodules 2024-03-17 00:40:41 +00:00
Balackburn
900490cddb Updated Localization 2024-03-16 18:23:24 +01:00
GitHub Actions
504b9eb20f updated submodules 2024-03-16 00:36:32 +00:00
GitHub Actions
1755885b98 updated submodules 2024-03-15 00:38:08 +00:00
GitHub Actions
b5d8bb3beb updated submodules 2024-03-13 21:31:37 +00:00
GitHub Actions
503f287404 updated submodules 2024-03-13 00:38:12 +00:00
Balackburn
3e87e859e7
Merge pull request #91 from Glenta/patch-1
Update README.md
2024-03-12 11:03:16 +01:00
Glenta
af76701c45
Update README.md
Remove download .ipa, no longer provided due to DMCA
2024-03-12 03:59:41 -04:00
GitHub Actions
1693c148c9 updated submodules 2024-03-12 00:37:16 +00:00
Balackburn
3d761286ca Typo 2024-03-11 21:11:38 +01:00
Balackburn
696c430e8d Updated Release.md 2024-03-11 21:05:56 +01:00
GitHub Actions
89ffa58880 updated submodules 2024-03-11 00:38:57 +00:00
GitHub Actions
e8e2e91399 updated submodules 2024-03-09 00:36:19 +00:00
GitHub Actions
6dbd79c97d updated submodules 2024-03-08 11:47:11 +00:00
Balackburn
463add6531 back to original YTLite 2024-03-08 12:46:09 +01:00
GitHub Actions
b5b9db9950 updated submodules 2024-03-08 00:37:53 +00:00
Balackburn
47ba4abc20
Added building wiki - credit to @qnblackcat 2024-03-08 01:05:33 +01:00
Balackburn
da50f9fce2 Added build.sh from uYouPlus by @qnblackcat 2024-03-07 22:29:20 +01:00
Balackburn
507cb58716 Latest YTLiteVersion for buildapp.yml 2024-03-07 21:28:05 +01:00
GitHub Actions
d1dfa2f2ef updated submodules 2024-03-07 16:53:39 +00:00
GitHub Actions
e156980d18 updated submodules 2024-03-07 16:32:19 +00:00
GitHub Actions
81c92a16de updated submodules 2024-03-07 00:31:12 +00:00
Balackburn
44f2bfc5bd Add protobuf submodule 2024-03-06 21:55:09 +01:00
Balackburn
b15bddf886
Update README.md 2024-03-06 21:23:42 +01:00
GitHub Actions
cc4977ab58 updated submodules 2024-03-06 19:17:19 +00:00
GitHub Actions
1c92370cfb updated submodules 2024-03-06 00:37:37 +00:00
GitHub Actions
5e7eec5466 updated submodules 2024-03-04 17:54:40 +00:00
Balackburn
afa125658d updated .gitmodules 2024-03-04 18:24:02 +01:00
GitHub Actions
37519355fa updated submodules 2024-03-04 00:38:08 +00:00
Balackburn
19a2298276
Update README.md 2024-03-03 13:37:36 +01:00
GitHub Actions
3aadb86bd9 updated submodules 2024-03-03 00:39:36 +00:00
Balackburn
276234212b synced changes 2024-03-02 19:08:50 +01:00
GitHub Actions
f305ab34f3 updated submodules 2024-02-28 12:58:12 +00:00
Balackburn
359ecc0c8d update buildapp.yml version 2024-02-28 13:10:09 +01:00
GitHub Actions
6d7e8f0837 updated submodules 2024-02-28 12:07:50 +00:00
GitHub Actions
e582ffed49 updated submodules 2024-02-26 00:38:52 +00:00
Balackburn
eebbecc201 removed duplicate 2024-02-24 20:34:44 +01:00
GitHub Actions
06ed4f9475 updated submodules 2024-02-24 17:42:53 +00:00
GitHub Actions
b08ad68574 updated submodules 2024-02-23 00:37:01 +00:00
82 changed files with 6767 additions and 2903 deletions

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
.gitmodules merge=ours

View file

@ -1,47 +1,101 @@
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"
labels: bug
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: _Please search to see if an issue already exists for the bug you encountered_
options:
- label: I have searched the existing issues
required: true
- type: checkboxes
- type: markdown
attributes:
label: Have you read the FAQ?
description: _Make sure you visit the [**FAQ**](https://github.com/qnblackcat/YTLitePlus/wiki/FAQ) page first!_
options:
- label: Yes, I read the FAQ
required: true
- type: textarea
value: "## Device Info"
- type: input
attributes:
label: Device info
description:
value: |
- iOS/iPadOS version:
- Device model:
- Sideload tool (AltStore, Sideloadly, TrollStore,...):
- The specific version of YTLitePlus (**latest** or **newest** is **NOT** a version number!):
label: iOS/iPadOS version
placeholder: iOS 17.5.1
validations:
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
attributes:
label: Describe the bug
description: _Please attach videos or screenshots if possible_
description: Please attach videos or screenshots if possible
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce the issue
description: _Please attach videos or screenshots if possible_
description: Please attach videos or screenshots if possible
value: |
1.
2.
@ -53,34 +107,11 @@ body:
id: logs
attributes:
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
- 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
attributes:
label: Additional context
description: _Um, anything else you want to say?_
validations:
required: false

View 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

View file

@ -5,8 +5,7 @@ labels: question
body:
- type: checkboxes
attributes:
label: Is there an existing issue/question 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.**_
label: Is there an existing issue for this?
options:
- label: I have searched the existing issues
required: true
@ -14,7 +13,7 @@ body:
- type: dropdown
attributes:
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
options:
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
@ -25,13 +24,11 @@ body:
- type: textarea
attributes:
label: My question
description: _Please enter your question here_
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: _Um, anything else you want to say?_
validations:
required: false

View file

@ -1,17 +1,21 @@
# ⚠️ Must Read ⚠️
- The .ipa file is no longer shared on Github due to a [Google DMCA notice](https://www.reddit.com/r/jailbreak/comments/1b86tiz/balackburn_here_maintainer_of_ytliteplus_ive_just/)
- You need to build it yourself. See [Wiki-Building](https://github.com/Balackburn/YTLitePlus/wiki/Building)
# YTLitePlus Release Information
Current YouTube IPA: `%youtube_version%`
Current YTLitePlus Version: `%ytliteplus_version%`
Current App Compatibility: `iOS/iPadOS 14.0` or later
Current YTLite Version: `%ytliteplus_version%`
Current App Compatibility: `iOS/iPadOS 15.0` or later
**RELEASE %youtube_version%-%ytliteplus_version%:** (%date%)
- Updated Youtube from `` to `%youtube_version%`
- Updated YTLite from `` to `%ytliteplus_version%`
- Updated Youtube from `%youtube_version%` to `%youtube_version%`
- Updated YTLite from `%ytliteplus_version%` to `%ytliteplus_version%`
### Issues in this Release:
- LowContrastMode does not work *(Compatible only with YouTube v16.46.5-v17.38.10)*
- VersionSpoofer (Lite) doesn't work with YTLite *(as the version is already spoofed by YTLite to fix YTClassicVideoQuality)*
- Age-restricted videos don't load correctly #29 *(enable "Skip content warning" in YTlite settings to resolve this issue)*
- Hiding Shorts creates an empty black space instead #55
- LowContrastMode does not work *(Compatible only with YouTube v17.33.2-v17.38.10)*
- Hiding Shorts creates an empty space instead #55
### Catbox
`%catbox_url%`

View file

@ -6,36 +6,46 @@ name: Build and Release YTLitePlus
on:
workflow_dispatch:
inputs:
sdk_version:
description: "iOS SDK Version"
default: "17.5"
required: true
type: string
decrypted_youtube_url:
description: "The direct URL to the decrypted YouTube ipa"
description: "Direct URL of the decrypted YouTube ipa"
default: ""
required: true
type: string
youtube_version:
description: "The version of YouTube"
default: ""
required: true
type: string
ytliteplus_version:
description: "The version of YTLitePlus"
default: "2.4"
required: true
type: string
bundle_id:
description: "Modify the bundle ID. Not recommended"
description: "Modify the bundle ID"
default: "com.google.ios.youtube"
required: true
type: string
app_name:
description: "Modify the name of the app on the Home Screen. Not recommended"
description: "Modify the app name"
default: "YouTube"
required: true
type: string
create_release:
description: "Create a draft release"
commit_id:
description: "(Optional) Commit ID to build at"
default: ""
required: false
type: string
upload_artifact:
description: "Upload iPA as artifact (Public)"
default: false
required: false
type: boolean
catbox_upload:
description: "Upload iPA to Catbox.moe (URL)"
default: true
required: false
type: boolean
create_release:
description: "Create a draft release (Private)"
default: false
required: false
type: boolean
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@ -44,50 +54,53 @@ concurrency:
jobs:
build:
name: Build YTLitePlus
runs-on: macos-latest
runs-on: macos-15-intel
permissions:
contents: write
steps:
- name: Checkout Main
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4
with:
path: main
ref: ${{ github.event.inputs.commit_id || github.ref }}
submodules: recursive
- name: Install Dependencies
run: brew install ldid dpkg make
- name: Setup Theos
uses: actions/checkout@v3.5.3
- name: Download Theos
uses: actions/checkout@v4
with:
repository: theos/theos
ref: 3da31488281ecf4394d10302d2629607f4a1aa07
ref: master
path: theos
submodules: recursive
- name: Caching
- name: iOS SDK Caching
id: SDK
uses: actions/cache@v3.3.1
uses: actions/cache@v4
env:
cache-name: iOS-16.2-SDK
cache-name: iOS-${{ inputs.sdk_version }}-SDK
with:
path: theos/sdks/
key: ${{ env.cache-name }}
restore-keys: ${{ env.cache-name }}
- name: Download iOS 16.2 SDK
- name: Download iOS SDK
if: steps.SDK.outputs.cache-hit != 'true'
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/aricloverALT/sdks/
cd sdks
git sparse-checkout set --no-cone iPhoneOS16.2.sdk
git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk
git checkout
mv *.sdk $THEOS/sdks
env:
THEOS: ${{ github.workspace }}/theos
- name: Setup Theos Jailed
uses: actions/checkout@v3.5.3
- name: Download Theos Jailed
uses: actions/checkout@v4
with:
repository: qnblackcat/theos-jailed
ref: master
@ -99,78 +112,158 @@ jobs:
./theos-jailed/install
env:
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: Hash YT ipa url
run: |
URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)"
echo ::add-mask::$URL_YT
echo URL_YT=$URL_YT >> $GITHUB_ENV
- name: Prepare YouTube iPA
run: |
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} downloaded! \033[0m"
# Download and unzip iPA
wget "$YOUTUBE_URL" --quiet --no-verbose -O main/YouTube.ipa
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
# 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=5.0.1" >> $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/PlugIns/*
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} unpacked! \033[0m"
# 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
env:
THEOS: ${{ github.workspace }}/theos
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
YOUTUBE_URL: ${{ env.URL_YT }}
- name: Fix Compiling & Build Package
- name: Build Package
id: build_package
run: |
(echo PATH=\"$(brew --prefix make)/libexec/gnubin:\$PATH\" >> ~/.zprofile)
cd ${{ github.workspace }}/main
sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ inputs.youtube_version }}-${{ inputs.ytliteplus_version }}/" Makefile
make package FINALPACKAGE=1
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YOUTUBE_VERSION }}_${{ env.ytliteplus_version }}.ipa")
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
# Replace lines in Makefile based on inputs
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 }}-5.0.1/" Makefile
sed -i '' "s/^export TARGET.*$/export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0/" Makefile
sed -i '' "s/^export SDK_PATH.*$/export SDK_PATH = \$(THEOS)\/sdks\/iPhoneOS${{ inputs.sdk_version }}.sdk\//" Makefile
# Build the package
make package THEOS_PACKAGE_SCHEME=rootless FINALPACKAGE=1
# Rename the package based on the version
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_5.0.1.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[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
env:
THEOS: ${{ github.workspace }}/theos
ytliteplus_version: ${{ inputs.ytliteplus_version }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
BUNDLE_ID: ${{ inputs.bundle_id }}
APP_NAME: ${{ inputs.app_name }}
- name: Upload Artifact
uses: actions/upload-artifact@v3.1.2
env:
ytliteplus_version: ${{ inputs.ytliteplus_version }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
if: ${{ inputs.upload_artifact }}
uses: actions/upload-artifact@v4
with:
name: YTLitePlus_${{ env.YOUTUBE_VERSION }}_${{ env.ytliteplus_version }}
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
if-no-files-found: error
- name: Upload Artifact to Catbox and update AltStore repo
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
if: ${{ inputs.create_release }}
run: |
export TODAY=$(date '+%Y-%m-%d')
sed "s/%ytliteplus_version%/${{ inputs.ytliteplus_version }}/g; s/%youtube_version%/${{ inputs.youtube_version }}/g; s/%date%/$TODAY/g" \
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/5.0.1/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
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
uses: softprops/action-gh-release@v0.1.15
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ytliteplus_version: ${{ inputs.ytliteplus_version }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
DRAFT: ${{ inputs.create_release }}
with:
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.ytliteplus_version }}
name: v${{ env.YOUTUBE_VERSION }}-${{ env.ytliteplus_version }} - YTLitePlus
tag_name: v${{ env.YT_VERSION }}-5.0.1
name: v${{ env.YT_VERSION }}-5.0.1 - YTLitePlus
files: main/packages/*.ipa
draft: ${{ env.DRAFT }}
draft: true
body_path: ${{ github.workspace }}/release_notes.md
- name: Update Altstore Source with latest release
if: ${{ inputs.catbox_upload }}
run: |
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/dispatches' \
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/actions/workflows/update_source.yml/dispatches' \
--header 'Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}' \
--header 'Content-Type: application/json' \
--data-raw '{
"event_type": "update-altstore-source-trigger"
"ref": "main",
"inputs": {
"yt_lite_plus_url": "${{ env.CATBOX_URL }}",
"yt_lite_plus_version": "${{ env.YTLITE_VERSION }}",
"yt_version": "${{ env.YT_VERSION }}"
}
}'
- 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

View file

@ -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:
workflow_dispatch:
inputs:
days:
description: 'Number of days.'
description: 'Days-worth of runs to keep for each workflow'
required: true
default: 0
default: '0'
minimum_runs:
description: 'The minimum runs to keep for each workflow.'
description: 'Minimum runs to keep for each workflow'
required: true
default: 0
default: '0'
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
default: 'Build and Release YTLitePlus'
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
default: "All"
default: "ALL"
type: choice
options:
- "All"
- "ALL"
- active
- deleted
- disabled_inactivity
- disabled_manually
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
default: "All"
default: "ALL"
type: choice
options:
- "All"
- "ALL"
- "Unsuccessful: action_required,cancelled,failure,skipped"
- action_required
- cancelled
- failure
- skipped
- success
dry_run:
description: 'Only log actions, do not perform any delete operations.'
description: 'Logs simulated changes, no deletions are performed'
required: false
jobs:
@ -45,6 +49,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
steps:
- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@v2
@ -55,5 +60,10 @@ jobs:
keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_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 }}

View file

@ -11,7 +11,7 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.2.2
- name: Set up Git
run: |

10
.gitignore vendored
View file

@ -1,7 +1,9 @@
.theos
.DS_Store
.theos/
packages/
tmp/
Tweaks/Cercube/*
!Tweaks/Cercube/.gitkeep
Resources/
Tweaks/YTLite/*
!Tweaks/YTLite/.gitkeep
Resources/
*.ipa
.vscode

73
.gitmodules vendored
View file

@ -1,50 +1,67 @@
[submodule "Tweaks/YTUHD"]
path = Tweaks/YTUHD
url = https://github.com/arichorn/YTUHD.git
[submodule "Tweaks/YouPiP"]
path = Tweaks/YouPiP
url = https://github.com/arichorn/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/PoomSmart/YouTubeHeader.git
[submodule "Tweaks/Alderis"]
path = Tweaks/Alderis
url = https://github.com/arichorn/Alderis.git
branch = master
url = https://github.com/hbang/Alderis.git
[submodule "Tweaks/PSHeader"]
path = Tweaks/PSHeader
url = https://github.com/PoomSmart/PSHeader.git
[submodule "Tweaks/YTABConfig"]
path = Tweaks/YTABConfig
url = https://github.com/arichornlover/YTABConfig.git
[submodule "Tweaks/YouMute"]
path = Tweaks/YouMute
url = https://github.com/arichornlover/YouMute.git
[submodule "Tweaks/FLEX"]
path = Tweaks/FLEX
url = https://github.com/qnblackcat/FLEX-Classes.git
url = https://github.com/PoomSmart/FLEXing.git
[submodule "Tweaks/iSponsorBlock"]
path = Tweaks/iSponsorBlock
url = https://github.com/Galactic-Dev/iSponsorBlock.git
[submodule "Tweaks/YTHoldForSpeed"]
path = Tweaks/YTHoldForSpeed
url = https://github.com/arichorn/YTHoldForSpeed.git
url = https://github.com/aricloverALT/YTHoldForSpeed.git
[submodule "Tweaks/DontEatMyContent"]
path = Tweaks/DontEatMyContent
url = https://github.com/therealFoxster/DontEatMyContent.git
[submodule "Tweaks/YTLite"]
path = Tweaks/YTLite
url = https://github.com/dayanch96/YTLite
[submodule "Extensions"]
path = Extensions
url = https://github.com/CokePokes/YoutubeExtensions.git
[submodule "Tweaks/YTVideoOverlay"]
path = Tweaks/YTVideoOverlay
url = https://github.com/arichorn/YTVideoOverlay.git
url = https://github.com/PoomSmart/YTVideoOverlay.git
[submodule "Tweaks/protobuf"]
path = Tweaks/protobuf
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/splaser/YTUHD.git
[submodule "Tweaks/YouGroupSettings"]
path = Tweaks/YouGroupSettings
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/arichorn/YouQuality.git
url = https://github.com/PoomSmart/YouQuality
[submodule "Tweaks/Return-YouTube-Dislikes"]
path = Tweaks/Return-YouTube-Dislikes
url = https://github.com/PoomSmart/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/aricloverALT/YouTimeStamp.git
[submodule "Tweaks/YouLoop"]
path = Tweaks/YouLoop
url = https://github.com/bhackel/YouLoop
[submodule "Tweaks/FLEXing"]
path = Tweaks/FLEXing
url = https://github.com/PoomSmart/FLEXing.git
branch = rootless
[submodule "Tweaks/YouSpeed"]
path = Tweaks/YouSpeed
url = https://github.com/PoomSmart/YouSpeed

View file

@ -0,0 +1 @@
../Tweaks/DontEatMyContent/layout/Library/Application Support/DontEatMyContent.bundle

1
Bundles/RYD.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/Return-YouTube-Dislikes/layout/Library/Application Support/RYD.bundle

1
Bundles/YTABC.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YTABConfig/layout/Library/Application Support/YTABC.bundle

View file

@ -0,0 +1 @@
../Tweaks/YTHoldForSpeed/layout/Library/Application Support/YTHoldForSpeed.bundle

1
Bundles/YTLite.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YTLite/var/jb/Library/Application Support/YTLite.bundle

1
Bundles/YTUHD.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YTUHD/layout/Library/Application Support/YTUHD.bundle

View file

@ -0,0 +1 @@
../Tweaks/YTVideoOverlay/layout/Library/Application Support/YTVideoOverlay.bundle

1
Bundles/YouLoop.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YouLoop/layout/Library/Application Support/YouLoop.bundle

1
Bundles/YouMute.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YouMute/layout/Library/Application Support/YouMute.bundle

1
Bundles/YouPiP.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YouPiP/layout/Library/Application Support/YouPiP.bundle

1
Bundles/YouQuality.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YouQuality/layout/Library/Application Support/YouQuality.bundle

1
Bundles/YouSpeed.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YouSpeed/layout/Library/Application Support/YouSpeed.bundle

1
Bundles/YouTimeStamp.bundle Symbolic link
View file

@ -0,0 +1 @@
../Tweaks/YouTimeStamp/layout/Library/Application Support/YouTimeStamp.bundle

View file

@ -0,0 +1 @@
../Tweaks/iSponsorBlock/layout/Library/Application Support/iSponsorBlock.bundle

674
LICENSE Normal file
View 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>.

View file

@ -1,44 +1,76 @@
TARGET = iphone:clang:16.2:14.0
YTLitePlus_USE_FISHHOOK = 0
ARCHS = arm64
export TARGET = iphone:clang:17.5:14.0
export SDK_PATH = $(THEOS)/sdks/iPhoneOS17.5.sdk/
export SYSROOT = $(SDK_PATH)
export ARCHS = arm64
export libcolorpicker_ARCHS = arm64
export libFLEX_ARCHS = arm64
export Alderis_XCODEOPTS = LD_DYLIB_INSTALL_NAME=@rpath/Alderis.framework/Alderis
export Alderis_XCODEFLAGS = DYLIB_INSTALL_NAME_BASE=/Library/Frameworks BUILD_LIBRARY_FOR_DISTRIBUTION=YES ARCHS="$(ARCHS)"
export libcolorpicker_LDFLAGS = -F$(TARGET_PRIVATE_FRAMEWORK_PATH) -install_name @rpath/libcolorpicker.dylib
export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks/RemoteLog -I$(THEOS_PROJECT_DIR)/Tweaks # Allow YouTubeHeader to be accessible using #include <...>
ifneq ($(JAILBROKEN),1)
export DEBUGFLAG = -ggdb -Wno-unused-command-line-argument -L$(THEOS_OBJ_DIR) -F$(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install/Library/Frameworks
MODULES = jailed
FINALPACKAGE = 1
CODESIGN_IPA = 0
endif
PACKAGE_NAME = YTLitePlus
PACKAGE_VERSION = X.X.X-X.X
INSTALL_TARGET_PROCESSES = YouTube
TWEAK_NAME = YTLitePlus
DISPLAY_NAME = YouTube
BUNDLE_ID = com.google.ios.youtube
EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;))
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/YouQuality.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')
YTLitePlus_FRAMEWORKS = UIKit Security
YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libFLEX.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouLoop.dylib .theos/obj/YouMute.dylib .theos/obj/YouQuality.dylib .theos/obj/YouSpeed.dylib .theos/obj/YouTimeStamp.dylib .theos/obj/YouGroupSettings.dylib
YTLitePlus_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib
YTLitePlus_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unused-but-set-variable -DTWEAK_VERSION=\"$(PACKAGE_VERSION)\"
YTLitePlus_EMBED_BUNDLES = $(wildcard Bundles/*.bundle)
YTLitePlus_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex)
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_FRAMEWORKS = UIKit Security
YTLitePlus_USE_FISHHOOK = 0
include $(THEOS)/makefiles/common.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
ifneq ($(JAILBROKEN),1)
SUBPROJECTS += Tweaks/Alderis Tweaks/FLEXing/libflex Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouLoop Tweaks/YouMute Tweaks/YouQuality Tweaks/YouSpeed Tweaks/YouTimeStamp Tweaks/YouGroupSettings
include $(THEOS_MAKE_PATH)/aggregate.mk
endif
include $(THEOS_MAKE_PATH)/tweak.mk
FINALPACKAGE = 1
REMOVE_EXTENSIONS = 1
CODESIGN_IPA = 0
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
internal-clean::
@rm -rf $(YTLITE_PATH)/*
ifneq ($(JAILBROKEN),1)
before-all::
@if [[ ! -f $(YTLITE_DEB) ]]; then \
rm -rf $(YTLITE_PATH)/*; \
$(PRINT_FORMAT_BLUE) "Downloading YTLite"; \
fi
before-all::
@if [[ ! -f $(YTLITE_DEB) ]]; then \
curl -s -L "https://github.com/dayanch96/YTLite/releases/download/v$(YTLITE_VERSION)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb" -o $(YTLITE_DEB); \
fi; \
if [[ ! -f $(YTLITE_DYLIB) || ! -d $(YTLITE_BUNDLE) ]]; then \
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;
else
before-package::
@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/ \;
@cp -R Tweaks/YTLite/layout/Library/Application\ Support/YTLite.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/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/
@cp -R Tweaks/YTABConfig/layout/Library/Application\ Support/YTABC.bundle Resources/
@cp -R Tweaks/YouMute/layout/Library/Application\ Support/YouMute.bundle Resources/
@cp -R Tweaks/DontEatMyContent/layout/Library/Application\ Support/DontEatMyContent.bundle Resources/
@cp -R Tweaks/YTHoldForSpeed/layout/Library/Application\ Support/YTHoldForSpeed.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/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/
@cp -R lang/YTLitePlus.bundle Resources/
@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
@codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib
@mkdir -p $(THEOS_STAGING_DIR)/Library/Application\ Support; cp -r lang/YTLitePlus.bundle $(THEOS_STAGING_DIR)/Library/Application\ Support/
endif

218
README.md
View file

@ -1,154 +1,79 @@
<p align="center">
<img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/8439d786-3a75-4cbc-b342-168ee2948fa1" alt="YTLitePlus Banner" />
<img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Banner.png" alt="YTLitePlus Banner" />
</p>
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://balackburn.github.io/Apollo/images/UI/image_1.webp" width="200"></a>
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Altstore.png" height="70"></a>
&nbsp;
<a href="https://balackburn.github.io/YTLitePlus"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/55b3dd67-b677-4f0d-a5e5-8701c421149e" width="200"></a>
<a href="https://balackburn.github.io/YTLitePlus"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Website.png" height="70"></a>
&nbsp;
<a href="https://github.com/Balackburn/YTLitePlus/releases/download/v19.06.2-2.6/YTLitePlus_19.06.2_2.6.ipa"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/3abfb7bb-79c7-4984-8231-14a16fdfe7f2" width="148,148148148148148"></a>
<a href="https://ytliteplus.github.io#download"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Download.png" height="70"></a>
&nbsp;
![GitHub issues](https://img.shields.io/github/issues-raw/Balackburn/YTLitePlus?style=flat&labelColor=%23000000&color=%23000000)
[![Platform](https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS%2014.0%2B-black?labelColor=black&style=flat)](https://developer.apple.com/iphone/index.action)
![Release](https://img.shields.io/github/downloads/Balackburn/YTLitePlus/total?color=black&labelColor=black&style=flat)
<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/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>
<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>
# Table of Contents
<a href="#credits"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/3aeca24b-2847-4ffc-8f6b-253c69a7d7da" width="170"></a>
<a href="#credits"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Credits.png" width="170"></a>
<a href="#features"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/53d62a16-4099-432b-b04e-8e5abc922222" width="170"></a>
<a href="#features"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Features.png" width="170"></a>
<a href="#altstore"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/e82762ec-7501-4747-a75c-745b18017c76" width="170"></a>
<a href="#altstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Altstore.png" width="170"></a>
<a href="#donations"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/69001a58-67ef-4044-aec4-749712d1da28" width="170"></a>
<a href="#donations"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Donations.png" width="170"></a>
<a href="#building"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/da4569fd-5483-4b1e-a757-b56e0c912306" width="170"></a>
<a href="#building"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Building.png" width="170"></a>
# Credits
<table id='ytliteplus credit'>
<tr>
<td align="center">
<a href='https://github.com/arichorn'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/2753042f-9efa-404d-a719-4761ad48d323' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/balackburn'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/d08ccf99-d3e5-4388-833f-22632dc66fd2' width='120px'>
</td>
</a>
<td align="center">
<a href='https://github.com/dayanch96'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/293f1a61-00b8-424a-9e00-f520f5a88064' width='120px;'>
</a>
</td>
<td id='ssuesskind'>
<a href='https://github.com/ssuesskind'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/ed6bc6a0-ef55-4548-8d60-32d86f2aa9f3' width='120px;'>
</a>
<td align="center">
<a href='https://github.com/Deci8BelioS'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/8cca7bf9-4c52-4c25-99dd-2b26434b7deb' width='120px'>
</a>
<br>
</tr>
<br>
<tr>
<td align="center">
<a href='https://github.com/MiRO92'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/ca462139-3a55-4ce1-a774-ffd13c459c80' width='120px'>
</a>
<br>
</td>
<td align="center">
<a href='https://github.com/qnblackcat'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/20b0d6d9-d892-4af4-9762-6617d49743b8' width='120px'>
</a>
</td>
<td align="center">
<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>
<tr>
<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>
<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>
<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>
<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 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>
</tr>
<tr>
<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 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>
<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"><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>
<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>
</tr>
<tr>
<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 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>
<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>
<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>
<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>
</tr>
<tr>
<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>
<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>
<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>
<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>
<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"><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>
<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>
<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>
<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>
</tr>
<tr>
<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>
<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>
<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 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>
</tr>
</table>
# Features
1. **YTLite**: A tweak that enhances the YouTube experience by removing ads, enabling background playback, and providing customizable navigation and tab bars.
1. **YTLite**: A tweak that enhances the YouTube experience by removing ads, enabling background playback and offering over 60 customization options.
2. **YTUHD**: This tweak unlocks 1440p (2K) and 2160p (4K) resolutions in the iOS YouTube app.
@ -168,8 +93,6 @@
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.
13. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
@ -188,35 +111,42 @@
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.
22. **YTNoSuggestedVideo**: Removes the suggested video popup when finishing a video.
21. **LowContrastMode**: Makes the UI interface look dimmer to make it easier on the eyes. (App Compatibility: v17.33.2-v17.38.10)
# AltStore
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://balackburn.github.io/Apollo/images/UI/image_1.webp" width="200"></a>
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Altstore/Altstore.png" width="200"></a>
&nbsp;
<a href="https://altsource.by.lao.sb/browse/?source=https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://gcdnb.pbrd.co/images/Nfl3CG8rT8Va.png" width="200"></a>
<a href="https://altsource.by.lao.sb/browse/?source=https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/altsource.by.lao.sb.png" width="200"></a>
&nbsp;
<a href="https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://gcdnb.pbrd.co/images/pxhwQTTDPu2j.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
<a href="https://www.paypal.com/paypalme/DBrett684"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/e637cb56-668d-4ebf-8644-49de3df0e5a3" width="200"></a>
<a href="https://buymeacoffee.com/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(buymeacoffee).png" width="200"></a>
&nbsp;
<a href="https://venmo.com/u/DavidBrett"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/24c6e8f0-5ef1-46ce-94d4-e3f70271a82c" 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://github.com/MiRO92/uYou-for-YouTube#support"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/72829aa6-2eee-456a-a560-9dc28501e001" 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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<a href="https://www.paypal.com/paypalme/BandarHL"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/aba31ab0-28d3-4c1e-8ed6-13df03a26249" width="200"></a>
<a href="https://www.paypal.com/paypalme/BandarHL"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/BandarHL.png" width="200"></a>
&nbsp;
<a href="https://ko-fi.com/level3tjg"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/98f0a392-d999-4882-a22d-33b1c59cd2c0" width="200"></a>
<a href="https://ko-fi.com/level3tjg"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/level3tjg.png?raw=true" width="200"></a>
&nbsp;
<a href="https://www.patreon.com/julioverne"><img src="https://github.com/Balackburn/YTLitePlus/assets/93828569/f4dabaad-3fc9-4877-bc96-0ffa9e5ce381" width="200"></a>
<a href="https://www.patreon.com/julioverne"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/julioverne.png?raw=true" width="200"></a>
# Building
See [uYouPlus/Building - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Building)
See [YTLitePlus/Building - Wiki](https://github.com/YTLitePlus/YTLitePlus/wiki/Building)

View file

@ -1,442 +1,511 @@
#import "../YTLitePlus.h"
//
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
static int contrastMode() {
// Color Configuration
static UIColor *lcmHexColor = nil;
static UIColor *const kLowContrastColor = [UIColor colorWithRed:0.56 green:0.56 blue:0.56 alpha:1.0];
static UIColor *const kDefaultTextColor = [UIColor whiteColor];
// Utility Functions
static inline int contrastMode() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}
static BOOL lowContrastMode() {
return IsEnabled(@"lowContrastMode_enabled") && contrastMode() == 0;
}
static BOOL customContrastMode() {
return IsEnabled(@"lowContrastMode_enabled") && contrastMode() == 1;
static inline BOOL lowContrastMode() {
return IS_ENABLED(@"lowContrastMode_enabled") && contrastMode() == 0;
}
UIColor *lcmHexColor;
static inline BOOL customContrastMode() {
return IS_ENABLED(@"lowContrastMode_enabled") && contrastMode() == 1;
}
%group gLowContrastMode // Low Contrast Mode v1.4.3 (Compatible with only YouTube v16.46.5-v17.38.10)
// static inline UIColor *activeColor() {
// return customContrastMode() && lcmHexColor ? lcmHexColor : kLowContrastColor;
// }
// Low Contrast Mode v1.7.1.1 (Compatible with only YouTube v19.01.1-v20.21.6)
%group gLowContrastMode
%hook UIColor
+ (UIColor *)whiteColor { // Dark Theme Color
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)lightTextColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)placeholderTextColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)labelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)secondaryLabelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)tertiaryLabelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)quaternaryLabelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
+ (UIColor *)colorNamed:(NSString *)name {
NSArray<NSString *> *targetColors = @[
@"whiteColor", @"lightTextColor", @"lightGrayColor", @"ychGrey7",
@"skt_chipBackgroundColor", @"placeholderTextColor", @"systemLightGrayColor",
@"systemExtraLightGrayColor", @"labelColor", @"secondaryLabelColor",
@"tertiaryLabelColor", @"quaternaryLabelColor"
];
return [targetColors containsObject:name] ? kLowContrastColor : %orig;
}
+ (UIColor *)whiteColor { return kLowContrastColor; }
+ (UIColor *)lightTextColor { return kLowContrastColor; }
+ (UIColor *)lightGrayColor { return kLowContrastColor; }
%end
%hook YTCommonColorPalette
- (UIColor *)textPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)textSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)brandIconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)staticBrandWhite {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconInactive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.7] : %orig;
}
- (UIColor *)overlayIconDisabled {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.3] : %orig;
}
- (UIColor *)overlayFilledButtonActive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.2] : %orig;
}
%end
%hook YTColor
+ (UIColor *)white2 {
return [UIColor whiteColor];
}
+ (UIColor *)white3 {
return [UIColor whiteColor];
}
+ (UIColor *)white4 {
return [UIColor whiteColor];
}
+ (UIColor *)white5 {
return [UIColor whiteColor];
}
+ (BOOL)darkerPaletteTextColorEnabled { return NO; }
+ (UIColor *)white1 { return kLowContrastColor; }
+ (UIColor *)white2 { return kLowContrastColor; }
+ (UIColor *)white3 { return kLowContrastColor; }
+ (UIColor *)white4 { return kLowContrastColor; }
+ (UIColor *)white5 { return kLowContrastColor; }
+ (UIColor *)grey1 { return kLowContrastColor; }
+ (UIColor *)grey2 { return kLowContrastColor; }
%end
%hook QTMColorGroup
- (UIColor *)tint100 {
return [UIColor whiteColor];
}
- (UIColor *)tint300 {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnLighterColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnRegularColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnDarkerColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnOnBrightAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)lightBodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)buttonBackgroundColor {
return [UIColor whiteColor];
}
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:[UIColor whiteColor]];
%orig(currentImage);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
textColor = [[UIColor whiteColor] colorWithAlphaComponent:1.0];
%orig();
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
}
%end
%hook UILabel
+ (void)load {
@autoreleasepool {
[[UILabel appearance] setTextColor:[UIColor whiteColor]];
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
NSArray<NSString *> *targetLabels = @[@"connect account", @"Thanks", @"Save to playlist", @"Report"];
for (UIView *subview in self.subviews) {
if ([targetLabels containsObject:subview.accessibilityLabel]) {
subview.backgroundColor = kLowContrastColor;
if ([subview isKindOfClass:[UILabel class]]) {
((UILabel *)subview).textColor = [UIColor blackColor];
}
}
}
}
- (void)setTextColor:(UIColor *)textColor {
%log;
textColor = [UIColor whiteColor];
%orig(textColor);
%end
%hook QTMColorGroup
- (UIColor *)tint100 { return kDefaultTextColor; }
- (UIColor *)tint300 { return kDefaultTextColor; }
- (UIColor *)tint500 { return kDefaultTextColor; }
- (UIColor *)tint700 { return kDefaultTextColor; }
- (UIColor *)accent200 { return kDefaultTextColor; }
- (UIColor *)accent400 { return kDefaultTextColor; }
- (UIColor *)accentColor { return kDefaultTextColor; }
- (UIColor *)brightAccentColor { return kDefaultTextColor; }
- (UIColor *)regularColor { return kDefaultTextColor; }
- (UIColor *)darkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColor { return kDefaultTextColor; }
- (UIColor *)lightBodyTextColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnRegularColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnLighterColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnDarkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnAccentColor { return kDefaultTextColor; }
- (UIColor *)buttonBackgroundColor { return kDefaultTextColor; }
- (UIColor *)Color { return kDefaultTextColor; }
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *tintedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:kDefaultTextColor];
%orig(tintedImage);
}
%end
%hook UIExtendedSRGColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:0.9]);
}
%end
%hook UIExtendedSRGBColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UILabel
+ (void)load {
[[UILabel appearance] setTextColor:kDefaultTextColor];
}
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UITextField
- (void)setTextColor:(UIColor *)textColor {
%log;
textColor = [UIColor whiteColor];
%orig(textColor);
%orig(kDefaultTextColor);
}
%end
%hook UITextView
- (void)setTextColor:(UIColor *)textColor {
%log;
textColor = [UIColor whiteColor];
%orig(textColor);
%orig(kDefaultTextColor);
}
%end
%hook UISearchBar
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
%orig(kDefaultTextColor);
}
%end
%hook UISegmentedControl
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook UIButton
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {
color = [UIColor whiteColor];
%orig(color, state);
%orig(kDefaultTextColor, state);
}
%end
%hook UIBarButtonItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook NSAttributedString
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSAttributedStringKey, id> *)attrs {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
return %orig(str, modifiedAttributes);
}
%end
%hook CATextLayer
- (void)setTextColor:(CGColorRef)textColor {
%orig([UIColor whiteColor].CGColor);
%orig(kDefaultTextColor.CGColor);
}
%end
%hook ASTextNode
- (NSAttributedString *)attributedString {
NSAttributedString *originalAttributedString = %orig;
NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy];
[newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)];
return newAttributedString;
NSAttributedString *original = %orig;
NSMutableAttributedString *modified = [original mutableCopy];
[modified addAttribute:NSForegroundColorAttributeName value:kDefaultTextColor range:NSMakeRange(0, modified.length)];
return modified;
}
%end
%hook ASTextFieldNode
- (void)setTextColor:(UIColor *)textColor {
%orig([UIColor whiteColor]);
%orig(kDefaultTextColor);
}
%end
%hook ASTextView
- (void)setTextColor:(UIColor *)textColor {
%orig([UIColor whiteColor]);
%orig(kDefaultTextColor);
}
%end
%hook ASButtonNode
- (void)setTextColor:(UIColor *)textColor {
%orig([UIColor whiteColor]);
%orig(kDefaultTextColor);
}
%end
%hook UIControl
- (UIColor *)backgroundColor {
return [UIColor blackColor];
}
%end
%end
%group gCustomContrastMode // Custom Contrast Mode (Hex Color)
// Custom Contrast Mode
%group gCustomContrastMode
%hook UIColor
+ (UIColor *)whiteColor {
return lcmHexColor;
}
+ (UIColor *)lightTextColor {
return lcmHexColor;
}
+ (UIColor *)placeholderTextColor {
return lcmHexColor;
}
+ (UIColor *)labelColor {
return lcmHexColor;
}
+ (UIColor *)secondaryLabelColor {
return lcmHexColor;
}
+ (UIColor *)tertiaryLabelColor {
return lcmHexColor;
}
+ (UIColor *)quaternaryLabelColor {
return lcmHexColor;
+ (UIColor *)colorNamed:(NSString *)name {
NSArray<NSString *> *targetColors = @[
@"whiteColor", @"lightTextColor", @"lightGrayColor", @"ychGrey7",
@"skt_chipBackgroundColor", @"placeholderTextColor", @"systemLightGrayColor",
@"systemExtraLightGrayColor", @"labelColor", @"secondaryLabelColor",
@"tertiaryLabelColor", @"quaternaryLabelColor"
];
return [targetColors containsObject:name] ? lcmHexColor : %orig;
}
+ (UIColor *)whiteColor { return lcmHexColor; }
+ (UIColor *)lightTextColor { return lcmHexColor; }
+ (UIColor *)lightGrayColor { return lcmHexColor; }
%end
%hook YTCommonColorPalette
- (UIColor *)textPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)textSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)brandIconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)staticBrandWhite {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconInactive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.7] : %orig;
}
- (UIColor *)overlayIconDisabled {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.3] : %orig;
}
- (UIColor *)overlayFilledButtonActive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.2] : %orig;
}
%end
%hook YTColor
+ (UIColor *)white2 {
return [UIColor whiteColor];
}
+ (UIColor *)white3 {
return [UIColor whiteColor];
}
+ (UIColor *)white4 {
return [UIColor whiteColor];
}
+ (UIColor *)white5 {
return [UIColor whiteColor];
}
+ (BOOL)darkerPaletteTextColorEnabled { return NO; }
+ (UIColor *)white1 { return lcmHexColor; }
+ (UIColor *)white2 { return lcmHexColor; }
+ (UIColor *)white3 { return lcmHexColor; }
+ (UIColor *)white4 { return lcmHexColor; }
+ (UIColor *)white5 { return lcmHexColor; }
+ (UIColor *)grey1 { return lcmHexColor; }
+ (UIColor *)grey2 { return lcmHexColor; }
%end
%hook QTMColorGroup
- (UIColor *)tint100 {
return [UIColor whiteColor];
}
- (UIColor *)tint300 {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnLighterColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnRegularColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnDarkerColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnOnBrightAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)lightBodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)buttonBackgroundColor {
return [UIColor whiteColor];
}
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:[UIColor whiteColor]];
%orig(currentImage);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
textColor = [[UIColor whiteColor] colorWithAlphaComponent:1.0];
%orig();
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
}
%end
%hook UILabel
+ (void)load {
@autoreleasepool {
[[UILabel appearance] setTextColor:[UIColor whiteColor]];
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
NSArray<NSString *> *targetLabels = @[@"connect account", @"Thanks", @"Save to playlist", @"Report"];
for (UIView *subview in self.subviews) {
if ([targetLabels containsObject:subview.accessibilityLabel]) {
subview.backgroundColor = lcmHexColor;
if ([subview isKindOfClass:[UILabel class]]) {
((UILabel *)subview).textColor = [UIColor blackColor];
}
}
}
}
- (void)setTextColor:(UIColor *)textColor {
%log;
textColor = [UIColor whiteColor];
%orig(textColor);
%end
%hook QTMColorGroup
- (UIColor *)tint100 { return kDefaultTextColor; }
- (UIColor *)tint300 { return kDefaultTextColor; }
- (UIColor *)tint500 { return kDefaultTextColor; }
- (UIColor *)tint700 { return kDefaultTextColor; }
- (UIColor *)accent200 { return kDefaultTextColor; }
- (UIColor *)accent400 { return kDefaultTextColor; }
- (UIColor *)accentColor { return kDefaultTextColor; }
- (UIColor *)brightAccentColor { return kDefaultTextColor; }
- (UIColor *)regularColor { return kDefaultTextColor; }
- (UIColor *)darkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColor { return kDefaultTextColor; }
- (UIColor *)lightBodyTextColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnRegularColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnLighterColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnDarkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnAccentColor { return kDefaultTextColor; }
- (UIColor *)buttonBackgroundColor { return kDefaultTextColor; }
- (UIColor *)Color { return kDefaultTextColor; }
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *tintedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:kDefaultTextColor];
%orig(tintedImage);
}
%end
%hook UIExtendedSRGColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:0.9]);
}
%end
%hook UIExtendedSRGBColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UILabel
+ (void)load {
[[UILabel appearance] setTextColor:kDefaultTextColor];
}
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UITextField
- (void)setTextColor:(UIColor *)textColor {
%log;
textColor = [UIColor whiteColor];
%orig(textColor);
%orig(kDefaultTextColor);
}
%end
%hook UITextView
- (void)setTextColor:(UIColor *)textColor {
%log;
textColor = [UIColor whiteColor];
%orig(textColor);
%orig(kDefaultTextColor);
}
%end
%hook UISearchBar
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
%orig(kDefaultTextColor);
}
%end
%hook UISegmentedControl
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook UIButton
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {
color = [UIColor whiteColor];
%orig(color, state);
%orig(kDefaultTextColor, state);
}
%end
%hook UIBarButtonItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook NSAttributedString
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSAttributedStringKey, id> *)attrs {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
return %orig(str, modifiedAttributes);
}
%end
%hook CATextLayer
- (void)setTextColor:(CGColorRef)textColor {
%orig([UIColor whiteColor].CGColor);
- (void)setTextColor:(CGColorRef)color {
%orig(kDefaultTextColor.CGColor);
}
%end
%hook ASTextNode
- (NSAttributedString *)attributedString {
NSAttributedString *originalAttributedString = %orig;
NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy];
[newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)];
return newAttributedString;
NSAttributedString *original = %orig;
NSMutableAttributedString *modified = [original mutableCopy];
[modified addAttribute:NSForegroundColorAttributeName value:kDefaultTextColor range:NSMakeRange(0, modified.length)];
return modified;
}
%end
%hook ASTextFieldNode
- (void)setTextColor:(UIColor *)textColor {
%orig([UIColor whiteColor]);
%orig(kDefaultTextColor);
}
%end
%hook ASTextView
- (void)setTextColor:(UIColor *)textColor {
%orig([UIColor whiteColor]);
%orig(kDefaultTextColor);
}
%end
%hook ASButtonNode
- (void)setTextColor:(UIColor *)textColor {
%orig([UIColor whiteColor]);
%orig(kDefaultTextColor);
}
%end
%hook UIControl
- (UIColor *)backgroundColor {
return [UIColor blackColor];
}
%end
%end
# pragma mark - ctor
// Constructor
%ctor {
%init;
if (lowContrastMode()) {
%init(gLowContrastMode);
}
if (customContrastMode()) {
%init(gCustomContrastMode);
NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"kCustomUIColor"];
if (colorData) {
NSError *error = nil;
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:colorData error:&error];
if (!error) {
[unarchiver setRequiresSecureCoding:NO];
lcmHexColor = [unarchiver decodeObjectForKey:NSKeyedArchiveRootObjectKey];
if (lcmHexColor) {
%init(gCustomContrastMode);
}
}
}
}
}

View file

@ -1,24 +1,49 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <string.h>
#import "../YTLitePlus.h"
#import "../Tweaks/YouTubeHeader/YTSettingsViewController.h"
#import "../Tweaks/YouTubeHeader/YTSearchableSettingsViewController.h"
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
#import "../Tweaks/YouTubeHeader/YTUIUtils.h"
#import "../Tweaks/YouTubeHeader/YTSettingsPickerViewController.h"
#import "../YTLitePlus.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() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}
static const NSInteger YTLitePlusSection = 788;
@interface YTSettingsSectionItemManager (YTLitePlus)
- (void)updateYTLitePlusSectionWithEntry:(id)entry;
@ -26,7 +51,25 @@ static const NSInteger YTLitePlusSection = 788;
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
+ (NSArray *)settingsCategoryOrder {
NSArray *order = %orig;
@ -54,78 +97,338 @@ extern NSBundle *YTLitePlusBundle();
Class YTSettingsSectionItemClass = %c(YTSettingsSectionItem);
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
// Add item for going to the YTLitePlus GitHub page
YTSettingsSectionItem *main = [%c(YTSettingsSectionItem)
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
titleDescription:LOC(@"VERSION_CHECK")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/Balackburn/YTLitePlus/releases/latest"]];
}];
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
titleDescription:LOC(@"VERSION_CHECK")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/YTLitePlus/YTLitePlus/releases/latest"]];
}];
[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)
itemWithTitle:LOC(@"CHANGE_APP_ICON")
titleDescription:nil
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
AppIconOptionsController *appIconController = [[AppIconOptionsController alloc] init];
[settingsViewController.navigationController pushViewController:appIconController animated:YES];
return YES;
}
];
[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((GestureMode)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((GestureMode)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
YTSettingsSectionItem *videoControlOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_SHARE_BUTTON")
titleDescription:LOC(@"ENABLE_SHARE_BUTTON_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"enableShareButton_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableShareButton_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON")
titleDescription:LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"enableSaveToButton_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableSaveToButton_enabled"];
return YES;
}
settingItemId:0],
[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]
BASIC_SWITCH(LOC(@"ENABLE_SHARE_BUTTON"), LOC(@"ENABLE_SHARE_BUTTON_DESC"), @"enableShareButton_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON"), LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC"), @"enableSaveToButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS"), LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS_DESC"), @"hideVideoPlayerShadowOverlayButtons_enabled"),
BASIC_SWITCH(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HEATWAVES"), LOC(@"HIDE_HEATWAVES_DESC"), @"hideHeatwaves_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_PORTRAIT"), LOC(@"DISABLE_AMBIENT_PORTRAIT_DESC"), @"disableAmbientModePortrait_enabled"),
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"),
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"),
BASIC_SWITCH(LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE"), LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC"), @"disablePullToFull_enabled"),
BASIC_SWITCH(LOC(@"ALWAYS_USE_REMAINING_TIME"), LOC(@"ALWAYS_USE_REMAINING_TIME_DESC"), @"alwaysShowRemainingTime_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_TOGGLE_TIME_REMAINING"), LOC(@"DISABLE_TOGGLE_TIME_REMAINING_DESC"), @"disableRemainingTime_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_ENGAGEMENT_OVERLAY"), LOC(@"DISABLE_ENGAGEMENT_OVERLAY_DESC"), @"disableEngagementOverlay_enabled"),
BASIC_SWITCH(LOC(@"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER"), LOC(@"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC"), @"hidePreviewCommentSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW"), LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW_DESC"), @"hideAutoplayMiniPreview_enabled"),
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"),
BASIC_SWITCH(LOC(@"HIDE_SPEED_TOAST"), LOC(@"HIDE_SPEED_TOAST_DESC"), @"hideSpeedToast_enabled"),
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
@ -136,104 +439,24 @@ extern NSBundle *YTLitePlusBundle();
# 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) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_ACCOUNT_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableAccountSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableAccountSection_enabled"];
return YES;
}
settingItemId:0],
[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]
BASIC_SWITCH(LOC(@"HIDE_ACCOUNT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAccountSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAutoplaySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_TRYNEWFEATURES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableTryNewFeaturesSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_VIDEOQUALITYPREFERENCES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableVideoQualityPreferencesSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_NOTIFICATIONS_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableNotificationsSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_MANAGEALLHISTORY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableManageAllHistorySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_YOURDATAINYOUTUBE_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableYourDataInYouTubeSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_PRIVACY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disablePrivacySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_LIVECHAT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableLiveChatSection_enabled")
];
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];
return YES;
}];
[sectionItems addObject:appSettingsOverlayGroup];
# pragma mark - LowContrastMode
YTSettingsSectionItem *lowContrastModeSection = [YTSettingsSectionItemClass itemWithTitle:LOC(@"Low Contrast Mode")
YTSettingsSectionItem *lowContrastModeSection = [YTSettingsSectionItemClass itemWithTitle:LOC(@"LOW_CONTRAST_MODE")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
switch (contrastMode()) {
@ -257,7 +480,7 @@ extern NSBundle *YTLitePlusBundle();
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];
return YES;
}];
@ -280,7 +503,7 @@ extern NSBundle *YTLitePlusBundle();
case 6:
return @"v17.38.10 (Fixes LowContrastMode)";
case 7:
return @"v17.01.4 (Oldest Supported Version)";
return @"v17.33.2 (Oldest Supported Version)";
case 0:
default:
return @"v18.49.3 (Last v18 Version)";
@ -323,13 +546,13 @@ extern NSBundle *YTLitePlusBundle();
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.01.4 (Oldest Supported Version)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.33.2 (Oldest Supported Version)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:7 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
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];
return YES;
}];
@ -338,10 +561,8 @@ extern NSBundle *YTLitePlusBundle();
YTSettingsSectionItem *themeGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"THEME_OPTIONS")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
switch (GetSelection(@"appTheme")) {
switch (GetInteger(@"appTheme")) {
case 1:
return LOC(@"OLED_DARK_THEME_2");
case 2:
return LOC(@"OLD_DARK_THEME");
case 0:
default:
@ -355,184 +576,93 @@ extern NSBundle *YTLitePlusBundle();
[settingsViewController reloadData];
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"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"OLD_DARK_THEME") titleDescription:LOC(@"OLD_DARK_THEME_DESC") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"appTheme"];
[settingsViewController reloadData];
return YES;
}],
[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]];
BASIC_SWITCH(LOC(@"OLED_KEYBOARD"), LOC(@"OLED_KEYBOARD_DESC"), @"oledKeyBoard_enabled"),
BASIC_SWITCH(LOC(@"LOW_CONTRAST_MODE"), LOC(@"LOW_CONTRAST_MODE_DESC"), @"lowContrastMode_enabled"),
lowContrastModeSection
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"THEME_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:GetInteger(@"appTheme") parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[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
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_YT_STARTUP_ANIMATION")
titleDescription:LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"ytStartupAnimation_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytStartupAnimation_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_MODERN_INTERFACE")
titleDescription:LOC(@"HIDE_MODERN_INTERFACE_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"ytNoModernUI_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytNoModernUI_enabled"];
return YES;
}
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];
playbackInFeedsGroup,
// BASIC_SWITCH(LOC(@"NEW_SETTINGS_UI"), LOC(@"NEW_SETTINGS_UI_DESC"), @"newSettingsUI_enabled"), // disabled because YTLite is probably forcing it to NO
BASIC_SWITCH(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"),
BASIC_SWITCH(LOC(@"HIDE_MODERN_INTERFACE"), LOC(@"HIDE_MODERN_INTERFACE_DESC"), @"ytNoModernUI_enabled"),
BASIC_SWITCH(LOC(@"IPAD_LAYOUT"), LOC(@"IPAD_LAYOUT_DESC"), @"iPadLayout_enabled"),
BASIC_SWITCH(LOC(@"IPHONE_LAYOUT"), LOC(@"IPHONE_LAYOUT_DESC"), @"iPhoneLayout_enabled"),
BASIC_SWITCH(LOC(@"CAST_CONFIRM"), LOC(@"CAST_CONFIRM_DESC"), @"castConfirm_enabled"),
BASIC_SWITCH(LOC(@"NEW_MINIPLAYER_STYLE"), LOC(@"NEW_MINIPLAYER_STYLE_DESC"), @"bigYTMiniPlayer_enabled"),
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"),
BASIC_SWITCH(LOC(@"HIDE_SPONSORBLOCK_BUTTON"), LOC(@"HIDE_SPONSORBLOCK_BUTTON_DESC"), @"hideSponsorBlockButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HOME_TAB"), LOC(@"HIDE_HOME_TAB_DESC"), @"hideHomeTab_enabled"),
BASIC_SWITCH(LOC(@"FIX_CASTING"), LOC(@"FIX_CASTING_DESC"), @"fixCasting_enabled"),
BASIC_SWITCH(LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS"), LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS_DESC"), @"switchCopyandPasteFunctionality_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_FLEX"), LOC(@"ENABLE_FLEX_DESC"), @"flex_enabled"),
BASIC_SWITCH(LOC(@"APP_VERSION_SPOOFER_LITE"), LOC(@"APP_VERSION_SPOOFER_LITE_DESC"), @"enableVersionSpoofer_enabled"),
versionSpooferSection
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"MISCELLANEOUS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
@ -551,4 +681,60 @@ extern NSBundle *YTLitePlusBundle();
}
%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];
UTType *utType = [UTType typeWithIdentifier:fileType];
if ([utType conformsToType:UTTypePlainText]) {
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

55
Source/SettingsKeys.h Normal file
View 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.
};

File diff suppressed because it is too large Load diff

View file

@ -1,110 +1,49 @@
#import "../YTLitePlus.h"
//
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
typedef struct {
int version;
NSString *appVersion;
} VersionMapping;
static VersionMapping versionMappings[] = {
{0, @"19.49.7"}, // Last v19 App Version
{1, @"19.28.1"}, // New 2024 Thin Outline Icons
{2, @"19.26.5"}, // Restore 2020's Thin Outline Icons
{3, @"18.49.3"}, // Last v18 App Version
{4, @"18.35.4"}, // Oldest Supported App Version (v18) - this is a replacement of v17.33.2.
{5, @"18.34.5"}, // Brings back Library Tab - Deprecated/Unsupported
{6, @"18.33.3"}, // Removes Playables in Explore - Deprecated/Unsupported
{7, @"18.18.2"}, // Fixes YTClassicVideoQuality + YTSpeed - Deprecated/Unsupported
{8, @"18.01.2"}, // First v18 App Version - Deprecated/Unsupported
{9, @"17.49.6"}, // Last v17 App Version - Deprecated/Unsupported
{10, @"17.38.10"}, // Fixes LowContrastMode + No Rounded Thumbnails - Deprecated/Unsupported
{11, @"17.33.2"} // Oldest Supported App Version (v17) - Deprecated/Unsupported
};
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}
static BOOL version0() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 0;
}
static BOOL version1() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 1;
}
static BOOL version2() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 2;
}
static BOOL version3() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 3;
}
static BOOL version4() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 4;
}
static BOOL version5() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 5;
}
static BOOL version6() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 6;
}
static BOOL version7() {
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 7;
static BOOL isVersionSpooferEnabled() {
return IS_ENABLED(@"enableVersionSpoofer_enabled");
}
%group gVersion0
%hook YTVersionUtils // Last v18 App Version
+ (NSString *)appVersion { return @"18.49.3"; }
%end
%end
%group gVersion1
%hook YTVersionUtils // Brings back Library Tab
+ (NSString *)appVersion { return @"18.34.5"; }
%end
%end
%group gVersion2
%hook YTVersionUtils // Removes Playables in Explore
+ (NSString *)appVersion { return @"18.33.3"; }
%end
%end
%group gVersion3
%hook YTVersionUtils // Fixes YTClassicVideoQuality + YTSpeed
+ (NSString *)appVersion { return @"18.18.2"; }
%end
%end
%group gVersion4
%hook YTVersionUtils // First v18 App Version
+ (NSString *)appVersion { return @"18.01.2"; }
%end
%end
%group gVersion5
%hook YTVersionUtils // Last v17 App Version
+ (NSString *)appVersion { return @"17.49.6"; }
%end
%end
%group gVersion6
%hook YTVersionUtils // v17.38.10 Fixes LowContrastMode + No Rounded Thumbnails
+ (NSString *)appVersion { return @"17.38.10"; }
%end
%end
%group gVersion7
%hook YTVersionUtils // Oldest Supported App Version (v17)
+ (NSString *)appVersion { return @"17.01.4"; }
%end
%end
# pragma mark - ctor
%ctor {
%init;
if (version0()) { // 0
%init(gVersion0);
}
if (version1()) { // 1
%init(gVersion1);
}
if (version2()) { // 2
%init(gVersion2);
}
if (version3()) { // 3
%init(gVersion3);
}
if (version4()) { // 4
%init(gVersion4);
}
if (version5()) { // 5
%init(gVersion5);
}
if (version6()) { // 6
%init(gVersion6);
}
if (version7()) { // 7
%init(gVersion7);
static NSString* getAppVersionForSpoofedVersion(int spoofedVersion) {
for (int i = 0; i < sizeof(versionMappings) / sizeof(versionMappings[0]); i++) {
if (versionMappings[i].version == spoofedVersion) {
return versionMappings[i].appVersion;
}
}
return nil;
}
%hook YTVersionUtils
+ (NSString *)appVersion {
if (!isVersionSpooferEnabled()) {
return %orig;
}
int spoofedVersion = appVersionSpoofer();
NSString *appVersion = getAppVersionForSpoofedVersion(spoofedVersion);
return appVersion ? appVersion : %orig;
}
%end

100
Source/get_keys.py Normal file
View 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 1aa78d34aef25bc8de518c0c833b54d92a8fa467
Subproject commit 92cfde8ee6e76fa28378c644b9be81a5dcf233b0

@ -1 +1 @@
Subproject commit 2253bc34fbb8a5f44993578db37024835bbccdd1
Subproject commit 59c51ce08616c30c2ad8142b0b26477003345003

@ -1 +0,0 @@
Subproject commit 20830170bfe50659de36eace461fd95ebdb16cba

1
Tweaks/FLEXing Submodule

@ -0,0 +1 @@
Subproject commit ca36211b75bc2f1af4db5bdc8524b54861a1ab2c

@ -1 +1 @@
Subproject commit 591de492eae66ecb649d9a023d39f7508a253791
Subproject commit 1bb7d9c7d1bc40a57f83e1e58aa53bcf4acdcbfa

@ -1 +1 @@
Subproject commit d2aec88d3e8c300983592d4e54f55eccad12c50d
Subproject commit f91348d30e82cd5c728401c12c5c2375c160b3bc

@ -1 +1 @@
Subproject commit 79cfd5d5c7efc8eb69b6d920d835c6628564e76e
Subproject commit 54eabd7a765cc2019d68ab8bce83c7813b305942

1
Tweaks/YTHeaders Submodule

@ -0,0 +1 @@
Subproject commit 655ad036525a3976fc45cac55fce5820931b8b1e

@ -1 +1 @@
Subproject commit 2a4282fbdcbd0c8b586a64ad364fbb3ec880f606
Subproject commit ba20df7ad8d0dfdb024688f3d92735f887fe5908

@ -1 +0,0 @@
Subproject commit f96d397f3bd277c7227d5624d4148665329aa7c3

1
Tweaks/YTLite/.gitkeep Normal file
View file

@ -0,0 +1 @@

Binary file not shown.

@ -1 +1 @@
Subproject commit 31e218b2725bdcbc1e85d52e87f9167080708914
Subproject commit 4bac4a50a640a6792b41cf053d4df6c94dc8550a

@ -1 +1 @@
Subproject commit fa400fa63a2e77d1190ef9aa7ce9ddfdefe82d6c
Subproject commit f428a716021fd3e389e0ada5f05b3f215e079e24

@ -0,0 +1 @@
Subproject commit 62279a416298f0d2365c2349a867511648cc1cac

1
Tweaks/YouLoop Submodule

@ -0,0 +1 @@
Subproject commit 899a2fdd539ae308e5847bbb3d7212cfce30a3a6

@ -1 +1 @@
Subproject commit 7f36c985716839fa9398186cd33ef7e638ed1d5c
Subproject commit 8d6726e569a194d3f1c1ae973b290c66301087f1

@ -1 +1 @@
Subproject commit a310cefd7832194757e62f926d097d52421c0bc1
Subproject commit 49ece8b0fac8465ee4fd8bf0b54790106e50cb88

@ -1 +1 @@
Subproject commit b1c2178660a83fa68253fba0a961d1c9662691b1
Subproject commit d56dccd4336f0902f05813f4af177360c69fe33f

1
Tweaks/YouSpeed Submodule

@ -0,0 +1 @@
Subproject commit 79b9ed44958ad27fe75ee14ccc300aa99610c263

1
Tweaks/YouTimeStamp Submodule

@ -0,0 +1 @@
Subproject commit 2d03eb904e7e6e60cbc56718710b494b7400043e

@ -1 +1 @@
Subproject commit 60778418a73212e08b160301c559901eccb62f24
Subproject commit 99371fdc6db1f7aa419246dae975a5a14c191c14

@ -1 +1 @@
Subproject commit 4f643248d6e7d60487c9a047e0eb04a2cc35a651
Subproject commit e0f97ef5fe47c5c3728ce2ff7a6fb02bc085e86b

1
Tweaks/protobuf Submodule

@ -0,0 +1 @@
Subproject commit f34bc471fc53b40c989337215c0a5b81e5a691b5

View file

@ -6,8 +6,12 @@
#import <sys/utsname.h>
#import <substrate.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 <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
#import "Tweaks/FLEX/FLEX.h"
#import "Tweaks/YouTubeHeader/YTAppDelegate.h"
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
#import "Tweaks/YouTubeHeader/YTQTMButton.h"
@ -33,6 +37,18 @@
#import "Tweaks/YouTubeHeader/YTVideoWithContextNode.h"
#import "Tweaks/YouTubeHeader/ELMCellNode.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 YT_BUNDLE_ID @"com.google.ios.youtube"
@ -41,6 +57,30 @@
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
#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
@interface YTVarispeedSwitchControllerOption : NSObject
- (id)initWithTitle:(id)title rate:(float)rate;
@ -53,19 +93,10 @@
- (void)internalSetRate;
@end
@interface MLPlayerStickySettings : NSObject
- (void)setRate:(float)rate;
@end
@interface MLPlayerEventCenter : NSObject
- (void)broadcastRateChange:(float)rate;
@end
@interface HAMPlayerInternal : NSObject
- (void)setRate:(float)rate;
@end
// IAmYouTube
@interface SSOConfiguration : NSObject
@end
@ -77,9 +108,6 @@
- (void)confirmAlertDidPressConfirm;
@end
@interface YTMainAppControlsOverlayView: UIView
@end
@interface YTTransportControlsButtonView : UIView
@end
@ -98,17 +126,82 @@
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
@end
// HelperVC - @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
@interface MDCButton : UIButton
@end
@interface YTRightNavigationButtons : UIView
@interface YTRightNavigationButtons (YTLitePlus)
@property YTQTMButton *notificationButton;
@property YTQTMButton *sponsorBlockButton;
@property YTQTMButton *videoPlayerButton;
@end
// BigYTMiniPlayer
@interface YTMainAppVideoPlayerOverlayView : UIView
@interface YTMainAppVideoPlayerOverlayView (YTLitePlus)
- (UIViewController *)_viewControllerForAncestor;
@end
@ -169,13 +262,19 @@
@interface _ASDisplayView : UIView
@end
@interface ELMContainerNode : NSObject
@end
@interface YTAutonavEndscreenView : UIView
@end
@interface YTPivotBarIndicatorView : UIView
@end
@interface YTCommentDetailHeaderCell : UIView
@end
@interface SponsorBlockSettingsController : UITableViewController
@interface SponsorBlockSettingsController : UITableViewController
@end
@interface SponsorBlockViewController : UIViewController
@ -187,6 +286,19 @@
@interface UIPredictionViewController : UIViewController
@end
@interface TUIEmojiSearchView : UIView
@end
@interface FRPreferences : UITableViewController
@end
@interface FRPSelectListTable : UITableViewController
@end
@interface settingsReorderTable : UIViewController
@property(nonatomic, strong) UITableView *tableView;
@end
// Snack bar
@interface YTHUDMessage : NSObject
+ (id)messageWithText:(id)text;

File diff suppressed because it is too large Load diff

37
build.sh Normal file
View file

@ -0,0 +1,37 @@
#!/bin/bash
# To build, either place the IPA file in the project's root directory, or get the path to the IPA, then run `./build.sh`
read -p $'\e[34m==> \e[1;39mPath to the decrypted YouTube.ipa or YouTube.app. If nothing is provied, any ipa/app in the project\'s root directory will be used: ' PATHTOYT
# Check if PATHTOYT is empty
if [ -z "$PATHTOYT" ]; then
# Look for ipa/app files in the current directory
IPAS=$(find . -maxdepth 1 -type f \( -name "*.ipa" -o -name "*.app" \))
# Check if there are two or more ipa/app files
COUNT=$(echo "$IPAS" | wc -l)
if [ "$COUNT" -ge 2 ]; then
echo "❌ Error: Multiple IPA/app files found in the project's root directory directory. Make sure there is only one ipa."
exit 1
elif [ -n "$IPAS" ]; then
PATHTOYT=$(echo "$IPAS" | head -n 1)
else
echo "❌ Error: No IPA/app file found in the project's root directory directory."
exit 1
fi
fi
make package THEOS_PACKAGE_SCHEME=rootless IPA="$PATHTOYT" FINALPACKAGE=1
# SHASUM
if [[ $? -eq 0 ]]; then
open packages
echo "SHASUM256: $(shasum -a 256 packages/*.ipa)"
else
echo "Failed building YTLitePlus"
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -1,113 +1,193 @@
// Settings
"VERSION" = "نسخة YTLitePlus: %@";
"VERSION_CHECK" = "انقر للتحقق من وجود تحديث";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "خيارات تراكب ضوابط الفيديو";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "إخفاء اللوحة اليمنى في وضع ملء الشاشة";
"HIDE_RIGHT_PANEL_DESC" = "مطلوب إعادة تشغيل التطبيق";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"HIDE_HEATWAVES" = "إخفاء موجات الحر";
"HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق.";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
"HIDE_ACCOUNT_SECTION" = "Hide `Account` Section";
"HIDE_AUTOPLAY_SECTION" = "Hide `Autoplay` Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide `Try New Features` Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide `Video quality preferences` Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide `Notifications` Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide `Manage all history` Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide `Your data in YouTube` Section";
"HIDE_PRIVACY_SECTION" = "Hide `Privacy` Section";
"HIDE_LIVECHAT_SECTION" = "Hide `Live Chat` Section";
// Theme
"THEME_OPTIONS" = "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" = "Low contrast mode selection";
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "متنوع";
"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" = "مطلوب إعادة تشغيل التطبيق";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "زر "إخفاء الإرسال" ;
"HIDE_CAST_BUTTON_DESC" = "مطلوب إعادة تشغيل التطبيق";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Enable YTSpeed";
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
"ENABLE_FLEX" = "تمكين FLEX";
"ENABLE_FLEX_DESC" = "تمكين FLEX للتصحيح (غير مستحسن). اترك هذا إلا إذا كنت تعرف ما تفعله";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
// 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.";
// Settings
"VERSION" = "نسخة YTLitePlus: %@";
"VERSION_CHECK" = "انقر للتحقق من وجود تحديث";
"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" = "خيارات تراكب ضوابط الفيديو";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "إخفاء اللوحة اليمنى في وضع ملء الشاشة";
"HIDE_RIGHT_PANEL_DESC" = "مطلوب إعادة تشغيل التطبيق";
"HIDE_HEATWAVES" = "إخفاء موجات الحر";
"HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق.";
"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" = "إخفاء رسائل المعلومات";
"HIDE_HUD_MESSAGES_DESC" = "مثلاً: تم إيقاف الترجمة...";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "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" = "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";
"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";

View 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" = "Промяна на иконата на приложението";

View file

@ -0,0 +1,197 @@
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tippe hier, um nach Updates zu suchen!";
"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" = "Overlay-Optionen für Videosteuerungen";
"ENABLE_SHARE_BUTTON" = "Schaltfläche \"Teilen\" aktivieren";
"ENABLE_SHARE_BUTTON_DESC" = "Die Schaltfläche \"Teilen\" im Overlay der Videosteuerung aktivieren.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Schaltfläche \"In Playlist speichern\" aktivieren";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Die Schaltfläche \"In Playlist speichern\" im Overlay der Videosteuerung aktivieren.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Schattenüberlagerung ausblenden";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Blende die Schattenüberlagerung auf den Schaltflächen \"Wiedergabe/Pause\", \"Zurück\", \"Weiter\", \"Vorwärts\" & \"Rücklauf\" aus.";
"HIDE_RIGHT_PANEL" = "Rechtes Bedienfeld im Vollbildmodus ausbleden";
"HIDE_RIGHT_PANEL_DESC" = "Blende das rechte Bedienfeld im Vollbildmodus aus. Ein Neustart der App ist erforderlich.";
"HIDE_HEATWAVES" = "Hitzewellen ausblenden";
"HIDE_HEATWAVES_DESC" = "Versteckt die Hitzewellen im Videoplayer. Ein Neustart der App ist erforderlich.";
"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" = "HUD-Nachrichten ausblenden";
"HIDE_HUD_MESSAGES_DESC" = "z.B.: Untertitel sind aktiviert/deaktiviert, Videoschleife ist an, ...";
"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" = "Overlay-Optionen für App-Einstellungen";
"HIDE_ACCOUNT_SECTION" = "Verstecke \"Konto\"";
"HIDE_AUTOPLAY_SECTION" = "Verstecke \"Autoplay\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Verstecke \"Neue Testfunktionen ausprobieren\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Verstecke \"Einstellungen für Videoqualität\"";
"HIDE_NOTIFICATIONS_SECTION" = "Verstecke \"Benachrichtigungen\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Verstecke \"Verlauf verwalten\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Verstecke \"Meine Daten auf YouTube\"";
"HIDE_PRIVACY_SECTION" = "Verstecke \"Datenschutz\"";
"HIDE_LIVECHAT_SECTION" = "Verstecke \"Livechat\"";
// Theme
"THEME_OPTIONS" = "Darstellungs Optionen";
"OLED_DARK_THEME" = "OLED dunkles Design";
"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";

View file

@ -1,113 +1,190 @@
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide `Account` Section";
"HIDE_AUTOPLAY_SECTION" = "Hide `Autoplay` Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide `Try New Features` Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide `Video quality preferences` Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide `Notifications` Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide `Manage all history` Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide `Your data in YouTube` Section";
"HIDE_PRIVACY_SECTION" = "Hide `Privacy` Section";
"HIDE_LIVECHAT_SECTION" = "Hide `Live Chat` Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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";
"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" = "New mini player bar style (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Hide Cast button";
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Enable YTSpeed";
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
// 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.";
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
"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";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"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 surrounding 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" = "Hide HUD messages";
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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 lower the 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" = "Casting";
"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 preferred 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";

View file

@ -2,6 +2,38 @@
"VERSION" = "Versión de YTLitePlus: %@";
"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" = "Opciones de superposición de controles de vídeo";
@ -17,23 +49,62 @@
"HIDE_RIGHT_PANEL" = "Ocultar el panel derecho en modo pantalla completa";
"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_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" = "Opciones de superposición de los ajustes de la aplicación";
"HIDE_ACCOUNT_SECTION" = "Ocultar la sección `Cuenta`";
"HIDE_AUTOPLAY_SECTION" = "Ocultar la sección `Autoplay`";
"HIDE_TRYNEWFEATURES_SECTION" = "Ocultar la sección `Probar nuevas funciones`";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ocultar la sección `Preferencias de calidad de vídeo`";
"HIDE_NOTIFICATIONS_SECTION" = "Ocultar la sección `Notificaciones`";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ocultar la sección `Gestionar todo el historial`";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ocultar la sección `Tus datos en YouTube`";
"HIDE_PRIVACY_SECTION" = "Ocultar la sección `Privacidad`";
"HIDE_ACCOUNT_SECTION" = "Ocultar la sección \"Cuenta\"";
"HIDE_AUTOPLAY_SECTION" = "Ocultar la sección \"Autoplay\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ocultar la sección \"Probar nuevas funciones\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ocultar la sección \"Preferencias de calidad de vídeo\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ocultar la sección \"Notificaciones\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ocultar la sección \"Gestionar todo el historial\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ocultar la sección \"Tus datos en YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ocultar la sección \"Privacidad\"";
"HIDE_LIVECHAT_SECTION" = "Ocultar la sección de chat en directo";
// Theme
@ -55,12 +126,20 @@
"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.";
"LCM_SELECTOR" = "Selección de modo de bajo contraste";
"DEFAULT_LOWCONTRASTMODE" = "(Por defecto) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Color personalizado) LowContrastMode";
"DEFAULT_LOWCONTRASTMODE" = "(Por defecto) Modo de bajo contraste";
"CUSTOM_LOWCONTRASTMODE" = "(Color personalizado) Modo de bajo contraste";
// Miscellaneous
"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_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.";
"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";
"CASTING" = "Castings";
"MSG_ARE_YOU_SURE" = "¿Seguro que quieres empezar el casting?";
"CAST_CONFIRM_DESC" = "Mostrar una alerta de confirmación antes de emitir para evitar el secuestro accidental de la TV";
"CASTING" = "Emitir";
"MSG_ARE_YOU_SURE" = "¿Seguro que quieres empezar la emisión?";
"MSG_YES" = "Sí";
"MSG_CANCEL" = "Cancelar";
"NEW_MINIPLAYER_STYLE" = "Nuevo estilo de barra de minirreproductores (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Es necesario reiniciar la aplicación";
"STOCK_VOLUME_HUD" = "Utilizar el HUD de volumen de acciones de iOS";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Ocultar botón Cast";
"HIDE_CAST_BUTTON" = "Ocultar botón Emitir";
"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_DESC" = "";
"YT_SPEED" = "Activar YTSpeed";
"YT_SPEED_DESC" = "Activa YTSpeed para tener más opciones de velocidad de reproducción. Es necesario reiniciar la aplicación.";
"HIDE_HOME_TAB" = "Ocultar pestaña Inicio";
"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_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
"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.";
@ -111,3 +187,4 @@
// Other Localization
"APP_RESTART_DESC" = "Es necesario reiniciar la aplicación.";
"CHANGE_APP_ICON" = "Cambiar el icono de la aplicación";

View file

@ -1,116 +1,199 @@
// Settings
"VERSION" = "YTLitePlus version : %@";
"VERSION_CHECK" = "Appuyez pour vérifier les mises à jour !";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Options de l'overlay des contrôles vidéo";
"ENABLE_SHARE_BUTTON" = "Activer le bouton Partager";
"ENABLE_SHARE_BUTTON_DESC" = "Activer le bouton Partager dans l'overlay des contrôles vidéo.";
"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.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Masquer l'overlay sombre";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Masquer l'overlay sombre sur les boutons Lecture/Pause, Précédent, Suivant, Avancer et Retour en arrière.";
"HIDE_RIGHT_PANEL" = "Masquer le panneau de droite en mode plein écran";
"HIDE_RIGHT_PANEL_DESC" = "Le redémarrage de l'application est requis.";
"NO_SUGGESTED_VIDEO" = "Masquer la vidéo suggérée (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Supprime le popup de suggestion de vidéo à la fin d'une vidéo";
"HIDE_HEATWAVES" = "Masquer les Heatwaves";
"HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis.";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application";
"HIDE_ACCOUNT_SECTION" = "Masquer la section `Compte`";
"HIDE_DONTEATMYCONTENT_SECTION" = "Masquer la section `DontEatMyContent`";
"HIDE_YOUTUBERETURNDISLIKE_SECTION" = "Masquer la section `YouTube Return Dislike`";
"HIDE_YOUPIP_SECTION" = "Masquer la section `YouPiP`";
"HIDE_AUTOPLAY_SECTION" = "Masquer la section `Autoplay`";
"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_NOTIFICATIONS_SECTION" = "Masquer la section `Notifications`";
"HIDE_MANAGEALLHISTORY_SECTION" = "Masquer la section `Gérer tout l'historique`";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Masquer la section `Vos données dans YouTube`";
"HIDE_PRIVACY_SECTION" = "Masquer la section `Confidentialité`";
"HIDE_LIVECHAT_SECTION" = "Masquer la section `Chat en direct`";
// Theme
"THEME_OPTIONS" = "Options de thème";
"OLED_DARK_THEME" = "Thème sombre OLED";
"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";
"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.";
"STOCK_VOLUME_HUD" = "Utiliser le HUD de volume iOS par défaut";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Masquer le bouton Cast";
"HIDE_CAST_BUTTON_DESC" = "Un redémarrage de l'application est requis.";
"HIDE_SPONSORBLOCK_BUTTON" = "Masquer le bouton iSponsorBlock dans la barre de navigation";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Activer YTSpeed";
"YT_SPEED_DESC" = "Activez YTSpeed pour avoir plus d'options de vitesse de lecture. Un redémarrage de l'application est requis.";
"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" ;
"HIDE_COMMUNITY_POSTS" = "Masquer les messages de la communauté";
"HIDE_COMMUNITY_POSTS_DESC" = "Masque les messages de la communauté. Le redémarrage de l'application est nécessaire.";
// 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.";
// Settings
"VERSION" = "YTLitePlus version : %@";
"VERSION_CHECK" = "Appuyez pour vérifier les mises à jour !";
"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" = "Options de l'overlay des contrôles vidéo";
"ENABLE_SHARE_BUTTON" = "Activer le bouton Partager";
"ENABLE_SHARE_BUTTON_DESC" = "Activer le bouton Partager dans l'overlay des contrôles vidéo.";
"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.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Masquer l'overlay sombre";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Masquer l'overlay sombre sur les boutons Lecture/Pause, Précédent, Suivant, Avancer et Retour en arrière.";
"HIDE_RIGHT_PANEL" = "Masquer le panneau de droite en mode plein écran";
"HIDE_RIGHT_PANEL_DESC" = "Le redémarrage de l'application est requis.";
"HIDE_HEATWAVES" = "Masquer les Heatwaves";
"HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis.";
"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" = "Masquer les messages de l'ATH";
"HIDE_HUD_MESSAGES_DESC" = "Exemple : Les sous-titres sont activés/désactivés, la boucle vidéo est activée,...";
"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" = "Paramètres des options d'overlay de l'application";
"HIDE_ACCOUNT_SECTION" = "Masquer la section \"Compte\"";
"HIDE_DONTEATMYCONTENT_SECTION" = "Masquer la section \"DontEatMyContent\"";
"HIDE_YOUTUBERETURNDISLIKE_SECTION" = "Masquer la section \"YouTube Return Dislike\"";
"HIDE_YOUPIP_SECTION" = "Masquer la section \"YouPiP\"";
"HIDE_AUTOPLAY_SECTION" = "Masquer la section \"Autoplay\"";
"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_NOTIFICATIONS_SECTION" = "Masquer la section \"Notifications\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Masquer la section \"Gérer tout l'historique\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Masquer la section \"Vos données dans YouTube\"";
"HIDE_PRIVACY_SECTION" = "Masquer la section \"Confidentialité\"";
"HIDE_LIVECHAT_SECTION" = "Masquer la section \"Chat en direct\"";
// Theme
"THEME_OPTIONS" = "Options de thème";
"OLED_DARK_THEME" = "Thème sombre OLED";
"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";

View file

@ -1,113 +1,191 @@
// Settings
"VERSION" = "YTLitePlusのバージョン: %@";
"VERSION_CHECK" = "タップして更新をチェック!";
// 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" = "アプリの再起動が必要です。";
"NO_SUGGESTED_VIDEO" = "おすすめ動画を非表示(YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "動画終了時のおすすめ動画のポップアップを非表示にします。";
"HIDE_HEATWAVES" = "ヒートウェーブを非表示";
"HIDE_HEATWAVES_DESC" = "動画プレーヤーのヒートウェーブを非表示にします。アプリの再起動が必要です。";
// 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" = "真のダークテーマです。\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" = "その他";
"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" = "アプリの再起動が必要です。";
"STOCK_VOLUME_HUD" = "iOSの標準の音量HUDを使用する";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "キャストボタンを非表示";
"HIDE_CAST_BUTTON_DESC" = "アプリの再起動が必要です。";
"HIDE_SPONSORBLOCK_BUTTON" = "ナビゲーションバーのiSponsorBlockボタンを非表示";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "YTSpeedを有効化";
"YT_SPEED_DESC" = "より多くの再生速度を選択できるようになります。アプリの再起動が必要です。";
"ENABLE_FLEX" = "FLEXを有効化";
"ENABLE_FLEX_DESC" = "デバッグ用のFLEXを有効化します(推奨しません) \n何をやっているのか分からない場合はオフにしてください。";
"UN_SHORTS" = "ショートを非表示 (YTUnShorts)";
"UN_SHORTS_DESC" = "YouTubeフィードからショート動画を非表示にします。";
"HIDE_COMMUNITY_POSTS" = "コミュニティを非表示";
"HIDE_COMMUNITY_POSTS_DESC" = "コミュニティを非表示にします。アプリの再起動が必要です。";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "アプリのバージョン偽装(Lite)を有効にする";
"APP_VERSION_SPOOFER_LITE_DESC" = "バージョン偽装(Lite)を使用するにはこれを有効にし、以下でお好みのバージョンを選択してください。アプリの再起動が必要です。";
"VERSION_SPOOFER_TITLE" = "偽装バージョンの選択";
// Other Localization
"APP_RESTART_DESC" = "アプリの再起動が必要です。";
// 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" = "動画プレイヤー上で長押しドラッグでシーク。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" = "特定のアクション後に表示されるスナックバーを非表示にします。(例: 字幕がオン/オフになりました など)";
"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" = "真のダークテーマです。\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_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" = "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_DESC" = "ナビゲーションバーにボタンを表示し、ダウンロードした動画をAppleのプレイヤーで開く";
"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を有効化します(推奨しません) \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" = "アプリアイコンを変更";

View 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" = "앱 아이콘 변경";

View file

@ -1,113 +1,191 @@
// Settings
"VERSION" = "Versão do CercubePlus: %@";
"VERSION" = "Versão do YTLitePlus: %@";
"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" = "Opções de Sobreposição de Controles de Vídeo";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SHARE_BUTTON" = "Ativar o botão 'Compartilhar'";
"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_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Ativar o botão 'Salvar'";
"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_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ocultar Sombras nos Botões de Sobreposição";
"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_DESC" = "App restart is required.";
"HIDE_RIGHT_PANEL" = "Ocultar o painel direito no modo de tela cheia";
"HIDE_RIGHT_PANEL_DESC" = "A reinicialização do app é necessária.";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"HIDE_HEATWAVES" = "Ocultar Ondas de calor";
"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" = "Configurações do Aplicativo";
"HIDE_ACCOUNT_SECTION" = "Hide `Account` Section";
"HIDE_AUTOPLAY_SECTION" = "Hide `Autoplay` Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide `Try New Features` Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide `Video quality preferences` Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide `Notifications` Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide `Manage all history` Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide `Your data in YouTube` Section";
"HIDE_PRIVACY_SECTION" = "Hide `Privacy` Section";
"HIDE_LIVECHAT_SECTION" = "Hide `Live Chat` Section";
"HIDE_ACCOUNT_SECTION" = "Ocultar a sessão \"Conta\"";
"HIDE_AUTOPLAY_SECTION" = "Ocultar a sessão \"Reprodução automática\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ocultar a sessão \"Experimente novos recursos\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ocultar a sessão \"Preferências de qualidade de vídeo\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ocultar a sessão \"Notificações\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ocultar a sessão \"Gerencie todo o histórico\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ocultar a sessão \"Seus dados no YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ocultar a sessão \"Privacidade\"";
"HIDE_LIVECHAT_SECTION" = "Ocultar a sessão \"Chat ao vivo\"";
// Theme
"THEME_OPTIONS" = "Theme Options";
"THEME_OPTIONS" = "Opções de Temas";
"OLED_DARK_THEME" = "OLED dark theme";
"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.";
"OLED_DARK_THEME" = "Modo escuro OLED";
"OLED_DARK_THEME_2" = "Modo escuro OLED";
"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_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
"OLD_DARK_THEME" = "Antigo tema escuro";
"OLD_DARK_THEME_DESC" = "Tema escuro do YouTube antigo (tema cinza). A reinicialização do app é necessária.";
"DEFAULT_THEME" = "Default";
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
"DEFAULT_THEME" = "Padrão";
"DEFAULT_THEME_DESC" = "Tema escuro padrão do YouTube. A reinicialização do app é necessária.";
"OLED_KEYBOARD" = "Teclado OLED";
"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_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";
"LOW_CONTRAST_MODE" = "Modo de Baixo Contraste";
"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" = "Seleção do modo de baixo contraste";
"DEFAULT_LOWCONTRASTMODE" = "(Padrão) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Cor Personalizada) LowContrastMode";
// 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" = "";
"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.";
"HIDE_MODERN_INTERFACE" = "Ocultar Interface Moderna (YTNoModernUI)";
"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_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
"IPAD_LAYOUT" = "Layout do iPad";
"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_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
"IPHONE_LAYOUT" = "Layout do iPhone";
"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_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";
"CAST_CONFIRM" = "Alerta de confirmação antes de transmitir (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Mostra um alerta de confirmação antes da transmissão para evitar o sequestro acidental da TV.";
"CASTING" = "Transmissão";
"MSG_ARE_YOU_SURE" = "Tem certeza de que deseja começar a transmitir?";
"MSG_YES" = "Sim";
"MSG_CANCEL" = "Cancelar";
"NEW_MINIPLAYER_STYLE" = "Novo estilo de barra de miniplayer (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "A reinicialização do app é necessária.";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Ocultar Botão de transmissão";
"HIDE_CAST_BUTTON" = "Ocultar o botão Transmitir";
"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" = "";
"YT_SPEED" = "Enable YTSpeed";
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
"HIDE_HOME_TAB" = "Ocultar guia Início";
"HIDE_HOME_TAB_DESC" = "Tenha cuidado ao ocultar todas as guias";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
"FIX_CASTING" = "Corrigir Transmissão";
"FIX_CASTING_DESC" = "Altera alguns sinalizadores AB para corrigir a transmissão";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
"ENABLE_FLEX" = "Ativar FLEX";
"ENABLE_FLEX_DESC" = "Ativa o FLEX para depuração (não recomendado). Deixe isso desligado, a menos que você saiba o que está fazendo.";
// 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";
"APP_VERSION_SPOOFER_LITE" = "Ativar Falsificação da Versão do App (Lite)";
"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" = "Selecionar Versão Falsa";
// Other Localization
"APP_RESTART_DESC" = "App restart is required.";
"APP_RESTART_DESC" = "A reinicialização do app é necessária.";
"CHANGE_APP_ICON" = "Mudar o Ícone do Aplicativo";

View file

@ -2,6 +2,38 @@
"VERSION" = "Versiune YTLitePlus: %@";
"VERSION_CHECK" = "Căutați actualizări";
"COPY_SETTINGS" = "Copiere setări";
"COPY_SETTINGS_DESC" = "Copie toate setările curente în clipboard";
"PASTE_SETTINGS" = "Lipire setări";
"PASTE_SETTINGS_DESC" = "Lipire și aplicare setări din clipboard";
"PASTE_SETTINGS_ALERT" = "Aplicați setările din clipboard?";
"EXPORT_SETTINGS" = "Exportă setări";
"EXPORT_SETTINGS_DESC" = "Exportă toate setările curente într-un fișier .txt";
"IMPORT_SETTINGS" = "Importă setări";
"IMPORT_SETTINGS_DESC" = "Apasă pentru a importa setările (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Înlocuire butoane 'Copiere setări' & 'Lipire setări'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Înlocuiește butoanele cu 'Exportă setări' și 'Importă setări'";
"VIDEO_PLAYER" = "Player Video (Beta)";
"VIDEO_PLAYER_DESC" = "Deschide un video descărcat în player-ul Apple";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Activare gesturi Player";
"VOLUME" = "Volum";
"BRIGHTNESS" = "Luminozitate";
"SEEK" = "Derulare";
"DISABLED" = "Dezactivat";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Distanță minimă mișcare pentru recunoașterea gesturilor";
"SENSITIVITY" = "Sensibilitate";
"SENSITIVITY_DESC" = "Multiplicator gesturi volum și luminozitate";
"PLAYER_GESTURES_TITLE" = "Gesturi Player";
"PLAYER_GESTURES_DESC" = "Configurare gesturi orizontale pentru player";
"TOP_SECTION" = "Secțiune Sus";
"MIDDLE_SECTION" = "Secțiune Mijloc";
"BOTTOM_SECTION" = "Secțiune Jos";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Activare Feedback Haptic";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opțiuni Overlay Controale Video";
@ -17,24 +49,63 @@
"HIDE_RIGHT_PANEL" = "Ascunde panoul lateral în modul ecran complet";
"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_DESC" = "Ascundere Heatwaves în player-ul video. Este necesară repornirea aplicației.";
"DISABLE_AMBIENT_PORTRAIT" = "Dezactivare Mod Ambiental (Portret)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Dezactivare iluminare în jurul titlului";
"DISABLE_AMBIENT_FULLSCREEN" = "Dezactivare Mod Ambiental (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Dezactivare iluminare în jurul player-ului";
"FULLSCREEN_TO_THE_RIGHT" = "Ecran complet la dreapta";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Ecran complet mereu cu butonul home în partea dreaptă";
"SEEK_ANYWHERE" = "Gest Derulare Oriunde";
"SEEK_ANYWHERE_DESC" = "Ține apăsat și glisează pe player pentru derulare. Trebuie dezactivată opțiunea YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Activare Apasă Pentru Derulare";
"ENABLE_TAP_TO_SEEK_DESC" = "Sari oriunde în video prin apăsarea bării de derulare";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Dezactivare gest intrare fullscreen";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Dezactivează gestul de tragere în jos pentru a intra în fullscreen. Se aplică doar videoclipurilor în mod landscape";
"ALWAYS_USE_REMAINING_TIME" = "Utilizează mereu timp rămas";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Modifică setarea implicită pentru a arăta timpul rămas în bara player-ului";
"DISABLE_TOGGLE_TIME_REMAINING" = "Dezactivare comutator timp rămas";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Dezactivează schimbarea afișării timpului scurs la timp rămas. Utilizați cu setarea 'Utilizează mereu timp rămas' pentru a arăta mereu timpul rămas";
"DISABLE_ENGAGEMENT_OVERLAY" = "Dezactivare secțiune 'Mai multe videoclipuri'";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Dezactivare gestul de glisare în sus și clipurile sugerate în fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ascundere comentarii sub player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Ascunde comentariile ce apar în butonul pentru secțiunea de comentarii";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ascundere mini preview redare automată";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Ascunde secțiunea 'Urmează' din apropierea titlului în 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" = "Ascundere Buton Collapse";
"HIDE_COLLAPSE_BUTTON_DESC" = "Ascunde butonul de minimizare Player Video din colțul dreapta sus";
"HIDE_SPEED_TOAST" = "Ascundere Notificare Viteză";
"HIDE_SPEED_TOAST_DESC" = "Ascunde notificarea de viteză 2X la menținerea ecranului apăsat în timpul redării";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație";
"HIDE_ACCOUNT_SECTION" = "Ascunde secțiunea `Cont`";
"HIDE_AUTOPLAY_SECTION" = "Ascunde secțiunea `Redare automată`";
"HIDE_TRYNEWFEATURES_SECTION" = "Ascunde secțiunea `Încearcă funcții noi`";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ascunde secțiunea `Preferințe privind calitatea video`";
"HIDE_NOTIFICATIONS_SECTION" = "Ascunde secțiunea `Notificări`";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ascunde secțiunea `Gestionează întregul istoric`";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ascunde secțiunea `Datele tale din YouTube`";
"HIDE_PRIVACY_SECTION" = "Ascunde secțiunea `Confidențialitate`";
"HIDE_LIVECHAT_SECTION" = "Ascunde secțiunea `Chat live`";
"HIDE_ACCOUNT_SECTION" = "Ascunde secțiunea \"Cont\"";
"HIDE_AUTOPLAY_SECTION" = "Ascunde secțiunea \"Redare automată\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ascunde secțiunea \"Încearcă funcții noi\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ascunde secțiunea \"Preferințe privind calitatea video\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ascunde secțiunea \"Notificări\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ascunde secțiunea \"Gestionează întregul istoric\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ascunde secțiunea \"Datele tale din YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ascunde secțiunea \"Confidențialitate\"";
"HIDE_LIVECHAT_SECTION" = "Ascunde secțiunea \"Chat live\"";
// Theme
"THEME_OPTIONS" = "Opțiuni temă";
@ -61,6 +132,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Diverse";
"PLAYBACK_IN_FEEDS" = "Redare în feeduri";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Activat mereu";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Numai prin Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Dezactivat";
"NEW_SETTINGS_UI" = "Interfață Nouă Setări";
"NEW_SETTINGS_UI_DESC" = "Utilizează noua interfață pentru setări. Este posibil ca unele setări să fie ascunse";
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@ -83,27 +162,24 @@
"NEW_MINIPLAYER_STYLE" = "Stil nou bară Miniplayer (BigYTMiniPlayer)";
"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_DESC" = "Este necesară repornirea aplicației.";
"VIDEO_PLAYER_BUTTON" = "Buton Player Video";
"VIDEO_PLAYER_BUTTON_DESC" = "Arată un buton în bara de navigație pentru a deschide videoul descărcat în player-ul Apple";
"HIDE_SPONSORBLOCK_BUTTON" = "Ascundere buton iSponsorBlock în bara de navigație";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Activare YTSpeed";
"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" = "Ascunde Tabul Acasă";
"HIDE_HOME_TAB_DESC" = "Ai grijă să nu ascunzi toate taburile";
"FIX_CASTING" = "Repară Casting";
"FIX_CASTING_DESC" = "Modifică unii parametri A/B pentru a repara castingul";
"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.";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
// Version Spoofer
"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.";
@ -111,3 +187,4 @@
// Other Localization
"APP_RESTART_DESC" = "Este necesară repornirea aplicației.";
"CHANGE_APP_ICON" = "Schimbă iconița aplicației";

View file

@ -1,113 +1,190 @@
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide `Account` Section";
"HIDE_AUTOPLAY_SECTION" = "Hide `Autoplay` Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide `Try New Features` Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide `Video quality preferences` Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide `Notifications` Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide `Manage all history` Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide `Your data in YouTube` Section";
"HIDE_PRIVACY_SECTION" = "Hide `Privacy` Section";
"HIDE_LIVECHAT_SECTION" = "Hide `Live Chat` Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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";
"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" = "Потребуется перезагрузка.";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Скрыть кнопку «Транслировать»";
"HIDE_CAST_BUTTON_DESC" = "Потребуется перезагрузка.";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Enable YTSpeed";
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
// 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.";
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
"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";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"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" = "Скрыть сообщения плеера";
"HIDE_HUD_MESSAGES_DESC" = "Скрывает надписи YouTube, появляющиеся поверх видео.";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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";

View file

@ -1,128 +1,205 @@
/* Read me:
- How to translate YTLitePlus (if your language already exists then feel free to check it and/or improve it):
1. Fork YTLitePlus repo
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
3. Translate each line below after each =
4. Open a Pull Request
- 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/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/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
*/
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide `Account` Section";
"HIDE_AUTOPLAY_SECTION" = "Hide `Autoplay` Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide `Try New Features` Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide `Video quality preferences` Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide `Notifications` Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide `Manage all history` Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide `Your data in YouTube` Section";
"HIDE_PRIVACY_SECTION" = "Hide `Privacy` Section";
"HIDE_LIVECHAT_SECTION" = "Hide `Live Chat` Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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";
"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" = "New mini player bar style (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Hide Cast button";
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Enable YTSpeed";
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
// 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.";
/* Read me:
- How to translate YTLitePlus (if your language already exists then feel free to check it and/or improve it):
1. Fork YTLitePlus repo
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
3. Translate each line below after each =
4. Open a Pull Request
- 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/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/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
*/
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
"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";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"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" = "Hide HUD messages";
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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";

View file

@ -1,113 +1,190 @@
// Settings
"VERSION" = "YTLitePlus'ın sürümü: %@";
"VERSION_CHECK" = "Güncellemeyi kontrol etmek için dokunun!";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"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";
"HIDE_ACCOUNT_SECTION" = "Hide `Account` Section";
"HIDE_AUTOPLAY_SECTION" = "Hide `Autoplay` Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide `Try New Features` Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide `Video quality preferences` Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide `Notifications` Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide `Manage all history` Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide `Your data in YouTube` Section";
"HIDE_PRIVACY_SECTION" = "Hide `Privacy` Section";
"HIDE_LIVECHAT_SECTION" = "Hide `Live Chat` Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"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 Klavye (Deneysel)";
"OLED_KEYBOARD_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Uygulamanın yeniden başlatılması gerekir.";
"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";
"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" = "Yeni mini oynatıcı çubuğu stili (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "Yayınla düğmesini gizle";
"HIDE_CAST_BUTTON_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "Enable YTSpeed";
"YT_SPEED_DESC" = "Enable YTSpeed to have more Playback Speed Options. App restart is required.";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
// 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.";
// Settings
"VERSION" = "YTLitePlus'ın sürümü: %@";
"VERSION_CHECK" = "Güncelleme kontrolü için dokun!";
"COPY_SETTINGS" = "Ayarları Kopyala";
"COPY_SETTINGS_DESC" = "Tüm mevcut ayarları panoya kopyala";
"PASTE_SETTINGS" = "Ayarları Yapıştır";
"PASTE_SETTINGS_DESC" = "Panodaki ayarları yapıştır ve uygula";
"PASTE_SETTINGS_ALERT" = "Panodan ayarları uygulamak istiyor musun?";
"EXPORT_SETTINGS" = "Ayarları Dışa Aktar";
"EXPORT_SETTINGS_DESC" = "Tüm mevcut ayarları bir .txt dosyasına dışa aktarır";
"IMPORT_SETTINGS" = "Ayarları İçe Aktar";
"IMPORT_SETTINGS_DESC" = "Ayarları içe aktarmak için basın (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "'Ayarları Kopyala' ve 'Ayarları Yapıştır' Düğmelerini Değiştir";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Düğmeleri 'Ayarları Dışa Aktar' ve 'Ayarları İçe Aktar' ile değiştirir";
"VIDEO_PLAYER" = "Video Oynatıcı (Beta)";
"VIDEO_PLAYER_DESC" = "İndirilen bir videoyu Apple oynatıcısında aç";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Oynatıcı Hareketlerini Etkinleştir";
"VOLUME" = "Ses";
"BRIGHTNESS" = "Parlaklık";
"SEEK" = "Arama";
"DISABLED" = "Devre Dışı";
"DEADZONE" = "Ölü Bölge";
"DEADZONE_DESC" = "Bir hareketin tanınması için minimum mesafe";
"SENSITIVITY" = "Hassasiyet";
"SENSITIVITY_DESC" = "Ses ve parlaklık hareketleri için çarpan";
"PLAYER_GESTURES_TITLE" = "Oynatıcı Hareketleri";
"PLAYER_GESTURES_DESC" = "Oynatıcı için yatay kaydırma hareketlerini yapılandır";
"TOP_SECTION" = "Üst Bölüm";
"MIDDLE_SECTION" = "Orta Bölüm";
"BOTTOM_SECTION" = "Alt Bölüm";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Haptik(titreşim) Geri Bildirimi Etkinleştir";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Kontrol Seç.";
"ENABLE_SHARE_BUTTON" = "Paylaş Butonunu Aç";
"ENABLE_SHARE_BUTTON_DESC" = "Video kontrolünde Paylaş Butonunu aç.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "'Listeye Kaydet' Butonunu Aç";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Video kontrolünde 'Listeye Kaydet' Butonunu aç.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Gölge Düğmelerini Gizle";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Oynat/Duraklat, Önceki, Sonraki, İleri/Geri Düğmelerindeki gölgeyi gizle.";
"HIDE_RIGHT_PANEL" = "Tam ekranda sağ paneli gizle";
"HIDE_RIGHT_PANEL_DESC" = "Uyg. yeniden başlatılmalı.";
"HIDE_HEATWAVES" = "Sıcak Dalgaları Gizle";
"HIDE_HEATWAVES_DESC" = "Sıcak Dalgaları gizler. Uyg. yeniden başlatılmalı.";
"DISABLE_AMBIENT_PORTRAIT" = "Ortam Modunu Kapat (Dikey)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Video başlığı çevresindeki aydınlatmayı kapat";
"DISABLE_AMBIENT_FULLSCREEN" = "Ortam Modunu Kapat (Tam Ekran)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Video oynatıcının çevresindeki aydınlatmayı kapat";
"FULLSCREEN_TO_THE_RIGHT" = "Tam Ekran Sağda";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Tam ekrana sağda ev düğmesi ile gir.";
"SEEK_ANYWHERE" = "Her Yerde Ara";
"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.";
"ENABLE_TAP_TO_SEEK" = "Dokunarak Ara";
"ENABLE_TAP_TO_SEEK_DESC" = "Arama çubuğuna tek dokunarak videonun herhangi bir yerine git";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Tam ekran çekme hareketini kapat";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Dikey tam ekrana geçmek için çekme hareketini kapat. Sadece yatay videolar için geçerli.";
"ALWAYS_USE_REMAINING_TIME" = "Her zaman kalan süreyi göster";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Oynatıcı çubuğunda kalan süreyi gösterir.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Kalan zamanı değiştirmeyi kapat";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Geçen zamanı kalan zamanla değiştirmeyi kapatır.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Tam ekranda kaplamayı kapat";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Tam ekranda yukarı kaydırma hareketini ve önerilen videoları kapat";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Oynatıcının Altındaki Yorum Önizlemelerini Gizle";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Video oynatıcının altındaki yorum önizlemelerini gizler.";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Otomatik Oynatma Mini Önizlemesini Gizle";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Tam ekranda başlık yakınındaki küçük önerilen video kutusunu gizle";
"HIDE_HUD_MESSAGES" = "HUD mesajlarını gizle";
"HIDE_HUD_MESSAGES_DESC" = "Belirli işlemler için görüntülenen bildirim çubuklarını gizler (ör. CC açıldı/kapandı)";
"HIDE_COLLAPSE_BUTTON" = "Daraltma Düğmesini Gizle";
"HIDE_COLLAPSE_BUTTON_DESC" = "Video oynatıcıda sol üstte görünen ok ile daraltma düğmesini gizler.";
"HIDE_SPEED_TOAST" = "Hız Bildirimini Gizle";
"HIDE_SPEED_TOAST_DESC" = "Oynatıcıya basılı tutarken 2X Hız bildirimini gizle";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Uyg. Ayarları Kaplama Seç.";
"HIDE_ACCOUNT_SECTION" = "\"Hesap\" Bölümünü Gizle";
"HIDE_AUTOPLAY_SECTION" = "\"Otomatik Oynatma\" Bölümünü Gizle";
"HIDE_TRYNEWFEATURES_SECTION" = "\"Yeni Özellikler\" Bölümünü Gizle";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "\"Video Kalite\" Bölümünü Gizle";
"HIDE_NOTIFICATIONS_SECTION" = "\"Bildirimler\" Bölümünü Gizle";
"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";
"HIDE_PRIVACY_SECTION" = "\"Gizlilik\" Bölümünü Gizle";
"HIDE_LIVECHAT_SECTION" = "\"Canlı Sohbet\" Bölümünü Gizle";
// Theme
"THEME_OPTIONS" = "Tema Seç";
"OLED_DARK_THEME" = "OLED koyu tema";
"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";

View file

@ -1,203 +1,190 @@
// Settings
"VERSION" = "Phiên bản của CercubePlus: %@";
"VERSION_CHECK" = "Nhấn để kiểm tra cập nhật!";
// Video player options
"VIDEO_PLAYER_OPTIONS" = "Tùy chọn trình phát video";
"SNAP_TO_CHAPTER" = "Vô hiệu hóa đính vào chươ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.";
"PINCH_TO_ZOOM" = "Vô hiệu hóa chụm để thu phóng";
"PINCH_TO_ZOOM_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
"YT_MINIPLAYER" = "Bật trình phát mini cho tất cả các video trên YouTube";
"YT_MINIPLAYER_DESC" = "Ví dụ: video dành cho trẻ em";
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
"STOCK_VOLUME_HUD_DESC" = "";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển video";
"HIDE_CHANNEL_WATERMARK" = "Ẩn hình mờ kênh";
"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.";
"RED_PROGRESS_BAR" = "Thanh tiến trình màu đỏ";
"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.";
"DONT_EAT_MY_CONTENT" = "Ngăn Notch/Đảo trên nội dung video 2:1 (DontEatMyContent)";
"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.";
"NO_SUGGESTED_VIDEO" = "Hide Suggested Video (YTNoSuggestedVideo)";
"NO_SUGGESTED_VIDEO_DESC" = "Remove the suggested video popup when finishing a video";
"HIDE_HEATWAVES" = "Ẩn sóng nhiệt";
"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.";
// Shorts controls overlay options
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển quần short";
"HIDE_SHORTS_CHANNEL_AVATAR" = "Ẩn hình đại diện của kênh Shorts";
"HIDE_SHORTS_CHANNEL_AVATAR_DESC" = "";
"HIDE_SHORTS_LIKE_BUTTON" = "Ẩn nút thích Shorts";
"HIDE_SHORTS_LIKE_BUTTON_DESC" = "";
"HIDE_SHORTS_DISLIKE_BUTTON" = "Ẩn nút không thích Shorts";
"HIDE_SHORTS_DISLIKE_BUTTON_DESC" = "";
"HIDE_SHORTS_COMMENT_BUTTON" = "Ẩn nút bình luận Shorts";
"HIDE_SHORTS_COMMENT_BUTTON_DESC" = "";
"HIDE_SHORTS_REMIX_BUTTON" = "Ẩn nút phối lại video ngắn";
"HIDE_SHORTS_REMIX_BUTTON_DESC" = "";
"HIDE_SHORTS_SHARE_BUTTON" = "Ẩn nút chia sẻ Shorts";
"HIDE_SHORTS_SHARE_BUTTON_DESC" = "";
"HIDE_SUBSCRIPTIONS" = "Hide Subscriptions button";
"HIDE_SUBSCRIPTIONS_DESC" = "Hide Subscriptions button which shows up when paused.";
"HIDE_SUPER_THANKS" = "Ẩn biểu ngữ Mua hàng Vô cùng cảm ơn";
"HIDE_SUPER_THANKS_DESC" = "Ẩn biểu ngữ Mua hàng Vô cùng cảm ơn trong Shorts.";
"DISABLE_RESUME_TO_SHORTS" = "Vô hiệu hóa sơ yếu lý lịch cho Shorts";
"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.";
// Theme
"THEME_OPTIONS" = "Tùy chọn chủ đề";
"OLED_DARK_THEME" = "Chủ đề tối OLED (Thử nghiệm)";
"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.";
"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.";
"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.";
"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.";
// Customization Options
"CUSTOMIZATION_OPTIONS" = "Tùy chọn tùy chỉ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_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_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.";
"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.";
"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.";
"BLUE_UI" = "Giao diện người dùng màu xanh lam";
"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.";
"GREEN_UI" = "Giao diện xanh";
"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.";
"YELLOW_UI" = "Giao diện người dùng màu vàng";
"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.";
"ORANGE_UI" = "Giao diện người dùng màu cam";
"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.";
"PURPLE_UI" = "Giao diện người dùng màu tím";
"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.";
"PINK_UI" = "Giao diện người dùng màu hồng";
"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.";
// Miscellaneous
"MISCELLANEOUS" = "Điều khoản khác";
"CAST_CONFIRM" = "Xác nhận cảnh báo trước khi truyền (YTCastConfirm)";
"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.";
"CASTING" = "Đúc";
"MSG_ARE_YOU_SURE" = "Bạn có chắc chắn muốn bắt đầu truyền không?";
"MSG_YES" = "Đúng";
"MSG_CANCEL" = "Hủy bỏ";
"DISABLE_HINTS" = "Tắt gợi ý";
"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.";
"ENABLE_FLEX" = "Kích hoạt FLEX";
"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.";
"UN_SHORTS" = "Hide Shorts (YTUnShorts)";
"UN_SHORTS_DESC" = "Remove Shorts from YouTube feed.";
"HIDE_COMMUNITY_POSTS" = "Hide community posts";
"HIDE_COMMUNITY_POSTS_DESC" = "Hides the Community Posts. App restart is required.";
"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.";
"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...).";
"NEW_MINIPLAYER_STYLE" = "Phong cách thanh người chơi mini mới (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "";
"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.";
"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.";
"HIDE_SHORTS_VIDEOS" = "Ẩn video ngắn";
"HIDE_SHORTS_VIDEOS_DESC" = "Ẩn video ngắn trong Trang chủ, được đề xuất...";
"HIDE_CERCUBE_BUTTON" = "Ẩn nút Cercube trong thanh Điều hướng";
"HIDE_CERCUBE_BUTTON_DESC" = "";
"HIDE_CERCUBE_PIP_BUTTON" = "Ẩn nút PiP của Cercube";
"HIDE_CERCUBE_PIP_BUTTON_DESC" = "Ẩn nút PiP của Cercube trong lớp phủ điều khiển video.";
"HIDE_CERCUBE_DOWNLOAD_BUTTON" = "Ẩn nút Tải xuống của Cercube";
"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.";
"HIDE_CAST_BUTTON" = "Ẩn nút Truyền";
"HIDE_CAST_BUTTON_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
"HIDE_HOVER_CARD" = "Ẩn thẻ di chuột trên Màn hình kết thúc (YTNoHoverCards)";
"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_RIGHT_PANEL" = "Ẩn bảng điều khiển bên phải ở chế độ toàn màn hình";
"HIDE_RIGHT_PANEL_DESC" = "Khởi động lại ứng dụng là bắt buộc.";
"HIDE_SUBTITLES_BUTTON" = "Ẩn nút phụ đề";
"HIDE_SUBTITLES_BUTTON_DESC" = "Ẩn nút Phụ đề trong lớp phủ điều khiển video.";
"HIDE_AUTOPLAY_SWITCH" = "Ẩn công tắc Tự động phát";
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ẩn công tắc Tự động phát trong lớp phủ điều khiển video.";
"AUTO_FULLSCREEN" = "Tự động toàn màn hình(YTAutoFullScreen)";
"AUTO_FULLSCREEN_DESC" = "Tự động phát video ở chế độ toàn màn hình.";
"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,...";
"HIDE_PAID_PROMOTION_CARDS" = "Ẩn thẻ Khuyến mại trả phí";
"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.";
// Settings
"VERSION" = "Phiên bản YTLitePlus: %@";
"VERSION_CHECK" = "Nhấn để kiểm tra cập nhật!";
"COPY_SETTINGS" = "Sao chép cài đặt";
"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";
"PASTE_SETTINGS_DESC" = "Dán cài đặt từ bảng nhớ tạm và áp dụng";
"PASTE_SETTINGS_ALERT" = "Áp dụng các cài đặt?";
"EXPORT_SETTINGS" = "Xuất cài đặt";
"EXPORT_SETTINGS_DESC" = "Xuất tất cài đặt hiện tại vào tệp .txt";
"IMPORT_SETTINGS" = "Nhập cài đặt";
"IMPORT_SETTINGS_DESC" = "Nhấn để nhập cài đặt (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Thay thế nút 'Sao chép cài đặt' và 'Dán cài đặt'";
"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'";
"VIDEO_PLAYER" = "Trình phát video (Beta)";
"VIDEO_PLAYER_DESC" = "Mở video đã tải xuống trong trình phát Apple";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Bật cử chỉ trình phát";
"VOLUME" = "Âm lượng";
"BRIGHTNESS" = "Độ sáng";
"SEEK" = "Tua";
"DISABLED" = "Vô hiệu hóa";
"DEADZONE" = "Vùng chết";
"DEADZONE_DESC" = "Khoảng cách tối thiểu để nhận diện cử chỉ";
"SENSITIVITY" = "Độ nhạy";
"SENSITIVITY_DESC" = "Hệ số nhân cho cử chỉ âm lượng và độ sáng";
"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";
"TOP_SECTION" = "Phần trên";
"MIDDLE_SECTION" = "Phần giữa";
"BOTTOM_SECTION" = "Phần dưới";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Bật phản hồi xúc giác";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Lớp phủ video";
"ENABLE_SHARE_BUTTON" = "Bật nút chia sẻ";
"ENABLE_SHARE_BUTTON_DESC" = "Thêm nút chia sẻ trong trình phát video.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Bật nút 'Lưu vào danh sách phát'";
"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_SHADOW_OVERLAY_BUTTONS" = "Ẩn bóng các nút";
"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_RIGHT_PANEL" = "Ẩn bảng bên phải ở chế độ toàn màn hình";
"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_HEATWAVES" = "Ẩn sóng nhiệt";
"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.";
"DISABLE_AMBIENT_PORTRAIT" = "Tắt chế độ môi trường (Chân dung)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Tắt ánh sáng xung quanh tiêu đề video";
"DISABLE_AMBIENT_FULLSCREEN" = "Tắt chế độ môi trường (Toàn màn hình)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Tắt ánh sáng xung quanh trình phát video";
"FULLSCREEN_TO_THE_RIGHT" = "Toàn màn hình bên phải";
"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.";
"SEEK_ANYWHERE" = "Tua ở mọi nơi";
"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";
"ENABLE_TAP_TO_SEEK" = "Nhấn để tua";
"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";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Tắt cử chỉ kéo để vào toàn màn hình";
"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.";
"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.";
"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.";
"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";
"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";
"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_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_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_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";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Lớp phủ cài đặt";
"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\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ẩn cài đặt \"Thử các tính năng mới\"";
"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\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ẩn cài đặt \"Quản lý toàn bộ nhật ký hoạt động\"";
"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ư\"";
"HIDE_LIVECHAT_SECTION" = "Ẩn cài đặt \"Trò chuyện trực tiếp\"";
// Theme
"THEME_OPTIONS" = "Tùy chọn giao diện";
"OLED_DARK_THEME" = "Giao diện tối OLED";
"OLED_DARK_THEME_2" = "Giao diện tối OLED";
"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.";
"OLD_DARK_THEME" = "Giao diện tối 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.";
"DEFAULT_THEME" = "Mặc định";
"DEFAULT_THEME_DESC" = "Giao diện mặc định của YouTube. Cần khởi động lại ứng dụng.";
"OLED_KEYBOARD" = "Bàn phím OLED";
"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.";
"LOW_CONTRAST_MODE" = "Chế độ tương phản thấp";
"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.";
"LCM_SELECTOR" = "Chọn chế độ tương phản thấp";
"DEFAULT_LOWCONTRASTMODE" = "(Mặc định) Chế độ tương phản thấp";
"CUSTOM_LOWCONTRASTMODE" = "(Màu tùy chỉnh) Chế độ tương phản thấp";
// Miscellaneous
"MISCELLANEOUS" = "Tùy chọn khác";
"PLAYBACK_IN_FEEDS" = "Phát trong các trang danh sách video";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Luôn bật";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Chỉ Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Tắt";
"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";
"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_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.";
"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.";
"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.";
"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.";
"CASTING" = "Truyền";
"MSG_ARE_YOU_SURE" = "Bạn có chắc chắn muốn bắt đầu truyền không?";
"MSG_YES" = "Có";
"MSG_CANCEL" = "Không";
"NEW_MINIPLAYER_STYLE" = "Trình phát thu nhỏ kiểu mới";
"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_CAST_BUTTON" = "Ẩn nút truyền";
"HIDE_CAST_BUTTON_DESC" = "Cần khởi động lại ứng dụng.";
"VIDEO_PLAYER_BUTTON" = "Nút Trình phát video";
"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_SPONSORBLOCK_BUTTON" = "Ẩn nút iSponsorBlock";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "Ẩn cài đặt iSponsorBlock trên thanh điều hướng";
"HIDE_HOME_TAB" = "Ẩn tab Trang chủ";
"HIDE_HOME_TAB_DESC" = "Hãy cẩn thận khi ẩn tất cả các tab";
"FIX_CASTING" = "Sửa truyền";
"FIX_CASTING_DESC" = "Thay đổi một số cờ AB để sửa truyền";
"ENABLE_FLEX" = "Bật FLEX";
"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ì.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Giả mạo phiên bản ứng dụng (Lite)";
"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";
// Other Localization
"APP_RESTART_DESC" = "Cần khởi động lại ứng dụng.";
"CHANGE_APP_ICON" = "Đổi biểu tượng ứng dụng";

View 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" = "更改应用程序图标";

View file

@ -1,111 +1,204 @@
// Settings
"VERSION" = "YTLitePlus 版本:%@";
"VERSION_CHECK" = "檢查更新";
// 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" = "在播放器中隱藏熱浪";
// 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" = "已連結的應用程式";
"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" = "";
"OLED_KEYBOARD" = "OLED 鍵盤";
"OLED_KEYBOARD_DESC" = "此功能不穩定。重新啟動應用程式以套用變更。";
"LOW_CONTRAST_MODE" = "低對比模式";
"LOW_CONTRAST_MODE_DESC" = "模擬舊式 YouTube。重新啟動應用程式以套用變更。";
"LCM_SELECTOR" = "低對比模式樣是";
"DEFAULT_LOWCONTRASTMODE" = "預設LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "自訂顏色LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "更多";
"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" = "重新啟動應用程式以套用變更。";
"STOCK_VOLUME_HUD" = "使用 iOS 預設音量條";
"STOCK_VOLUME_HUD_DESC" = "";
"HIDE_CAST_BUTTON" = "隱藏投放按鈕";
"HIDE_CAST_BUTTON_DESC" = "重新啟動應用程式以套用變更。";
"HIDE_SPONSORBLOCK_BUTTON" = "隱藏 iSponsorBlock 按鈕";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"YT_SPEED" = "啟用 YTSpeed";
"YT_SPEED_DESC" = "擁有更多種影片速度。重新啟動應用程式以套用變更。";
"ENABLE_FLEX" = "啟用 FLEX不建議使用";
"ENABLE_FLEX_DESC" = "如果不知道這是什麼,請勿啟用";
"UN_SHORTS" = "隱藏 ShortsYTUnShorts";
"UN_SHORTS_DESC" = "瀏覽影片時隱藏 Shorts";
"HIDE_COMMUNITY_POSTS" = "隱藏社群貼文";
"HIDE_COMMUNITY_POSTS_DESC" = "重新啟動應用程式以套用變更。";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "改變應用程式版本";
"APP_VERSION_SPOOFER_LITE_DESC" = "請在底下選擇版本。重新啟動應用程式以套用變更。";
"VERSION_SPOOFER_TITLE" = "版本選擇器";
// Other Localization
"APP_RESTART_DESC" = "重新啟動應用程式以套用變更。";
// Settings
"VERSION" = "YTLitePlus 版本:%@";
"VERSION_CHECK" = "檢查更新";
"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" = "影片區覆蓋按鈕設定";
"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 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" = "隱藏 HUD 訊息";
"HIDE_HUD_MESSAGES_DESC" = "例如CC字幕、開啟/關閉、影片循環開啟等...";
"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" = "應用程式設定隱藏項目";
"HIDE_ACCOUNT_SECTION" = "購買會員與會員資格";
"HIDE_AUTOPLAY_SECTION" = "自動播放";
"HIDE_TRYNEWFEATURES_SECTION" = "";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "影片畫質偏好設定";
"HIDE_NOTIFICATIONS_SECTION" = "通知";
"HIDE_MANAGEALLHISTORY_SECTION" = "管理所有紀錄";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "已連結的應用程式";
"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" = "";
"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";