Compare commits
647
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c3fe9b575 | ||
|
|
a893229d74 | ||
|
|
9f05b40e1d | ||
|
|
31350813b7 | ||
|
|
6bb70aa744 | ||
|
|
880603f7f4 | ||
|
|
61e55e1b15 | ||
|
|
1459b08e55 | ||
|
|
b95f0874ba | ||
|
|
6d579dca14 | ||
|
|
4c7b3c42bd | ||
|
|
af082215e2 | ||
|
|
3e8435dc8f | ||
|
|
e16ebb14b6 | ||
|
|
7b0098cff5 | ||
|
|
e1591c2c89 | ||
|
|
8b5814e1d2 | ||
|
|
eea9cf2e4e | ||
|
|
7a7c113523 | ||
|
|
f17618651e | ||
|
|
0972258215 | ||
|
|
be20d3edb3 | ||
|
|
880bbb9e36 | ||
|
|
b0259a6872 | ||
|
|
14fe16f906 | ||
|
|
8dc3ac121d | ||
|
|
714f3fa24c | ||
|
|
de5c919260 | ||
|
|
617ffedef6 | ||
|
|
2118bca18a | ||
|
|
9a8916f3fa | ||
|
|
c397ccbab0 | ||
|
|
cd9934bc1a | ||
|
|
2f6d431b63 | ||
|
|
f08e390beb | ||
|
|
449a8a99d6 | ||
|
|
1d5f61cfbf | ||
|
|
956eeb22cf | ||
|
|
88534b72c4 | ||
|
|
ad4f968f74 | ||
|
|
812ce52051 | ||
|
|
5d9cffb5e5 | ||
|
|
73ba35b46e | ||
|
|
607cad345f | ||
|
|
1b0f4bc81b | ||
|
|
b594765d69 | ||
|
|
e4d1875ae8 | ||
|
|
34fa42f721 | ||
|
|
ca9791f732 | ||
|
|
ed90d07421 | ||
|
|
b8190013f7 | ||
|
|
58a20fb57b | ||
|
|
b64e387163 | ||
|
|
959e384149 | ||
|
|
f6d654758f | ||
|
|
226a4730aa | ||
|
|
d4c17b5cce | ||
|
|
d24b4392b0 | ||
|
|
0a4bfd8abc | ||
|
|
a1a31acf49 | ||
|
|
92af5163bf | ||
|
|
82aece7ad3 | ||
|
|
069db37bf2 | ||
|
|
a230c4e16b | ||
|
|
809e59df02 | ||
|
|
b71083f9e3 | ||
|
|
b4196d96eb | ||
|
|
c62f450a2f | ||
|
|
7fa6f0704e | ||
|
|
17425c8f02 | ||
|
|
18bc0268de | ||
|
|
5260a2e16e | ||
|
|
a14d95b2d3 | ||
|
|
d50d9e018e | ||
|
|
006ce94a5b | ||
|
|
256e0654b8 | ||
|
|
d37e146a60 | ||
|
|
abc54675e1 | ||
|
|
5da7b38232 | ||
|
|
dfbec9edd5 | ||
|
|
787870cab7 | ||
|
|
11783bc606 | ||
|
|
e7666dea19 | ||
|
|
c4a4316d2a | ||
|
|
32f65fb33b | ||
|
|
3d784259c4 | ||
|
|
264b46bc26 | ||
|
|
dd38036ac0 | ||
|
|
3e27ad9454 | ||
|
|
ce403738e1 | ||
|
|
e5eb26012e | ||
|
|
845fbf4589 | ||
|
|
95d0c74d69 | ||
|
|
6e350c3e84 | ||
|
|
f3f0f99d7a | ||
|
|
52504ce426 | ||
|
|
184c885f45 | ||
|
|
ae43ebd803 | ||
|
|
687d0e7d10 | ||
|
|
8f1d16746f | ||
|
|
41f1ab9aee | ||
|
|
33c5fc41ca | ||
|
|
e88839e7c1 | ||
|
|
88e3f7bc70 | ||
|
|
9eef7c58c7 | ||
|
|
cd0995f94f | ||
|
|
b9fd2f284b | ||
|
|
0b9ae06040 | ||
|
|
4be2239712 | ||
|
|
5eeaf5dbdc | ||
|
|
444c66a16d | ||
|
|
9b2b22d77b | ||
|
|
6c562736d0 | ||
|
|
7996b43b11 | ||
|
|
1d9b9a7979 | ||
|
|
6ae48d6666 | ||
|
|
25625b7014 | ||
|
|
61f8e79241 | ||
|
|
16fbe8475a | ||
|
|
33d31c8625 | ||
|
|
fdf07a5e6e | ||
|
|
a12b359ad7 | ||
|
|
4eea301aea | ||
|
|
36f52c8808 | ||
|
|
f1ea0e5936 | ||
|
|
3d641e2e1e | ||
|
|
146ed16122 | ||
|
|
63ab1ff6c8 | ||
|
|
7650e65f54 | ||
|
|
265927b390 | ||
|
|
4fc42767e0 | ||
|
|
63a13947af | ||
|
|
2ff645cb04 | ||
|
|
2f4efb86a0 | ||
|
|
94133da48b | ||
|
|
8ca5a84998 | ||
|
|
0fe5004d21 | ||
|
|
4794a7ab2d | ||
|
|
446a583014 | ||
|
|
1fb2720bbe | ||
|
|
afaddaa7a0 | ||
|
|
ba8d12758c | ||
|
|
52ac2585bd | ||
|
|
c47195b47e | ||
|
|
3291abc529 | ||
|
|
7eae8675a3 | ||
|
|
db742d391d | ||
|
|
7d3db45f8d | ||
|
|
4babdf8604 | ||
|
|
6b7bb7e760 | ||
|
|
bcbe69cf7f | ||
|
|
b19f9b8d40 | ||
|
|
d6fcb18a74 | ||
|
|
4b464a87e3 | ||
|
|
1de18fdf0f | ||
|
|
ebcf1c10e5 | ||
|
|
e5997c2f65 | ||
|
|
4342a7f78b | ||
|
|
28284e5c71 | ||
|
|
aa78e13df9 | ||
|
|
a82da65f63 | ||
|
|
54a5c600cc | ||
|
|
32e09edd75 | ||
|
|
a3e8b649b0 | ||
|
|
71af3c981a | ||
|
|
a810fd4014 | ||
|
|
581e5070ce | ||
|
|
cd557de48a | ||
|
|
98dfad32cc | ||
|
|
19f83b6310 | ||
|
|
3233da309d | ||
|
|
d94cbbb1bb | ||
|
|
17e0b6f86a | ||
|
|
f135d9ea1d | ||
|
|
69da3d2b08 | ||
|
|
43220f7d31 | ||
|
|
2ca2912086 | ||
|
|
0bf9818836 | ||
|
|
d66ad07319 | ||
|
|
fd548132e8 | ||
|
|
475b99de88 | ||
|
|
06e95ee739 | ||
|
|
c1567fa58e | ||
|
|
49aad95daa | ||
|
|
9b43b11414 | ||
|
|
8848c35cf0 | ||
|
|
6d1d2511ec | ||
|
|
ff7e013a09 | ||
|
|
b4905b29b6 | ||
|
|
e392ccdd0c | ||
|
|
fb093a0512 | ||
|
|
94ccd6aa5c | ||
|
|
a09d871e20 | ||
|
|
126af22779 | ||
|
|
29f129da56 | ||
|
|
e2fc640ac9 | ||
|
|
66ef2cb61d | ||
|
|
67ee2e6dd9 | ||
|
|
bf3c76b2a7 | ||
|
|
cd8d6a1034 | ||
|
|
0f9bca615c | ||
|
|
77ae43b459 | ||
|
|
31658bb5a1 | ||
|
|
96aeeb64f3 | ||
|
|
33ca5b9d56 | ||
|
|
a2cb207516 | ||
|
|
8377ef0b43 | ||
|
|
32ccc32fa9 | ||
|
|
d2d6a74b9d | ||
|
|
dbc5ec5b4f | ||
|
|
8e63956b4d | ||
|
|
9859479010 | ||
|
|
5c74ec92fc | ||
|
|
bfd46dded1 | ||
|
|
25bc6f29a8 | ||
|
|
1b6731302c | ||
|
|
1a8363c566 | ||
|
|
593f653975 | ||
|
|
5e70195ddf | ||
|
|
91124d8705 | ||
|
|
921ce788aa | ||
|
|
854c37d250 | ||
|
|
c69935e252 | ||
|
|
725d4d107c | ||
|
|
9cb67c2467 | ||
|
|
ac266851c0 | ||
|
|
4f53e5856f | ||
|
|
c0881765b9 | ||
|
|
694e4e911e | ||
|
|
91419d9f66 | ||
|
|
cf5c7b48e1 | ||
|
|
c925d44f3c | ||
|
|
3afa8d9195 | ||
|
|
932fca0a21 | ||
|
|
9350c26e93 | ||
|
|
50576c4903 | ||
|
|
97022cfce0 | ||
|
|
a0fe2f8cc3 | ||
|
|
3c9d59f77b | ||
|
|
2389367350 | ||
|
|
2838b0b4b0 | ||
|
|
5b87f532b1 | ||
|
|
47d77628e2 | ||
|
|
ddec6377f3 | ||
|
|
c26a4a660d | ||
|
|
98842ce21d | ||
|
|
98227fb443 | ||
|
|
23c71f9eeb | ||
|
|
a34e4ed6eb | ||
|
|
4e61e7e09f | ||
|
|
8c53afd2a1 | ||
|
|
f07b059e39 | ||
|
|
3b94968868 | ||
|
|
f63b8f8129 | ||
|
|
4123f301f2 | ||
|
|
4ae09cf061 | ||
|
|
c847e74c1d | ||
|
|
68495a47e2 | ||
|
|
d8ddc4e2fe | ||
|
|
b07129996b | ||
|
|
c18277cbdf | ||
|
|
4d5778ac13 | ||
|
|
c7be5fa51a | ||
|
|
7139db47bc | ||
|
|
c10d848152 | ||
|
|
be71ffaa51 | ||
|
|
83110dee27 | ||
|
|
13edc9879f | ||
|
|
d65b455930 | ||
|
|
97ffc204b8 | ||
|
|
9400902c11 | ||
|
|
7f131d7a7b | ||
|
|
7b03afe376 | ||
|
|
213220510b | ||
|
|
dcbfeba8b7 | ||
|
|
d53e0829a0 | ||
|
|
98989b85e6 | ||
|
|
4bda8f8566 | ||
|
|
4e6381f21d | ||
|
|
ecf6e3198f | ||
|
|
c8a5a88e20 | ||
|
|
9d0f7851a6 | ||
|
|
fd1895180d | ||
|
|
6a323f9410 | ||
|
|
d306077f00 | ||
|
|
0ff82fa529 | ||
|
|
5699eac43a | ||
|
|
d2c7c82baa | ||
|
|
04e682f3c7 | ||
|
|
0ddc9b3a70 | ||
|
|
4930b0487d | ||
|
|
d600205c32 | ||
|
|
5735a3c084 | ||
|
|
b07675321a | ||
|
|
d10deb9ea8 | ||
|
|
73cb0507c5 | ||
|
|
883042c3fd | ||
|
|
e97bf5f501 | ||
|
|
3eacecb190 | ||
|
|
3cbe101efb | ||
|
|
3464ceafb7 | ||
|
|
52c66e0bf2 | ||
|
|
5b8180a394 | ||
|
|
81cc879169 | ||
|
|
c7441860ed | ||
|
|
68b5d10bb8 | ||
|
|
971cb3a260 | ||
|
|
a85414b651 | ||
|
|
dd14ecb7ea | ||
|
|
3c98226341 | ||
|
|
dcbdd66758 | ||
|
|
42eafae8f9 | ||
|
|
3a0f1df96c | ||
|
|
6101406112 | ||
|
|
0f7711a1a4 | ||
|
|
a3ab92a1b0 | ||
|
|
cb131d204d | ||
|
|
1da30a165b | ||
|
|
0c40190e62 | ||
|
|
b4ea59f3c1 | ||
|
|
3076e10106 | ||
|
|
793aac17da | ||
|
|
dc5c618a44 | ||
|
|
3b649fdc84 | ||
|
|
3c3313915a | ||
|
|
2506ef4451 | ||
|
|
aff12ad974 | ||
|
|
18289b9188 | ||
|
|
ac9ca1bd34 | ||
|
|
8ab174b293 | ||
|
|
b2d4635895 | ||
|
|
6f16118749 | ||
|
|
e6f75a8d87 | ||
|
|
c2a17245c9 | ||
|
|
78c4291542 | ||
|
|
31e2a56197 | ||
|
|
d424c5a544 | ||
|
|
3bc159939d | ||
|
|
f9b7dc616e | ||
|
|
5f5ab9d4be | ||
|
|
78b7956f2a | ||
|
|
08c45af5e7 | ||
|
|
0b19ffb845 | ||
|
|
219471e4b0 | ||
|
|
0e0edf755f | ||
|
|
e6f69b5686 | ||
|
|
2bc2901ea8 | ||
|
|
3d3a537da7 | ||
|
|
8a4dd31732 | ||
|
|
47b4bc0203 | ||
|
|
9f4f453208 | ||
|
|
6601022289 | ||
|
|
25c0cbd9c0 | ||
|
|
0db45c7ce7 | ||
|
|
d0324d50ce | ||
|
|
22be4e9b5f | ||
|
|
feddb66758 | ||
|
|
a61c4f1687 | ||
|
|
9ab2a2aae8 | ||
|
|
9f79fe957a | ||
|
|
7319d0e967 | ||
|
|
27cd54ae0e | ||
|
|
6efc2dbfba | ||
|
|
d8e061cefd | ||
|
|
cf89d04987 | ||
|
|
6c73106a5a | ||
|
|
2c3370a2b9 | ||
|
|
ec64a34c90 | ||
|
|
a22888059e | ||
|
|
2899debb82 | ||
|
|
6786d0da5d | ||
|
|
8de00ff0f7 | ||
|
|
518b4e99e3 | ||
|
|
12da4fd838 | ||
|
|
2306e39bd5 | ||
|
|
6c1a73e114 | ||
|
|
9f9c97b398 | ||
|
|
ede1a3e479 | ||
|
|
46960590e8 | ||
|
|
ce62105d89 | ||
|
|
82de8d62ac | ||
|
|
881d6292aa | ||
|
|
1150659ea1 | ||
|
|
a61882280e | ||
|
|
5aec68985f | ||
|
|
37bbbbf369 | ||
|
|
33deba766a | ||
|
|
1f3707a3f2 | ||
|
|
396515d600 | ||
|
|
a61405c3fb | ||
|
|
76837d0ce7 | ||
|
|
5475c77d52 | ||
|
|
e81e6ff159 | ||
|
|
d6694e4e14 | ||
|
|
90cd7cd3dd | ||
|
|
dc53dd2578 | ||
|
|
bd37e43070 | ||
|
|
544f6b57c4 | ||
|
|
43984cc2a6 | ||
|
|
5bfc931a02 | ||
|
|
2e2c364b44 | ||
|
|
3e63708ac8 | ||
|
|
fd603e902c | ||
|
|
f9de2d7b8d | ||
|
|
49ace6eb4d | ||
|
|
c42d2b85c9 | ||
|
|
880f92f2f6 | ||
|
|
4387a27214 | ||
|
|
aed43dc389 | ||
|
|
9edcd82315 | ||
|
|
acc86a1bf6 | ||
|
|
635b0673b4 | ||
|
|
6b60f22eaf | ||
|
|
65fd05f5db | ||
|
|
908caaf047 | ||
|
|
276ce261a5 | ||
|
|
da03ae08a6 | ||
|
|
2f9b656acd | ||
|
|
9c8486d017 | ||
|
|
e71069e678 | ||
|
|
0e1e6d4396 | ||
|
|
6b3026159c | ||
|
|
8aff0035ac | ||
|
|
b846e6e45e | ||
|
|
679ea7046c | ||
|
|
53b5fde3b7 | ||
|
|
2bd2174ffe | ||
|
|
79d9f0920c | ||
|
|
3c252a79d1 | ||
|
|
e3326f9adf | ||
|
|
64bab9b6d5 | ||
|
|
9ebbda2671 | ||
|
|
6b62aca494 | ||
|
|
f4d400d059 | ||
|
|
6efdf519f4 | ||
|
|
684f542aca | ||
|
|
d38993709e | ||
|
|
c5cdafd96f | ||
|
|
0635b3cfcf | ||
|
|
50baafebce | ||
|
|
4332070996 | ||
|
|
bc286ef74f | ||
|
|
fc6132d261 | ||
|
|
f560be0b66 | ||
|
|
2d7f2b7d2a | ||
|
|
df01ad4d48 | ||
|
|
5a76a9336b | ||
|
|
9a1c8c218d | ||
|
|
a1cf67d8fe | ||
|
|
c5fc18b755 | ||
|
|
42e3977f36 | ||
|
|
e50c308ec4 | ||
|
|
c7e24c47e2 | ||
|
|
9aa506b264 | ||
|
|
bd4fd45cf3 | ||
|
|
6b0b2133bd | ||
|
|
db1f9b6bc6 | ||
|
|
0c62646af2 | ||
|
|
96517062e1 | ||
|
|
a2441bfbc5 | ||
|
|
e15f540ab0 | ||
|
|
a3877ab91c | ||
|
|
d3c7347d31 | ||
|
|
6f4e2a3623 | ||
|
|
6981ae9a18 | ||
|
|
70e17b3ce0 | ||
|
|
46163626ed | ||
|
|
6b3ddf2915 | ||
|
|
eefb554631 | ||
|
|
12a3290350 | ||
|
|
b5b1e44d46 | ||
|
|
4362a638fe | ||
|
|
b4094e0c07 | ||
|
|
bcac2c1931 | ||
|
|
e69232105d | ||
|
|
bcfe9d2891 | ||
|
|
3f05614fa7 | ||
|
|
b1554de1a3 | ||
|
|
27e434e2e1 | ||
|
|
ac8983c935 | ||
|
|
11ea8025b8 | ||
|
|
38af87bd72 | ||
|
|
5973744c44 | ||
|
|
44ee4323ca | ||
|
|
cee7a1a8ca | ||
|
|
815b1822ed | ||
|
|
d29fafdc63 | ||
|
|
7b8577c339 | ||
|
|
05b525f40b | ||
|
|
70af294bc9 | ||
|
|
d2e11dad1d | ||
|
|
edd9ca4436 | ||
|
|
5cd00bf13c | ||
|
|
3569959058 | ||
|
|
7c12f67c03 | ||
|
|
5a7189fb95 | ||
|
|
18ce6e99c5 | ||
|
|
aa46f2da01 | ||
|
|
c7539edbe2 | ||
|
|
235cbea5eb | ||
|
|
272163344f | ||
|
|
8ed1dab75f | ||
|
|
c32f00cca2 | ||
|
|
a88833a5e4 | ||
|
|
631068acfa | ||
|
|
5b3580a663 | ||
|
|
8295fa4842 | ||
|
|
2f4ea4130c | ||
|
|
e2b31644af | ||
|
|
f4a9aeabb0 | ||
|
|
398660cd98 | ||
|
|
3f6f62a3e4 | ||
|
|
0db40410d8 | ||
|
|
82c7b1367b | ||
|
|
c04ff7e6d5 | ||
|
|
0a0f655db5 | ||
|
|
22b45d0627 | ||
|
|
221cc0ee40 | ||
|
|
54ca35f15e | ||
|
|
26f6d77584 | ||
|
|
9964988bbb | ||
|
|
6526b9f470 | ||
|
|
9eb8ca1950 | ||
|
|
cd6a32a778 | ||
|
|
a85b50d1ff | ||
|
|
ad0c100c41 | ||
|
|
28b0e66841 | ||
|
|
0b9ac11842 | ||
|
|
7b4af1d938 | ||
|
|
ab09ac27f1 | ||
|
|
b52aaac2d1 | ||
|
|
7bafd0f5e1 | ||
|
|
c39f2b5a69 | ||
|
|
f66d9a4de1 | ||
|
|
04939cde2c | ||
|
|
a0e453da45 | ||
|
|
6e8a99e733 | ||
|
|
383a644864 | ||
|
|
4e71210618 | ||
|
|
6f26599f2a | ||
|
|
d0abd34fe5 | ||
|
|
08437ff883 | ||
|
|
252cb10e30 | ||
|
|
5692f87208 | ||
|
|
333b821eca | ||
|
|
8e59b59faa | ||
|
|
ddcd37be67 | ||
|
|
a1f03be5b6 | ||
|
|
fdea5e55e4 | ||
|
|
6652068c9b | ||
|
|
125e8948c7 | ||
|
|
3d79dfa8fd | ||
|
|
da75038a9c | ||
|
|
598c62605b | ||
|
|
e88eeed035 | ||
|
|
ea61bb0d65 | ||
|
|
6ea9f1b4a7 | ||
|
|
e911ee4e4d | ||
|
|
314b2aaaf9 | ||
|
|
971eff33ff | ||
|
|
48228e14f0 | ||
|
|
c85d928952 | ||
|
|
9ce39051ef | ||
|
|
cb2c7ff951 | ||
|
|
223a0b094b | ||
|
|
36a1f12671 | ||
|
|
6b799b5c01 | ||
|
|
fc392e1742 | ||
|
|
87813f8acb | ||
|
|
5f659617e9 | ||
|
|
645036d28e | ||
|
|
f00e66bded | ||
|
|
f91287b737 | ||
|
|
58abfbaffd | ||
|
|
dad5377435 | ||
|
|
a902d90449 | ||
|
|
2657f8ca7c | ||
|
|
dcb41ab74d | ||
|
|
0147865c53 | ||
|
|
b56461a439 | ||
|
|
9d27a3b9c0 | ||
|
|
ea309fd094 | ||
|
|
1bed1db404 | ||
|
|
c864966f11 | ||
|
|
409537eba3 | ||
|
|
6604f5e497 | ||
|
|
0b64741d50 | ||
|
|
34a66bec01 | ||
|
|
dcb1a2aba1 | ||
|
|
db1318b576 | ||
|
|
ad2c426fe6 | ||
|
|
e6835b9e33 | ||
|
|
5741ae5584 | ||
|
|
aa338eab73 | ||
|
|
799a98951a | ||
|
|
8b95b82492 | ||
|
|
4a5f1dae69 | ||
|
|
e896843357 | ||
|
|
4c5a201831 | ||
|
|
cce821741d | ||
|
|
c4fd520a3d | ||
|
|
80c36940f6 | ||
|
|
2d17a16aad | ||
|
|
72a6f1caac | ||
|
|
975cb6005c | ||
|
|
6180fe7512 | ||
|
|
aed82d4f12 | ||
|
|
44a128d16f | ||
|
|
b1ea29dc6c | ||
|
|
85ca0ea633 | ||
|
|
377ebec525 | ||
|
|
35b6374d8c | ||
|
|
99299cc5bf | ||
|
|
bb5c02272f | ||
|
|
7a128ab908 | ||
|
|
2191478712 | ||
|
|
39849cac51 | ||
|
|
1f5ad62544 | ||
|
|
c04f0b7e43 | ||
|
|
380ee96a71 | ||
|
|
15124cf1c9 | ||
|
|
9bd1be5024 | ||
|
|
eb0a64bd69 | ||
|
|
02bfe1ada3 | ||
|
|
b62746061d | ||
|
|
e2cd37a8b6 | ||
|
|
e5b9ff21cf | ||
|
|
2e7fd253a8 | ||
|
|
3aa7c57d82 | ||
|
|
11ddcd421d | ||
|
|
6418f3daeb | ||
|
|
4b283110a6 | ||
|
|
2615436031 | ||
|
|
81088fadd3 | ||
|
|
5adaec2c93 | ||
|
|
7ac253963e | ||
|
|
2d2b469f1f | ||
|
|
9e98ad9482 | ||
|
|
1d5de3cd4c | ||
|
|
1266cb5a38 | ||
|
|
4fee21517e | ||
|
|
2ff0f3fb56 | ||
|
|
329fb1681a | ||
|
|
c78e5b9fd9 | ||
|
|
7b9fd7dcfb | ||
|
|
922ab4e9b7 | ||
|
|
c8a4acfff0 |
@@ -1,33 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: "[Bug]"
|
|
||||||
labels: bug
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⚠️ Have you read the [FAQ](https://github.com/qnblackcat/uYouPlus/wiki/FAQ)? Make sure you visit the FAQ page first!!! ⚠️
|
|
||||||
|
|
||||||
_Make sure you complete the template. Otherwise, it will be closed without further explanation!_
|
|
||||||
|
|
||||||
### Device info
|
|
||||||
- iOS/iPadOS version:
|
|
||||||
- Device model:
|
|
||||||
- Sideload tool (Ex: AltStore, Sideloadly...)
|
|
||||||
- Version of uYouPlus:
|
|
||||||
|
|
||||||
### Describe the bug
|
|
||||||
|
|
||||||
|
|
||||||
### How to reproduce the bug
|
|
||||||
_(Please attach videos or screenshots if possible)_
|
|
||||||
|
|
||||||
|
|
||||||
### Crash log (if possible)
|
|
||||||
_(The crash log can be found in the Settings app - Privacy - Analytics & Improvements - Analytics Data - Youtube...)_
|
|
||||||
|
|
||||||
### Does the issue happen with the official YouTube from AppStore?
|
|
||||||
_(Well, YouTube itself is buggy sometimes...)_
|
|
||||||
|
|
||||||
### Additional context:
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
name: Bug
|
||||||
|
description: Make sure you complete the template. Otherwise, it will be closed without further explanation!
|
||||||
|
title: "[v<replace_this_with_your_uYouPlus_version>] Replace this with your title"
|
||||||
|
labels: bug
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue for this?
|
||||||
|
description: _Please check the [**issues**](https://github.com/qnblackcat/uYouPlus/issues) page to see if someone has already reported the bug. **I DIDN\'T MAKE THIS CHECKBOX FOR COSMETIC.**_
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Have you read the FAQ?
|
||||||
|
description: _Make sure you actually visit the [**FAQ**](https://github.com/qnblackcat/uYouPlus/wiki/FAQ) page! **I DIDN\'T MAKE THIS CHECKBOX FOR COSMETIC**_
|
||||||
|
options:
|
||||||
|
- label: Yes, I have read the FAQ
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Device information
|
||||||
|
description:
|
||||||
|
value: |
|
||||||
|
- iOS/iPadOS version:
|
||||||
|
- Device model:
|
||||||
|
- Sideload tool (AltStore, Sideloadly, TrollStore, etc.):
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe the issue
|
||||||
|
description: _Please attach videos or screenshots if possible_
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: _Please attach videos or screenshots if possible_
|
||||||
|
value: |
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Crash log
|
||||||
|
description: _If the app crashes, **please provide the crash log**. It can be found in Settings > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips_
|
||||||
|
render: shell
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Are you using the latest version of uYouPlus? If not, why?
|
||||||
|
description: _Developers spent loads of time and effort to fix bugs & make improvements with every release. You might want to try and update to the [latest version](https://github.com/qnblackcat/uYouPlus/releases/latest) before reporting an issue._
|
||||||
|
multiple: false
|
||||||
|
options:
|
||||||
|
- ✅ Yes, I'm using the latest version of uYouPlus
|
||||||
|
- ❌ No, I'll explain with additional information below
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: Does the issue happen with the official YouTube app from the App Store?
|
||||||
|
description: _YouTube itself is buggy sometimes..._
|
||||||
|
multiple: false
|
||||||
|
options:
|
||||||
|
- ❌ No, I cannot reproduce this issue in the official YouTube app from the App Store
|
||||||
|
- ✅ Yes, I can reproduce this issue in the official YouTube app from the App Store
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Additional information
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
name: Question/Help
|
|
||||||
about: Have questions? Need help?
|
|
||||||
title: "[Questions]"
|
|
||||||
labels: question
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Have you read the FAQ? Make sure you visit the FAQ page before asking any question!!!
|
|
||||||
https://github.com/qnblackcat/uYouPlus/wiki/FAQ
|
|
||||||
|
|
||||||
###
|
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
name: Question
|
||||||
|
description: Have question(s)?
|
||||||
|
title: "[Questions] Replace with your question"
|
||||||
|
labels: question
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Have you read the FAQ?
|
||||||
|
description: _Make sure you actually visit the [**FAQ**](https://github.com/qnblackcat/uYouPlus/wiki/FAQ) page! **I DON\'T MAKE THIS TICK BOX FOR COSMETIC**_
|
||||||
|
options:
|
||||||
|
- label: Yes, I did read the FAQ
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- 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.**_
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- 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_
|
||||||
|
multiple: false
|
||||||
|
options:
|
||||||
|
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
|
||||||
|
- ❌ No, I don't think this is a bug. I will explain below
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- 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
|
||||||
@@ -8,25 +8,35 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
uyou_version:
|
uyou_version:
|
||||||
description: "The version of uYou"
|
description: "The version of uYou"
|
||||||
default: "2.1"
|
default: "3.0.1"
|
||||||
required: false
|
required: true
|
||||||
type: string
|
type: string
|
||||||
decrypted_youtube_url:
|
decrypted_youtube_url:
|
||||||
description: "The direct URL to the decrypted YouTube ipa"
|
description: "Direct URL to the decrypted YouTube ipa. The version of YouTube will be detected automatically."
|
||||||
default: ""
|
default: ""
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
youtube_version:
|
bundle_id:
|
||||||
description: "The version of YouTube"
|
description: "Modify the bundle ID. Not recommended"
|
||||||
default: ""
|
default: "com.google.ios.youtube"
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
app_name:
|
||||||
|
description: "Modify the name of the app on the Home Screen. Not recommended"
|
||||||
|
default: "YouTube"
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
create_release:
|
create_release:
|
||||||
description: "Create a draft release"
|
description: "Create a draft release"
|
||||||
default: false
|
default: true
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
upload_artifact:
|
||||||
|
description: "Upload Artifact"
|
||||||
|
default: true
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
@@ -40,33 +50,48 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Main
|
- name: Checkout Main
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
path: main
|
path: main
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: brew install ldid dpkg
|
run: brew install ldid dpkg make
|
||||||
|
|
||||||
|
- name: Set PATH environment variable
|
||||||
|
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||||
|
|
||||||
- name: Setup Theos
|
- name: Setup Theos
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
repository: theos/theos
|
repository: theos/theos
|
||||||
ref: master
|
ref: master
|
||||||
path: theos
|
path: theos
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
||||||
- name: Download iOS 15.5 SDK
|
- name: Caching
|
||||||
|
id: SDK
|
||||||
|
uses: actions/cache@v4.0.0
|
||||||
|
env:
|
||||||
|
cache-name: iOS-16.5-SDK
|
||||||
|
with:
|
||||||
|
path: theos/sdks/
|
||||||
|
key: ${{ env.cache-name }}
|
||||||
|
|
||||||
|
- name: Download iOS 16.5 SDK
|
||||||
|
if: steps.SDK.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
svn checkout -q https://github.com/chrisharper22/sdks/trunk/iPhoneOS15.5.sdk
|
git clone -n --depth=1 --filter=tree:0 https://github.com/theos/sdks.git && cd sdks
|
||||||
|
git sparse-checkout set --no-cone iPhoneOS16.5.sdk
|
||||||
|
git checkout
|
||||||
mv *.sdk $THEOS/sdks
|
mv *.sdk $THEOS/sdks
|
||||||
env:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
|
|
||||||
- name: Setup Theos Jailed
|
- name: Setup Theos Jailed
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4.1.1
|
||||||
with:
|
with:
|
||||||
repository: kabiroberai/theos-jailed
|
repository: qnblackcat/theos-jailed
|
||||||
ref: master
|
ref: master
|
||||||
path: theos-jailed
|
path: theos-jailed
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
@@ -77,67 +102,60 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
|
|
||||||
- name: Download uYou & prepare YouTube iPA
|
- name: Prepare YouTube iPA
|
||||||
|
id: prepare_youtube
|
||||||
run: |
|
run: |
|
||||||
curl "https://raw.githubusercontent.com/Muirey03/RemoteLog/master/RemoteLog.h" --output "$THEOS/include/RemoteLog.h"
|
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
|
||||||
curl "https://miro92.com/repo/debs/com.miro.uyou_${{ env.UYOU_VERSION }}_iphoneos-arm.deb" --output "./main/Tweaks/uYou/com.miro.uyou_${{ env.UYOU_VERSION }}_iphoneos-arm.deb"
|
cd ${{ github.workspace }}/main
|
||||||
wget "$YOUTUBE_URL" --no-verbose -O ./main/YouTube.ipa
|
mv YouTube.ipa YouTube.zip
|
||||||
dpkg-deb -x "./main/Tweaks/uYou/com.miro.uyou_${{ env.UYOU_VERSION }}_iphoneos-arm.deb" ./main/Tweaks/uYou/
|
unzip -q YouTube.zip
|
||||||
unzip -q ./main/YouTube.ipa -d ./main/tmp
|
youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion)
|
||||||
rm -rf ./main/tmp/Payload/YouTube.app/PlugIns/*
|
echo "==> YouTube v$youtube_version downloaded!"
|
||||||
cp -R ./main/Extensions/*.appex ./main/tmp/Payload/YouTube.app/PlugIns
|
sed -i '' "17s#.*#YOUTUBE_VERSION = ${youtube_version}#g" Makefile
|
||||||
|
echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
env:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
|
||||||
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
|
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
|
||||||
|
|
||||||
- name: Fix compiling && Build Package
|
- name: Fix compiling & Build Package
|
||||||
id: build_package
|
id: build_package
|
||||||
run: |
|
run: |
|
||||||
cd ${{ github.workspace }}/main
|
cd ${{ github.workspace }}/main
|
||||||
(cd ${{ github.workspace }}/main/Tweaks/YouPiP && sed -i '' "14s/$/ AVFoundation UIKit/" Makefile)
|
sed -i '' "27s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
|
||||||
make package FINALPACKAGE=1
|
sed -i '' "26s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
|
||||||
(mv "packages/$(ls -t packages | head -n1)" "packages/uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}.ipa")
|
make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1
|
||||||
echo "::set-output name=package::$(ls -t packages | head -n1)"
|
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
|
||||||
|
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:
|
env:
|
||||||
THEOS: ${{ github.workspace }}/theos
|
THEOS: ${{ github.workspace }}/theos
|
||||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
BUNDLE_ID: ${{ inputs.bundle_id }}
|
||||||
|
APP_NAME: ${{ inputs.app_name }}
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v3
|
if: ${{ inputs.upload_artifact }}
|
||||||
|
uses: actions/upload-artifact@v4.3.0
|
||||||
env:
|
env:
|
||||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
YOUTUBE_VERSION: ${{ steps.prepare_youtube.outputs.youtube_version }}
|
||||||
with:
|
with:
|
||||||
name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}
|
name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}
|
||||||
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
if: ${{ inputs.create_release }}
|
|
||||||
id: create_release
|
id: create_release
|
||||||
uses: actions/create-release@v1
|
uses: qnblackcat/action-gh-release@master
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
YOUTUBE_VERSION: ${{ steps.prepare_youtube.outputs.youtube_version }}
|
||||||
|
DRAFT: ${{ inputs.create_release }}
|
||||||
with:
|
with:
|
||||||
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
||||||
release_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
||||||
draft: true
|
files: main/packages/*.ipa
|
||||||
prerelease: false
|
draft: ${{ env.DRAFT }}
|
||||||
|
|
||||||
- name: Upload Release Asset
|
|
||||||
if: ${{ inputs.create_release }}
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
|
||||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
|
||||||
asset_name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}.ipa
|
|
||||||
asset_content_type: application/vnd.debian.binary-package
|
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
name: Update submodules!
|
||||||
|
|
||||||
|
#############################
|
||||||
|
# Start the job on all push #
|
||||||
|
#############################
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 */7 * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
###############
|
||||||
|
# Set the Job #
|
||||||
|
###############
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Update submodules
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
PARENT_REPOSITORY: 'qnblackcat/uYouPlus'
|
||||||
|
CHECKOUT_BRANCH: 'main'
|
||||||
|
PR_AGAINST_BRANCH: 'main'
|
||||||
|
OWNER: 'qnblackcat'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
##########################
|
||||||
|
# Checkout the code base #
|
||||||
|
##########################
|
||||||
|
- name: Checkout Code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
####################################
|
||||||
|
# Run the action against code base #
|
||||||
|
####################################
|
||||||
|
- name: run action
|
||||||
|
id: run_action
|
||||||
|
uses: qnblackcat/github-action-create-pr-parent-submodule@main
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.RELEASE_HUB_SECRET }}
|
||||||
|
parent_repository: ${{ env.PARENT_REPOSITORY }}
|
||||||
|
checkout_branch: ${{ env.CHECKOUT_BRANCH }}
|
||||||
|
pr_against_branch: ${{ env.PR_AGAINST_BRANCH }}
|
||||||
|
owner: ${{ env.OWNER }}
|
||||||
+3
-1
@@ -4,4 +4,6 @@ packages/
|
|||||||
tmp/
|
tmp/
|
||||||
Tweaks/uYou/*
|
Tweaks/uYou/*
|
||||||
!Tweaks/uYou/.gitkeep
|
!Tweaks/uYou/.gitkeep
|
||||||
Resources/
|
Resources/
|
||||||
|
*.ipa
|
||||||
|
.vscode
|
||||||
+45
-12
@@ -1,7 +1,3 @@
|
|||||||
[submodule "Tweaks/iSponsorBlock"]
|
|
||||||
path = Tweaks/iSponsorBlock
|
|
||||||
url = https://github.com/qnblackcat/iSponsorBlock.git
|
|
||||||
branch = master
|
|
||||||
[submodule "Tweaks/YTUHD"]
|
[submodule "Tweaks/YTUHD"]
|
||||||
path = Tweaks/YTUHD
|
path = Tweaks/YTUHD
|
||||||
url = https://github.com/PoomSmart/YTUHD.git
|
url = https://github.com/PoomSmart/YTUHD.git
|
||||||
@@ -10,6 +6,18 @@
|
|||||||
path = Tweaks/YouPiP
|
path = Tweaks/YouPiP
|
||||||
url = https://github.com/PoomSmart/YouPiP.git
|
url = https://github.com/PoomSmart/YouPiP.git
|
||||||
branch = main
|
branch = main
|
||||||
|
[submodule "Tweaks/YouMute"]
|
||||||
|
path = Tweaks/YouMute
|
||||||
|
url = https://github.com/PoomSmart/YouMute.git
|
||||||
|
branch = main
|
||||||
|
[submodule "Tweaks/YouQuality"]
|
||||||
|
path = Tweaks/YouQuality
|
||||||
|
url = https://github.com/PoomSmart/YouQuality.git
|
||||||
|
branch = main
|
||||||
|
[submodule "Tweaks/YTVideoOverlay"]
|
||||||
|
path = Tweaks/YTVideoOverlay
|
||||||
|
url = https://github.com/PoomSmart/YTVideoOverlay.git
|
||||||
|
branch = main
|
||||||
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
||||||
path = Tweaks/Return-YouTube-Dislikes
|
path = Tweaks/Return-YouTube-Dislikes
|
||||||
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
||||||
@@ -18,19 +26,44 @@
|
|||||||
path = Tweaks/YouTubeHeader
|
path = Tweaks/YouTubeHeader
|
||||||
url = https://github.com/PoomSmart/YouTubeHeader.git
|
url = https://github.com/PoomSmart/YouTubeHeader.git
|
||||||
branch = main
|
branch = main
|
||||||
[submodule "Tweaks/Alderis"]
|
|
||||||
path = Tweaks/Alderis
|
|
||||||
url = https://github.com/qnblackcat/Alderis.git
|
|
||||||
branch = master
|
|
||||||
[submodule "Tweaks/PSHeader"]
|
[submodule "Tweaks/PSHeader"]
|
||||||
path = Tweaks/PSHeader
|
path = Tweaks/PSHeader
|
||||||
url = https://github.com/PoomSmart/PSHeader.git
|
url = https://github.com/PoomSmart/PSHeader.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "Tweaks/YTSpeed"]
|
|
||||||
path = Tweaks/YTSpeed
|
|
||||||
url = https://github.com/qnblackcat/YTSpeed.git
|
|
||||||
branch = main
|
|
||||||
[submodule "Extensions"]
|
[submodule "Extensions"]
|
||||||
path = Extensions
|
path = Extensions
|
||||||
url = https://github.com/CokePokes/YoutubeExtensions.git
|
url = https://github.com/CokePokes/YoutubeExtensions.git
|
||||||
branch = main
|
branch = main
|
||||||
|
[submodule "Tweaks/YTABConfig"]
|
||||||
|
path = Tweaks/YTABConfig
|
||||||
|
url = https://github.com/PoomSmart/YTABConfig.git
|
||||||
|
branch = main
|
||||||
|
[submodule "Tweaks/FLEXing"]
|
||||||
|
path = Tweaks/FLEXing
|
||||||
|
url = https://github.com/PoomSmart/FLEXing
|
||||||
|
branch = rootless
|
||||||
|
[submodule "Tweaks/Alderis"]
|
||||||
|
path = Tweaks/Alderis
|
||||||
|
url = https://github.com/hbang/Alderis.git
|
||||||
|
[submodule "Tweaks/RemoteLog"]
|
||||||
|
path = Tweaks/RemoteLog
|
||||||
|
url = https://github.com/Muirey03/RemoteLog
|
||||||
|
[submodule "Tweaks/DontEatMyContent"]
|
||||||
|
path = Tweaks/DontEatMyContent
|
||||||
|
url = https://github.com/therealFoxster/DontEatMyContent
|
||||||
|
[submodule "Tweaks/iSponsorBlock"]
|
||||||
|
path = Tweaks/iSponsorBlock
|
||||||
|
url = https://github.com/Galactic-Dev/iSponsorBlock.git
|
||||||
|
branch = master
|
||||||
|
[submodule "Tweaks/IAmYouTube"]
|
||||||
|
path = Tweaks/IAmYouTube
|
||||||
|
url = https://github.com/PoomSmart/IAmYouTube.git
|
||||||
|
[submodule "Tweaks/YTClassicVideoQuality"]
|
||||||
|
path = Tweaks/YTClassicVideoQuality
|
||||||
|
url = https://github.com/PoomSmart/YTClassicVideoQuality.git
|
||||||
|
[submodule "Tweaks/NoYTPremium"]
|
||||||
|
path = Tweaks/NoYTPremium
|
||||||
|
url = https://github.com/PoomSmart/NoYTPremium.git
|
||||||
|
[submodule "Tweaks/YTSpeed"]
|
||||||
|
path = Tweaks/YTSpeed
|
||||||
|
url = https://github.com/therealFoxster/YTSpeed.git
|
||||||
|
|||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/DontEatMyContent/layout/Library/Application Support/DontEatMyContent.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/Return-YouTube-Dislikes/layout/Library/Application Support/RYD.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/YTABConfig/layout/Library/Application Support/YTABC.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/YTUHD/layout/Library/Application Support/YTUHD.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/YTVideoOverlay/layout/Library/Application Support/YTVideoOverlay.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/YouMute/layout/Library/Application Support/YouMute.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/YouPiP/layout/Library/Application Support/YouPiP.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/YouQuality/layout/Library/Application Support/YouQuality.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/iSponsorBlock/layout/Library/Application Support/iSponsorBlock.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Tweaks/uYou/Library/Application Support/uYouBundle.bundle
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../Localizations/uYouPlus.bundle
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
|
|
||||||
|
|
||||||
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
|
|
||||||
#define YT_BUNDLE_ID @"com.google.ios.youtube"
|
|
||||||
#define YT_NAME @"YouTube"
|
|
||||||
|
|
||||||
// IAmYouTube
|
|
||||||
@interface SSOConfiguration : NSObject
|
|
||||||
@end
|
|
||||||
|
|
||||||
// uYouPlus
|
|
||||||
@interface YTMainAppControlsOverlayView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface YTTransportControlsButtonView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface _ASCollectionViewCell : UICollectionViewCell
|
|
||||||
- (id)node;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface YTAsyncCollectionView : UICollectionView
|
|
||||||
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface FRPSliderCell : UITableViewCell
|
|
||||||
@end
|
|
||||||
|
|
||||||
// iOS16 fix
|
|
||||||
@interface OBPrivacyLinkButton : UIButton
|
|
||||||
- (instancetype)initWithCaption:(NSString *)caption
|
|
||||||
buttonText:(NSString *)buttonText
|
|
||||||
image:(UIImage *)image
|
|
||||||
imageSize:(CGSize)imageSize
|
|
||||||
useLargeIcon:(BOOL)useLargeIcon
|
|
||||||
displayLanguage:(NSString *)displayLanguage;
|
|
||||||
@end
|
|
||||||
|
|
||||||
// uYouLocal fix
|
|
||||||
@interface YTLocalPlaybackController : NSObject
|
|
||||||
- (id)activeVideo;
|
|
||||||
@end
|
|
||||||
|
|
||||||
// BigYTMiniPlayer
|
|
||||||
@interface YTMainAppVideoPlayerOverlayView : UIView
|
|
||||||
- (UIViewController *)_viewControllerForAncestor;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface YTWatchMiniBarView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
// YTAutoFullScreen
|
|
||||||
@interface YTPlayerViewController (YTAFS)
|
|
||||||
- (void)autoFullscreen;
|
|
||||||
@end
|
|
||||||
|
|
||||||
// OLED Darkmode
|
|
||||||
@interface ASWAppSwitcherCollectionViewCell : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface ASScrollView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface UIKeyboardLayoutStar : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface UIKeyboardDockView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface _ASDisplayView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface YTCommentDetailHeaderCell : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface SponsorBlockSettingsController : UITableViewController
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface SponsorBlockViewController : UIViewController
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface UICandidateViewController : UIViewController
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface UIPredictionViewController : UIViewController
|
|
||||||
@end
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>YouTubeTweak</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.qn.uyouplus</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>BNDL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string>uYouPlus</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "إصدار uYouPlus: %@";
|
||||||
|
"VERSION_CHECK" = "المس هنا للبحث عن التحديثات!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "خيارات سِمة التطبيق";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "تلقائي";
|
||||||
|
"DEFAULT_THEME_DESC" = "الوضع المظلم التلقائي ليوتيوب. تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "الوضع المظلم القديم";
|
||||||
|
"OLD_DARK_THEME_DESC" = "الوضع المظلم القديم ليوتيوب (ألوان رمادية). تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "وضع داكن OLED (ميزة تجريبية)";
|
||||||
|
"OLED_DARK_THEME_2" = "وضع داكن OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "قد لا تعمل في كل الحالات. يجب إعادة تشغيل التطبيق عند تشغيل أو إيقاف هذه الخاصية.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "لوحة مفاتيح داكنة OLED (ميزة تجريبية)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "قد لا تعمل بشكل صحيح في بعض الحالات. تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ خيارات مشغِّل الفيديو";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "منع خاصية النقر مرتين للتقدم أو التراجع";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "منع الارتباط بالفصول";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "تعطيل الربط التلقائي لبداية الفصول عند تحريك المؤشر في شريط التقدم. تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "منع القَرص لتكبير الفيديو";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "منع القرص بإصبعين للتكبير. تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "السماح بالمشغل المصغّر لكل فيديوهات يوتيوب";
|
||||||
|
"YT_MINIPLAYER_DESC" = "عند تصغير فيديوهات الأطفال مثلاً (قبل إغلاق المقطع).";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "استخدام مؤشر تغيير الصوت الخاص بالنظام";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "إظهار مؤشر تغيير الصوت الرسمي الخاص بـ iOS بدلاً من مؤشر يوتيوب";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 أزرار التحكم على الطبقة فوق الفيديو";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "إخفاء زر التشغيل التلقائي";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "إخفاء زر التشغيل التلقائي من أزرار التحكم على الفيديو.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "إخفاء زر الترجمة";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "إخفاء زر الترجمة من أزرار التحكم على الفيديو.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "إخفاء رسائل المعلومات";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "مثلاً: تم إيقاف الترجمة...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "إخفاء شريط الترويج المدفوع";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "إخفاء عبارة يتضمن ترويجاً مدفوعاً الظاهرة على بعض الفيديوهات.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "إخفاء العلامة المائية للقنوات";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "إخفاء العلامة المائية للقنوات من على الطبقة فوق الفيديو. تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "إخفاء زرّي السابق والتالي";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "إخفاء زرّي المقطع السابق والمقطع التالي من أزرار التحكم على الفيديو.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "تقدم وتراجع بدلاً من السابق والتالي";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "استبدال زرّي المقطع السابق والمقطع التالي بزرّي تقدم وتراجع. يتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "شريط تقدّم أحمر";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "إعادة اللون الأحمر لشريط التقدم. تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "إخفاء صور المقاطع الأخرى في نهاية المقاطع (أداة YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "إخفاء الصور المصغرة الظاهرة على مشغل الفيديو في نهاية المقطع.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "إخفاء القائمة اليمنى التي تظهر في وضع ملء الشاشة";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 خيارات طبقة التحكم بمقاطع Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "إخفاء عبارة 'شراء سوبر شكراً' في المقاطع القصيرة";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "إخفاء لافتة 'Buy Super Thanks' من مقاطع Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "إخفاء زر الاشتراك";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "إخفاء زر الاشتراك، والذي يظهر عند إيقاف الفيديو مؤقتاً.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "منع استئناف المشاهدة في المقاطع القصيرة";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "إذا أغلقت تطبيق يوتيوب أثناء مشاهدة مقطع Shorts, لن يتم استئناف الشماهدة في المرة القادمة التي تفتح فيها التطبيق.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 خيارات متنوعة";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "التأكيد قبل البث (أداة YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "إظهار تنبيه للتأكيد قبل البث، من أجل منع البث للتلفاز عن طريق الخطأ.";
|
||||||
|
"CASTING" = "البث";
|
||||||
|
"MSG_ARE_YOU_SURE" = "هل أنت متأكد أنك تريد بدء البث؟";
|
||||||
|
"MSG_YES" = "نعم";
|
||||||
|
"MSG_CANCEL" = "إلغاء";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "منع التلميحات";
|
||||||
|
"DISABLE_HINTS_DESC" = "منع تلميحات مزايا التطبيق، والتي تظهر عادة عند تثبيت التطبيق حديثاً.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "تفعيل شعار يوتيوب المتحرك عند بدء تشغيل التطبيق";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "إخفاء الشريط العلوي";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "إخفاء الشريط العلوي من تبويب الصفحة الرئيسية (موسيقى، ألعاب فيديو، تشكيلات ...) ومن تبويب الاشتراكات (كل الفيديوهات، متابعة المشاهدة,...). تتطلب إعادة تشغيل التطبيق.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "إخفاء \"تشغيل المقطع التالي من قائمة الانتظار\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "إخفاء خيار \"تشغيل التالي من قائمة الانتظار\" من قائمة السياق في حسابات يوتيوب المدفوعة";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "واجهة الآيفون";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "فعل الخيار لتفعيل واجهة الآيفون. يتطلب إغلاق التطبيق وإعادة فتحه.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "تغيير شكل المشغّل المصغر (أداة BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "تغيير شكل المشغّل المصغر في الآيفون إلى نفس شكله في الآيباد - تتطلب إغلاق التطبيق وإعادة فتحه.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "استبدال تبويب Shorts بتبويب Explore (أداة YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = " تتطلب إغلاق التطبيق وإعادة فتحه.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "تفعيل FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "تفعيل FLEX للمطورين (لا ينصح به). اترك هذا الخيار مغلقاً إلا إذا كنت تعرف ما تفعل.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "إصلاح تسجيل الدخول بحساب جوجل (لمستخدمي TrollStore فقط)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "هذا الخيار لا يعمل إلا إذا كان التطبيق مثبت بواسطة TrollStore: فعل هذا الخيار لتتمكن من تسجيل الدخول بحساب جوجل. يتطلب إعادة تشغيل التطبيق.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Tmavý OLED režim (Experimentální)";
|
||||||
|
"OLED_DARK_THEME_2" = "Tmavý OLED režim (Experimentální)";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Mohou se vyskytnout chyby. Je potřeba restart aplikace.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Klávesnice (Experimentální)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Mohou se vyskytnout chyby. Je potřeba restart aplikace.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Povolit Minipřehrávač pro všechna videa";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Například u videa pro děti";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video Controls Overlay Options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Skrýt přepínač automatického přehrávání";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Skryje přepínač automatického přehrávání v překrytí ovládání videa.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Skrýt tlačítko titulky";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Skryje tlačítko titulky v překrytí ovládání videa.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Skrýt vyskakující zprávy";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Příklad: Titulky zapnuty/vypnuty, Smyčka videa zapnuta,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Hide paid promotion banner";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Skrýt tlačítka předchozí a následující";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Skryje tlačítka předchozí a následující v překrytí ovládání videa.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Nahradit předchozí a další tlačítko";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Nahradit předchozí a následující tlačítko tlačítkem Přetočit vpřed a vzad. Je vyžadován restart aplikace.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Skrýt karty na konci videa (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Skryje náhledy jiných videjí na konci videa.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Zobrazit potvrzení před začátkem sdílení obrazu (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Zobrazí potvrzení aby se zamezilo nechtěnému sdílení do televize.";
|
||||||
|
"CASTING" = "Sdílení obrazu";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Opravdu chcete začít sdílet obraz?";
|
||||||
|
"MSG_YES" = "Ano";
|
||||||
|
"MSG_CANCEL" = "Zrušit";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nový styl minipřehrávače (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Je potřeba restart aplikace.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Nahradit záložku Shorts tab záložkou Explore (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Je potřeba restart aplikace.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Opravit přihlášení přes Google (pouze pro uživatele TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Tuto možnost zapněte pouze v případě, že se nemůžete přihlásit pomocí svého účtu Google a aplikace byla nainstalována prostřednictvím TrollStore. Pokud se můžete normálně přihlásit, ponechte ji deaktivovanou. Je vyžadován restart aplikace.";
|
||||||
+137
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "uYouPlus-Version: %@";
|
||||||
|
"VERSION_CHECK" = "Tippen, um nach Updates zu suchen!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme Optionen";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Standard";
|
||||||
|
"DEFAULT_THEME_DESC" = "Standardmäßig dunklerer Modus von YouTube. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Alter dunkler Modus";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Alter dunkler Modus von YouTube (grauer Modus). App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED-Dunkelmodus (Experimentell)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED-Dunkelmodus";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Echter dunkler Modus. Könnte in einigen Fällen nicht richtig funktionieren. App-Neustart erforderlich nachdem Sie diese Option aktiviert/deaktiviert haben.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED-Tastatur (Experimentell)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Könnte in manchen Fällen nicht richtig funktionieren. App-Neustart erforderlich!";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video-Player-Optionen";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Doppeltippen zum Suchen deaktivieren";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Zu Abschnitten springen deaktivieren";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Deaktiviere das automatische Springen zu Abschnitten bei der Suche in Videos. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Ziehen zum Zoomen deaktivieren";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Miniplayer für alle YouTube-Videos aktivieren";
|
||||||
|
"YT_MINIPLAYER_DESC" = "z.B. bei Videos für Kinder.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Standard iOS Lautstärke HUD aktivieren";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video Controls Overlay Optionen";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Autoplay-Schalter ausblenden";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Autoplay-Schalter vom Videoplayer ausblenden.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Untertitel-Button ausblenden";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Untertitel-Button vom Videoplayer ausblenden.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUD-Nachrichten ausblenden";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "z.B.: Untertitel sind aktiviert/deaktiviert, Videoschleife ist an, ...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Enthält bezahlte Werbung Info ausblenden";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Enthält bezahlte Werbung Infobanner bei manchen Videos ausblenden.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Kanal-Wasserzeichen ausblenden";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Wasserzeichen des Kanals im Overlay der Videosteuerung ausblenden. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Vor- und Zurücktasten ausblenden";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Vor- und Zurücktasten vom Videoplayer ausblenden.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Vor- und Zurücktasten ersetzen";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Tasten zum Vor- und Zurückspringen zwischen Videos durch Vor- und Zurückspultasten ersetzen. App-Neustart erforderlich!";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Roter Fortschrittsbalken";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Bringen Sie den roten Fortschrittsbalken zurück. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Endkarten ausblenden (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Creator-Endkarten (Thumbnails) am Ende des Videos ausblenden.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Ausblenden des rechten Bedienfelds im Vollbildmodus";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts Controls Overlay-Optionen";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "'Buy Super Thanks'-Banner ausblenden";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Ausblenden des \"Buy Super Thanks\"-Banners in bestimmten Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Schaltfläche \"Abos\" ausblenden";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "Ausblenden der Schaltfläche \"Abos\", die beim Anhalten angezeigt wird.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Fortsetzen nach Shorts deaktivieren";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Wenn Sie YouTube beenden, während Sie Shorts ansehen, werden Shorts beim nächsten Start von YouTube nicht automatisch abgespielt.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Sonstiges";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Warnung vor TV-Übertragungen (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Zeigt eine Warnung an, um eine ausversehene TV-Übertragung zu verhindern.";
|
||||||
|
"CASTING" = "TV-Übertragung";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Sind Sie sicher, dass Sie mit der Videoübertragung beginnen wollen?";
|
||||||
|
"MSG_YES" = "Ja";
|
||||||
|
"MSG_CANCEL" = "Abbrechen";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Deaktiviere Hinweise";
|
||||||
|
"DISABLE_HINTS_DESC" = "Deaktiviere Hinweise von YouTube, welche normalerweise erscheinen, sobald die App neu installiert wurde.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Aktivieren der YouTube-Startanimation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Obere Leiste ausblenden";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Obere Leiste in den Home-Feeds (Trends, Musik, Spiele...) und Abo-Feeds (Alle Videos, Weiterschauen...) ausblenden. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Umschalten, um das iPhone-Layout zu verwenden. App-Neustart erforderlich.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Neuer Miniplayer Style (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "App-Neustart erforderlich!";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Shorts-Tab durch Entdecken-Tab ersetzen (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "App-Neustart erforderlich!";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Aktiviere FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Aktiviere FLEX für debugging (nicht empfohlen). Deaktiviert lassen, es sei denn, Sie wissen, was Sie tuen.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Google-Anmeldung reparieren (nur für TrollStore-Benutzer!)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Aktiviere diese Option nur, wenn Sie sich nicht mit Ihrem Google-Account anmelden können und die App über TrollStore installiert wurde. Wenn Sie sich normal anmelden können, halte diese Option deaktiviert! App-Neustart erforderlich!";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED Μαύρο θέμα (Experimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED Μαύρο θέμα";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Μπορεί να μην δουλέψει σε κάποιες περιπτώσεις. Απαιτείται επανεκκίνηση της εφαρμογής αφού το ενεργοποιήσετε/απενεργοποιήσετε.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED πληκτρολόγιο (Experimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Μπορεί να μην δουλέψει σε κάποιες περιπτώσεις. Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Ενεργοποιήστε το miniplayer για όλα τα βίντεο του YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Τα παιδικά βίντεο για παράδειγμα.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Κρύψτε τον διακόπτη της αυτόματης αναπαραγωγής";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Κρύψτε τον διακόπτη της αυτόματης αναπαραγωγής κατά την αναπαραγωγή βίντεο";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Κρύψτε το κουμπί των Υπότιτλων";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Κρύψτε το κουμπί των Υπότιτλων κατά την αναπαραγωγή βίντεο.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Κρύψτε τα μηνύματα του HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Παράδειγμα: Οι Υπότιτλοι απενεργοποιήθηκαν/ενεργοποιήθηκαν...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Hide paid promotion banner";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Κρύψτε το προηγούμενο και το επόμενο κουμπί";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Κρύψτε το προηγούμενο και το επόμενο κουμπί κατά την αναπαραγωγή βίντεο.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Αντικατάσταση του Προηγούμενου και του Επόμενου Κουμπιού";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Αντικατάσταση του Προηγούμενου και του Επόμενου κουμπιού με το κουμπί Γρήγορη κίνηση προς τα εμπρός και προς τα πίσω. Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Κρύψτε τις τελικές καρτέλες (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Κρύψτε τις τελικές καρτέλες από τους δημιουργούς (thumbnails) στο τέλος των βίντεο.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts Controls Overlay Options";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Επιβεβαιωτικό μήνυμα πριν γίνει Cast(YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Να φανεί ένα επιβεβαιωτικό μήνυμα πριν γίνει cast για να αποτρεπτεί η καταλάθως σύνδεση στην τηλεόραση.";
|
||||||
|
"CASTING" = "Μετάδοση";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Είστε σίγουροι ότι θέλενε να ξεκινήσετε την μετάδοση;";
|
||||||
|
"MSG_YES" = "Ναι";
|
||||||
|
"MSG_CANCEL" = "Ακύρωση";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Καινούργιο miniplayer θέμα στην μπάρα (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Αντικατάσταση της καρτέλας Shorts με την καρτέλα Explore (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Διόρθωση σύνδεσης Google (μόνο για χρήστες του TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Ενεργοποιήστε αυτήν την επιλογή μόνο όταν δεν μπορείτε να συνδεθείτε με τον λογαριασμό σας Google και η εφαρμογή έχει εγκατασταθεί μέσω του TrollStore. Εάν μπορείτε να συνδεθείτε κανονικά, διατηρήστε την απενεργοποιημένη. Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED (experimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Pure-black dark theme";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED keyboard (experimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Enable miniplayer for all videos";
|
||||||
|
"YT_MINIPLAYER_DESC" = "The miniplayer cannot be activated for certain videos (e.g., kids videos). This option bypasses that";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Hide autoplay switch";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Hide subtitles button";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Hide HUD messages";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Hide paid promotion banner";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Hide previous and next buttons";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Use fast forward and rewind buttons";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Replaces previous and next buttons with fast forward and rewind";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "YTNoHoverCards";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Hides videos' end screens";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "YTCastConfirm";
|
||||||
|
"CAST_CONFIRM_DESC" = "Shows a confirmation alert before casting";
|
||||||
|
"CASTING" = "Casting";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
||||||
|
"MSG_YES" = "Yes";
|
||||||
|
"MSG_CANCEL" = "Cancel";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "BigYTMiniPlayer";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "New mini player bar style";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "YTReExplore";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Replaces the Shorts tab with the Explore tab";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Fix Google Sign in (for TrollStore user only)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Only turn on this option when you can't sign in with your Google account and the app was installed via TrollStore. If you can log in normally, keep it disabled. App restart is required.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "Acerca de";
|
||||||
|
|
||||||
|
"VERSION" = "Versión";
|
||||||
|
"VERSION_CHECK" = "Pulse para comprobar si hay actualizaciones.";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Informar de un problema";
|
||||||
|
"ADD_TITLE" = "Añada aquí su título...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Salir de Youtube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Reinicia YouTube para aplicar los cambios";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 Aspecto de la aplicación";
|
||||||
|
"THEME_OPTIONS" = "Opciones de Temas";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Tema oscuro";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Por defecto";
|
||||||
|
"DEFAULT_THEME_DESC" = "Tema oscuro predeterminado de YouTube. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Tema oscuro antiguo";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Antiguo tema oscuro de YouTube (tema gris). Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Modo oscuro OLED (Experimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "Modo oscuro OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Puede no funcionar correctamente en algunos casos. Requiere reiniciar la app después de activar/desactivar esta opción.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Teclado OLED (Experimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Puede no funcionar correctamente en algunos casos. Requiere reiniciar la app.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Opciones del reproductor de vídeo";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Activar el deslizamiento para buscar";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Traer de vuelta la diapositiva para buscar el gesto.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Desactivar la doble pulsación para buscar";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Deshabilitar ajuste a capítulo";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Desactivar el ajuste automático a capítulo al buscar en vídeos. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Desactivar pellizcar para ampliar";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Activar el minirreproductor para todos los vídeos de YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Vídeos infantiles por ejemplo.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Utiliza el HUD de volumen de iOS";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Opciones de superposición de controles de vídeo";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Ocultar interruptor de Reproducir automáticamente";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ocultar el interruptor de Reproducir automáticamente en los botones superpuestos.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Ocultar botón de Subtítulos";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Ocultar el botón de Subtítulos en los botones superpuestos.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ocultar mensajes HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Ejemplo: CC está activado/desactivado, Vídeo en bucle está activado,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Ocultar banner de contenido promocional";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ocultar el banner de 'Incluye contenido promocional' en algunos vídeos.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Ocultar marca de agua del canal";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Ocultar la marca de agua del canal en la superposición de controles de vídeo. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ocultar el botón de Anterior y Siguiente";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ocultar el botón de Anterior y Siguiente en los botones superpuestos.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Reemplazar botón anterior y siguiente";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Reemplace el botón Anterior y Siguiente con el botón Avance rápido y Rebobinado. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Barra de progreso roja";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Recupera la barra de progreso roja. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Ocultar tarjetas flotantes en las pantallas finales (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Ocultar tarjetas flotantes del creador (miniaturas) al final de los vídeos.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Ocultar el panel derecho en modo pantalla completa";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Configurar superposición de Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Ocultar banner 'Comprar Supergracias";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Ocultar el banner 'Comprar Supergracias' en Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Ocultar el botón de suscripción";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Desactivar reanudación a Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Si cierras YouTube mientras ves Shorts, éstos no se reproducirán automáticamente la próxima vez que inicies YouTube.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Varios";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Alerta de confirmación antes de Enviar contenido (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Mostrar una alerta de confirmación antes de Enviar contenido para prevenir el secuestro accidental del TV.";
|
||||||
|
"CASTING" = "Enviar contenido";
|
||||||
|
"MSG_ARE_YOU_SURE" = "¿Estás seguro de que deseas Enviar contenido?";
|
||||||
|
"MSG_YES" = "Sí";
|
||||||
|
"MSG_CANCEL" = "Cancelar";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Desactivar sugerencias";
|
||||||
|
"DISABLE_HINTS_DESC" = "Desactiva las sugerencias de YouTube que suelen aparecer cuando la aplicación está recién instalada.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Ocultar la barra superior";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Ocultar la barra superior de las fuentes de inicio (Tendencias, Música, Juegos...) y de suscripción (Todos los vídeos, Seguir viendo...). Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Ocultar \"Reproducir siguiente en cola\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Diseño para iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Pulse para utilizar el diseño del iPhone. Es necesario reiniciar la aplicación.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nuevo estilo de barra del minirreproductor (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Requiere reiniciar la app.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Reemplazar pestaña de Cortos con pestaña de Explorar (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Requiere reiniciar la app.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Activar FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Habilitar FLEX para depuración (no recomendado). Déjelo desactivado a menos que sepa lo que está haciendo.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Reparar el inicio de sesión de Google (solo para usuarios de TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Active esta opción solo cuando no pueda iniciar sesión con su cuenta de Google y la aplicación se instaló a través de TrollStore. Si puede iniciar sesión normalmente, manténgala desactivada. Es necesario reiniciar la aplicación.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version de uYouPlus : %@";
|
||||||
|
"VERSION_CHECK" = "Appuyez pour vérifier les mises à jour !";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Options du thème";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Défaut";
|
||||||
|
"DEFAULT_THEME_DESC" = "Thème plus sombre par défaut de YouTube. Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Ancien thème sombre";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Ancien thème sombre de YouTube (thème gris). Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Mode sombre OLED (Expérimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "Mode sombre OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Un redémarrage de l'application est nécessaire après avoir activé/désactivé cette option.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Clavier OLED (Expérimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Options du lecteur vidéo";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Désactiver le double tap pour chercher";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Désactiver l'alignement sur les chapitres";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Désactiver l'alignement automatique sur les chapitres lors de la recherche dans les vidéos. Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Désactiver le zoom à deux doigts";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Activer le mini-lecteur pour toutes les vidéos YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Vidéos pour enfants par exemple";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Utiliser l'affichage iOS du volume par défaut";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Options de superposition des contrôles vidéo";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Masquer l'interrupteur de lecture automatique";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Masquer le bouton de lecture automatique dans la superposition des contrôles vidéo";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Bouton de masquage des sous-titres";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Masquer le bouton des sous-titres dans la superposition des contrôles vidéo";
|
||||||
|
|
||||||
|
"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_PAID_PROMOTION_CARDS" = "Masquer la bannière des communications commerciales";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Masque la bannière 'Inclut une communication commerciale' dans certaines vidéos.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Masquer le filigrane du canal";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Masquer le filigrane du canal dans la superposition de commandes de la vidéo. Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Masquer les boutons Précédent et Suivant";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Masquer les boutons Précédent et Suivant dans la superposition des contrôles vidéo";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Remplacer le bouton précédent et suivant";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Remplace les boutons Précédent et Suivant par les boutons Avance rapide et Retour rapide. Un redémarrage de l'application est nécessaire";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Barre de progression rouge";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Rétablir la barre de progression rouge. Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Masquer les cartes de survol des écrans de fin (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Masquer les écrans de fin (vignettes) des créateurs à la fin des vidéos";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Masquer le panneau de droite en mode plein écran";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Options de la superposition de commandes de Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Masquer la bannière 'Acheter des Super Thanks'";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Masquer la bannière 'Acheter des Super Thanks' dans les Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Masquer le bouton Abonnements";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "Masque le bouton Abonnements qui apparaît lors de la pause.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Désactiver la reprise des Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Si vous fermez YouTube en regardant des Shorts, ils ne seront pas automatiquement lus la prochaine fois que vous lancerez YouTube.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Divers";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Confirmer l'alerte avant le casting (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Afficher une alerte de confirmation avant de lancer le casting afin d'éviter de déclencher accidentellement la télévision";
|
||||||
|
"CASTING" = "Cast";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Êtes-vous sûr de vouloir commencer un cast sur votre télévision ?";
|
||||||
|
"MSG_YES" = "Oui";
|
||||||
|
"MSG_CANCEL" = "Annuler";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Désactiver les astuces";
|
||||||
|
"DISABLE_HINTS_DESC" = "Désactiver les astuces de fonctionnalités de YouTube qui s'affichent habituellement lorsque l'application est fraîchement installée.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage de YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Masquer la barre supérieure";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Masquer la barre supérieure dans les fils d'actualité (Tendances, Musique, Gaming...) et les fils d'abonnement (Toutes les vidéos, Poursuivre la lecture...). Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Disposition iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Basculer pour utiliser la disposition iPhone. Un redémarrage de l'application est nécessaire.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nouveau style de barre de mini-lecteur (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Un redémarrage de l'application est nécessaire";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Remplacer l'onglet Shorts par l'onglet Explorer (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Un redémarrage de l'application est nécessaire";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Activer FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Activer FLEX pour déboguer (non recommandé). Laissez-le désactivé à moins que vous sachiez ce que vous faites.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Réparer l'identification Google (pour les utilisateurs de TrollStore uniquement)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Activez cette option uniquement si vous ne pouvez pas vous connecter avec votre compte Google et que l'application a été installée via TrollStore. Si vous pouvez vous connecter normalement, laissez-la désactivée. Un redémarrage de l'application est nécessaire.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "תצוגה כהה OLED (נסיוני)";
|
||||||
|
"OLED_DARK_THEME_2" = "תצוגה כהה OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "עלול לא לעבוד נכון בחלק מהמקרים, נדרש לפתוח מחדש את היישום.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "מקלדת כהה OLED (נסיוני)";
|
||||||
|
"OLED_DARKMODE_DESC" = "עלול לא לעבוד נכון בחלק מהמקרים, נדרש לפתוח מחדש את היישום.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "אפשר את הנגן הקטן עבור כל הסרטונים ב-YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "סרטוני ילדים לדוגמה.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "הסתר את כפתור ההפעלה האוטומטית";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "הסתר את כפתור ההפעלה האוטומטית בתצוגת השליטה בסרטון.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "הסתר את כפתור הכתוביות";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "הסתר את כפתור הכתוביות בתצוגת השליטה בסרטון.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "הסתר הודעות קופצות";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "לדוגמה: כתוביות מופעלות/מושבתות, הופעל סרטון בלופ,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Hide paid promotion banner";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "הסתר את הקודם והבא";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "הסתר את כפתורי הקודם והבא בתצוגת השליטה בסרטון.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "החלף את הלחצן הקודם והבא";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "החלף את הלחצן הקודם והבא בלחצן הרצה קדימה והאחורה. נדרשת הפעלה מחדש של האפליקציה.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "הסתר כרטיסיות סיום סרטון (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "הסתר את מסכי הסיום של סרטונים המציגים את הערוץ וסרטונים נוספים.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "התראת אישור לפני שידור לטלוויזיה (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "הצג התראת אישור לפני שידור לטלוויזיה כדי למנוע לחיצה בטעות.";
|
||||||
|
"CASTING" = "משדר";
|
||||||
|
"MSG_ARE_YOU_SURE" = "האם להתחיל לשדר?";
|
||||||
|
"MSG_YES" = "כן";
|
||||||
|
"MSG_CANCEL" = "ביטול";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "עיצוב נגן קטן חדש (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "נדרש לפתוח מחדש את היישום.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "החלף את לשונית ה-Shorts בלשונית Explore (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "נדרש לפתוח מחדש את היישום.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "תקן כניסה של Google (עבור משתמש TrollStore בלבד)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "הפעל אפשרות זו רק כאשר אינך יכול להיכנס עם חשבון Google שלך והאפליקציה הותקנה דרך TrollStore. אם אתה יכול להתחבר כרגיל, השאר אותה מושבתת. נדרשת הפעלה מחדש של האפליקציה.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED sötét mód (Kísérleti)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED sötét mód";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Előfordulhat, hogy bizonyos esetekben nem működik megfelelően. Az alkalmazás újraindítása szükséges az opció engedélyezése/letiltása után.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Billentyűzet (Kísérleti)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Előfordulhat, hogy bizonyos esetekben nem működik megfelelően. Az alkalmazás újraindítása szükséges az opció engedélyezése/letiltása után.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Engedélyezze a Minilejátszót az összes YouTube-videóhoz";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Például gyermekvideók.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Az automatikus lejátszás kapcsoló elrejtése";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Az Automatikus lejátszás kapcsoló elrejtése a videovezérlők fedvényében.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Feliratok elrejtése";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "A Feliratok gomb elrejtése a videóvezérlők fedvényében.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUD üzenetek elrejtése";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Példa: A CC be/ki van kapcsolva, a videó hurok be van kapcsolva,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Fizetett promóciós szalaghirdetés elrejtése";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "A „Fizetett promóciókat tartalmaz” szalaghirdetés elrejtése egyes videóknál.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Előző és Következő gomb elrejtése";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Az Előző és a Következő gomb elrejtése a videóvezérlők fedvényén.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Előző és Következő gomb cseréje";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Cserélje ki az Előző és Következő gombot Gyors előre és visszatekerés gombbal. Az alkalmazás újraindítása szükséges.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "A záróképernyők lebegő kártyáinak elrejtése (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Az alkotói záróképernyők (bélyegképek) elrejtése a videók végén.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Megerősítés átküldés előtt (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Az átküldés előtt mutasson megerősítő figyelmeztetést, hogy megakadályozza a TV véletlen eltérítését.";
|
||||||
|
"CASTING" = "Casting";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Biztos, hogy elkezdi az átküldést?";
|
||||||
|
"MSG_YES" = "Igen";
|
||||||
|
"MSG_CANCEL" = "Visszavon";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Új minilejátszó sáv (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Az alkalmazás újraindítása szükséges.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Cserélje le a Shorts fület a Felfedezés fülre (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Az alkalmazás újraindítása szükséges.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "A Google bejelentkezés javítása (csak a TrollStore-felhasználók számára)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Csak akkor kapcsolja be ezt az opciót, ha nem tud bejelentkezni Google-fiókjával, és az alkalmazást a TrollStore-on keresztül telepítették. Ha normálisan be tud jelentkezni, tartsa letiltva. Az alkalmazás újraindítása szükséges.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "versione di uYouPlus: %@";
|
||||||
|
"VERSION_CHECK" = "Clicca qui per cercare gli aggiornamenti!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Opzioni Tema";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Predefinito";
|
||||||
|
"DEFAULT_THEME_DESC" = "Tema scuro predefinito di YouTube. È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Vecchio Tema Scuro (Sperimentale)";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Tema scuro del vecchio YouTube (tema grigio). È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Modalità Scura OLED (Sperimentale)";
|
||||||
|
"OLED_DARK_THEME_2" = "Modalità Scura OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Potrebbe non funzionare correttamente in alcuni scenari. È richiesto un riavvio dell'app dopo aver abilitato/disabilitato questa opzione.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Tastiera OLED (Sperimentale)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Potrebbe non funzionare correttamente in alcuni scenari. È richiesto un riavvio dell'app.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Opzioni Video Player";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disabilita snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disattiva lo snap to chapter durante la ricerca nei video. È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disabilita il pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Abilita il Miniplayer su tutti i video di YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Video YouTube Kids per esempio.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use iOS stock volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Opzioni Sovrimpressione (Overlay) Video";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Nascondi Interruttore Riproduzione Automatica";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Nasconde il controllo per la riproduzione automatica in sovrimpressione al video.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Nascondi Bottone Sottotitoli";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Nasconde il controllo per i sottotitoli in sovrimpressione al video.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Nascondi messaggi in sovrimpressione";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Esempio: Sottotitoli attivati/disattivati, Ripetizione video attiva,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Nascondi i banner sponsorizzati";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Nasconde il banner 'Include Promozioni a Pagamento' in alcuni video.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Nascondi il Watermark del Canale";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Nascondi il Watermark del Canale in sovrimpressione al video. È richiesto un riavvio dell'app.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Nascondi i bottoni Precedente e Successivo";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Nasconde i bottoni Precedente e Successivo dai controlli in sovrimpressione al video.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Sostituisci i Bottoni Precedente e Successivo";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Sostituisci i Bottoni Precedente e Successivo con Avanti veloce e Indietro veloce. È richiesto un riavvio dell'app.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Barra di avanzamento rossa";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Ripristina la barra di avanzamento rossa. È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Nascondi i riquadri in sovrimpressione a fine video (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Nasconde i riquadri (miniature) a fine video proposti dall'autore.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Nascondi il pannello di destra in modalità a schermo intero";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "È richiesto un riavvio dell'app.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Opzioni Sovrimpressione (Overlay) Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Nascondi 'Buy Super Thanks'";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Nascondi il banner 'Buy Super Thanks' dagli Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disabilita il resume dagli Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Se chiudi YouTube mentre guardi uno Short, gli Short non verranno riprodotti automaticamente la prossima volta che avvii YouTube.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Varie";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Avviso di conferma prima della condivisione su TV (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Mostra un avviso di conferma prima della condivisione per evitar e di irrompere accidentalmente sulla TV.";
|
||||||
|
"CASTING" = "Condivisione su TV";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Sei sicuro di voler avviare la condivisione?";
|
||||||
|
"MSG_YES" = "Sì";
|
||||||
|
"MSG_CANCEL" = "Annulla";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disabilita i suggerimenti";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disabilita i suggerimenti sulle funzionalità di YouTube che di solito vengono visualizzati quando l'app viene appena installata.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Abilita YouTube startup animazione";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Nascondi la barra superiore";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Nascondi la barra superiore nella Home (Tendenze, Musica, Giochi...) e Iscrizioni (Tutti i video, Continua a guardare...). È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Seleziona per usare il Layout Iphone. È richiesto il riavvio dell'app.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nuovo stile per la barra del miniplayer (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "È richiesto un riavvio dell'app.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Sostituisci il tab Shorts con il tab Esplora (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "È richiesto un riavvio dell'app.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Abilita FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Abilita FLEX per il debugging (sconsigliato). Lascialo disabilitato se non sai cosa stai facendo.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Ripara Google Sign in (solo per utenti TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Attiva questa opzione solo quando non puoi accedere al tuo account Google e l'app è stata installata attraverso TrollStore. Se puoi accedere normalmente, tienila disabilitata. È richiesto un riavvio dell'app.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "アプリについて";
|
||||||
|
|
||||||
|
"VERSION" = "バージョン";
|
||||||
|
"VERSION_CHECK" = "ここをタップしてアップデートを確認!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "不具合を報告";
|
||||||
|
"ADD_TITLE" = "タイトルをここに追加...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "YouTubeを終了";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "変更を適用するためにYouTubeを再起動";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 アプリのテーマ";
|
||||||
|
"THEME_OPTIONS" = "テーマの設定";
|
||||||
|
|
||||||
|
"DARK_THEME" = "ダークテーマ";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "デフォルト";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "明るいグレー";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTubeの古いダークテーマ";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED (実験的)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "純粋な黒のダークテーマ";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLEDキーボード (実験的)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "⏯️ 動画コントロールのオーバーレイ設定";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "スライドシークを有効化";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "スライドシークジェスチャーを復活させます。";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "ダブルタップによるシークを無効化";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "チャプターに合わせてのスクラブを無効にする";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "動画を飛ばす際にチャプターに沿ってスクラブされるのを無効化します。";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "ピンチで拡大を無効にする";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "すべての動画でミニプレーヤーを有効にする";
|
||||||
|
"YT_MINIPLAYER_DESC" = "ミニプレーヤーが使えない動画(子ども向けの動画など)がありますが、このオプションでバイパスできます。";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "iOSのstockボリュームHUDを利用する";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 動画コントロールのオーバーレイ設定";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "自動再生ボタンを非表示";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "字幕ボタンを非表示";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "HUDメッセージを非表示";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "特定のアクション後に表示されるスナックバーを非表示にします。(例: 字幕がオン/オフになりました など)";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "有料プロモーションカードを非表示";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "チャンネルのウォーターマークを非表示";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "前へ/次へボタンを非表示";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "前へ/次へボタンを置き換える";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "前へ/次へボタンを早送り/巻き戻しボタンに置き換えます。";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "赤いプログレスバー";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "YTNoHoverCards";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "動画のエンドスクリーンを非表示にします。";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "フルスクリーン時のエンゲージパネルを非表示";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "ランドスケープ時の右パネル(コメントなど)を非表示にします。";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 ショート動画のオーバーレイ設定";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "「Super Thanksを購入」バナーを非表示";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "チャンネル登録ボタンを非表示";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "ショートの再開を無効化";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "ショート動画を視聴中にアプリを終了し、再度開いた際にショートから再開されるのを防ぎます。";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 その他";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "YTCastConfirm";
|
||||||
|
"CAST_CONFIRM_DESC" = "キャスト前に確認の警告を表示します。";
|
||||||
|
"CASTING" = "キャスト";
|
||||||
|
"MSG_ARE_YOU_SURE" = "本当にキャストを開始しますか?";
|
||||||
|
"MSG_YES" = "はい";
|
||||||
|
"MSG_CANCEL" = "キャンセル";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "ヒントを非表示";
|
||||||
|
"DISABLE_HINTS_DESC" = "アプリ初回起動時に表示されるYouTubeのヒントを非表示にします。";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時にアニメーションを表示";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "トップバーを非表示";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "ホーム(トレンド,音楽,ゲーム...)とサブスクリプション(すべてのビデオ、視聴を続ける...)リボンのトップバーを非表示にします。";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "「キューの最初に追加」を非表示";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhoneのレイアウトを強制";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "BigYTMiniPlayer";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "新しいミニプレーヤーバー";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "YTReExplore";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "ショートタブを探索タブに置き換えます。";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEXを有効化";
|
||||||
|
"ENABLE_FLEX_DESC" = "デバッグ用のFLEXを有効にします。";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Googleのサインインを修正 (TrollStoreユーザーのみ)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Googleアカウントでサインインできない場合で、アプリがTrollStore経由でインストールされている場合のみ、このオプションをオンにしてください。通常通りサインインできる場合はオフのままにしてください。アプリの再起動が必要です。";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "uYouPlus 버전: %@";
|
||||||
|
"VERSION_CHECK" = "업데이트를 확인하려면 탭하세요!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "테마 설정";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "기본";
|
||||||
|
"DEFAULT_THEME_DESC" = "YouTube 기본 다크 모드. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "이전 다크 모드 테마";
|
||||||
|
"OLD_DARK_THEME_DESC" = "이전 YouTube 다크 모드 (회색 테마). 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED 다크모드 (실험실)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED 다크모드";
|
||||||
|
"OLED_DARK_THEME_DESC" = "몇몇 경우 제대로 동작하지 않을 수도 있습니다. 이 기능을 켜거나 끄는 경우 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED 키보드 (실험실)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "몇몇 경우 제대로 동작하지 않을 수도 있습니다. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ 비디오 재생 설정";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "두번 탭하여 탐색 사용하지 않음";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "챕터 스냅 사용하지 않음";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "비디오 탐색시 챕터표시에 스냅되는 기능을 끕니다. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "핀치 투 줌 사용하지 않음";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "모든 YouTube 영상에서 미니 플레이어 활성화";
|
||||||
|
"YT_MINIPLAYER_DESC" = "유튜브 키즈의 영상 같은 경우.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "iOS 기본 음량 표시기 사용";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 비디오 재생 오버레이 설정";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "자동재생 스위치 숨기기";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "비디오 재생 오버레이에서 자동재생 스위치를 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "자막 버튼 숨기기";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "비디오 재생 오버레이에서 자막 버튼을 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "화면 메시지 숨기기";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "예: 자막 사용 설정됨/중지됨, 반복재생 설정됨,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "유료 광고 배너 숨기기";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "'유료 광고 포함' 배너를 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "채널 워터마크 숨기기";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "비디오 재생 오버레이에서 채널의 워터마크를 숨깁니다. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "이전, 다음 재생 버튼 숨기기";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "비디오 재생 오버레이에서 이전 재생, 다음 재생 버튼을 숨깁니다.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "이전, 다음 재생 버튼 교체";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "이전 재생, 다음 재생 버튼을 빨리 감기, 되감기 버튼으로 교체합니다. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "빨간색 진행 막대";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "영상 진행 막대의 색을 빨간색으로 되돌립니다. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "영상 끝 부분의 호버카드 숨기기 (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "영상의 끝 부분에서 게시자가 표시한 영상 썸네일을 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "전체화면 모드에서 오른쪽 패널 숨기기";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts 재생 오버레이 설정";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "'Super Thanks 구매' 배너 숨기기";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Shorts 영상에서 'Super Thanks 구매' 배너를 숨깁니다.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "구독 버튼 숨기기";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "일시 정지 할 때 보이는 구독 버튼을 숨깁니다.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Shorts 복원 사용하지 않음";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Shorts를 시청하는 도중 앱을 닫을 때, 다시 앱을 열어도 Shorts 영상이 자동재생되지 않도록 합니다.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 기타 설정";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "TV 전송 알림 (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "의도치 않게 TV로 영상을 전송하지 않도록 보내기 전에 확인 메시지를 표시합니다.";
|
||||||
|
"CASTING" = "TV로 전송";
|
||||||
|
"MSG_ARE_YOU_SURE" = "TV로 영상 전송을 시작하겠습니까?";
|
||||||
|
"MSG_YES" = "예";
|
||||||
|
"MSG_CANCEL" = "취소";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "힌트 표시하지 않음";
|
||||||
|
"DISABLE_HINTS_DESC" = "앱을 새로 설치하는 경우 표시되는 앱의 몇몇 기능에 대한 설명이 표시되지 않도록 합니다.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube 시작 애니메이션을 표시합니다.";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "피드 선택 막대 숨기기";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "앱의 홈 화면에서 맞춤 동영상(인기 급상승, 음악, 게임...)과 구독 피드(전체, 감상한 동영상...) 선택 막대를 숨깁니다. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "아이폰 화면배치";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "아이폰의 화면배치를 사용하려면 선택하세요. 앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "새로운 스타일의 미니 플레이어 (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Shorts 탭 대신 탐색 탭 보이기 (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "앱을 다시 시작해야 합니다.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEX 사용";
|
||||||
|
"ENABLE_FLEX_DESC" = "디버그를 위해 FLEX를 사용하도록 설정합니다(권장하지 않음). 사용에 익숙하지 않으면 활성화하지 마십시오.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "구글 로그인 문제 수정 (TrollStore 사용자만 해당)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "TrollStore를 통해 설치된 앱에만 적용됩니다: 구글 계정으로 로그인하려면 이 설정을 켜 주세요. 앱을 다시 시작해야 합니다.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme Options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED Donkere Stand (Experimenteel)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED Donkere Stand";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Werkt mogelijk niet correct in sommige gevallen. Je moet de app opnieuw opstarten om dit te activeren.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Toetsenbord (Experimenteel)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Werkt mogelijk niet correct in sommige gevallen. Je moet de app opnieuw opstarten om dit te activeren.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Schakel de Mini Speler in voor alle video's";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Video's voor kinderen bijvoorbeeld.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Verberg Autoplay schakelaar";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Verberg de Autoplay schakelaar in de video speler.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Verberg ondertitels knop";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Verberg de ondertitels knop in de video speler.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Verberg HUD Berichten";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Bijvoorbeeld: CC is ingeschakeld/uitgeschakeld, Video lus is ingeschakeld,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Verberg Betaalde Promoties";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Verberg de 'Bevat Betaalde Promotie' in sommige video's.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Verberg vorige en volgende knoppen";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Verberg de vorige en volgende knop in de video speler.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Vervang Volgende en Vorige knoppen";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Vervang de Vorige en Volgende knoppen met spoelknoppen.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Verberg eind scherm hover cards (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Verberg eind schermen (thumbnails) aan het einde van video's.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Bevestig casten (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Toon een melding na het drukken op de cast knop om te voorkomen dat je per ongeluk cast.";
|
||||||
|
"CASTING" = "Castings";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Weet je zeker dat je wilt casten?";
|
||||||
|
"MSG_YES" = "Ja!";
|
||||||
|
"MSG_CANCEL" = "Niet casten!";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nieuwe Mini Speler stijl (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Je moet de app opnieuw opstarten om dit te activeren.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Vervang Shorts met Ontdekken (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Je moet de app opnieuw opstarten om dit te activeren.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Fix Inloggen met Google (Alleen voor TrollStore gebruikers)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Zet dit aan wanneer je niet kan inloggen met je Google account en je de app hebt geïnstalleerd met Trollstore. Als je in kan loggen laat dit dan met rust. Om dit te activeren moet je de app opnieuw opstarten.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Tryb ciemny OLED (Eksperymentalny)";
|
||||||
|
"OLED_DARK_THEME_2" = "Tryb ciemny OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Pure-black dark theme";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Klawiatura OLED (Eksperymentalna)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Może w niektórych przypadkach nie działać. Restart aplikacji jest wymagany.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Włącz miniodtwarzach dla wszystkich filmów";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Np. filmów dla dzieci.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Ukryj przycisk Autoodtwarzanie";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ukrywa przycisk Autoodtwarzanie w okładce odtwarzacza filmów.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Ukryj przycisk Napisy";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Ukrywa przycisk Napisy w okładce odtwarzacza filmów.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ukryj komunikaty HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Np. Napisy są wył/wł, Odtwarzanie w pętli jest włączone, ...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Ukryj baner płatnej promocji";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ukrywa baner 'Zawiera płatną promocję' w niektórych filmach.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ukryj przyciski Poprzedni i Następny";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ukryj przyciski Poprzedni i Następny w okładce sterowania filmu.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Zamień przyciski Poprzedni i Następny";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Zamienia przyciski Poprzedni i Następny z przyciskami Przewiń w przód i tył. Restart aplikacji jest wymagany.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Ukryj ekrany końcowe (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Ukryj ekrany końcowe (miniaturki) na końcu filmów.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Alert przed przesyłaniem (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Pokaż alert przed przesyłaniem aby nie łączyć się przez przypadek z telewizorem.";
|
||||||
|
"CASTING" = "Przesyłania";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Czy na pewno chcesz przesyłać?";
|
||||||
|
"MSG_YES" = "Tak";
|
||||||
|
"MSG_CANCEL" = "Anuluj";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Nowy styl miniodtwarzacza (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Restart aplikacji jest wymagany.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Zamień kartę Shorts na kartę Odkrywaj (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Restart aplikacji jest wymagany.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Napraw logowanie się z Google (tylko dla użytkowników TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Włącz tą opcję tylko wtedy, kiedy nie możesz zalogować się swoim kontem Google, a aplikacja została zainstalowana przez TrollStore. Jeżeli da się zalogować normalnie, zostaw to wyłączone. Restart aplikacji jest wymagany.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Versão do uYouPlus: %@";
|
||||||
|
"VERSION_CHECK" = "Toque para verificar se há atualização!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Opções de Temas";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Padrão";
|
||||||
|
"DEFAULT_THEME_DESC" = "Tema escuro padrão do YouTube. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Antigo tema escuro";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Tema escuro do YouTube antigo (tema cinza). A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Modo escuro OLED (Experimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "Modo escuro OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária após você ativar/desativar essa opção.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Teclado OLED (Experimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Opções do Reprodutor de Vídeo";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Desativar toque duplo para buscar";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Desativar ajuste ao capítulo";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Desativa o ajuste automático ao capítulo ao buscar no vídeo. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Desativar pinçar para ampliar";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Ative o Miniplayer para todos os vídeos do YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Vídeos infantis, por exemplo.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Usar o HUD de volume padrão do iOS";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Opções de Sobreposição de Controles de Vídeo";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Ocultar interruptor de Reprodução automática";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Oculta o interruptor de Reprodução automática na sobreposição de controles de vídeo.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Ocultar botão de Legendas";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Oculta o botão de Legendas na sobreposição de controles de vídeo.";
|
||||||
|
|
||||||
|
"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_PAID_PROMOTION_CARDS" = "Ocultar Banner de promoção paga";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Oculta o banner 'Contém promoção paga' em alguns vídeos.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Ocultar Marca D'água do Canal";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Oculta a marca d'água do canal na sobreposição de controles de vídeo. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ocultar botão Anterior e Próximo";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Oculta o botão Anterior e Próximo na sobreposição de controles de vídeo.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Substituir o botão Anterior e Próximo";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Substitui o botão Anterior e Próximo pelo botão Avançar e Retroceder. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Barra de progresso vermelha";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Traz de volta a barra de progresso vermelha. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Ocultar Cartões flutuantes de telas finais (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Oculta telas finais do criador (miniaturas) no final dos vídeos.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Ocultar o painel direito no modo de tela cheia";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Opções de Sobreposição de Controles de Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Ocultar o banner 'Comprar Valeu Demais'";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Oculta o banner 'Comprar Valeu Demais' nos Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Ocultar o botão Inscrições";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "Oculta o botão Inscrições que aparece quando pausado.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Desativar voltar para os Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Se você fechar o YouTube enquanto assiste a Shorts, os Shorts não serão reproduzidos automaticamente na próxima vez que você iniciar o YouTube.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Diversos";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"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";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Desativar dicas";
|
||||||
|
"DISABLE_HINTS_DESC" = "Desativa as dicas de recursos do YouTube que geralmente são exibidas quando o aplicativo é instalado recentemente.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Ativar animação de inicialização do YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Ocultar a Barra superior";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Oculta a Barra superior nos Feeds iniciais (Tendências, Música, Jogos...) e Feeds de inscrições (Todos os vídeos, Continuar assistindo...). A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Layout do iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Alterne para usar o Layout do iPhone. A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Novo estilo de barra de miniplayer (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Substituir a guia Shorts pela guia Explorar (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "A reinicialização do app é necessária.";
|
||||||
|
|
||||||
|
"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.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Corrigir o login do Google (somente para usuários da TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Ative esta opção somente quando você não conseguir fazer login com sua conta do Google e o aplicativo foi instalado via TrollStore. Se você conseguir fazer login normalmente, mantenha-o desativado. A reinicialização do app é necessária.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Versiune uYouPlus: %@";
|
||||||
|
"VERSION_CHECK" = "Căutare actualizări";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Mod Întunecat OLED (Experimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "Mod Întunecat OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Este posibil să nu funcționeze corect în anumite cazuri. Este necesară repornirea aplicației după ce această opțiune este activată/dezactivată.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Tastatură OLED (Experimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Este posibil să nu funcționeze corect în anumite cazuri. Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Activare Miniplayer pentru toate videoclipurile YouTube";
|
||||||
|
"YT_MINIPLAYER_DESC" = "De exemplu, videoclipurile destinate pentri copii";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Ascunde comutatorul Redare automată";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ascunde comutatorul Redare automată din controalele video.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Ascunde butonul Subtitrări";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Ascunde butonul Subtitrări din controalele video.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ascundere Mesaje HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Exemplu: Subtitrările sunt activate/dezactivate, Redarea în buclă este activată,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Ascunde banner-ul Promovare Plătită";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ascunde banner-ul 'Include Promovare Plătită' în unele videoclipuri.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ascunde butoanele Înainte/Înapoi";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ascunde butoanele Înainte/Înapoi din controalele video.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Înlocuire butoane Înainte/Înapoi";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Înlocuiește butoanele Înainte/Înapoi cu butoanele derulare Înainte/Înapoi. Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Bring back the red progress bar. App restart is required.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Ascunde ecranele de final (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Ascunde ecranele de final de la sfârșitul videoclipurilor.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Alertă de confirmare înainte de proiectare (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Afișează o alertă de confirmare înainte de a proiecta, pentru a preveni deturnarea accidentală a TV-ului.";
|
||||||
|
"CASTING" = "Proiectare";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Sunteți sigur că doriți să proiectați?";
|
||||||
|
"MSG_YES" = "Da";
|
||||||
|
"MSG_CANCEL" = "Anulare";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Stil nou bară Miniplayer (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Înlocuire fila Shorts cu fila Explore (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Este necesară repornirea aplicației.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Rezolvare problemă autentificare cont Google (doar pentru utilizatorii TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Activează această opțiune doar în cazul în care nu te poți autentifica în contul tău Google și apariția a fost instalată via TrollStore. Dacă te poți autentifica fără probleme, țineți setarea dezactivată. Este necesară repornirea aplicației.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Версия uYouPlus: %@";
|
||||||
|
"VERSION_CHECK" = "Нажмите, чтобы проверить доступные обновления.";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Параметры темы";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "По умолчанию";
|
||||||
|
"DEFAULT_THEME_DESC" = "Темная(новая) тема YouTube по умолчанию. Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Старая темная тема";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Старая темная тема YouTube (серая тема). Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "Темный режим для OLED (Бета)";
|
||||||
|
"OLED_DARK_THEME_2" = "Темный режим для OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Понадобится перезагрузка при смене цветовой темы приложения. Если OLED-тема не включится, попробуйте переключиться не светлый режим и обратно, а затем перезагрузить приложение.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED-клавиатура (Бета)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Возможно, на некоторых устройствах будет работать криво. Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Параметры видеоплеера";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Отключить двойное нажатие для перемотки";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Отключить привязку к эпизодам";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Отключает автоматическую привязку к эпизодам при перемотке видео. Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Отключить функцию масштабирования";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Мини-плеер для всех видео";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Принудительно активирует мини-плеер для всех видео, включая видео, предназначенное для детей.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Использовать стоковый слайдер грмкости iOS";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Параметры элементов оверлея видеоплеера";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Скрыть «Автовоспроизведение»";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Убирает тумблер «Автовоспроизведение» с оверлея плеера.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Скрыть «Субтитры»";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Скрывает кнопку субтитров с оверлея плеера.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Скрыть сообщения плеера";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Скрывает надписи YouTube, появляющиеся поверх видео.";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Скрыть рекламный баннер";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Скрывает баннер «Есть реклама» в роликах со встроенной рекламой.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Скрыть водяной знак канала";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Скрывает водяной знак канала с видео. Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Скрыть «След.» и «Пред.»";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Убирает кнопки переключения видео «Следующий» и «Предыдущий» с плеера.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Кнопки перемотки вместо «Пред.» и «След.»";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Заменяет переключатели «Следующий» и «Предыдущий» на кнопки перемотки на 10 сек. Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Красная полоса воспроизведения";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Возвращает красную полосу воспроизведения. Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Скрыть рекомендации (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Скрывает эскизы, отображаемые по окончанию видеоролика.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Скрыть правую панель в полноэкранном режиме";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Параметры элементов оверлея в Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Скрыть баннер 'Купить суперспасибо'";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Скрывает баннер 'Купить суперспасибо' в Shorts.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Скрыть кнопку подписок";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "Скрыть кнопку подписки, которая отображается при приостановке.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Отключить продолжение видео Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Если закрыть YouTube во время просмотра видео Shorts, то при следующем запуске YouTube видео Shorts не будет автоматически воспроизводиться.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Другое";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Подтверждение «Трансляции» (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Спрашивать подтверждение перед началом трансляции во избежание случайных подключений к ТВ.";
|
||||||
|
"CASTING" = "Трансляция";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Начать трансляцию экрана?";
|
||||||
|
"MSG_YES" = "Да";
|
||||||
|
"MSG_CANCEL" = "Отмена";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Отключить подсказки";
|
||||||
|
"DISABLE_HINTS_DESC" = "Отключает подсказки функций с YouTube, которые обычно отображаются при свежей установке приложения.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Включить анимацию запуска YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Скрыть верхнюю панель";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Скрывает верхнюю панель на вкладках «Главная» (Тренды, Музыка, Игры...) и «Подписки» (Все видео, Продолжить просмотр...)\nТребуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Оформление приложения как на iPhone";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "Переключает оформление приложения как на iPhone. Требуется перезапуск приложения.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Мини-плеер в стиле iPad (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Вкладка «Навигация» вместо «Shorts»";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Потребуется перезагрузка.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Включить FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Включите FLEX для отладки (не рекомендуется). Не включайте эту опцию, если вы не знаете, что делаете.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Исправить авторизацию (TrollStore)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Включите данную опцию только, если не можете войти в учетную запись Google, а приложение установлено через TrollStore. Если удается авторизоваться как обычно, оставьте данную опцию отключенной. Потребуется перезагрузка.";
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
/* Read me:
|
||||||
|
- How to translate uYouPlus (if your language already exists then feel free to check it and/or improve it):
|
||||||
|
1. Fork this uYouPlus 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, and 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "Version";
|
||||||
|
"VERSION_CHECK" = "Tap to check for updates!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Theme options";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Default";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Lighter grey";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube's old dark theme";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED (experimental)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Pure-black dark theme";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED keyboard (experimental)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video player options";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Disable snap to chapter";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Disables auto snap to chapter when seeking through videos";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Disable pinch to zoom";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Enable miniplayer for all videos";
|
||||||
|
"YT_MINIPLAYER_DESC" = "The miniplayer cannot be activated for certain videos (e.g., kids videos). This option bypasses that";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Use stock iOS volume HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Hide autoplay switch";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Hide subtitles button";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Hide HUD messages";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Hide paid promotion banner";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Hide channel watermark";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Hide previous and next buttons";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Use fast forward and rewind buttons";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Replaces previous and next buttons with fast forward and rewind";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Red progress bar";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "YTNoHoverCards";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Hides videos' end screens";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Hide engagement panels in full screen";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Hides right panels (e.g., comments, live chat, etc.) in landscape";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts controls overlay options";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Hide \"Buy Super Thanks\" banner";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Hide subscriptions button";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Disable resume to Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "If you close YouTube while watching Shorts, this prevents it from automatically resuming the next time you reopen the app";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Miscellaneous";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "YTCastConfirm";
|
||||||
|
"CAST_CONFIRM_DESC" = "Shows a confirmation alert before casting";
|
||||||
|
"CASTING" = "Casting";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
||||||
|
"MSG_YES" = "Yes";
|
||||||
|
"MSG_CANCEL" = "Cancel";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Disable hints";
|
||||||
|
"DISABLE_HINTS_DESC" = "Disables YouTube feature hints that are displayed when the app is newly installed";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Hide upper bar";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Hides the upper bar in home and subscription feeds (e.g., All videos, Continue watching, etc.)";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "BigYTMiniPlayer";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "New mini player bar style";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "YTReExplore";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Replaces the Shorts tab with the Explore tab";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Enable FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Enables FLEX for debugging";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Fix Google Sign in (for TrollStore user only)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Only turn on this option when you can't sign in with your Google account and the app was installed via TrollStore. If you can log in normally, keep it disabled. App restart is required.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "uYouPlus'ın sürümü: %@";
|
||||||
|
"VERSION_CHECK" = "Güncellemeyi kontrol etmek için dokun!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "Tema ayarları";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Varsayılan";
|
||||||
|
"DEFAULT_THEME_DESC" = "YouTube'un varsayılan daha karanlık teması. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Eski karanlık tema";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Eski YouTube'un karanlık teması (gri tema). Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED Karanlık modu (Deneysel)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED Karanlık modu";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Bu seçeneği etkinleştirdikten/devre dışı bıraktıktan sonra uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED Klavye (Deneysel)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Video Oynatıcı Seçenekleri";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Bölüme geçişi devre dışı bırak";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Video ararken otomatik olarak bölüme geçmeyi devre dışı bırakır. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Yakınlaştırmak için sıkıştırmayı devre dışı bırak";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Tüm YouTube videoları için Mini Oynatıcıyı etkinleştir";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Örneğin çocuk videoları.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Mevcut iOS baş yukarı göstergesi(HUD) alanını kullan";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Video Kontrolleri Kaplaması Seçenekleri";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Otomatik oynatma anahtarını gizle";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Otomatik oynat anahtarını video kontrolleri katmanından gizler.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Altyazıları düğmesini gizle";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Video kontrolleri katmanındaki Altyazılar düğmesini gizler.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Gösterge Paneli Mesajlarını gizle";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Örnek: Altyazılar açıldı/kapandı, Video döngüsü açık,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Ücretli Promosyon afişini gizle";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Bazı videolarda 'Ücretli Promosyonları İçerir' afişini gizler.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Kanal Filigranını Gizle";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Video kontrolleri yer paylaşımında kanalın filigranını gizle. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Önceki ve Sonraki düğmelerini gizle";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Video kontrolleri katmanında Önceki ve Sonraki düğmelerini gizler.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Önceki ve Sonraki Düğmelerini Değiştir";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Önceki ve Sonraki Düğmelerini Hızlı ileri ve Geri Sar düğmeleriyle değiştir. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Kırmızı ilerleme çubuğu";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Kırmızı ilerleme çubuğunu geri getirir. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Bitiş ekranlarının üzerine gelen kartları gizle.(YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Videoların sonundaki içerik oluşturucu bitiş ekranlarını (küçük resimler) gizler.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Tam ekran modunda sağ paneli gizle";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts Kontroller Kaplama Seçenekleri";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "\"Süper Teşekkür Satın Alın\" afişini gizle";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Shorts'ta \"Süper Teşekkür Satın Alın\" afişini gizle.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Abonelikler düğmesini gizle ";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "Duraklatıldığında görünen Abonelikler düğmesini gizle .";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Shorts'ta kaldığı yerden devam etmeyi devre dışı bırak";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Shorts izlerken YouTube'u kapatırsan Shorts, YouTube'u bir sonraki açışında otomatik olarak oynatılmaz.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Diğer";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Yayınlamadan önce uyarıyı onayla (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "TV'nin yanlışlıkla ele geçirilmesini önlemek için yayınlamadan önce bir onay uyarısı gösterir.";
|
||||||
|
"CASTING" = "Yayınlar";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Yayınlamaya başlamak istediğinden emin misin?";
|
||||||
|
"MSG_YES" = "Evet";
|
||||||
|
"MSG_CANCEL" = "İptal";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "İpuçlarını devre dışı bırak";
|
||||||
|
"DISABLE_HINTS_DESC" = "Genellikle uygulama yeni yüklendiğinde görüntülenen YouTube'dan özellik ipuçlarını devre dışı bırak.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube başlangıç animasyonunu etkinleştir";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Üst çubuğu gizle";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Ana Sayfa akışlarında (Trendler, Müzik, Oyun...) ve Abonelik akışlarında (Tüm videolar, İzlemeye devam et...) Üst çubuğu gizle. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone Düzeni";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "iPhone Düzenini kullanmak istersen etkinleştir. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Yeni mini oynatıcı bar stili. (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Shorts sekmesini Keşfet sekmesiyle değiştirin (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "FLEX'i etkinleştir";
|
||||||
|
"ENABLE_FLEX_DESC" = "Hata ayıklama için FLEX'i etkinleştir (önerilmez). Ne yaptığını bilmiyorsan bunu kapalı bırak.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Google Oturumu Açma'yı düzeltin (yalnızca TrollStore kullanıcıları için)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Bu seçeneği yalnızca Google hesabınızla oturum açamadığınızda ve uygulama TrollStore aracılığıyla yüklendiyse aç. Normal olarak giriş yapabiliyorsan, devre dışı bırak. Uygulamanın yeniden başlatılması gerekir.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "Giới thiệu";
|
||||||
|
|
||||||
|
"VERSION" = "Phiên bản";
|
||||||
|
"VERSION_CHECK" = "Chạm để kiểm tra bản cập nhật!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Báo lỗi";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Đóng YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Khởi động lại YouTube để áp dụng các thay đổi";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 Giao diện của ứng dụng";
|
||||||
|
"THEME_OPTIONS" = "Tùy chọn giao diện";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Giao diện tối";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "Mặc định";
|
||||||
|
"DEFAULT_THEME_DESC" = "";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "Xám nhạt";
|
||||||
|
"OLD_DARK_THEME_DESC" = "Giao diện tối cũ của YouTube";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED (thử nghiệm)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED";
|
||||||
|
"OLED_DARK_THEME_DESC" = "Giao diện tối màu đen hoàn toàn";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "Bàn phím OLED (thử nghiệm)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ Tùy chọn trình phát video";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Vuốt để tua";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Đem lại cử chỉ vuốt để tua như trước đây.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Tắt tình năng chạm 2 lần để tua";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "Tắt tự động chuyển tới chương";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "Tắt tính năng tự động chuyển tới chương gần nhất khi tua video. Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "Tắt tính năng chạm để thu phóng";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "Cho phép sử dụng trình phát thu nhỏ với mọi video";
|
||||||
|
"YT_MINIPLAYER_DESC" = "Ví dụ: Video cho trẻ em.";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "Sử dụng thanh âm lượng mặc định của iOS";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 Tùy chọn hiển thị trong trình phát video";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "Ẩn nút Tự động phát";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ẩn nút Tự động phát trong trình phát video.";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "Ẩn nút bật Phụ đề";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "Ẩn nút bật phụ đề trong trình phát video.";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "Ẩn thông báo HUD";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "Ví dụ: Đã bật/tắt phụ đề, Tính năng phát video lặp lại đang bật,...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "Ẩn banner quảng cáo được trả tiền";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ẩn banner 'Chứa nội dung được trả tiền để quảng cáo' trong một số video.";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "Ẩn watermark của kênh";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "Ẩn watermark của kênh trong video. Yêu cầu khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ẩn nút Next và nút Previous";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ẩn nút Next và nút Previous trong trình phát video.";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Thay thế nút chuyển video";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Thay thế nút chuyển video bằng nút tua nhanh. Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "Thanh tiến trình màu đỏ";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "Mang lại thanh tiến trình màu đỏ. Yêu cầu khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "Ẩn video dạng thumbnails (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "Ẩn thumbnail của các video đề xuất xuất hiện ở cuối video.";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "Ẩn bảng điều khiển bên phải";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "Ẩn bảng điều khiển bên phải khi ở chế độ toàn màn hình. Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Tùy chọn hiển thị trong Shorts";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "Ẩn biểu ngữ 'Mua ảnh động Super Thanks'";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "Ẩn biểu ngữ 'Mua ảnh động Super Thanks'.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "Ẩn nút Đăng ký kênh";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "Ẩn nút Đăng ký kênh khi tạm dừng Shorts.";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "Tắt tính năng tự động tiếp tục Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "Nếu bạn thoát YouTube trong khi đang xem video Shorts, video Shorts đó sẽ không tự động phát khi bạn mở lại YouTube.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 Cài đặt khác";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "Xác nhận trước khi cast video (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "Hiện hộp thoại xác nhận trước khi cast video sang TV để tránh vô tình chiếm quyền điều khiển TV.";
|
||||||
|
"CASTING" = "Truyền video";
|
||||||
|
"MSG_ARE_YOU_SURE" = "Bạn có muốn bắt đầu truyền video không?";
|
||||||
|
"MSG_YES" = "Có";
|
||||||
|
"MSG_CANCEL" = "Không";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "Ẩn gợi ý";
|
||||||
|
"DISABLE_HINTS_DESC" = "Ẩn các gợi ý tính năng thường hiện khi mới cài đặt YouTube.";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "Bật hiệu ứng khi khởi động YouTube";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "Ẩn thanh phím tắt";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "Ẩn thanh phím tắt trong Home feed (Thịnh hành, Âm nhạc, Trò chơi...) và trong Subciption feed (Tất cả, Tiếp tục xem...).";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Ẩn \"Phát tiếp theo trong danh sách chờ\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "Force iPhone layout";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "Giao diện trình phát thu nhỏ kiểu mới (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "Thay thế tab Shorts bằng tab Khám phá (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "Cần khởi động lại ứng dụng.";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "Bật FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "Bật FLEX để kiểm tra/sửa lỗi (không khuyến khích). Nếu bạn không biết FLEX là gì thì đừng bật tính năng này.";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "Sửa lỗi không thể đăng nhập tài khoản Google";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "Chỉ bật tính năng này khi bạn không thể đăng nhập tài khoản Google và ứng dụng được cài qua TrollStore. Nếu bạn có thể đăng nhập bình thường thì hãy tắt tính năng này. Cần khởi động lại ứng dụng.";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "当前 uYouPlus 版本:%@";
|
||||||
|
"VERSION_CHECK" = "点击此处前往 GitHub 查看最新版本信息!";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "主题选项";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "默认深色模式";
|
||||||
|
"DEFAULT_THEME_DESC" = "使用当前版本 YouTube 的默认深色模式(比灰色稍暗)。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "旧深色模式";
|
||||||
|
"OLD_DARK_THEME_DESC" = "使用旧版本 YouTube 的深色模式(灰色模式)。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED 深色模式(实验性功能)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED 深色模式";
|
||||||
|
"OLED_DARK_THEME_DESC" = "使用全黑背景,在使用 OLED 屏幕时可节省电量。在某些情况下可能不会正常工作。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED 键盘(实验性功能)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "在某些情况下可能不会正常工作。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ 视频播放器选项";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "禁用双击快进和快退";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "禁用进度条章节吸附";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "禁用进度条在手动移动时自动吸附至章节分隔处的行为。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "禁用捏合缩放";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "为所有 YouTube 视频启用迷你播放器";
|
||||||
|
"YT_MINIPLAYER_DESC" = "例如:面向儿童的视频。";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "使用 iOS 自带音量指示";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 视频播放器控制界面选项";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "隐藏自动播放模式开关";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "隐藏视频播放器控制界面上的自动播放开关。";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "隐藏字幕按钮";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "隐藏视频播放器控制界面上的字幕按钮。";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "隐藏系统提醒";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "例如:“已启用/停用字幕”、“已开启视频循环播放”等。";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "隐藏付费宣传内容提醒横幅";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "隐藏出现在部分视频中的“包含付费宣传内容”横幅。";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "隐藏频道水印";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "隐藏视频播放器控制界面上的频道水印。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "隐藏上一个/下一个按钮";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "隐藏视频播放器控制界面上的上一个/下一个按钮。";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "替换上一个/下一个按钮";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "将视频播放器控制界面上的上一个/下一个按钮替换成快进/快退按钮。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "红色进度条";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "将新版本中的白色进度条还原为红色。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "隐藏片尾画面悬浮卡片 (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "隐藏视频结尾处的片尾画面元素。例如:其他视频的封面等。";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "隐藏全屏模式右侧面板";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "更改本设置后需要重启App。";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts 短片播放器选项";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "隐藏“购买超级感谢”横幅";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "隐藏出现在部分 Shorts 短片中的“购买超级感谢”横幅。";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "隐藏订阅按钮";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "隐藏在暂停时出现的订阅按钮。";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "应用重启后不恢复至 Shorts 短片";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "若您在观看 Shorts 短片时关闭了 YouTube,下次启动时将不再自动进入 Shorts 短片分区。";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 其它选项";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "投屏前确认 (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "在投屏前显示确认对话框以防意外劫屏。";
|
||||||
|
"CASTING" = "准备投屏";
|
||||||
|
"MSG_ARE_YOU_SURE" = "您确定要开始投屏吗?";
|
||||||
|
"MSG_YES" = "确定";
|
||||||
|
"MSG_CANCEL" = "取消";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "禁用首开介绍";
|
||||||
|
"DISABLE_HINTS_DESC" = "禁用首次打开 App 时出现的功能探索提示。";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "播放启动动画";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "隐藏顶部标签栏";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "隐藏首页和订阅内容页顶部的标签栏(例如:首页顶部的“音乐”、“游戏”、“新闻”以及订阅内容页顶部的“今天”、“继续观看”、“未观看”等)。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone 视图";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "在 iPad 上使用 iPhone 版本的应用布局,以便查看社区贴子和使用短片创作功能。更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "新迷你播放器风格 (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "将 Shorts 选项卡替换成探索选项卡 (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "更改本设置后需要重启 App。";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "启用 FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "启用 FLEX 调试程序(不推荐)。如果您不熟悉本设置的效果,请将其禁用。";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "修复 Google 账号登录问题(仅 TrollStore 用户有效)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "仅在使用 TrollStore 安装本 App 的情况下生效:启用本设置后即可正常登录您的 Google 账号。更改本设置后需要重启 App。";
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
// About
|
||||||
|
"ABOUT" = "About";
|
||||||
|
|
||||||
|
"VERSION" = "uYouPlus 版本為: %@";
|
||||||
|
"VERSION_CHECK" = "查看最新版本";
|
||||||
|
|
||||||
|
"REPORT_AN_ISSUE" = "Report an issue";
|
||||||
|
"ADD_TITLE" = "Add your title here...";
|
||||||
|
|
||||||
|
"QUIT_YOUTUBE" = "Quit YouTube";
|
||||||
|
|
||||||
|
"RESTART_YOUTUBE" = "Restart YouTube to apply changes";
|
||||||
|
|
||||||
|
// App appearance
|
||||||
|
"APP_THEME" = "🎨 App appearance";
|
||||||
|
"THEME_OPTIONS" = "主題風格選項";
|
||||||
|
|
||||||
|
"DARK_THEME" = "Dark theme";
|
||||||
|
|
||||||
|
"DEFAULT_THEME" = "預設";
|
||||||
|
"DEFAULT_THEME_DESC" = "YouTube預設深色模式. 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"OLD_DARK_THEME" = "傳統深色模式";
|
||||||
|
"OLD_DARK_THEME_DESC" = "YouTube深色模式 (灰色風格). 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"OLED_DARK_THEME" = "OLED 深色模式(實驗性)";
|
||||||
|
"OLED_DARK_THEME_2" = "OLED 深色模式";
|
||||||
|
"OLED_DARK_THEME_DESC" = "在某些情況下無法正常運作。更動此選項後,需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"OLED_KEYBOARD" = "OLED 鍵盤(實驗性)";
|
||||||
|
"OLED_KEYBOARD_DESC" = "在某些情況下可能無法正常運作。需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
// Video player options
|
||||||
|
"VIDEO_PLAYER_OPTIONS" = "⏯️ 播放器選項";
|
||||||
|
|
||||||
|
"SLIDE_TO_SEEK" = "Enable Slide to seek";
|
||||||
|
"SLIDE_TO_SEEK_DESC" = "Bring back the Slide to seek gesture.";
|
||||||
|
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK" = "Disable double tap to seek";
|
||||||
|
"DISABLE_DOUBLE_TAP_TO_SEEK_DESC" = "";
|
||||||
|
|
||||||
|
"SNAP_TO_CHAPTER" = "停用章節跳轉";
|
||||||
|
"SNAP_TO_CHAPTER_DESC" = "停用影片快轉時自動跳轉到章節。. 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"PINCH_TO_ZOOM" = "停用手勢縮放";
|
||||||
|
"PINCH_TO_ZOOM_DESC" = "需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"YT_MINIPLAYER" = "為所有 YouTube 影片啟用迷你播放器";
|
||||||
|
"YT_MINIPLAYER_DESC" = "例如兒童影片";
|
||||||
|
|
||||||
|
"STOCK_VOLUME_HUD" = "使用 iOS 內建的音量 HUD";
|
||||||
|
"STOCK_VOLUME_HUD_DESC" = "";
|
||||||
|
|
||||||
|
// Video controls overlay options
|
||||||
|
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "📹 影片懸浮控制選項";
|
||||||
|
|
||||||
|
"HIDE_AUTOPLAY_SWITCH" = "隱藏自動播放開關";
|
||||||
|
"HIDE_AUTOPLAY_SWITCH_DESC" = "在影片控制中隱藏自動播放開關。";
|
||||||
|
|
||||||
|
"HIDE_SUBTITLES_BUTTON" = "隱藏字幕按鈕";
|
||||||
|
"HIDE_SUBTITLES_BUTTON_DESC" = "隱藏影片控制層中的字幕按鈕。";
|
||||||
|
|
||||||
|
"HIDE_HUD_MESSAGES" = "隱藏 HUD 訊息";
|
||||||
|
"HIDE_HUD_MESSAGES_DESC" = "例如:CC字幕、開啟/關閉、影片循環開啟等...";
|
||||||
|
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS" = "隱藏付費橫幅(YTNoPaidPromo)";
|
||||||
|
"HIDE_PAID_PROMOTION_CARDS_DESC" = "在某些影片中隱藏「包括付費促銷」橫幅。";
|
||||||
|
|
||||||
|
"HIDE_CHANNEL_WATERMARK" = "隱藏頻道浮水印";
|
||||||
|
"HIDE_CHANNEL_WATERMARK_DESC" = "隱藏懸浮控制的頻道浮水印. 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "隱藏上一個和下一個按鈕";
|
||||||
|
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "在影片控制層中隱藏上一個和下一個按鈕";
|
||||||
|
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON" = "更換上一個/下一個按鈕";
|
||||||
|
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "將影片播放器控制介面上的上一個/下一個按鈕替換成快轉/倒轉按鈕,需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"RED_PROGRESS_BAR" = "紅色進度列";
|
||||||
|
"RED_PROGRESS_BAR_DESC" = "恢復紅色進度列. 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"HIDE_HOVER_CARD" = "隱藏片尾畫面懸浮卡 (YTNoHoverCards)";
|
||||||
|
"HIDE_HOVER_CARD_DESC" = "在影片結尾隱藏創作者結束畫面。";
|
||||||
|
|
||||||
|
"HIDE_RIGHT_PANEL" = "在全螢幕下隱藏右側面板";
|
||||||
|
"HIDE_RIGHT_PANEL_DESC" = "需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
// Shorts controls overlay options
|
||||||
|
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "💥 Shorts 懸浮控制選項";
|
||||||
|
|
||||||
|
"HIDE_SUPER_THANKS" = "隱藏 '購買超級感謝' 橫幅";
|
||||||
|
"HIDE_SUPER_THANKS_DESC" = "在 Shorts 中隱藏 '購買超級感謝' 橫幅.";
|
||||||
|
|
||||||
|
"HIDE_SUBCRIPTIONS" = "隱藏訂閱按鈕";
|
||||||
|
"HIDE_SUBCRIPTIONS_DESC" = "隱藏當暫停時出現的訂閱按鈕。";
|
||||||
|
|
||||||
|
"DISABLE_RESUME_TO_SHORTS" = "停用恢復播放 Shorts";
|
||||||
|
"DISABLE_RESUME_TO_SHORTS_DESC" = "如果你在觀看 Shorts 時關閉程式,下次開啟程式時將不再自動播放 Shorts.";
|
||||||
|
|
||||||
|
// Miscellaneous
|
||||||
|
"MISCELLANEOUS" = "🔎 雜項";
|
||||||
|
|
||||||
|
"HIDE_UYOU" = "Hide uYou tab";
|
||||||
|
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button";
|
||||||
|
|
||||||
|
"CAST_CONFIRM" = "投放前確認 (YTCastConfirm)";
|
||||||
|
"CAST_CONFIRM_DESC" = "在投放前顯示確認訊息,以防止家人幹樵。";
|
||||||
|
"CASTING" = "投放中";
|
||||||
|
"MSG_ARE_YOU_SURE" = "是否開始投放?";
|
||||||
|
"MSG_YES" = "確定";
|
||||||
|
"MSG_CANCEL" = "取消";
|
||||||
|
|
||||||
|
"DISABLE_HINTS" = "停用提示";
|
||||||
|
"DISABLE_HINTS_DESC" = "停用初次安裝應用程式時顯示的功能提示。";
|
||||||
|
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
|
||||||
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
"HIDE_CHIP_BAR" = "隱藏上層欄位";
|
||||||
|
"HIDE_CHIP_BAR_DESC" = "隱藏主畫面上層欄位 (話題, 音樂, 遊戲...) 和訂閱對象動態 (所有影片, 繼續觀看...). 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE" = "Hide \"Play next in queue\"";
|
||||||
|
"HIDE_PLAY_NEXT_IN_QUEUE_DESC" = "";
|
||||||
|
|
||||||
|
"IPHONE_LAYOUT" = "iPhone 佈局";
|
||||||
|
"IPHONE_LAYOUT_DESC" = "切換使用iPhone佈局. 需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"NEW_MINIPLAYER_STYLE" = "迷你播放器 (BigYTMiniPlayer)";
|
||||||
|
"NEW_MINIPLAYER_STYLE_DESC" = "需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"YT_RE_EXPLORE" = "用探索分頁代替 Shorts 分頁 (YTReExplore)";
|
||||||
|
"YT_RE_EXPLORE_DESC" = "需要重新啟動應用程式。";
|
||||||
|
|
||||||
|
"ENABLE_FLEX" = "啟用 FLEX";
|
||||||
|
"ENABLE_FLEX_DESC" = "啟用 FLEX 供除錯 (不推薦)。 當你不知道你在幹嘛時請勿使用。";
|
||||||
|
|
||||||
|
"FIX_GOOGLE_SIGNIN" = "修復 Google 帳號登入問題(僅TrollStore 使用者有效)";
|
||||||
|
"FIX_GOOGLE_SIGNIN_DESC" = "僅在使用 TrollStore 安裝此應用程式時有效:啟用本設定後即可正常登入 Google 帳號,需要重新啟動應用程式。";
|
||||||
@@ -1,33 +1,75 @@
|
|||||||
TARGET = iphone:clang:latest:13.0
|
export TARGET = iphone:clang:latest:14.0
|
||||||
uYouPlus_USE_FLEX = 0
|
export ARCHS = arm64
|
||||||
uYouPlus_USE_FISHHOOK = 0
|
|
||||||
ARCHS = arm64
|
|
||||||
MODULES = jailed
|
|
||||||
FINALPACKAGE = 1
|
|
||||||
CODESIGN_IPA = 0
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef YOUTUBE_VERSION
|
||||||
|
YOUTUBE_VERSION = 19.02.1
|
||||||
|
endif
|
||||||
|
ifndef UYOU_VERSION
|
||||||
|
UYOU_VERSION = 3.0.1
|
||||||
|
endif
|
||||||
|
PACKAGE_VERSION = $(YOUTUBE_VERSION)-$(UYOU_VERSION)
|
||||||
|
|
||||||
|
INSTALL_TARGET_PROCESSES = YouTube
|
||||||
TWEAK_NAME = uYouPlus
|
TWEAK_NAME = uYouPlus
|
||||||
DISPLAY_NAME = YouTube
|
DISPLAY_NAME = YouTube
|
||||||
BUNDLE_ID = com.google.ios.youtube
|
BUNDLE_ID = com.google.ios.youtube
|
||||||
|
|
||||||
uYouPlus_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YoutubeSpeed.dylib
|
$(TWEAK_NAME)_FILES := $(wildcard Sources/*.xm) $(wildcard Sources/*.x)
|
||||||
uYouPlus_FILES = uYouPlus.xm Settings.xm
|
$(TWEAK_NAME)_FRAMEWORKS = UIKit Security
|
||||||
uYouPlus_IPA = ./tmp/Payload/YouTube.app
|
$(TWEAK_NAME)_CFLAGS = -fobjc-arc -DTWEAK_VERSION=\"$(PACKAGE_VERSION)\"
|
||||||
uYouPlus_FRAMEWORKS = UIKit
|
$(TWEAK_NAME)_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib $(THEOS_OBJ_DIR)/libFLEX.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib $(THEOS_OBJ_DIR)/IAmYouTube.dylib $(THEOS_OBJ_DIR)/YTClassicVideoQuality.dylib $(THEOS_OBJ_DIR)/NoYTPremium.dylib $(THEOS_OBJ_DIR)/YTSpeed.dylib
|
||||||
uYouPlus_CFLAGS = -fobjc-arc
|
$(TWEAK_NAME)_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib
|
||||||
|
$(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework
|
||||||
|
$(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Bundles/*.bundle)
|
||||||
|
$(TWEAK_NAME)_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex)
|
||||||
|
|
||||||
include $(THEOS)/makefiles/common.mk
|
include $(THEOS)/makefiles/common.mk
|
||||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
ifneq ($(JAILBROKEN),1)
|
||||||
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTSpeed
|
SUBPROJECTS += Tweaks/Alderis Tweaks/FLEXing/libflex Tweaks/iSponsorBlock Tweaks/Return-YouTube-Dislikes Tweaks/YouPiP Tweaks/YTABConfig Tweaks/YTUHD Tweaks/DontEatMyContent Tweaks/YTVideoOverlay Tweaks/YouMute Tweaks/YouQuality Tweaks/IAmYouTube Tweaks/YTClassicVideoQuality Tweaks/NoYTPremium Tweaks/YTSpeed
|
||||||
include $(THEOS_MAKE_PATH)/aggregate.mk
|
include $(THEOS_MAKE_PATH)/aggregate.mk
|
||||||
|
endif
|
||||||
|
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||||
|
|
||||||
|
REMOVE_EXTENSIONS = 1
|
||||||
|
CODESIGN_IPA = 0
|
||||||
|
|
||||||
|
UYOU_PATH = Tweaks/uYou
|
||||||
|
UYOU_DEB = $(UYOU_PATH)/com.miro.uyou_$(UYOU_VERSION)_iphoneos-arm.deb
|
||||||
|
UYOU_DYLIB = $(UYOU_PATH)/Library/MobileSubstrate/DynamicLibraries/uYou.dylib
|
||||||
|
UYOU_BUNDLE = $(UYOU_PATH)/Library/Application\ Support/uYouBundle.bundle
|
||||||
|
|
||||||
|
internal-clean::
|
||||||
|
@rm -rf $(UYOU_PATH)/*
|
||||||
|
|
||||||
|
ifneq ($(JAILBROKEN),1)
|
||||||
|
before-all::
|
||||||
|
@if [[ ! -f $(UYOU_DEB) ]]; then \
|
||||||
|
rm -rf $(UYOU_PATH)/*; \
|
||||||
|
$(PRINT_FORMAT_BLUE) "Downloading uYou"; \
|
||||||
|
fi
|
||||||
|
before-all::
|
||||||
|
@if [[ ! -f $(UYOU_DEB) ]]; then \
|
||||||
|
curl -s https://miro92.com/repo/debs/com.miro.uyou_$(UYOU_VERSION)_iphoneos-arm.deb -o $(UYOU_DEB); \
|
||||||
|
fi; \
|
||||||
|
if [[ ! -f $(UYOU_DYLIB) || ! -d $(UYOU_BUNDLE) ]]; then \
|
||||||
|
tar -xf Tweaks/uYou/com.miro.uyou_$(UYOU_VERSION)_iphoneos-arm.deb -C Tweaks/uYou; tar -xf Tweaks/uYou/data.tar* -C Tweaks/uYou; \
|
||||||
|
if [[ ! -f $(UYOU_DYLIB) || ! -d $(UYOU_BUNDLE) ]]; then \
|
||||||
|
$(PRINT_FORMAT_ERROR) "Failed to extract uYou"; exit 1; \
|
||||||
|
fi; \
|
||||||
|
fi;
|
||||||
|
else
|
||||||
before-package::
|
before-package::
|
||||||
@echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m"
|
@mkdir -p $(THEOS_STAGING_DIR)/Library/Application\ Support; cp -r Localizations/uYouPlus.bundle $(THEOS_STAGING_DIR)/Library/Application\ Support/
|
||||||
@mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \;
|
endif
|
||||||
@cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/
|
|
||||||
@cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/
|
|
||||||
@cp -R Tweaks/uYou/Library/Application\ Support/uYouBundle.bundle Resources/
|
|
||||||
@cp -R lang/uYouPlus.bundle Resources/
|
|
||||||
@echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m"
|
|
||||||
@codesign --remove-signature .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
|
|
||||||
|
|||||||
@@ -1,4 +1,28 @@
|
|||||||

|

|
||||||
|
***
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS%2014.0%2B-yellow" alt="Badge"/>
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus/wiki/FAQ"><img src="https://img.shields.io/badge/Question%3F-FAQ-yellow" alt="Badge"></img></a>
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus/wiki/FAQ"><img src="https://custom-icon-badges.demolab.com/badge/translate-blue.svg?logo=translate&logoColor=white" alt="Badge"></img></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus/releases/latest"><img src="https://custom-icon-badges.demolab.com/github/v/release/qnblackcat/uYouPlus?color=brightgreen&label=Latest%20release" alt="Badge"></img></a>
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus/releases/latest"><img src="https://img.shields.io/github/downloads/qnblackcat/uYouPlus/total?label=Download" alt="Badge"></img></a>
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus/commit"><img src="https://custom-icon-badges.demolab.com/github/last-commit/qnblackcat/uYouPlus?logo=history&logoColor=white&label=Last commit" alt="Badge"></img></a>
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus/issues"><img src="https://custom-icon-badges.demolab.com/github/issues-raw/qnblackcat/uYouPlus?logo=issue-opened&label=Issues" alt="Badge"></img></a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://img.shields.io/github/stars/qnblackcat/uYouPlus?style=social" alt="Badge"/>
|
||||||
|
<img src="https://img.shields.io/github/forks/qnblackcat/uYouPlus?style=social" alt="Badge"/>
|
||||||
|
<a href="https://github.com/qnblackcat/uYouPlus#support-the-developers"><img src="https://img.shields.io/badge/-Support-lightgrey?style=social&logo=paypal" alt="Badge"></img></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
# Table of Contents
|
# Table of Contents
|
||||||
|
|
||||||
@@ -12,26 +36,102 @@
|
|||||||
* [Building](#building-optional)
|
* [Building](#building-optional)
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
- Special thanks to all the developers who have contributed to uYouPlus!
|
||||||
|
|
||||||
- [MiRO92](https://twitter.com/miro92) for [uYou](https://github.com/MiRO92/uYou-for-YouTube).
|
<table id='credit'>
|
||||||
|
<tr>
|
||||||
- [Galactic-Dev](https://github.com/Galactic-Dev) and [Luewii](https://github.com/Luewii) for [iSponsorBlock](https://github.com/Galactic-Dev/iSponsorBlock) and [BigYTMiniPlayer](https://github.com/Galactic-Dev/BigYTMiniPlayer).
|
<td id='miro92'>
|
||||||
|
<a href='https://github.com/MiRO92'>
|
||||||
- [HASHBANG Productions](https://github.com/hbang) for [Alderis Color Picker](https://github.com/hbang/Alderis) - a dependency of iSponsorBlock.
|
<img src='https://github.com/MiRO92.png' width='140px;'>
|
||||||
|
</a>
|
||||||
- [PoomSmart](https://twitter.com/poomsmart) - the developer of many tweaks used by uYouPlus, see [Version info - Download](#download) for more details.
|
<h4 align='center'><a href='https://twitter.com/miro92'>MiRO92</a></h4>
|
||||||
|
</td>
|
||||||
- [level3tjg](https://twitter.com/level3tjg) for [YTNoHoverCards](https://github.com/level3tjg/YTNoHoverCards), [YTMiniplayerEnabler](https://github.com/level3tjg/YTMiniplayerEnabler) and many hot patches for uYou.
|
<td id='poomsmart'>
|
||||||
|
<a href='https://github.com/PoomSmart'>
|
||||||
- [BandarHL](https://twitter.com/bandarhl) for a bunch of improvements.
|
<img src='https://github.com/PoomSmart.png' width='140px;'>
|
||||||
|
</a>
|
||||||
- [Lyvendia](https://github.com/Lyvendia/) for [YTSpeed](https://github.com/Lyvendia/YTSpeed/)
|
<h4 align='center'><a href='https://twitter.com/poomsmart'>PoomSmart</a></h4>
|
||||||
|
</td>
|
||||||
- [YouTube Extensions](https://github.com/CokePokes/YoutubeExtensions) by [CokePokes](https://github.com/CokePokes/).
|
<td id='level3tjg'>
|
||||||
|
<a href='https://github.com/level3tjg'>
|
||||||
- [theos team](https://github.com/theos/theos) for theos & theos-jailed.
|
<img src='https://github.com/level3tjg.png' width='140px;'>
|
||||||
|
</a>
|
||||||
- Thanks to all the translators who have contributed to uYouPlus. Your contribution is highly appreciated!
|
<h4 align='center'><a href='https://twitter.com/level3tjg'>level3tjg</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='bandarHL'>
|
||||||
|
<a href='https://github.com/BandarHL'>
|
||||||
|
<img src='https://github.com/BandarHL.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/bandarhl'>BandarHelal</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='galactic-dev'>
|
||||||
|
<a href='https://github.com/Galactic-Dev'>
|
||||||
|
<img src='https://github.com/Galactic-Dev.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/dev_galactic'>galactic</a></h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td id='julioverne'>
|
||||||
|
<a href='https://github.com/julioverne'>
|
||||||
|
<img src='https://github.com/julioverne.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/ijulioverne'>julioverne</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='hbang'>
|
||||||
|
<a href='https://github.com/hbang'>
|
||||||
|
<img src='https://github.com/hbang.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/hashbang'>HASHBANG</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='lyvendia'>
|
||||||
|
<a href='https://github.com/Lyvendia'>
|
||||||
|
<img src='https://github.com/Lyvendia.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://github.com/Lyvendia'>Lyvendia</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='foxster'>
|
||||||
|
<a href='https://github.com/therealFoxster'>
|
||||||
|
<img src='https://github.com/therealFoxster.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/therealFoxster'>Foxster</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='ichitaso'>
|
||||||
|
<a href='https://github.com/ichitaso'>
|
||||||
|
<img src='https://github.com/ichitaso.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/ichitaso'>ichitaso</a></h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td id='ahmed-bafkir'>
|
||||||
|
<a href='https://github.com/AhmedBafkir'>
|
||||||
|
<img src='https://github.com/AhmedBafkir.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/Peaceful_0'>Ahmed Bafkir</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='cokepokes'>
|
||||||
|
<a href='https://github.com/CokePokes'>
|
||||||
|
<img src='https://github.com/CokePokes.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://twitter.com/cokepokes'>CokePokes</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='isnackable'>
|
||||||
|
<a href='https://github.com/ISnackable'>
|
||||||
|
<img src='https://github.com/ISnackable.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://isnackable.me/'>Tommy Teo</a></h4>
|
||||||
|
</td>
|
||||||
|
<td id='theos-team'>
|
||||||
|
<a href='https://github.com/theos/theos'>
|
||||||
|
<img src='https://github.com/theos.png' width='140px;'>
|
||||||
|
</a>
|
||||||
|
<h4 align='center'><a href='https://theos.dev'>theos</a></h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
@@ -46,105 +146,91 @@
|
|||||||
<details>
|
<details>
|
||||||
<summary>And many more...!</summary>
|
<summary>And many more...!</summary>
|
||||||
|
|
||||||
5. **YTAutoFullScreen:** autoplay videos at full screen.
|
5. **YTClassicVideoQuality:** since YouTube v16.xx, you need one more step to change the video quality. YTClassicVideoQuality brings back the old video quality selector, which is a lot better than the new one.
|
||||||
|
|
||||||
6. **YTClassicVideoQuality:** since YouTube v16.xx, you need one more step to change the video quality. YTClassicVideoQuality brings back the old video quality selector, which is a lot better than the new one.
|
6. **YTNoHoverCards:** offer an option to enable/disable the annoying suggested videos show up at the end of the videos.
|
||||||
|
|
||||||
7. **YTNoHoverCards:** offer an option to enable/disable the annoying suggested videos show up at the end of the videos.
|
7. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
|
||||||
|
|
||||||
8. **YTNoCheckLocalNetwork**: block the Local Network permission popup.
|
8. **NoYTPremium**: remove YouTube Premium upsells.
|
||||||
|
|
||||||
9. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
|
9. **YTSpeed**: add 2.25, 2.5, 2.75, and 3x playback speed
|
||||||
|
|
||||||
10. **NoYTPremium**: remove YouTube Premium upshells.
|
10. **YTMiniplayerEnabler**: enable Miniplayer for all YouTube videos.
|
||||||
|
|
||||||
11. **YTSpeed**: add 2.25, 2.5, 2.75, and 3x playback speed
|
11. **DontEatMyContent**: prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube.
|
||||||
|
|
||||||
12. **YTMiniplayerEnabler**: enable Miniplayer for all YouTube videos.
|
12. **YTABConfig**: allow user to control over YouTube A/B testing flags.
|
||||||
|
|
||||||
|
13. **YouMute**: mute YouTube videos via a button.
|
||||||
|
|
||||||
|
14. **YouQuality**: change video quality via a button.
|
||||||
|
|
||||||
|
15. **YTVideoOverlay**: add buttons to overlay the video.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
# Known issues
|
# Known issues
|
||||||
|
|
||||||
- **uYou**: all known-issues of uYou are listed [here](https://github.com/MiRO92/uYou-for-YouTube/issues). Make sure you take a look at it before reporting any bugs! ***Also, keep in mind that uYou+ is a modified version of uYou, DO NOT bother MiRO92 with problems unrelated to uYou!!!***
|
- **uYou**: all the known-issues of uYou are listed [here](https://github.com/MiRO92/uYou-for-YouTube/issues). Make sure you take a look at it before reporting any bugs! ***Also, keep in mind that uYou+ is a modified version of uYou, DO NOT bother MiRO92 with problems unrelated to uYou!!!***
|
||||||
|
|
||||||
- Issues that related to **uYouPlus** are [here](https://github.com/qnblackcat/uYouPlus/issues/)
|
- Issues that related to **uYouPlus** are [here](https://github.com/qnblackcat/uYouPlus/issues/)
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
|
|
||||||
- **uYouPlus** (or you can call it uYou+) requires iOS or iPadOS 13.0 or later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases).
|
- **uYouPlus** (or you can call it uYou+) requires iOS or iPadOS 14.0 or later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases/latest).
|
||||||
|
|
||||||
- For AltStore user:
|
<!-- - For AltStore user:
|
||||||
|
|
||||||
- My official AltStore repo: https://qnblackcat.github.io/AltStore/
|
- My official AltStore repo: https://qnblackcat.github.io/AltStore/
|
||||||
|
|
||||||
- [Open in AltStore (v17.31.4-2.1)](https://tinyurl.com/2p99amjz) - It will take a while to install because AltStore needs to download the IPA.
|
- [Open in AltStore (v18.14.1-3.0)](https://tinyurl.com/yv6wrxjz) - It will take a while to install because AltStore needs to download the IPA first. -->
|
||||||
|
|
||||||
- Version info: _(last update: Aug 12)_
|
- Version info: _(last update: Aug 5)_
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand</summary>
|
<summary>Expand ℹ️</summary>
|
||||||
|
|
||||||
| **Tweaks/App** | **Developer** | **Version** | **Open source** |
|
| **Tweaks/App** | **Developer** | **Version** | **Open source** |
|
||||||
| - | - | :-: | :-: |
|
| - | - | :-: | :-: |
|
||||||
| **YouTube** | Google Inc | 17.31.4 | ✖︎ |
|
| **YouTube** | Google Inc | 18.30.7 | ✖︎ |
|
||||||
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | [MiRO92](https://twitter.com/miro92) | 2.1 | ✖︎ |
|
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | [MiRO92](https://twitter.com/miro92) | 3.0 | ✖︎ |
|
||||||
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions) | [CokePokes](https://github.com/CokePokes) | 1.2 | ✖︎ |
|
| **Open in YouTube** | [CokePokes](https://github.com/CokePokes) | 1.2 | [✔︎](https://github.com/CokePokes/YoutubeExtensions) |
|
||||||
| **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-15 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
| **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-15 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
||||||
| **BigYTMiniPlayer** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
|
| **BigYTMiniPlayer** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
|
||||||
| **YTNoHoverCards** | [level3tjg](https://twitter.com/level3tjg) | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
| **YTNoHoverCards** | [level3tjg](https://twitter.com/level3tjg) | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
||||||
| **YTMiniplayerEnabler** | [level3tjg](https://twitter.com/level3tjg) | 0.0.2 | [✔︎](https://github.com/level3tjg/YTMiniplayerEnabler) |
|
| **YTMiniplayerEnabler** | [level3tjg](https://twitter.com/level3tjg) | 0.0.2 | [✔︎](https://github.com/level3tjg/YTMiniplayerEnabler) |
|
||||||
|
| **DontEatMyContent** | [therealFoxster](https://github.com/therealFoxster) | 1.0.6 | [✔︎](https://github.com/therealFoxster/DontEatMyContent) |
|
||||||
| **YTSpeed** | [Lyvendia](https://github.com/Lyvendia) | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
| **YTSpeed** | [Lyvendia](https://github.com/Lyvendia) | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
||||||
| **YTCastConfirm** | [JamieBerghmans](https://github.com/JamieBerghmans) | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) |
|
| **YTCastConfirm** | [JamieBerghmans](https://github.com/JamieBerghmans) | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) |
|
||||||
| **Alderis Color Picker** | [HASHBANG Productions](https://github.com/hbang) | 1.2| [✔︎](https://github.com/hbang/Alderis) |
|
| **Alderis Color Picker** | [HASHBANG Productions](https://github.com/hbang) | 1.2| [✔︎](https://github.com/hbang/Alderis) |
|
||||||
| **YTUHD** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.9 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
| **YTUHD** | [PoomSmart](https://twitter.com/poomsmart) | 1.3.5-1 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
||||||
| **YouPiP** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.7 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
| **YouPiP** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.19-1 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
||||||
| **IAmYouTube** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
|
| **IAmYouTube** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
|
||||||
|
| **YTABConfig** | [PoomSmart](https://twitter.com/poomsmart) | 1.5.0 | [✔︎](https://github.com/PoomSmart/YTABConfig) |
|
||||||
| **YTReExplore** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
| **YTReExplore** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
||||||
| **NoYTPremium** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) |
|
| **NoYTPremium** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) |
|
||||||
| **YTNoPaidPromo** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://github.com/PoomSmart/YTNoPaidPromo) |
|
| **YTNoPaidPromo** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://github.com/PoomSmart/YTNoPaidPromo) |
|
||||||
| **YTAutoFullScreen** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen) |
|
|
||||||
| **YouRememberCaption** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
| **YouRememberCaption** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
||||||
| **YTClassicVideoQuality** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
|
| **Return YouTube Dislike** | [PoomSmart](https://twitter.com/poomsmart) | 1.11.3 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
||||||
| **Return YouTube Dislike** | [PoomSmart](https://twitter.com/poomsmart) | 1.6.6 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
| **YouMute** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.1-2 | [✔︎](https://github.com/PoomSmart/YouMute) |
|
||||||
| **YTNoCheckLocalNetwork** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
|
| **YouQuality** | [PoomSmart](https://twitter.com/poomsmart) | 1.1.4 | [✔︎](https://github.com/PoomSmart/YouQuality) |
|
||||||
|
| **YTVideoOverlay** | [PoomSmart](https://twitter.com/poomsmart) | 1.1.0-2 | [✔︎](https://github.com/PoomSmart/YTVideoOverlay) |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installation)
|
See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installation).
|
||||||
|
|
||||||
# Support the developers
|
# Support the developers
|
||||||
|
- [**MiRO92**](https://twitter.com/miro92): https://github.com/MiRO92/uYou-for-YouTube#support
|
||||||
<details>
|
- [**Poomsmart**](https://twitter.com/poomsmart): https://poomsmart.github.io
|
||||||
<summary>MiRO92</summary>
|
- [**level3tjg**](https://twitter.com/level3tjg): https://ko-fi.com/level3tjg
|
||||||
|
- [**BandarHL**](https://twitter.com/bandarhl): https://www.paypal.com/paypalme/BandarHL
|
||||||
- CashApp: https://cash.app/$MiRO92M
|
- [**julioverne**](https://twitter.com/ijulioverne): https://www.patreon.com/julioverne
|
||||||
|
- [**Galactic-dev**](https://twitter.com/dev_galactic):
|
||||||
- Other payment methods are available in uYou's settings.
|
- Paypal: https://www.paypal.com/paypalme/DBrett684
|
||||||
</details>
|
- Venmo: https://venmo.com/u/DavidBrett
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>PoomSmart</summary>
|
|
||||||
|
|
||||||
- Paypal: https://poomsmart.github.io/
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Bandar Alruwaili (BandarHL)</summary>
|
|
||||||
|
|
||||||
- Paypal: https://www.paypal.com/paypalme/BandarHL
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Galactic-dev</summary>
|
|
||||||
|
|
||||||
- Paypal: https://www.paypal.com/paypalme/DBrett684
|
|
||||||
|
|
||||||
- Venmo: https://venmo.com/u/DavidBrett
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
# FAQ
|
# FAQ
|
||||||
|
|
||||||
|
|||||||
-182
@@ -1,182 +0,0 @@
|
|||||||
#import "Tweaks/YouTubeHeader/YTSettingsViewController.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
|
|
||||||
#import "Header.h"
|
|
||||||
|
|
||||||
@interface YTSettingsSectionItemManager (YouPiP)
|
|
||||||
- (void)updateuYouPlusSectionWithEntry:(id)entry;
|
|
||||||
@end
|
|
||||||
|
|
||||||
static const NSInteger uYouPlusSection = 500;
|
|
||||||
|
|
||||||
extern NSBundle *uYouPlusBundle();
|
|
||||||
extern BOOL hideHUD();
|
|
||||||
extern BOOL oled();
|
|
||||||
extern BOOL oledKB();
|
|
||||||
extern BOOL autoFullScreen();
|
|
||||||
extern BOOL hideHoverCard();
|
|
||||||
extern BOOL reExplore();
|
|
||||||
extern BOOL bigYTMiniPlayer();
|
|
||||||
extern BOOL hideCC();
|
|
||||||
extern BOOL hideAutoplaySwitch();
|
|
||||||
extern BOOL castConfirm();
|
|
||||||
extern BOOL ytMiniPlayer();
|
|
||||||
extern BOOL hidePreviousAndNextButton();
|
|
||||||
extern BOOL hidePaidPromotionCard();
|
|
||||||
|
|
||||||
// Settings
|
|
||||||
%hook YTAppSettingsPresentationData
|
|
||||||
+ (NSArray *)settingsCategoryOrder {
|
|
||||||
NSArray *order = %orig;
|
|
||||||
NSMutableArray *mutableOrder = [order mutableCopy];
|
|
||||||
NSUInteger insertIndex = [order indexOfObject:@(1)];
|
|
||||||
if (insertIndex != NSNotFound)
|
|
||||||
[mutableOrder insertObject:@(uYouPlusSection) atIndex:insertIndex + 1];
|
|
||||||
return mutableOrder;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTSettingsSectionItemManager
|
|
||||||
%new
|
|
||||||
- (void)updateuYouPlusSectionWithEntry:(id)entry {
|
|
||||||
YTSettingsViewController *delegate = [self valueForKey:@"_dataDelegate"];
|
|
||||||
NSBundle *tweakBundle = uYouPlusBundle();
|
|
||||||
|
|
||||||
YTSettingsSectionItem *killApp = [%c(YTSettingsSectionItem) // https://github.com/PoomSmart/YTABConfig/blob/b74d7f28151c407cffc21cce12908c49e9e65999/Tweak.x#L76
|
|
||||||
itemWithTitle:LOC(@"KILL_APP")
|
|
||||||
titleDescription:LOC(@"KILL_APP_DESC")
|
|
||||||
accessibilityIdentifier:nil
|
|
||||||
detailTextBlock:nil
|
|
||||||
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
|
||||||
exit(0);
|
|
||||||
}];
|
|
||||||
|
|
||||||
YTSettingsSectionItem *hidePaidPromotionCard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_PAID_PROMOTION_CARDS") titleDescription:LOC(@"HIDE_PAID_PROMOTION_CARDS_DESC")];
|
|
||||||
hidePaidPromotionCard.hasSwitch = YES;
|
|
||||||
hidePaidPromotionCard.switchVisible = YES;
|
|
||||||
hidePaidPromotionCard.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePaidPromotionCard_enabled"];
|
|
||||||
hidePaidPromotionCard.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hidePaidPromotionCard_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *hidePreviousAndNextButton = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON") titleDescription:LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC")];
|
|
||||||
hidePreviousAndNextButton.hasSwitch = YES;
|
|
||||||
hidePreviousAndNextButton.switchVisible = YES;
|
|
||||||
hidePreviousAndNextButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePreviousAndNextButton_enabled"];
|
|
||||||
hidePreviousAndNextButton.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hidePreviousAndNextButton_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *ytMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"YT_MINIPLAYER") titleDescription:LOC(@"YT_MINIPLAYER_DESC")];
|
|
||||||
ytMiniPlayer.hasSwitch = YES;
|
|
||||||
ytMiniPlayer.switchVisible = YES;
|
|
||||||
ytMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"ytMiniPlayer_enabled"];
|
|
||||||
ytMiniPlayer.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytMiniPlayer_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *castConfirm = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"CAST_CONFIRM") titleDescription:LOC(@"CAST_CONFIRM_DESC")];
|
|
||||||
castConfirm.hasSwitch = YES;
|
|
||||||
castConfirm.switchVisible = YES;
|
|
||||||
castConfirm.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"castConfirm_enabled"];
|
|
||||||
castConfirm.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"castConfirm_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *hideHoverCard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_HOVER_CARD") titleDescription:LOC(@"HIDE_HOVER_CARD_DESC")];
|
|
||||||
hideHoverCard.hasSwitch = YES;
|
|
||||||
hideHoverCard.switchVisible = YES;
|
|
||||||
hideHoverCard.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHoverCards_enabled"];
|
|
||||||
hideHoverCard.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHoverCards_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *bigYTMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"NEW_MINIPLAYER_STYLE") titleDescription:LOC(@"NEW_MINIPLAYER_STYLE_DESC")];
|
|
||||||
bigYTMiniPlayer.hasSwitch = YES;
|
|
||||||
bigYTMiniPlayer.switchVisible = YES;
|
|
||||||
bigYTMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"];
|
|
||||||
bigYTMiniPlayer.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"bigYTMiniPlayer_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *reExplore = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"YT_RE_EXPLORE") titleDescription:LOC(@"YT_RE_EXPLORE_DESC")];
|
|
||||||
reExplore.hasSwitch = YES;
|
|
||||||
reExplore.switchVisible = YES;
|
|
||||||
reExplore.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"];
|
|
||||||
reExplore.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"reExplore_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *hideCC = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_SUBTITLES_BUTTON") titleDescription:LOC(@"HIDE_SUBTITLES_BUTTON_DESC")];
|
|
||||||
hideCC.hasSwitch = YES;
|
|
||||||
hideCC.switchVisible = YES;
|
|
||||||
hideCC.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideCC_enabled"];
|
|
||||||
hideCC.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCC_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *hideAutoplaySwitch = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_AUTOPLAY_SWITCH") titleDescription:LOC(@"HIDE_AUTOPLAY_SWITCH_DESC")];
|
|
||||||
hideAutoplaySwitch.hasSwitch = YES;
|
|
||||||
hideAutoplaySwitch.switchVisible = YES;
|
|
||||||
hideAutoplaySwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideAutoplaySwitch_enabled"];
|
|
||||||
hideAutoplaySwitch.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideAutoplaySwitch_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *autoFull = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"AUTO_FULLSCREEN") titleDescription:LOC(@"AUTO_FULLSCREEN_DESC")];
|
|
||||||
autoFull.hasSwitch = YES;
|
|
||||||
autoFull.switchVisible = YES;
|
|
||||||
autoFull.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoFull_enabled"];
|
|
||||||
autoFull.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"autoFull_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *hideHUD = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_HUD_MESSAGES") titleDescription:LOC(@"HIDE_HUD_MESSAGES_DESC")];
|
|
||||||
hideHUD.hasSwitch = YES;
|
|
||||||
hideHUD.switchVisible = YES;
|
|
||||||
hideHUD.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
|
|
||||||
hideHUD.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHUD_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *oledDarkMode = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"OLED_DARKMODE") titleDescription:LOC(@"OLED_DARKMODE_DESC")];
|
|
||||||
oledDarkMode.hasSwitch = YES;
|
|
||||||
oledDarkMode.switchVisible = YES;
|
|
||||||
oledDarkMode.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
|
|
||||||
oledDarkMode.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oled_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
YTSettingsSectionItem *oledKeyBoard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"OLED_KEYBOARD") titleDescription:LOC(@"OLED_KEYBOARD_DESC")];
|
|
||||||
oledKeyBoard.hasSwitch = YES;
|
|
||||||
oledKeyBoard.switchVisible = YES;
|
|
||||||
oledKeyBoard.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oledKeyBoard_enabled"];
|
|
||||||
oledKeyBoard.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oledKeyBoard_enabled"];
|
|
||||||
return YES;
|
|
||||||
};
|
|
||||||
|
|
||||||
NSMutableArray <YTSettingsSectionItem *> *sectionItems = [NSMutableArray arrayWithArray:@[killApp, autoFull, castConfirm, ytMiniPlayer, hideAutoplaySwitch, hideCC, hideHUD, hidePaidPromotionCard, hidePreviousAndNextButton, hideHoverCard, bigYTMiniPlayer, oledDarkMode, oledKeyBoard, reExplore]];
|
|
||||||
[delegate setSectionItems:sectionItems forCategory:uYouPlusSection title:@"uYouPlus" titleDescription:nil headerHidden:NO];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateSectionForCategory:(NSUInteger)category withEntry:(id)entry {
|
|
||||||
if (category == uYouPlusSection) {
|
|
||||||
[self updateuYouPlusSectionWithEntry:entry];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
@interface YTMainAppVideoPlayerOverlayView : UIView
|
||||||
|
- (UIViewController *)_viewControllerForAncestor;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTWatchMiniBarView : UIView
|
||||||
|
@end
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#import "BigYTMiniPlayer.h"
|
||||||
|
|
||||||
|
%group BigYTMiniPlayer // https://github.com/Galactic-Dev/BigYTMiniPlayer
|
||||||
|
%hook YTWatchMiniBarView
|
||||||
|
- (void)setWatchMiniPlayerLayout:(int)arg1 {
|
||||||
|
%orig(1);
|
||||||
|
}
|
||||||
|
- (int)watchMiniPlayerLayout {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
- (void)layoutSubviews {
|
||||||
|
%orig;
|
||||||
|
self.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width - self.frame.size.width), self.frame.origin.y, self.frame.size.width, self.frame.size.height);
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTMainAppVideoPlayerOverlayView
|
||||||
|
- (BOOL)isUserInteractionEnabled {
|
||||||
|
if([[self _viewControllerForAncestor].parentViewController.parentViewController isKindOfClass:%c(YTWatchMiniBarViewController)]) {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
return %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
%ctor {
|
||||||
|
if (IS_ENABLED(@"bigYTMiniPlayer_enabled") && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) {
|
||||||
|
%init(BigYTMiniPlayer);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#import "../Tweaks/YouTubeHeader/YTAlertView.h"
|
||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
extern NSBundle *uYouPlusBundle();
|
||||||
|
|
||||||
|
// YTCastConfirm: https://github.com/JamieBerghmans/YTCastConfirm
|
||||||
|
%hook MDXPlaybackRouteButtonController
|
||||||
|
- (void)didPressButton:(id)arg1 {
|
||||||
|
if (IS_ENABLED(@"castConfirm_enabled")) {
|
||||||
|
NSBundle *tweakBundle = uYouPlusBundle();
|
||||||
|
YTAlertView *alertView = [%c(YTAlertView) confirmationDialogWithAction:^{
|
||||||
|
%orig;
|
||||||
|
} actionTitle:LOC(@"MSG_YES")];
|
||||||
|
alertView.title = LOC(@"CASTING");
|
||||||
|
alertView.subtitle = LOC(@"MSG_ARE_YOU_SURE");
|
||||||
|
[alertView show];
|
||||||
|
} else {
|
||||||
|
return %orig;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
// YTMiniPlayerEnabler: https://github.com/level3tjg/YTMiniplayerEnabler/
|
||||||
|
%hook YTWatchMiniBarViewController
|
||||||
|
- (void)updateMiniBarPlayerStateFromRenderer {
|
||||||
|
if (IS_ENABLED(@"ytMiniPlayer_enabled")) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
// YTNoHoverCards: https://github.com/level3tjg/YTNoHoverCards
|
||||||
|
%hook YTCreatorEndscreenView
|
||||||
|
- (void)setHidden:(BOOL)hidden {
|
||||||
|
if (IS_ENABLED(@"hideHoverCards_enabled"))
|
||||||
|
hidden = YES;
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#import "../Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h"
|
||||||
|
#import "../Tweaks/YouTubeHeader/YTPlayerOverlay.h"
|
||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
// YTNoPaidPromo: https://github.com/PoomSmart/YTNoPaidPromo
|
||||||
|
%hook YTMainAppVideoPlayerOverlayViewController
|
||||||
|
- (void)setPaidContentWithPlayerData:(id)data {
|
||||||
|
if (IS_ENABLED(@"hidePaidPromotionCard_enabled")) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
- (void)playerOverlayProvider:(YTPlayerOverlayProvider *)provider didInsertPlayerOverlay:(YTPlayerOverlay *)overlay {
|
||||||
|
if ([[overlay overlayIdentifier] isEqualToString:@"player_overlay_paid_content"] && IS_ENABLED(@"hidePaidPromotionCard_enabled")) return;
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTInlineMutedPlaybackPlayerOverlayViewController
|
||||||
|
- (void)setPaidContentWithPlayerData:(id)data {
|
||||||
|
if (IS_ENABLED(@"hidePaidPromotionCard_enabled")) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#import "../Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
||||||
|
#import "../Tweaks/YouTubeHeader/YTIGuideResponse.h"
|
||||||
|
#import "../Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h"
|
||||||
|
#import "../Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
%group YTReExplore // https://github.com/PoomSmart/YTReExplore/
|
||||||
|
static void replaceTab(YTIGuideResponse *response) {
|
||||||
|
NSMutableArray <YTIGuideResponseSupportedRenderers *> *renderers = [response itemsArray];
|
||||||
|
for (YTIGuideResponseSupportedRenderers *guideRenderers in renderers) {
|
||||||
|
YTIPivotBarRenderer *pivotBarRenderer = [guideRenderers pivotBarRenderer];
|
||||||
|
NSMutableArray <YTIPivotBarSupportedRenderers *> *items = [pivotBarRenderer itemsArray];
|
||||||
|
NSUInteger shortIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
||||||
|
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:@"FEshorts"];
|
||||||
|
}];
|
||||||
|
if (shortIndex != NSNotFound) {
|
||||||
|
[items removeObjectAtIndex:shortIndex];
|
||||||
|
NSUInteger exploreIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
||||||
|
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:[%c(YTIBrowseRequest) browseIDForExploreTab]];
|
||||||
|
}];
|
||||||
|
if (exploreIndex == NSNotFound) {
|
||||||
|
YTIPivotBarSupportedRenderers *exploreTab = [%c(YTIPivotBarRenderer) pivotSupportedRenderersWithBrowseId:[%c(YTIBrowseRequest) browseIDForExploreTab] title:@"Explore" iconType:292];
|
||||||
|
[items insertObject:exploreTab atIndex:1];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%hook YTGuideServiceCoordinator
|
||||||
|
- (void)handleResponse:(YTIGuideResponse *)response withCompletion:(id)completion {
|
||||||
|
replaceTab(response);
|
||||||
|
%orig(response, completion);
|
||||||
|
}
|
||||||
|
- (void)handleResponse:(YTIGuideResponse *)response error:(id)error completion:(id)completion {
|
||||||
|
replaceTab(response);
|
||||||
|
%orig(response, error, completion);
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
%ctor {
|
||||||
|
if (IS_ENABLED(@"reExplore_enabled")) {
|
||||||
|
%init(YTReExplore);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
%group YTStockVolumeHUD // https://github.com/lilacvibes/YTStockVolumeHUD
|
||||||
|
%hook YTVolumeBarView
|
||||||
|
- (void)volumeChanged:(id)arg1 {
|
||||||
|
%orig(nil);
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIApplication
|
||||||
|
- (void)setSystemVolumeHUDEnabled:(BOOL)arg1 forAudioCategory:(id)arg2 {
|
||||||
|
%orig(true, arg2);
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
%ctor {
|
||||||
|
if (IS_ENABLED(@"stockVolumeHUD_enabled")) {
|
||||||
|
%init(YTStockVolumeHUD);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <objc/runtime.h>
|
||||||
|
#import <dlfcn.h>
|
||||||
|
#import <sys/utsname.h>
|
||||||
|
#import <substrate.h>
|
||||||
|
#import <rootless.h>
|
||||||
|
|
||||||
|
#import "uYouPlusThemes.h" // Hide "Buy Super Thanks" banner (_ASDisplayView)
|
||||||
|
#import "../Tweaks/YouTubeHeader/YTAppDelegate.h" // Activate FLEX
|
||||||
|
// #import "../Tweaks/YouTubeHeader/YTISectionListRenderer.h" // Hide search ads by @PoomSmart - https://github.com/PoomSmart/YouTube-X
|
||||||
|
|
||||||
|
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
|
||||||
|
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
|
||||||
|
#define APP_THEME_IDX [[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"]
|
||||||
|
|
||||||
|
// Disable snap to chapter
|
||||||
|
@interface YTSegmentableInlinePlayerBarView
|
||||||
|
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hide autoplay switch / CC button
|
||||||
|
@interface YTMainAppControlsOverlayView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Skips content warning before playing *some videos - @PoomSmart
|
||||||
|
@interface YTPlayabilityResolutionUserActionUIController : NSObject
|
||||||
|
- (void)confirmAlertDidPressConfirm;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hide iSponsorBlock
|
||||||
|
@interface YTRightNavigationButtons : UIView
|
||||||
|
@property (nonatomic, readwrite, strong) UIView *sponsorBlockButton;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Hide YouTube annoying banner in Home page? - @MiRO92 - YTNoShorts: https://github.com/MiRO92/YTNoShorts
|
||||||
|
@interface _ASCollectionViewCell : UICollectionViewCell
|
||||||
|
- (id)node;
|
||||||
|
@end
|
||||||
|
@interface YTAsyncCollectionView : UICollectionView
|
||||||
|
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath;
|
||||||
|
@end
|
||||||
@@ -0,0 +1,346 @@
|
|||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
// Tweak's bundle for Localizations support - @PoomSmart - https://github.com/PoomSmart/YouPiP/commit/aea2473f64c75d73cab713e1e2d5d0a77675024f
|
||||||
|
NSBundle *uYouPlusBundle() {
|
||||||
|
static NSBundle *bundle = nil;
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
NSString *tweakBundlePath = [[NSBundle mainBundle] pathForResource:@"uYouPlus" ofType:@"bundle"];
|
||||||
|
if (tweakBundlePath)
|
||||||
|
bundle = [NSBundle bundleWithPath:tweakBundlePath];
|
||||||
|
else
|
||||||
|
bundle = [NSBundle bundleWithPath:ROOT_PATH_NS(@"/Library/Application Support/uYouPlus.bundle")];
|
||||||
|
});
|
||||||
|
return bundle;
|
||||||
|
}
|
||||||
|
NSBundle *tweakBundle = uYouPlusBundle();
|
||||||
|
|
||||||
|
# pragma mark - App appearance
|
||||||
|
// See uYouPlusThemes.xm
|
||||||
|
|
||||||
|
# pragma mark - Video player options
|
||||||
|
// Bring back Slide to seek - https://github.com/PoomSmart/YTABConfig/discussions/95#discussioncomment-8166019
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)speedMasterArm2FastForwardWithoutSeekBySliding {
|
||||||
|
return IS_ENABLED(@"slideToSeek_enabled") ? NO : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Disable double tap to seek
|
||||||
|
%hook YTDoubleTapToSeekController
|
||||||
|
- (void)enableDoubleTapToSeek:(BOOL)arg1 {
|
||||||
|
return IS_ENABLED(@"doubleTapToSeek_disabled") ? %orig(NO) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Disable snap to chapter
|
||||||
|
%hook YTSegmentableInlinePlayerBarView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_ENABLED(@"snapToChapter_enabled")) {
|
||||||
|
self.enableSnapToChapter = NO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Disable pinch to zoom
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)videoZoomFreeZoomEnabledGlobalConfig {
|
||||||
|
return IS_ENABLED(@"pinchToZoom_enabled") ? NO : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Enable miniplayer for all videos
|
||||||
|
// See YTMiniPlayerEnabler.x
|
||||||
|
|
||||||
|
// Use stock iOS volume HUD
|
||||||
|
// See YTStockVolumeHUD.xm
|
||||||
|
|
||||||
|
# pragma mark - Video control overlay options
|
||||||
|
|
||||||
|
%hook YTMainAppControlsOverlayView
|
||||||
|
// Hide autoplay switch
|
||||||
|
- (void)setAutoplaySwitchButtonRenderer:(id)arg1 { // hide Autoplay
|
||||||
|
if (IS_ENABLED(@"hideAutoplaySwitch_enabled")) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
// Hide CC button
|
||||||
|
- (void)setClosedCaptionsOrSubtitlesButtonAvailable:(BOOL)arg1 {
|
||||||
|
return IS_ENABLED(@"hideCC_enabled") ? %orig(NO) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide HUD Messages
|
||||||
|
%hook YTHUDMessageView
|
||||||
|
- (id)initWithMessage:(id)arg1 dismissHandler:(id)arg2 {
|
||||||
|
return IS_ENABLED(@"hideHUD_enabled") ? nil : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide paid promotion banner
|
||||||
|
// See YTNoPaidPromo.x
|
||||||
|
|
||||||
|
// Hide channel watermark
|
||||||
|
%hook YTAnnotationsViewController
|
||||||
|
- (void)loadFeaturedChannelWatermark {
|
||||||
|
if (IS_ENABLED(@"hideChannelWatermark_enabled")) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide next and previous buttons
|
||||||
|
%group gHidePreviousAndNextButton
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)removeNextPaddleForSingletonVideos { return YES; }
|
||||||
|
- (BOOL)removePreviousPaddleForSingletonVideos { return YES; }
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Replace next and previous buttons with fast forward and rewind
|
||||||
|
%group gReplacePreviousAndNextButton
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)replaceNextPaddleWithFastForwardButtonForSingletonVods { return YES; }
|
||||||
|
- (BOOL)replacePreviousPaddleWithRewindButtonForSingletonVods { return YES; }
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Bring back the red progress bar - Broken?!
|
||||||
|
%hook YTInlinePlayerBarContainerView
|
||||||
|
- (id)quietProgressBarColor {
|
||||||
|
return IS_ENABLED(@"redProgressBar_enabled") ? [UIColor redColor] : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide videos' end screens
|
||||||
|
// See YTNoHoverCards.x
|
||||||
|
|
||||||
|
// Hide engagement panels in full screen
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)isLandscapeEngagementPanelEnabled {
|
||||||
|
return IS_ENABLED(@"hideRightPanel_enabled") ? NO : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Skips content warning before playing *some videos - @PoomSmart
|
||||||
|
%hook YTPlayabilityResolutionUserActionUIController
|
||||||
|
- (void)showConfirmAlert { [self confirmAlertDidPressConfirm]; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
# pragma mark - Shorts controls overlay options
|
||||||
|
|
||||||
|
// Hide "Buy Super Thanks" banner
|
||||||
|
%hook _ASDisplayView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if ((IS_ENABLED(@"hideBuySuperThanks_enabled")) && ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.suggested_action"])) {
|
||||||
|
self.hidden = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide subscriptions button
|
||||||
|
%hook YTReelWatchRootViewController
|
||||||
|
- (void)setPausedStateCarouselView {
|
||||||
|
if (IS_ENABLED(@"hideSubcriptions_enabled")) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Disable resume to Shorts
|
||||||
|
%hook YTShortsStartupCoordinator
|
||||||
|
- (id)evaluateResumeToShorts {
|
||||||
|
return IS_ENABLED(@"disableResumeToShorts") ? nil : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
# pragma mark - Miscellaneous
|
||||||
|
|
||||||
|
// Hide iSponsorBlock
|
||||||
|
%hook YTRightNavigationButtons
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_ENABLED(@"hideiSponsorBlockButton_enabled"))
|
||||||
|
self.sponsorBlockButton.hidden = YES;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// YTCastConfirm
|
||||||
|
// See YTCastConfirm.xm
|
||||||
|
|
||||||
|
// Disable hints - https://github.com/LillieH001/YouTube-Reborn/blob/v4/
|
||||||
|
%group gDisableHints
|
||||||
|
%hook YTSettings
|
||||||
|
- (BOOL)areHintsDisabled {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
- (void)setHintsDisabled:(BOOL)arg1 {
|
||||||
|
%orig(YES);
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%hook YTUserDefaults
|
||||||
|
- (BOOL)areHintsDisabled {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
- (void)setHintsDisabled:(BOOL)arg1 {
|
||||||
|
%orig(YES);
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Enable YouTube startup animation
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)mainAppCoreClientIosEnableStartupAnimation {
|
||||||
|
return IS_ENABLED(@"ytStartupAnimation_enabled") ? YES : NO;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide upper bar
|
||||||
|
%group gHideChipBar
|
||||||
|
%hook YTMySubsFilterHeaderView
|
||||||
|
- (void)setChipFilterView:(id)arg1 {}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTHeaderContentComboView
|
||||||
|
- (void)enableSubheaderBarWithView:(id)arg1 {}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTHeaderContentComboView
|
||||||
|
- (void)setFeedHeaderScrollMode:(int)arg1 { %orig(0); }
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Force iPhone layout
|
||||||
|
%group giPhoneLayout
|
||||||
|
%hook UIDevice
|
||||||
|
- (long long)userInterfaceIdiom {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%hook UIStatusBarStyleAttributes
|
||||||
|
- (long long)idiom {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%hook UIKBTree
|
||||||
|
- (long long)nativeIdiom {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%hook UIKBRenderer
|
||||||
|
- (long long)assetIdiom {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
# pragma mark - Other hooks
|
||||||
|
|
||||||
|
// Activate FLEX
|
||||||
|
%hook YTAppDelegate
|
||||||
|
- (BOOL)application:(UIApplication *)application
|
||||||
|
didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions {
|
||||||
|
BOOL didFinishLaunching = %orig;
|
||||||
|
if (IS_ENABLED(@"flex_enabled")) {
|
||||||
|
[[%c(FLEXManager) performSelector:@selector(sharedManager)] performSelector:@selector(showExplorer)];
|
||||||
|
}
|
||||||
|
return didFinishLaunching;
|
||||||
|
}
|
||||||
|
- (void)appWillResignActive:(id)arg1 {
|
||||||
|
%orig;
|
||||||
|
if (IS_ENABLED(@"flex_enabled")) {
|
||||||
|
[[%c(FLEXManager) performSelector:@selector(sharedManager)] performSelector:@selector(showExplorer)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide YouTube annoying banner in Home page? - @MiRO92 - YTNoShorts: https://github.com/MiRO92/YTNoShorts
|
||||||
|
%hook YTAsyncCollectionView
|
||||||
|
- (id)cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
UICollectionViewCell *cell = %orig;
|
||||||
|
if ([cell isKindOfClass:NSClassFromString(@"_ASCollectionViewCell")]) {
|
||||||
|
_ASCollectionViewCell *cell = %orig;
|
||||||
|
if ([cell respondsToSelector:@selector(node)]) {
|
||||||
|
if ([[[cell node] accessibilityIdentifier] isEqualToString:@"statement_banner.view"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
||||||
|
if ([[[cell node] accessibilityIdentifier] isEqualToString:@"compact.view"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
||||||
|
// if ([[[cell node] accessibilityIdentifier] isEqualToString:@"id.ui.video_metadata_carousel"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return %orig;
|
||||||
|
}
|
||||||
|
%new
|
||||||
|
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
[self deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Hide search ads by @PoomSmart - https://github.com/PoomSmart/YouTube-X
|
||||||
|
// %hook YTIElementRenderer
|
||||||
|
// - (NSData *)elementData {
|
||||||
|
// if (self.hasCompatibilityOptions && self.compatibilityOptions.hasAdLoggingData)
|
||||||
|
// return nil;
|
||||||
|
// return %orig;
|
||||||
|
// }
|
||||||
|
// %end
|
||||||
|
|
||||||
|
// %hook YTSectionListViewController
|
||||||
|
// - (void)loadWithModel:(YTISectionListRenderer *)model {
|
||||||
|
// NSMutableArray <YTISectionListSupportedRenderers *> *contentsArray = model.contentsArray;
|
||||||
|
// NSIndexSet *removeIndexes = [contentsArray indexesOfObjectsPassingTest:^BOOL(YTISectionListSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
||||||
|
// YTIItemSectionRenderer *sectionRenderer = renderers.itemSectionRenderer;
|
||||||
|
// YTIItemSectionSupportedRenderers *firstObject = [sectionRenderer.contentsArray firstObject];
|
||||||
|
// return firstObject.hasPromotedVideoRenderer || firstObject.hasCompactPromotedVideoRenderer || firstObject.hasPromotedVideoInlineMutedRenderer;
|
||||||
|
// }];
|
||||||
|
// [contentsArray removeObjectsAtIndexes:removeIndexes];
|
||||||
|
// %orig;
|
||||||
|
// }
|
||||||
|
// %end
|
||||||
|
|
||||||
|
// A/B flags
|
||||||
|
%hook YTColdConfig
|
||||||
|
// YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
|
||||||
|
- (BOOL)respectDeviceCaptionSetting { return NO; }
|
||||||
|
// Swipe right to dismiss the right panel in fullscreen mode
|
||||||
|
- (BOOL)isLandscapeEngagementPanelSwipeRightToDismissEnabled { return YES; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
# pragma mark - Constructor
|
||||||
|
|
||||||
|
%ctor {
|
||||||
|
// Load uYou first so its functions are available for hooks.
|
||||||
|
// dlopen([[NSString stringWithFormat:@"%@/Frameworks/uYou.dylib", [[NSBundle mainBundle] bundlePath]] UTF8String], RTLD_LAZY);
|
||||||
|
|
||||||
|
%init;
|
||||||
|
if (IS_ENABLED(@"hidePreviousAndNextButton_enabled")) {
|
||||||
|
%init(gHidePreviousAndNextButton);
|
||||||
|
}
|
||||||
|
if (IS_ENABLED(@"replacePreviousAndNextButton_enabled")) {
|
||||||
|
%init(gReplacePreviousAndNextButton);
|
||||||
|
}
|
||||||
|
if (IS_ENABLED(@"disableHints_enabled")) {
|
||||||
|
%init(gDisableHints);
|
||||||
|
}
|
||||||
|
if (IS_ENABLED(@"hideChipBar_enabled")) {
|
||||||
|
%init(gHideChipBar);
|
||||||
|
}
|
||||||
|
if (IS_ENABLED(@"iPhoneLayout_enabled") && (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)) {
|
||||||
|
%init(giPhoneLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Change the default value of some options
|
||||||
|
NSArray *allKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
|
||||||
|
if (![allKeys containsObject:@"hidePlayNextInQueue_enabled"]) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hidePlayNextInQueue_enabled"];
|
||||||
|
}
|
||||||
|
if (![allKeys containsObject:@"relatedVideosAtTheEndOfYTVideos"]) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"relatedVideosAtTheEndOfYTVideos"];
|
||||||
|
}
|
||||||
|
if (![allKeys containsObject:@"shortsProgressBar"]) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shortsProgressBar"];
|
||||||
|
}
|
||||||
|
if (![allKeys containsObject:@"RYD-ENABLED"]) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RYD-ENABLED"];
|
||||||
|
}
|
||||||
|
if (![allKeys containsObject:@"YouPiPEnabled"]) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YouPiPEnabled"];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
#import "../Tweaks/YouTubeHeader/YTCommonColorPalette.h"
|
||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
@interface YTSingleVideoController : NSObject
|
||||||
|
-(float)playbackRate;
|
||||||
|
-(void)setPlaybackRate:(float)arg1;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTPlayerViewController : UIViewController
|
||||||
|
-(YTSingleVideoController *)activeVideo;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface PlayerManager : NSObject
|
||||||
|
// Prevent uYou player bar from showing when not playing downloaded media
|
||||||
|
- (float)progress;
|
||||||
|
// Prevent uYou's playback from colliding with YouTube's
|
||||||
|
- (void)setSource:(id)source;
|
||||||
|
- (void)pause;
|
||||||
|
+ (id)sharedInstance;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224
|
||||||
|
@interface OBPrivacyLinkButton : UIButton
|
||||||
|
- (instancetype)initWithCaption:(NSString *)caption
|
||||||
|
buttonText:(NSString *)buttonText
|
||||||
|
image:(UIImage *)image
|
||||||
|
imageSize:(CGSize)imageSize
|
||||||
|
useLargeIcon:(BOOL)useLargeIcon
|
||||||
|
displayLanguage:(NSString *)displayLanguage;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// uYouLocal fix
|
||||||
|
// @interface YTLocalPlaybackController : NSObject
|
||||||
|
// - (id)activeVideo;
|
||||||
|
// @end
|
||||||
|
|
||||||
|
// uYou theme fix
|
||||||
|
// @interface YTAppDelegate ()
|
||||||
|
// @property(nonatomic, strong) id downloadsVC;
|
||||||
|
// @end
|
||||||
|
|
||||||
|
// Fix uYou's appearance not updating if the app is backgrounded
|
||||||
|
@interface DownloadsPagerVC : UIViewController
|
||||||
|
- (NSArray<UIViewController *> *)viewControllers;
|
||||||
|
- (void)updatePageStyles;
|
||||||
|
@end
|
||||||
|
@interface DownloadingVC : UIViewController
|
||||||
|
- (void)updatePageStyles;
|
||||||
|
- (UITableView *)tableView;
|
||||||
|
@end
|
||||||
|
@interface DownloadingCell : UITableViewCell
|
||||||
|
- (void)updatePageStyles;
|
||||||
|
@end
|
||||||
|
@interface DownloadedVC : UIViewController
|
||||||
|
- (void)updatePageStyles;
|
||||||
|
- (UITableView *)tableView;
|
||||||
|
@end
|
||||||
|
@interface DownloadedCell : UITableViewCell
|
||||||
|
- (void)updatePageStyles;
|
||||||
|
@end
|
||||||
|
@interface UILabel (uYou)
|
||||||
|
+ (id)_defaultColor;
|
||||||
|
@end
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
#import "uYouPlusPatches.h"
|
||||||
|
|
||||||
|
# pragma mark - YouTube patches
|
||||||
|
|
||||||
|
// Fix Google Sign in by @PoomSmart and @level3tjg (qnblackcat/uYouPlus#684)
|
||||||
|
%hook NSBundle
|
||||||
|
- (NSDictionary *)infoDictionary {
|
||||||
|
NSMutableDictionary *info = %orig.mutableCopy;
|
||||||
|
NSString *altBundleIdentifier = info[@"ALTBundleIdentifier"];
|
||||||
|
if (altBundleIdentifier) info[@"CFBundleIdentifier"] = altBundleIdentifier;
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Workaround for MiRO92/uYou-for-YouTube#12, qnblackcat/uYouPlus#263
|
||||||
|
%hook YTDataUtils
|
||||||
|
+ (NSMutableDictionary *)spamSignalsDictionary {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
+ (NSMutableDictionary *)spamSignalsDictionaryWithoutIDFA {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTHotConfig
|
||||||
|
- (BOOL)disableAfmaIdfaCollection { return NO; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
// https://github.com/PoomSmart/YouTube-X/blob/1e62b68e9027fcb849a75f54a402a530385f2a51/Tweak.x#L27
|
||||||
|
// %hook YTAdsInnerTubeContextDecorator
|
||||||
|
// - (void)decorateContext:(id)context {}
|
||||||
|
// %end
|
||||||
|
|
||||||
|
# pragma mark - uYou patches
|
||||||
|
|
||||||
|
// Workaround for qnblackcat/uYouPlus#10
|
||||||
|
%hook UIViewController
|
||||||
|
- (UITraitCollection *)traitCollection {
|
||||||
|
@try {
|
||||||
|
return %orig;
|
||||||
|
} @catch(NSException *e) {
|
||||||
|
return [UITraitCollection currentTraitCollection];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Prevent uYou player bar from showing when not playing downloaded media
|
||||||
|
%hook PlayerManager
|
||||||
|
- (void)pause {
|
||||||
|
if (isnan([self progress]))
|
||||||
|
return;
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Workaround for issue #54
|
||||||
|
%hook YTMainAppVideoPlayerOverlayViewController
|
||||||
|
- (void)updateRelatedVideos {
|
||||||
|
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"relatedVideosAtTheEndOfYTVideos"] == NO) {}
|
||||||
|
else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224
|
||||||
|
%group iOS16
|
||||||
|
%hook OBPrivacyLinkButton
|
||||||
|
%new
|
||||||
|
- (instancetype)initWithCaption:(NSString *)caption
|
||||||
|
buttonText:(NSString *)buttonText
|
||||||
|
image:(UIImage *)image
|
||||||
|
imageSize:(CGSize)imageSize
|
||||||
|
useLargeIcon:(BOOL)useLargeIcon {
|
||||||
|
return [self initWithCaption:caption
|
||||||
|
buttonText:buttonText
|
||||||
|
image:image
|
||||||
|
imageSize:imageSize
|
||||||
|
useLargeIcon:useLargeIcon
|
||||||
|
displayLanguage:[NSLocale currentLocale].languageCode];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Fix uYou playback speed crashes YT v18.49.3+, see https://github.com/iCrazeiOS/uYouCrashFix
|
||||||
|
%hook YTPlayerViewController
|
||||||
|
%new
|
||||||
|
-(float)currentPlaybackRateForVarispeedSwitchController:(id)arg1 {
|
||||||
|
return [[self activeVideo] playbackRate];
|
||||||
|
}
|
||||||
|
|
||||||
|
%new
|
||||||
|
-(void)varispeedSwitchController:(id)arg1 didSelectRate:(float)arg2 {
|
||||||
|
[[self activeVideo] setPlaybackRate:arg2];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Fix streched artwork in uYou's player view - https://github.com/MiRO92/uYou-for-YouTube/issues/287
|
||||||
|
%hook ArtworkImageView
|
||||||
|
- (id)imageView {
|
||||||
|
UIImageView * imageView = %orig;
|
||||||
|
imageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||||
|
// Make artwork a bit bigger
|
||||||
|
UIView *artworkImageView = imageView.superview;
|
||||||
|
if (artworkImageView != nil && !artworkImageView.translatesAutoresizingMaskIntoConstraints) {
|
||||||
|
[artworkImageView.leftAnchor constraintEqualToAnchor:artworkImageView.superview.leftAnchor constant:16].active = YES;
|
||||||
|
[artworkImageView.rightAnchor constraintEqualToAnchor:artworkImageView.superview.rightAnchor constant:-16].active = YES;
|
||||||
|
}
|
||||||
|
return imageView;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Fix navigation bar showing a lighter grey with default dark mode - https://github.com/therealFoxster/uYouPlus/commit/8db8197
|
||||||
|
%hook YTCommonColorPalette
|
||||||
|
- (UIColor *)brandBackgroundSolid {
|
||||||
|
return self.pageStyle == 1 ? [UIColor colorWithRed:0.05882352941176471 green:0.05882352941176471 blue:0.05882352941176471 alpha:1.0] : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Fix uYou's appearance not updating if the app is backgrounded
|
||||||
|
DownloadsPagerVC *downloadsPagerVC;
|
||||||
|
NSUInteger selectedTabIndex;
|
||||||
|
static void refreshUYouAppearance() {
|
||||||
|
if (!downloadsPagerVC) return;
|
||||||
|
// View pager
|
||||||
|
[downloadsPagerVC updatePageStyles];
|
||||||
|
// Views
|
||||||
|
for (UIViewController *vc in [downloadsPagerVC viewControllers]) {
|
||||||
|
if ([vc isKindOfClass:%c(DownloadingVC)]) {
|
||||||
|
// `Downloading` view
|
||||||
|
[(DownloadingVC *)vc updatePageStyles];
|
||||||
|
for (UITableViewCell *cell in [(DownloadingVC *)vc tableView].visibleCells)
|
||||||
|
if ([cell isKindOfClass:%c(DownloadingCell)])
|
||||||
|
[(DownloadingCell *)cell updatePageStyles];
|
||||||
|
}
|
||||||
|
else if ([vc isKindOfClass:%c(DownloadedVC)]) {
|
||||||
|
// `All`, `Audios`, `Videos`, `Shorts` views
|
||||||
|
[(DownloadedVC *)vc updatePageStyles];
|
||||||
|
for (UITableViewCell *cell in [(DownloadedVC *)vc tableView].visibleCells)
|
||||||
|
if ([cell isKindOfClass:%c(DownloadedCell)])
|
||||||
|
[(DownloadedCell *)cell updatePageStyles];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// View pager tabs
|
||||||
|
for (UIView *subview in [downloadsPagerVC view].subviews) {
|
||||||
|
if ([subview isKindOfClass:[UIScrollView class]]) {
|
||||||
|
UIScrollView *tabs = (UIScrollView *)subview;
|
||||||
|
NSUInteger i = 0;
|
||||||
|
for (UIView *item in tabs.subviews) {
|
||||||
|
if ([item isKindOfClass:[UILabel class]]) {
|
||||||
|
// Tab label
|
||||||
|
UILabel *tabLabel = (UILabel *)item;
|
||||||
|
if (i == selectedTabIndex) {} // Selected tab should be excluded
|
||||||
|
else [tabLabel setTextColor:[UILabel _defaultColor]];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%hook DownloadsPagerVC
|
||||||
|
- (instancetype)init {
|
||||||
|
downloadsPagerVC = %orig;
|
||||||
|
return downloadsPagerVC;
|
||||||
|
}
|
||||||
|
- (void)viewPager:(id)viewPager didChangeTabToIndex:(NSUInteger)arg1 fromTabIndex:(NSUInteger)arg2 {
|
||||||
|
%orig; selectedTabIndex = arg1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%hook UIViewController
|
||||||
|
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
|
||||||
|
%orig;
|
||||||
|
refreshUYouAppearance();
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Prevent uYou's playback from colliding with YouTube's
|
||||||
|
%hook PlayerVC
|
||||||
|
- (void)close {
|
||||||
|
%orig;
|
||||||
|
[[%c(PlayerManager) sharedInstance] setSource:nil];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%hook HAMPlayerInternal
|
||||||
|
- (void)play {
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
|
[[%c(PlayerManager) sharedInstance] pause];
|
||||||
|
});
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Temporarily disable uYou's bouncy animation cause it's buggy
|
||||||
|
%hook SSBouncyButton
|
||||||
|
- (void)beginShrinkAnimation {}
|
||||||
|
- (void)beginEnlargeAnimation {}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%ctor {
|
||||||
|
%init;
|
||||||
|
if (@available(iOS 16, *)) {
|
||||||
|
%init(iOS16);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable broken options
|
||||||
|
|
||||||
|
// Disable uYou's auto updates
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"automaticallyCheckForUpdates"];
|
||||||
|
|
||||||
|
// Disable uYou's welcome screen (fix #1147)
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"showedWelcomeVC"];
|
||||||
|
|
||||||
|
// Disable uYou's disable age restriction
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"disableAgeRestriction"];
|
||||||
|
|
||||||
|
// Disable uYou's playback speed controls (prevent crash on video playback https://github.com/therealFoxster/uYouPlus/issues/2#issuecomment-1894912963)
|
||||||
|
// [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"showPlaybackRate"];
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
#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 "uYouPlus.h"
|
||||||
|
|
||||||
|
// For displaying snackbars
|
||||||
|
@interface YTHUDMessage : NSObject
|
||||||
|
+ (id)messageWithText:(id)text;
|
||||||
|
- (void)setAction:(id)action;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GOOHUDMessageAction : NSObject
|
||||||
|
- (void)setTitle:(NSString *)title;
|
||||||
|
- (void)setHandler:(void (^)(id))handler;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GOOHUDManagerInternal : NSObject
|
||||||
|
- (void)showMessageMainThread:(id)message;
|
||||||
|
+ (id)sharedInstance;
|
||||||
|
@end
|
||||||
@@ -0,0 +1,222 @@
|
|||||||
|
#import "uYouPlusSettings.h"
|
||||||
|
|
||||||
|
#define VERSION_STRING [[NSString stringWithFormat:@"%@", @(OS_STRINGIFY(TWEAK_VERSION))] stringByReplacingOccurrencesOfString:@"\"" withString:@""]
|
||||||
|
#define SHOW_RELAUNCH_YT_SNACKBAR [[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:LOC(@"RESTART_YOUTUBE")]]
|
||||||
|
|
||||||
|
#define SECTION_HEADER(s) [sectionItems addObject:[%c(YTSettingsSectionItem) itemWithTitle:@"\t" titleDescription:[s uppercaseString] accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger sectionItemIndex) { return NO; }]]
|
||||||
|
|
||||||
|
#define SWITCH_ITEM(t, d, k) [sectionItems addObject:[YTSettingsSectionItemClass switchItemWithTitle:t titleDescription:d accessibilityIdentifier:nil switchOn:IS_ENABLED(k) switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:k];return YES;} settingItemId:0]]
|
||||||
|
|
||||||
|
#define SWITCH_ITEM2(t, d, k) [sectionItems addObject:[YTSettingsSectionItemClass switchItemWithTitle:t titleDescription:d accessibilityIdentifier:nil switchOn:IS_ENABLED(k) switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:k];SHOW_RELAUNCH_YT_SNACKBAR;return YES;} settingItemId:0]]
|
||||||
|
|
||||||
|
static const NSInteger uYouPlusSection = 500;
|
||||||
|
|
||||||
|
@interface YTSettingsSectionItemManager (uYouPlus)
|
||||||
|
- (void)updateTweakSectionWithEntry:(id)entry;
|
||||||
|
@end
|
||||||
|
|
||||||
|
extern NSBundle *uYouPlusBundle();
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
%hook YTAppSettingsPresentationData
|
||||||
|
+ (NSArray *)settingsCategoryOrder {
|
||||||
|
NSArray *order = %orig;
|
||||||
|
NSMutableArray *mutableOrder = [order mutableCopy];
|
||||||
|
NSUInteger insertIndex = [order indexOfObject:@(1)];
|
||||||
|
if (insertIndex != NSNotFound)
|
||||||
|
[mutableOrder insertObject:@(uYouPlusSection) atIndex:insertIndex + 1];
|
||||||
|
return mutableOrder;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTSettingsSectionController
|
||||||
|
- (void)setSelectedItem:(NSUInteger)selectedItem {
|
||||||
|
if (selectedItem != NSNotFound) %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTSettingsSectionItemManager
|
||||||
|
%new(v@:@)
|
||||||
|
- (void)updateTweakSectionWithEntry:(id)entry {
|
||||||
|
NSMutableArray *sectionItems = [NSMutableArray array];
|
||||||
|
NSBundle *tweakBundle = uYouPlusBundle();
|
||||||
|
Class YTSettingsSectionItemClass = %c(YTSettingsSectionItem);
|
||||||
|
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
|
||||||
|
|
||||||
|
# pragma mark - About
|
||||||
|
// SECTION_HEADER(LOC(@"ABOUT"));
|
||||||
|
|
||||||
|
YTSettingsSectionItem *version = [%c(YTSettingsSectionItem)
|
||||||
|
itemWithTitle:LOC(@"VERSION")
|
||||||
|
titleDescription:nil
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
return VERSION_STRING;
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/qnblackcat/uYouPlus/releases"]];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
[sectionItems addObject:version];
|
||||||
|
|
||||||
|
YTSettingsSectionItem *bug = [%c(YTSettingsSectionItem)
|
||||||
|
itemWithTitle:LOC(@"REPORT_AN_ISSUE")
|
||||||
|
titleDescription:nil
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:nil
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
NSString *url = [NSString stringWithFormat:@"https://github.com/qnblackcat/uYouPlus/issues/new?assignees=&labels=bug&projects=&template=bug.yaml&title=[v%@] %@", VERSION_STRING, LOC(@"ADD_TITLE")];
|
||||||
|
|
||||||
|
return [%c(YTUIUtils) openURL:[NSURL URLWithString:[url stringByReplacingOccurrencesOfString:@" " withString:@"%20"]]];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
[sectionItems addObject:bug];
|
||||||
|
|
||||||
|
YTSettingsSectionItem *exitYT = [%c(YTSettingsSectionItem)
|
||||||
|
itemWithTitle:LOC(@"QUIT_YOUTUBE")
|
||||||
|
titleDescription:nil
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:nil
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
// https://stackoverflow.com/a/17802404/19227228
|
||||||
|
[[UIApplication sharedApplication] performSelector:@selector(suspend)];
|
||||||
|
[NSThread sleepForTimeInterval:0.5];
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
];
|
||||||
|
[sectionItems addObject:exitYT];
|
||||||
|
|
||||||
|
# pragma mark - App theme
|
||||||
|
SECTION_HEADER(LOC(@"APP_THEME"));
|
||||||
|
|
||||||
|
YTSettingsSectionItem *themeGroup = [YTSettingsSectionItemClass
|
||||||
|
itemWithTitle:LOC(@"DARK_THEME")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
switch (APP_THEME_IDX) {
|
||||||
|
case 1:
|
||||||
|
return LOC(@"OLD_DARK_THEME");
|
||||||
|
case 2:
|
||||||
|
return LOC(@"OLED_DARK_THEME_2");
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
return LOC(@"DEFAULT_THEME");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
|
[YTSettingsSectionItemClass
|
||||||
|
checkmarkItemWithTitle:LOC(@"DEFAULT_THEME")
|
||||||
|
titleDescription:LOC(@"DEFAULT_THEME_DESC")
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"appTheme"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
SHOW_RELAUNCH_YT_SNACKBAR;
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[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];
|
||||||
|
SHOW_RELAUNCH_YT_SNACKBAR;
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[YTSettingsSectionItemClass
|
||||||
|
checkmarkItemWithTitle:LOC(@"OLED_DARK_THEME")
|
||||||
|
titleDescription:LOC(@"OLED_DARK_THEME_DESC")
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"appTheme"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
SHOW_RELAUNCH_YT_SNACKBAR;
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[YTSettingsSectionItemClass
|
||||||
|
switchItemWithTitle:LOC(@"OLED_KEYBOARD")
|
||||||
|
titleDescription:LOC(@"OLED_KEYBOARD_DESC")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
switchOn:IS_ENABLED(@"oledKeyBoard_enabled")
|
||||||
|
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oledKeyBoard_enabled"];
|
||||||
|
SHOW_RELAUNCH_YT_SNACKBAR;
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
settingItemId:0
|
||||||
|
]
|
||||||
|
];
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
|
||||||
|
initWithNavTitle:LOC(@"DARK_THEME")
|
||||||
|
pickerSectionTitle:[LOC(@"DARK_THEME") uppercaseString]
|
||||||
|
rows:rows selectedItemIndex:APP_THEME_IDX
|
||||||
|
parentResponder:[self parentResponder]
|
||||||
|
];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
[sectionItems addObject:themeGroup];
|
||||||
|
|
||||||
|
# pragma mark - Video player options
|
||||||
|
SECTION_HEADER(LOC(@"VIDEO_PLAYER_OPTIONS"));
|
||||||
|
|
||||||
|
SWITCH_ITEM2(LOC(@"SLIDE_TO_SEEK"), LOC(@"SLIDE_TO_SEEK_DESC"), @"slideToSeek_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"DISABLE_DOUBLE_TAP_TO_SEEK"), LOC(@"DISABLE_DOUBLE_TAP_TO_SEEK_DESC"), @"doubleTapToSeek_disabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"SNAP_TO_CHAPTER"), LOC(@"SNAP_TO_CHAPTER_DESC"), @"snapToChapter_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"PINCH_TO_ZOOM"), LOC(@"PINCH_TO_ZOOM_DESC"), @"pinchToZoom_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"YT_MINIPLAYER"), LOC(@"YT_MINIPLAYER_DESC"), @"ytMiniPlayer_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"STOCK_VOLUME_HUD"), LOC(@"STOCK_VOLUME_HUD_DESC"), @"stockVolumeHUD_enabled");
|
||||||
|
|
||||||
|
# pragma mark - Video controls overlay options
|
||||||
|
SECTION_HEADER(LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS"));
|
||||||
|
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_AUTOPLAY_SWITCH"), LOC(@"HIDE_AUTOPLAY_SWITCH_DESC"), @"hideAutoplaySwitch_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_SUBTITLES_BUTTON"), LOC(@"HIDE_SUBTITLES_BUTTON_DESC"), @"hideCC_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_HUD_MESSAGES"), LOC(@"HIDE_HUD_MESSAGES_DESC"), @"hideHUD_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_PAID_PROMOTION_CARDS"), LOC(@"HIDE_PAID_PROMOTION_CARDS_DESC"), @"hidePaidPromotionCard_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"HIDE_CHANNEL_WATERMARK"), LOC(@"HIDE_CHANNEL_WATERMARK_DESC"), @"hideChannelWatermark_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON"), LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC"), @"hidePreviousAndNextButton_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"REPLACE_PREVIOUS_NEXT_BUTTON"), LOC(@"REPLACE_PREVIOUS_NEXT_BUTTON_DESC"), @"replacePreviousAndNextButton_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"RED_PROGRESS_BAR"), LOC(@"RED_PROGRESS_BAR_DESC"), @"redProgressBar_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_HOVER_CARD"), LOC(@"HIDE_HOVER_CARD_DESC"), @"hideHoverCards_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled");
|
||||||
|
|
||||||
|
# pragma mark - Shorts controls overlay options
|
||||||
|
SECTION_HEADER(LOC(@"SHORTS_CONTROLS_OVERLAY_OPTIONS"));
|
||||||
|
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_SUPER_THANKS"), LOC(@"HIDE_SUPER_THANKS_DESC"), @"hideBuySuperThanks_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_SUBCRIPTIONS"), LOC(@"HIDE_SUBCRIPTIONS_DESC"), @"hideSubcriptions_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"DISABLE_RESUME_TO_SHORTS"), LOC(@"DISABLE_RESUME_TO_SHORTS_DESC"), @"disableResumeToShorts");
|
||||||
|
|
||||||
|
# pragma mark - Miscellaneous
|
||||||
|
SECTION_HEADER(LOC(@"MISCELLANEOUS"));
|
||||||
|
|
||||||
|
// SWITCH_ITEM2(LOC(@"HIDE_UYOU"), nil, @"hideUYouTab_enabled"); // We stay on 19.02.1 until MiRO92 update uYou?
|
||||||
|
SWITCH_ITEM2(LOC(@"HIDE_ISPONSORBLOCK"), nil, @"hideiSponsorBlockButton_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"CAST_CONFIRM"), LOC(@"CAST_CONFIRM_DESC"), @"castConfirm_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"DISABLE_HINTS"), LOC(@"DISABLE_HINTS_DESC"), @"disableHints_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_CHIP_BAR"), LOC(@"HIDE_CHIP_BAR_DESC"), @"hideChipBar_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"HIDE_PLAY_NEXT_IN_QUEUE"), LOC(@"HIDE_PLAY_NEXT_IN_QUEUE_DESC"), @"hidePlayNextInQueue_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"IPHONE_LAYOUT"), LOC(@"IPHONE_LAYOUT_DESC"), @"iPhoneLayout_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"NEW_MINIPLAYER_STYLE"), LOC(@"NEW_MINIPLAYER_STYLE_DESC"), @"bigYTMiniPlayer_enabled");
|
||||||
|
SWITCH_ITEM2(LOC(@"YT_RE_EXPLORE"), LOC(@"YT_RE_EXPLORE_DESC"), @"reExplore_enabled");
|
||||||
|
SWITCH_ITEM(LOC(@"ENABLE_FLEX"), LOC(@"ENABLE_FLEX_DESC"), @"flex_enabled");
|
||||||
|
|
||||||
|
if ([settingsViewController respondsToSelector:@selector(setSectionItems:forCategory:title:icon:titleDescription:headerHidden:)])
|
||||||
|
[settingsViewController setSectionItems:sectionItems forCategory:uYouPlusSection title:@"uYouPlus" icon:nil titleDescription:LOC(@"TITLE DESCRIPTION") headerHidden:YES];
|
||||||
|
else
|
||||||
|
[settingsViewController setSectionItems:sectionItems forCategory:uYouPlusSection title:@"uYouPlus" titleDescription:LOC(@"TITLE DESCRIPTION") headerHidden:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)updateSectionForCategory:(NSUInteger)category withEntry:(id)entry {
|
||||||
|
if (category == uYouPlusSection) {
|
||||||
|
[self updateTweakSectionWithEntry:entry];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
#import "../Tweaks/YouTubeHeader/YTCommonColorPalette.h"
|
||||||
|
#import "../Tweaks/YouTubeHeader/ASCollectionView.h"
|
||||||
|
#import "uYouPlus.h"
|
||||||
|
|
||||||
|
@interface YCHLiveChatView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTFullscreenEngagementOverlayView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTRelatedVideosView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ELMView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ASWAppSwitcherCollectionViewCell : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ASScrollView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UIKeyboardLayoutStar : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UIKeyboardDockView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface _ASDisplayView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface YTCommentDetailHeaderCell : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface SponsorBlockSettingsController : UITableViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface SponsorBlockViewController : UIViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UICandidateViewController : UIViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UIPredictionViewController : UIViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface FRPreferences : UITableViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface FRPSelectListTable : UITableViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface settingsReorderTable : UIViewController
|
||||||
|
@property(nonatomic, strong) UITableView *tableView;
|
||||||
|
@end
|
||||||
@@ -0,0 +1,350 @@
|
|||||||
|
#import "uYouPlusThemes.h"
|
||||||
|
|
||||||
|
#define IS_DARK_APPEARANCE_ENABLED ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1)
|
||||||
|
#define IS_OLD_DARK_THEME_SELECTED (APP_THEME_IDX == 1)
|
||||||
|
#define IS_OLED_DARK_THEME_SELECTED (APP_THEME_IDX == 2)
|
||||||
|
|
||||||
|
# pragma mark - Old dark theme (lighter grey)
|
||||||
|
|
||||||
|
%group gOldDarkTheme
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)uiSystemsClientGlobalConfigUseDarkerPaletteBgColorForNative { return NO; }
|
||||||
|
- (BOOL)uiSystemsClientGlobalConfigUseDarkerPaletteTextColorForNative { return NO; }
|
||||||
|
- (BOOL)enableCinematicContainerOnClient { return NO; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook _ASDisplayView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor clearColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor clearColor]; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook ASCollectionView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
self.superview.backgroundColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTFullscreenEngagementOverlayView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
self.subviews[0].backgroundColor = [UIColor clearColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTRelatedVideosView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
self.subviews[0].backgroundColor = [UIColor clearColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
# pragma mark - OLED dark mode by BandarHL
|
||||||
|
|
||||||
|
UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:1.0];
|
||||||
|
|
||||||
|
%group gOLED
|
||||||
|
%hook YTCommonColorPalette
|
||||||
|
- (UIColor *)baseBackground {
|
||||||
|
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)brandBackgroundSolid {
|
||||||
|
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)brandBackgroundPrimary {
|
||||||
|
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)brandBackgroundSecondary {
|
||||||
|
return self.pageStyle == 1 ? [[UIColor blackColor] colorWithAlphaComponent:0.9] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)raisedBackground {
|
||||||
|
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)staticBrandBlack {
|
||||||
|
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
- (UIColor *)generalBackgroundA {
|
||||||
|
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// uYou settings
|
||||||
|
%hook UITableViewCell
|
||||||
|
- (void)_layoutSystemBackgroundView {
|
||||||
|
%orig;
|
||||||
|
UIView *systemBackgroundView = [self valueForKey:@"_systemBackgroundView"];
|
||||||
|
NSString *backgroundViewKey = class_getInstanceVariable(systemBackgroundView.class, "_colorView") ? @"_colorView" : @"_backgroundView";
|
||||||
|
((UIView *)[systemBackgroundView valueForKey:backgroundViewKey]).backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
- (void)_layoutSystemBackgroundView:(BOOL)arg1 {
|
||||||
|
%orig;
|
||||||
|
((UIView *)[[self valueForKey:@"_systemBackgroundView"] valueForKey:@"_colorView"]).backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook settingsReorderTable
|
||||||
|
- (void)viewDidLayoutSubviews {
|
||||||
|
%orig;
|
||||||
|
self.tableView.backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FRPSelectListTable
|
||||||
|
- (void)viewDidLayoutSubviews {
|
||||||
|
%orig;
|
||||||
|
self.tableView.backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FRPreferences
|
||||||
|
- (void)viewDidLayoutSubviews {
|
||||||
|
%orig;
|
||||||
|
self.tableView.backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTInnerTubeCollectionViewController
|
||||||
|
- (UIColor *)backgroundColor:(NSInteger)pageStyle {
|
||||||
|
return pageStyle == 1 ? [UIColor blackColor] : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Explore
|
||||||
|
%hook ASScrollView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED) {
|
||||||
|
self.backgroundColor = [UIColor clearColor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Your videos
|
||||||
|
%hook ASCollectionView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED && [self.nextResponder isKindOfClass:%c(_ASDisplayView)]) {
|
||||||
|
self.superview.backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Sub menu?
|
||||||
|
%hook ELMView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED) {
|
||||||
|
// self.subviews[0].backgroundColor = [UIColor clearColor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// iSponsorBlock
|
||||||
|
%hook SponsorBlockSettingsController
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||||
|
%orig;
|
||||||
|
self.tableView.backgroundColor = [UIColor blackColor];
|
||||||
|
} else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook SponsorBlockViewController
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||||
|
%orig;
|
||||||
|
self.view.backgroundColor = [UIColor blackColor];
|
||||||
|
} else { return %orig; }
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Search view
|
||||||
|
%hook YTSearchBarView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// History search view
|
||||||
|
%hook YTSearchBoxView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Comment view
|
||||||
|
%hook YTCommentView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTCreateCommentAccessoryView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTCreateCommentTextView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
- (void)setTextColor:(UIColor *)color { // fix black text in #Shorts video's comment
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor whiteColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTCommentDetailHeaderCell
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED) {
|
||||||
|
// self.subviews[2].backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTFormattedStringLabel // YT is werid...
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor clearColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Live chat comment
|
||||||
|
%hook YCHLiveChatActionPanelView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTEmojiTextView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YCHLiveChatView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED) {
|
||||||
|
// self.subviews[1].backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTCollectionView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
//
|
||||||
|
%hook YTBackstageCreateRepostDetailView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Others
|
||||||
|
%hook _ASDisplayView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED) {
|
||||||
|
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||||
|
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; }
|
||||||
|
if ([self.accessibilityIdentifier hasPrefix:@"id.elements.components.overflow_menu_item_"]) { self.backgroundColor = [UIColor clearColor]; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Open link with...
|
||||||
|
%hook ASWAppSwitchingSheetHeaderView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig(raisedColor) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook ASWAppSwitchingSheetFooterView
|
||||||
|
- (void)setBackgroundColor:(UIColor *)color {
|
||||||
|
return IS_DARK_APPEARANCE_ENABLED ? %orig(raisedColor) : %orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook ASWAppSwitcherCollectionViewCell
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
if (IS_DARK_APPEARANCE_ENABLED) {
|
||||||
|
self.backgroundColor = raisedColor;
|
||||||
|
// self.subviews[1].backgroundColor = raisedColor;
|
||||||
|
self.superview.backgroundColor = raisedColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Incompatibility with the new YT Dark theme
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)uiSystemsClientGlobalConfigUseDarkerPaletteBgColorForNative { return NO; }
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
# pragma mark - OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
|
||||||
|
|
||||||
|
%group gOLEDKB
|
||||||
|
%hook UIPredictionViewController
|
||||||
|
- (void)loadView {
|
||||||
|
%orig;
|
||||||
|
[self.view setBackgroundColor:[UIColor blackColor]];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UICandidateViewController
|
||||||
|
- (void)loadView {
|
||||||
|
%orig;
|
||||||
|
[self.view setBackgroundColor:[UIColor blackColor]];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIKeyboardDockView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
self.backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIKeyboardLayoutStar
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
%orig;
|
||||||
|
self.backgroundColor = [UIColor blackColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIKBRenderConfig // Prediction text color
|
||||||
|
- (void)setLightKeyboard:(BOOL)arg1 { %orig(NO); }
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
|
%ctor {
|
||||||
|
if (IS_OLED_DARK_THEME_SELECTED) {
|
||||||
|
%init(gOLED);
|
||||||
|
}
|
||||||
|
if (IS_OLD_DARK_THEME_SELECTED) {
|
||||||
|
%init(gOldDarkTheme)
|
||||||
|
}
|
||||||
|
if (IS_ENABLED(@"oledKeyBoard_enabled")) {
|
||||||
|
%init(gOLEDKB);
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
Submodule Tweaks/Alderis updated: c5b3ed5761...2aa3086244
Submodule
+1
Submodule Tweaks/DontEatMyContent added at fea6b066e8
Submodule
+1
Submodule Tweaks/FLEXing added at f7a65cf89b
Submodule
+1
Submodule Tweaks/IAmYouTube added at f3872945d9
Submodule
+1
Submodule Tweaks/NoYTPremium added at 510b474b37
+1
-1
Submodule Tweaks/PSHeader updated: ac9324f441...b836acf9c1
Submodule
+1
Submodule Tweaks/RemoteLog added at beee6c7312
Submodule Tweaks/Return-YouTube-Dislikes updated: deae67afea...720578a621
Submodule
+1
Submodule Tweaks/YTABConfig added at c677a585e2
Submodule
+1
Submodule Tweaks/YTClassicVideoQuality added at d983151bcb
+1
-1
Submodule Tweaks/YTSpeed updated: 3fec2dfcf0...3ddaf3d0e1
+1
-1
Submodule Tweaks/YTUHD updated: b0d24c0859...a53583681d
Submodule
+1
Submodule Tweaks/YTVideoOverlay added at d255e19275
Submodule
+1
Submodule Tweaks/YouMute added at 7ffdb1eda6
+1
-1
Submodule Tweaks/YouPiP updated: a8c4224f7d...0597b15d57
Submodule
+1
Submodule Tweaks/YouQuality added at 7a9841410d
+1
-1
Submodule Tweaks/YouTubeHeader updated: 08eeeb7a9c...4e9ea16e22
+1
-1
Submodule Tweaks/iSponsorBlock updated: 82d717878f...4f643248d6
@@ -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 uYouPlus"
|
||||||
|
|
||||||
|
fi
|
||||||
-52
@@ -1,52 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Thanks Al4ise for his support
|
|
||||||
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
|
|
||||||
# Check uYou
|
|
||||||
if [ ! -f Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb ]
|
|
||||||
then
|
|
||||||
echo -e "==> \033[1muYou v2.1 is not found. Downloading uYou (v2.1)...\033[0m"
|
|
||||||
(set -x ; curl https://miro92.com/repo/debs/com.miro.uyou_2.1_iphoneos-arm.deb --output Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb)
|
|
||||||
else
|
|
||||||
echo -e "==> \033[1mFounded uYou (v2.1)!\033[0m"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extract uYou
|
|
||||||
echo -e "==> \033[1mExtracting uYou...\033[0m"
|
|
||||||
if (cd Tweaks/uYou && tar -xf com.miro.uyou_2.1_iphoneos-arm.deb && tar -xf data.tar.*)
|
|
||||||
then
|
|
||||||
echo -e "\033[1m> Extracted uYou!\033[0m"
|
|
||||||
else
|
|
||||||
echo "> \033[1mCouldn't extract uYou\033[0m"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Makefile
|
|
||||||
if [ -d ./tmp ]
|
|
||||||
then
|
|
||||||
rm -rf ./tmp
|
|
||||||
fi
|
|
||||||
read -e -p "==> Path to the decrypted YouTube.ipa or YouTube.app: " PATHTOYT
|
|
||||||
if [[ $PATHTOYT == *.ipa ]]
|
|
||||||
then
|
|
||||||
unzip -q "$PATHTOYT" -d ./tmp
|
|
||||||
rm -rf ./tmp/Payload/YouTube.app/PlugIns/*.appex
|
|
||||||
cp -R Extensions/*.appex tmp/Payload/YouTube.app/PlugIns
|
|
||||||
make package
|
|
||||||
open ./packages
|
|
||||||
|
|
||||||
elif [[ $PATHTOYT == *.app ]]
|
|
||||||
then
|
|
||||||
mkdir -p ./tmp/Payload/
|
|
||||||
cp -R "$PATHTOYT" ./tmp/Payload 2>/dev/null
|
|
||||||
rm -rf ./tmp/Payload/YouTube.app/PlugIns/*.appex
|
|
||||||
cp -R Extensions/*.appex tmp/Payload/YouTube.app/PlugIns
|
|
||||||
make package
|
|
||||||
open ./packages
|
|
||||||
else
|
|
||||||
echo "This is not an ipa/app!"
|
|
||||||
fi
|
|
||||||
# Clean up
|
|
||||||
tput setaf 1 && echo -e "==> \033[1mCleaning up...\033[0m"
|
|
||||||
find Tweaks/uYou -mindepth 1 ! -name "com.miro.uyou_2.1_iphoneos-arm.deb" ! -name ".gitkeep" -exec rm -rf {} \; 2>/dev/null
|
|
||||||
rm -rf tmp/ Resources .theos/_/Payload
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
Package: com.qnblackcat.uyouplus
|
||||||
|
Name: uYouPlus
|
||||||
|
Architecture: iphoneos-arm
|
||||||
|
Description: Modified version of uYou
|
||||||
|
Maintainer: qnblackcat
|
||||||
|
Author: qnblackcat
|
||||||
|
Section: Tweaks
|
||||||
|
Depends: mobilesubstrate (>= 0.9.5000), com.miro.uyou
|
||||||
|
Conflicts: com.level3tjg.ytminiplayerenabler, com.level3tjg.ytnohovercards, com.devvix.ytcastconfirm, com.ps.ytclassicvideoquality, com.ps.noytpremium, com.ps.ytnopaidpromo, com.ps.ytreexplore, com.galacticdev.bigytminiplayer, me.foxster.donteatmycontent, com.lilacvibes.ytstockvolumehud, net.sarahh12099.youtubereborn, com.twickd.sarahh12099.youtube-reborn, h.ryan.youtubereborn, weeb.lillie.enhancerforyoutubepremium, com.ps.uyoucompat, com.ichitaso.uyouplus
|
||||||
|
Recommends: com.ps.youmute, com.ps.youpip, com.ps.youquality, com.ps.ytabconfig, com.ps.ytvideooverlay, libflex, weeb.lillie.youtubedislikesreturn
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "إغلاق تطبيق يوتيوب";
|
|
||||||
"KILL_APP_DESC" = "المس هنا لإغلاق تطبيق يوتيوب!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "إخفاء زر السابق والتالي";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "إخفاء زرّي السابق والتالي من أزرار التحكم على الفيديو.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "السماح بالمشغل المصغّر لكل فيديوهات يوتيوب";
|
|
||||||
"YT_MINIPLAYER_DESC" = "عند تصغير فيديوهات الأطفال مثلاً (قبل إغلاق المقطع).";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "التأكيد قبل البث (أداة YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "إظهار تنبيه للتأكيد قبل البث، من أجل منع البث للتلفاز عن طريق الخطأ.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "إخفاء صور المقاطع الأخرى في نهاية المقاطع (أداة YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "إخفاء الصور المصغرة الظاهرة على مشغل الفيديو في نهاية المقطع.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "تغيير شكل المشغّل المصغر (أداة BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "تغيير شكل المشغّل المصغر في الآيفون إلى نفس شكله في الآيباد - تتطلب إغلاق التطبيق وإعادة فتحه.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "استبدال تبويب Shorts بتبويب Explore (أداة YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = " تتطلب إغلاق التطبيق وإعادة فتحه.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "إخفاء زر الترجمة";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "إخفاء زر الترجمة من أزرار التحكم على الفيديو.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "إخفاء زر التشغيل التلقائي";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "إخفاء زر التشغيل التلقائي من أزرار التحكم على الفيديو.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "كامل الشاشة تلقائياً (أداة YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "تشغيل الفيديوهات تلقائياً بكامل الشاشة.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "إخفاء رسائل المعلومات";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "مثلاً: تم إيقاف الترجمة...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "وضغ داكن OLED (ميزة تجريبية)";
|
|
||||||
"OLED_DARKMODE_DESC" = "قد لا تعمل في كل الحالات. يجب إعادة تشغيل التطبيق عند تشغيل أو إيقاف هذه الخاصية.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "لوحة مفاتيح داكنة OLED (ميزة تجريبية)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "قد لا تعمل في كل الحالات. يجب إعادة تشغيل التطبيق عند تشغيل أو إيقاف هذه الخاصية.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "إخفاء شريط الترويج المدفوع";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "إخفاء عبارة يتضمن ترويجاً مدفوعاً الظاهرة على بعض الفيديوهات.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "البث";
|
|
||||||
"MSG_ARE_YOU_SURE" = "هل أنت متأكد أنك تريد بدء البث؟";
|
|
||||||
"MSG_YES" = "نعم";
|
|
||||||
"MSG_CANCEL" = "إلغاء";
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
// How to translate uYouPlus to your languate:
|
|
||||||
//
|
|
||||||
// 1. Fork uYouPlus 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_3166_country_codes
|
|
||||||
// 3. Translate each line below after each =
|
|
||||||
// 4. Open a Pull Request
|
|
||||||
//
|
|
||||||
// If your language already exists then feel free to check it and/or improve it!
|
|
||||||
// You can also add your localiztion to YouPiP here, the process is the same
|
|
||||||
// https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
|
|
||||||
//
|
|
||||||
// Settings
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Skrýt tlačítka předchozí a následující";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Skryje tlačítka předchozí a následující v překrytí ovládání videa.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Povolit Minipřehrávač pro všechna videa";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Například u videa pro děti";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Zobrazit potvrzení před začátkem sdílení obrazu (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Zobrazí potvrzení aby se zamezilo nechtěnému sdílení do televize.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Skrýt karty na konci videa (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Skryje náhledy jiných videjí na konci videa.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Nový styl minipřehrávače (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Je potřeba restart aplikace.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Nahradit záložku Shorts tab záložkou Explore (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Je potřeba restart aplikace.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Skrýt tlačítko titulky";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Skryje tlačítko titulky v překrytí ovládání videa.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Skrýt přepínač automatického přehrávání";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Skryje přepínač automatického přehrávání v překrytí ovládání videa.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Přes celou obrazovku (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Automaticky spouští videa přes celou obrazovku.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Skrýt vyskakující zprávy";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Příklad: Titulky zapnuty/vypnuty, Smyčka videa zapnuta,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "Tmavý OLED režim (Experimentální)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Mohou se vyskytnout chyby. Je potřeba restart aplikace.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Klávesnice (Experimentální)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Mohou se vyskytnout chyby. Je potřeba restart aplikace.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Skrýt kartu placené propagace";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Skryje 'Obsahuje placenou propagaci' u některých videjí.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Sdílení obrazu";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Opravdu chcete začít sdílet obraz?";
|
|
||||||
"MSG_YES" = "Ano";
|
|
||||||
"MSG_CANCEL" = "Zrušit";
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Vor- und Zurücktasten ausblenden";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Vor- und Zurückspultasten vom Videoplayer ausblenden.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Miniplayer für alle YT Videos aktivieren";
|
|
||||||
"YT_MINIPLAYER_DESC" = "z.B. bei Videos für Kinder";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Warnung vor TV-Übertragungen (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Zeigt eine Warnung an, um eine ausversehene TV-Übertragung zu verhindern.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Endkarten ausblenden (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Endkarten (Thumbnails) am Ende des Videos ausblenden.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Neuer Miniplayer Style (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "App-Neustart erforderlich!";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Shorts-Tab durch Entdecken-Tab ersetzen (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "App-Neustart erforderlich!";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Untertitel-Button ausblenden";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Untertitel-Button vom Videoplayer ausblenden.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Autoplay-Schalter ausblenden";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Autoplay-Schalter vom Videoplayer ausblenden.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Automatisches Vollbild (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Automatisch Videos im Vollbild starten.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "HUD-Nachrichten ausblenden";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "z.B.: Untertitel sind akti-/deaktiviert, Videoschleife ist an, ...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "OLED-Dunkelmodus (Experimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Könnte in manchen Fällen nicht richtig funktionieren. App-Neustart ist erforderlich, wenn diese Option akti-/deaktiviert wird!";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED-Tastatur (Experimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Könnte in manchen Fällen nicht richtig funktionieren. App-Neustart erforderlich1";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Enthält bezahlte Werbung Info ausblenden";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Enthält bezahlte Werbung Infobanner bei manchen Videos ausblenden.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "TV-Übertragung";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Sind Sie sicher, dass Sie mit der Videoübertragung beginnen wollen?";
|
|
||||||
"MSG_YES" = "Ja";
|
|
||||||
"MSG_CANCEL" = "Abbrechen";
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Κρύψτε το προηγούμενο και το επόμενο κουμπί";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Κρύψτε το προηγούμενο και το επόμενο κουμπί κατά την αναπαραγωγή βίντεο.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Ενεργοποιήστε το miniplayer για όλα τα βίντεο του YouTube";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Τα παιδικά βίντεο για παράδειγμα.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Επιβεβαιωτικό μήνυμα πριν γίνει Cast(YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Να φανεί ένα επιβεβαιωτικό μήνυμα πριν γίνει cast για να αποτρεπτεί η καταλάθως σύνδεση στην τηλεόραση.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Κρύψτε τις τελικές καρτέλες (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Κρύψτε τις τελικές καρτέλες από τους δημιουργούς (thumbnails) στο τέλος των βίντεο.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Καινούργιο miniplayer θέμα στην μπάρα (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Απαιτείται επανεκκίνηση της εφαρμογής.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Αντικατάσταση της καρτέλας Shorts με την καρτέλα Explore (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Απαιτείται επανεκκίνηση της εφαρμογής.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Κρύψτε το κουμπί των Υπότιτλων";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Κρύψτε το κουμπί των Υπότιτλων κατά την αναπαραγωγή βίντεο.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Κρύψτε τον διακόπτη της αυτόματης αναπαραγωγής";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Κρύψτε τον διακόπτη της αυτόματης αναπαραγωγής κατά την αναπαραγωγή βίντεο";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Αυτόματη αναπαραγωγή σε πλήρη οθόνη (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Αυτόματη αναπαραγωγή των βίντεο σε πλήρη οθόνη.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Κρύψτε τα μηνύματα του HUD";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Παράδειγμα: Οι Υπότιτλοι απενεργοποιήθηκαν/ενεργοποιήθηκαν...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "OLED Μαύρο θέμα (Experimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Μπορεί να μην δουλέψει σε κάποιες περιπτώσεις. Απαιτείται επανεκκίνηση της εφαρμογής αφού το ενεργοποιήσετε/απενεργοποιήσετε.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED πληκτρολόγιο (Experimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Μπορεί να μην δουλέψει σε κάποιες περιπτώσεις. Απαιτείται επανεκκίνηση της εφαρμογής.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Μετάδοση";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Είστε σίγουροι ότι θέλενε να ξεκινήσετε την μετάδοση;";
|
|
||||||
"MSG_YES" = "Ναι";
|
|
||||||
"MSG_CANCEL" = "Ακύρωση";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "Close YouTube";
|
|
||||||
"KILL_APP_DESC" = "Tap here to close YouTube!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Hide Previous and Next button";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Hide Previous and Next button in video controls overlay.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Enable the Miniplayer for all YouTube videos";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Kid videos for example.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Hide End screens hover cards (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Hide creator End screens (thumbnails) at the end of videos.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "New miniplayer bar style (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Replace Shorts tab with Explore tab (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "App restart is required.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Hide Subtitles button";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Hide the Subtitles button in video controls overlay.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Hide Autoplay switch";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Hide the Autoplay switch in video controls overlay.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Auto Full Screen (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Autoplay videos at full screen.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Hide HUD Messages";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Example: CC is turned on/off, Video loop is on,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "OLED Dark mode (Experimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Might not working correctly in some cases. App restart is required after you enable/disable this option.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Keyboard (Experimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Might not working correctly in some cases. App restart is required.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Hide Paid Promotion banner";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Hide the 'Includes Paid Promotions' banner in some videos.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
|
||||||
"MSG_YES" = "Yes";
|
|
||||||
"MSG_CANCEL" = "Cancel";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "Cerrar YouTube";
|
|
||||||
"KILL_APP_DESC" = "Toca aquí para cerrar YouTube!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ocultar el botón de Anterior y Siguiente";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ocultar el botón de Anterior y Siguiente en los botones superpuestos.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Activar el minirreproductor para todos los vídeos de YouTube";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Vídeos infantiles por ejemplo.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Alerta de confirmación antes de Enviar contenido (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Mostrar una alerta de confirmación antes de Enviar contenido para prevenir el secuestro accidental del TV.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Ocultar tarjetas flotantes en las pantallas finales (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Ocultar tarjetas flotantes del creador (miniaturas) al final de los vídeos.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Nuevo estilo de barra del minirreproductor (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Requiere reiniciar la app.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Reemplazar pestaña de Cortos con pestaña de Explorar (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Requiere reiniciar la app.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Ocultar botón de Subtítulos";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Ocultar el botón de Subtítulos en los botones superpuestos.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Ocultar interruptor de Reproducir automáticamente";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ocultar el interruptor de Reproducir automáticamente en los botones superpuestos.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Pantalla completa automática (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Reproducir vídeos en pantalla completa automáticamente.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Ocultar mensajes HUD";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Ejemplo: CC está activado/desactivado, Vídeo en bucle está activado,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "Modo oscuro OLED (Experimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Puede no funcionar correctamente en algunos casos. Requiere reiniciar la app después de activar/desactivar esta opción.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "Teclado OLED (Experimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Puede no funcionar correctamente en algunos casos. Requiere reiniciar la app.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Ocultar banner de contenido promocional";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ocultar el banner de 'Incluye contenido promocional' en algunos vídeos.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Enviar contenido";
|
|
||||||
"MSG_ARE_YOU_SURE" = "¿Estás seguro de que deseas Enviar contenido?";
|
|
||||||
"MSG_YES" = "Sí";
|
|
||||||
"MSG_CANCEL" = "Cancelar";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "Fermer YouTube";
|
|
||||||
"KILL_APP_DESC" = "Appuyez ici pour fermer YouTube !";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Masquer les boutons Précédent et Suivant";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Masquer les boutons Précédent et Suivant dans la superposition des contrôles vidéo";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Activer le mini-lecteur pour toutes les vidéos YouTube";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Vidéos pour enfants par exemple";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirmer l'alerte avant le casting (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Afficher une alerte de confirmation avant le casting pour éviter de déclancher accidentellement la télévision";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Masquer les cartes de survol des écrans de fin (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Masquer les écrans de fin (vignettes) des créateurs à la fin des vidéos";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Nouveau style de barre de mini-lecteur (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Un redémarrage de l'application est nécessaire";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Remplacer l'onglet Shorts par l'onglet Explorer (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Un redémarrage de l'application est nécessaire";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Bouton de masquage des sous-titres";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Masquer le bouton des sous-titres dans la superposition des contrôles vidéo";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Masquer l'interrupteur de lecture automatique";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Masquer le bouton de lecture automatique dans la superposition des contrôles vidéo";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Plein écran automatique (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Lecture automatique des vidéos en plein écran";
|
|
||||||
|
|
||||||
"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,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "Mode sombre OLED (Expérimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Un redémarrage de l'application est nécessaire après avoir activé/désactivé cette option.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "Clavier OLED (Expérimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Un redémarrage de l'application est nécessaire.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Masquer la bannière des communications commerciales";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Masque la bannière 'Inclut une communication commerciale' dans certaines vidéos.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Êtes-vous sûr de vouloir commencer le casting ?";
|
|
||||||
"MSG_YES" = "Oui";
|
|
||||||
"MSG_CANCEL" = "Annuler";
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "הסתר את הקודם והבא";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "הסתר את כפתורי הקודם והבא בתצוגת השליטה בסרטון.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "אפשר את הנגן הקטן עבור כל הסרטונים ב-YouTube";
|
|
||||||
"YT_MINIPLAYER_DESC" = "סרטוני ילדים לדוגמה.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "התראת אישור לפני שידור לטלוויזיה (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "הצג התראת אישור לפני שידור לטלוויזיה כדי למנוע לחיצה בטעות.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "הסתר כרטיסיות סיום סרטון (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "הסתר את מסכי הסיום של סרטונים המציגים את הערוץ וסרטונים נוספים.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "עיצוב נגן קטן חדש (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "נדרש לפתוח מחדש את היישום.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "החלף את לשונית ה-Shorts בלשונית Explore (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "נדרש לפתוח מחדש את היישום.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "הסתר את כפתור הכתוביות";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "הסתר את כפתור הכתוביות בתצוגת השליטה בסרטון.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "הסתר את כפתור ההפעלה האוטומטית";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "הסתר את כפתור ההפעלה האוטומטית בתצוגת השליטה בסרטון.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "מסך מלא אוטומטי (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "נגן סרטונים במסך מלא אוטומטית.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "הסתר הודעות קופצות";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "לדוגמה: כתוביות מופעלות/מושבתות, הופעל סרטון בלופ,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "תצוגה כהה OLED (נסיוני)";
|
|
||||||
"OLED_DARKMODE_DESC" = "עלול לא לעבוד נכון בחלק מהמקרים, נדרש לפתוח מחדש את היישום.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "מקלדת כהה OLED (נסיוני)";
|
|
||||||
"OLED_DARKMODE_DESC" = "עלול לא לעבוד נכון בחלק מהמקרים, נדרש לפתוח מחדש את היישום.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "משדר";
|
|
||||||
"MSG_ARE_YOU_SURE" = "האם להתחיל לשדר?";
|
|
||||||
"MSG_YES" = "כן";
|
|
||||||
"MSG_CANCEL" = "ביטול";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "YouTubeを閉じる";
|
|
||||||
"KILL_APP_DESC" = "ここをタップしてYouTubeを終了できます!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "前後の動画のボタンを非表示";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "コントロールのオーバーレイで前後の動画のボタンを非表示にします。";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "すべての動画でミニプレーヤーを有効にする";
|
|
||||||
"YT_MINIPLAYER_DESC" = "例: 子供向けの動画";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "キャストする前に確認画面を表示する (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "誤ってテレビにキャストしないよう、前に確認画面を表示します。";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "動画終わりのホバーカードを非表示 (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "動画終わりのホバーカード(サムネ)を非表示にします。";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "新しいミニプレーヤー・バーを使う (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "アプリを再起動してください。";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "ショートのタブを「見つける」タブに置き換える (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "アプリを再起動してください。";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "字幕ボタンを非表示";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "動画コントロールのオーバーレイから字幕ボタンを非表示にします。";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "自動再生ボタンを非表示";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "動画コントロールのオーバーレイから自動再生ボタンを非表示にします。";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "自動でフルスクリーンにする (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "動画を自動でフルスクリーンにします。";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "HUDのメッセージを非表示";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "例: 字幕がon/offです、ループ再生は有効です 等";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "有機ELダークモード (実験的機能)";
|
|
||||||
"OLED_DARKMODE_DESC" = "一部では正しく動作しない可能性があります。 この設定を変更したあとはアプリを再起動してください。";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "有機ELキーボード (実験的機能)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "一部では正しく動作しない可能性があります。 この設定を変更したあとはアプリを再起動してください。";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "「プロモーションを含む」 のバナーを非表示";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "一部の動画にある「プロモーションを含む」 のバナーを非表示にします。";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "キャスト";
|
|
||||||
"MSG_ARE_YOU_SURE" = "本当にキャストを開始しますか?";
|
|
||||||
"MSG_YES" = "はい";
|
|
||||||
"MSG_CANCEL" = "キャンセル";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "Fechar o YouTube";
|
|
||||||
"KILL_APP_DESC" = "Toque aqui para fechar o YouTube!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ocultar botão Anterior e Próximo";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Oculta o botão Anterior e Próximo na sobreposição de controles de vídeo.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Ative o Miniplayer para todos os vídeos do YouTube";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Vídeos infantis, por exemplo.";
|
|
||||||
|
|
||||||
"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.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Ocultar Cartões flutuantes de telas finais (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Oculta telas finais do criador (miniaturas) no final dos vídeos.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Novo estilo de barra de miniplayer (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "A reinicialização do app é necessária.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Substituir a guia Shorts pela guia Explorar (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "A reinicialização do app é necessária.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Ocultar botão de Legendas";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Oculta o botão de Legendas na sobreposição de controles de vídeo.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Ocultar interruptor de Reprodução automática";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Oculta o interruptor de Reprodução automática na sobreposição de controles de vídeo.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Tela cheia automática (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Reproduz videos em tela cheia automaticamente.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Ocultar Mensagens do HUD";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Exemplo: Legendas/CC ativadas/desativadas, A repetição do vídeo está ativada,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "Modo escuro OLED (Experimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária após você ativar/desativar essa opção.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "Teclado OLED (Experimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Ocultar Banner de promoção paga";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Oculta o banner 'Contém promoção paga' em alguns vídeos.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Transmissão";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Tem certeza de que deseja começar a transmitir?";
|
|
||||||
"MSG_YES" = "Sim";
|
|
||||||
"MSG_CANCEL" = "Cancelar";
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
/* uYouPlusSettings */
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Скрыть «Пред.» и «След.»";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Убирает кнопки переключения видео «Следующий» и «Предыдущий» с плеера.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Мини-плеер для всех видео";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Принудительно активирует мини-плеер для всех видео, включая видео, предназначенное для детей.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Подтверждение «Трансляции» (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Спрашивать подтверждение перед началом трансляции во избежание случайных подключений к ТВ.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Скрыть рекомендации (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Скрывает эскизы, отображаемые по окончанию видеоролика.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Мини-плеер в стиле iPad (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Потребуется перезагрузка.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Вкладка «Навигация» вместо «Shorts»";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Потребуется перезагрузка.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Скрыть «Субтитры»";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Скрывает кнопку субтитров с оверлея плеера.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Скрыть «Автовоспроизведение»";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Убирает тумблер «Автовоспроизведение» с оверлея плеера.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Полноэкранный режим (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Автоматически открывает ролики в полноэкранном режиме.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Скрыть сообщения плеера";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Скрывает надписи YouTube, появляющиеся поверх видео.";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "Темный режим для OLED (Бета)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Понадобится перезагрузка при смене цветовой темы приложения. Если OLED-тема не включится, попробуйте переключиться не светлый режим и обратно, а затем перезагрузить приложение.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED-клавиатура (Бета)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Возможно, на некоторых устройствах будет работать криво. Потребуется перезагрузка.";
|
|
||||||
|
|
||||||
/* YTCastConfirm */
|
|
||||||
"CASTING" = "Трансляция";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Начать трансляцию экрана?";
|
|
||||||
"MSG_YES" = "Да";
|
|
||||||
"MSG_CANCEL" = "Отмена";
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
// How to translate uYouPlus to your language:
|
|
||||||
//
|
|
||||||
// 1. Fork uYouPlus 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
|
|
||||||
//
|
|
||||||
// If your language already exists then feel free to check it and/or improve it!
|
|
||||||
// You can also add your localization to YouPiP here, the process is the same
|
|
||||||
// https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
|
|
||||||
//
|
|
||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "Close YouTube";
|
|
||||||
"KILL_APP_DESC" = "Tap here to close YouTube!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Hide Previous and Next button";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Hide Previous and Next button in video controls overlay.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Enable the Miniplayer for all YouTube videos";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Kid videos for example.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Hide End screens hover cards (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Hide creator End screens (thumbnails) at the end of videos.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "New miniplayer bar style (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Replace Shorts tab with Explore tab (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "App restart is required.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Hide Subtitles button";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Hide the Subtitles button in video controls overlay.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Hide Autoplay switch";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Hide the Autoplay switch in video controls overlay.";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "Auto Full Screen (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "Autoplay videos at full screen.";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "Hide HUD Messages";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Example: CC is turned on/off, Video loop is on,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "OLED Dark mode (Experimental)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Might not working correctly in some cases. App restart is required after you enable/disable this option.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED Keyboard (Experimental)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Might not working correctly in some cases. App restart is required.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Hide Paid Promotion banner";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Hide the 'Includes Paid Promotions' banner in some videos.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Castings";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
|
|
||||||
"MSG_YES" = "Yes";
|
|
||||||
"MSG_CANCEL" = "Cancel";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "Đóng ứng dụng";
|
|
||||||
"KILL_APP_DESC" = "Chạm để đóng YouTube!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ẩn nút Next và nút Previous";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ẩn nút Next và nút Previous trong trình phát video.";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "Cho phép sử dụng trình phát thu nhỏ với mọi video";
|
|
||||||
"YT_MINIPLAYER_DESC" = "Ví dụ: Video cho trẻ em.";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "Xác nhận trước khi cast video (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "Hiện hộp thoại xác nhận trước khi cast video sang TV để tránh vô tình chiếm quyền điều khiển TV.";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "Ẩn video dạng thumbnails (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "Ẩn thumbnail của các video đề xuất xuất hiện ở cuối video.";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "Giao diện trình phát thu nhỏ kiểu mới (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "Cần khởi động lại ứng dụng.";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "Thay thế tab Shorts bằng tab Khám phá (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "Cần khởi động lại ứng dụng.";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "Ẩn nút bật Phụ đề";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Ẩn nút bật phụ đề trong trình phát video.";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "Ẩn nút Tự động phát";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ẩn nút Tự động phát trong trình phát 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 thông báo HUD";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "Ví dụ: Đã bật/tắt phụ đề, Tính năng phát video lặp lại đang bật,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "Chế độ tối cho màn OLED (Thử nghiệm)";
|
|
||||||
"OLED_DARKMODE_DESC" = "Có thể không hoạt động tốt trong một số trường hợp. Cần khởi động lại ứng dụng nếu bạn bật/tắt tính năng này, nhưng không cần khởi động lại ứng dụng nếu chuyển giữa chế độ Sáng và chế độ Tối.";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "Bàn phím tối cho màn OLED (Thử nghiệm)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "Có thể không hoạt động tốt trong một vài trường hợp. Cần khởi động lại ứng dụng.";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "Ẩn banner quảng cáo được trả tiền";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ẩn banner 'Chứa nội dung được trả tiền để quảng cáo' trong một số video.";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "Truyền video";
|
|
||||||
"MSG_ARE_YOU_SURE" = "Bạn có muốn bắt đầu truyền video không?";
|
|
||||||
"MSG_YES" = "Có";
|
|
||||||
"MSG_CANCEL" = "Không";
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"KILL_APP" = "关闭YouTube";
|
|
||||||
"KILL_APP_DESC" = "点击此处关闭YouTube!";
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "隐藏上一个/下一个按钮";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "隐藏视频播放器控制界面上的上一个/下一个按钮。";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "为所有YouTube视频启用迷你播放器";
|
|
||||||
"YT_MINIPLAYER_DESC" = "例如:面向儿童的视频。";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "投屏前确认 (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "在投屏前显示确认对话框以防意外劫屏。";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "隐藏片尾画面悬浮卡片 (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "隐藏视频结尾处的创作者片尾画面元素(缩略图)。";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "新迷你播放器风格 (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "更改本设置后需要重启App。";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "将Shorts选项卡替换成探索选项卡 (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "更改本设置后需要重启App。";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "隐藏字幕按钮";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "隐藏视频播放器控制界面上的字幕按钮。";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "隐藏自动播放模式开关";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "隐藏视频播放器控制界面上的自动播放开关。";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "自动全屏 (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "自动全屏播放视频。";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "隐藏系统提醒";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "例如:\"已启用/停用字幕\"、\"已开启/关闭视频循环播放\"等。";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "OLED 深色模式(实验性功能)";
|
|
||||||
"OLED_DARKMODE_DESC" = "在某些情况下可能不会正常工作。更改本设置后需要重启App。";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED 键盘(实验性功能)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "在某些情况下可能不会正常工作。更改本设置后需要重启App。";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "隐藏付费宣传内容提醒横幅";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "隐藏出现在部分视频中的\"包含付费宣传内容\"横幅。";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "正在投屏";
|
|
||||||
"MSG_ARE_YOU_SURE" = "您确定要开始投屏吗?";
|
|
||||||
"MSG_YES" = "确定";
|
|
||||||
"MSG_CANCEL" = "取消";
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
// Settings
|
|
||||||
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "隱藏上一個和下一個按鈕";
|
|
||||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "在影片控制層中隱藏上一個和下一個按鈕";
|
|
||||||
|
|
||||||
"YT_MINIPLAYER" = "為所有YouTube影片啟用迷你播放器";
|
|
||||||
"YT_MINIPLAYER_DESC" = "例如兒童影片";
|
|
||||||
|
|
||||||
"CAST_CONFIRM" = "投放前確認 (YTCastConfirm)";
|
|
||||||
"CAST_CONFIRM_DESC" = "在投放前顯示確認訊息,以防止意外攔劫電視。";
|
|
||||||
|
|
||||||
"HIDE_HOVER_CARD" = "隱藏片尾畫面懸浮卡片 (YTNoHoverCards)";
|
|
||||||
"HIDE_HOVER_CARD_DESC" = "在影片結尾隱藏創作者結束畫面(縮略圖)。";
|
|
||||||
|
|
||||||
"NEW_MINIPLAYER_STYLE" = "新的迷你播放器控制列風格 (BigYTMiniPlayer)";
|
|
||||||
"NEW_MINIPLAYER_STYLE_DESC" = "需要重新啟動應用程式。";
|
|
||||||
|
|
||||||
"YT_RE_EXPLORE" = "用探索選項卡替換Shorts選項卡 (YTReExplore)";
|
|
||||||
"YT_RE_EXPLORE_DESC" = "需要重新啟動應用程式。";
|
|
||||||
|
|
||||||
"HIDE_SUBTITLES_BUTTON" = "隱藏字幕按鈕";
|
|
||||||
"HIDE_SUBTITLES_BUTTON_DESC" = "隱藏影片控制層中的字幕按鈕。";
|
|
||||||
|
|
||||||
"HIDE_AUTOPLAY_SWITCH" = "隱藏自動播放開關";
|
|
||||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "在影片控制層中隱藏自動播放開關。";
|
|
||||||
|
|
||||||
"AUTO_FULLSCREEN" = "自動全螢幕 (YTAutoFullScreen)";
|
|
||||||
"AUTO_FULLSCREEN_DESC" = "自動全螢幕播放影片。";
|
|
||||||
|
|
||||||
"HIDE_HUD_MESSAGES" = "隱藏 HUD 訊息";
|
|
||||||
"HIDE_HUD_MESSAGES_DESC" = "舉例來說:CC字幕 開啟/關閉,影片循環開啟,...";
|
|
||||||
|
|
||||||
"OLED_DARKMODE" = "OLED 深色模式(實驗性)";
|
|
||||||
"OLED_DARKMODE_DESC" = "在某些情況下可能無法正常工作。啟用/禁用此選項後,需要重新啟動應用程式。";
|
|
||||||
|
|
||||||
"OLED_KEYBOARD" = "OLED 鍵盤(實驗性)";
|
|
||||||
"OLED_KEYBOARD_DESC" = "在某些情況下可能無法正常工作。需要重新啟動應用程式。";
|
|
||||||
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS" = "隱藏付費促銷橫幅";
|
|
||||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "在某些影片中隱藏“包括付費促銷”橫幅。";
|
|
||||||
|
|
||||||
// YTCastConfirm
|
|
||||||
"CASTING" = "投放中";
|
|
||||||
"MSG_ARE_YOU_SURE" = "確定要開始投放嗎?";
|
|
||||||
"MSG_YES" = "確定";
|
|
||||||
"MSG_CANCEL" = "取消";
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{ Filter = { Bundles = ( "com.google.ios.youtube" ); }; }
|
||||||
-771
@@ -1,771 +0,0 @@
|
|||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <objc/runtime.h>
|
|
||||||
#import <dlfcn.h>
|
|
||||||
#import "Header.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTVideoQualitySwitchOriginalController.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTWatchController.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTIGuideResponse.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTIPivotBarSupportedRenderers.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTCommonColorPalette.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTColorPalette.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/ASCollectionView.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlay.h"
|
|
||||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h"
|
|
||||||
|
|
||||||
// Tweak's bundle for Localizations support - @PoomSmart - https://github.com/PoomSmart/YouPiP/commit/aea2473f64c75d73cab713e1e2d5d0a77675024f
|
|
||||||
NSBundle *uYouPlusBundle() {
|
|
||||||
static NSBundle *bundle = nil;
|
|
||||||
static dispatch_once_t onceToken;
|
|
||||||
dispatch_once(&onceToken, ^{
|
|
||||||
NSString *tweakBundlePath = [[NSBundle mainBundle] pathForResource:@"uYouPlus" ofType:@"bundle"];
|
|
||||||
bundle = [NSBundle bundleWithPath:tweakBundlePath];
|
|
||||||
});
|
|
||||||
return bundle;
|
|
||||||
}
|
|
||||||
NSBundle *tweakBundle = uYouPlusBundle();
|
|
||||||
|
|
||||||
//
|
|
||||||
BOOL hideHUD() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
|
|
||||||
}
|
|
||||||
BOOL oled() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
|
|
||||||
}
|
|
||||||
BOOL oledKB() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"oledKeyBoard_enabled"];
|
|
||||||
}
|
|
||||||
BOOL isDarkMode() {
|
|
||||||
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1);
|
|
||||||
}
|
|
||||||
BOOL autoFullScreen() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"autoFull_enabled"];
|
|
||||||
}
|
|
||||||
BOOL hideHoverCard() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHoverCards_enabled"];
|
|
||||||
}
|
|
||||||
BOOL reExplore() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"];
|
|
||||||
}
|
|
||||||
BOOL bigYTMiniPlayer() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"];
|
|
||||||
}
|
|
||||||
BOOL hideCC() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideCC_enabled"];
|
|
||||||
}
|
|
||||||
BOOL hideAutoplaySwitch() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideAutoplaySwitch_enabled"];
|
|
||||||
}
|
|
||||||
BOOL hidePreviousAndNextButton() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePreviousAndNextButton_enabled"];
|
|
||||||
}
|
|
||||||
BOOL castConfirm() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"castConfirm_enabled"];
|
|
||||||
}
|
|
||||||
BOOL ytMiniPlayer() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"ytMiniPlayer_enabled"];
|
|
||||||
}
|
|
||||||
BOOL hidePaidPromotionCard() {
|
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePaidPromotionCard_enabled"];
|
|
||||||
}
|
|
||||||
|
|
||||||
# pragma mark - Tweaks
|
|
||||||
// Enable Reorder videos from playlist while on the Watch page - @PoomSmart
|
|
||||||
%hook YTIPlaylistPanelVideoRenderer
|
|
||||||
%new
|
|
||||||
- (BOOL)canReorder { return YES; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTMiniPlayerEnabler: https://github.com/level3tjg/YTMiniplayerEnabler/
|
|
||||||
%hook YTWatchMiniBarViewController
|
|
||||||
- (void)updateMiniBarPlayerStateFromRenderer {
|
|
||||||
if (ytMiniPlayer()) {}
|
|
||||||
else { return %orig; }
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Hide CC / Autoplay switch / Next & Previous button
|
|
||||||
%hook YTMainAppControlsOverlayView
|
|
||||||
- (void)setClosedCaptionsOrSubtitlesButtonAvailable:(BOOL)arg1 { // hide CC button
|
|
||||||
if (hideCC()) { return %orig(NO); }
|
|
||||||
else { return %orig; }
|
|
||||||
}
|
|
||||||
- (void)setAutoplaySwitchButtonRenderer:(id)arg1 { // hide Autoplay
|
|
||||||
if (hideAutoplaySwitch()) {}
|
|
||||||
else { return %orig; }
|
|
||||||
}
|
|
||||||
- (void)layoutSubviews { // hide Next & Previous button
|
|
||||||
%orig;
|
|
||||||
if (hidePreviousAndNextButton()) {
|
|
||||||
MSHookIvar<YTMainAppControlsOverlayView *>(self, "_nextButton").hidden = YES;
|
|
||||||
MSHookIvar<YTMainAppControlsOverlayView *>(self, "_previousButton").hidden = YES;
|
|
||||||
MSHookIvar<YTTransportControlsButtonView *>(self, "_nextButtonView").hidden = YES;
|
|
||||||
MSHookIvar<YTTransportControlsButtonView *>(self, "_previousButtonView").hidden = YES;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Hide HUD Messages
|
|
||||||
%hook YTHUDMessageView
|
|
||||||
- (id)initWithMessage:(id)arg1 dismissHandler:(id)arg2 {
|
|
||||||
return hideHUD() ? nil : %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/
|
|
||||||
%hook YTPlayerViewController
|
|
||||||
- (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 {
|
|
||||||
%orig;
|
|
||||||
if (autoFullScreen())
|
|
||||||
[NSTimer scheduledTimerWithTimeInterval:0.75 target:self selector:@selector(autoFullscreen) userInfo:nil repeats:NO];
|
|
||||||
}
|
|
||||||
%new
|
|
||||||
- (void)autoFullscreen {
|
|
||||||
YTWatchController *watchController = [self valueForKey:@"_UIDelegate"];
|
|
||||||
[watchController showFullScreen];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTNoHoverCards: https://github.com/level3tjg/YTNoHoverCards
|
|
||||||
%hook YTCreatorEndscreenView
|
|
||||||
- (void)setHidden:(BOOL)hidden {
|
|
||||||
if (hideHoverCard())
|
|
||||||
hidden = YES;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
//YTCastConfirm: https://github.com/JamieBerghmans/YTCastConfirm
|
|
||||||
%hook MDXPlaybackRouteButtonController
|
|
||||||
- (void)didPressButton:(id)arg1 {
|
|
||||||
if (castConfirm()) {
|
|
||||||
UIAlertController* alertController = [%c(UIAlertController) alertControllerWithTitle:LOC(@"CASTING")
|
|
||||||
message:LOC(@"MSG_ARE_YOU_SURE")
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
UIAlertAction* defaultAction = [%c(UIAlertAction) actionWithTitle:LOC(@"MSG_YES") style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
|
|
||||||
%orig;
|
|
||||||
}];
|
|
||||||
|
|
||||||
UIAlertAction* noButton = [%c(UIAlertAction)
|
|
||||||
actionWithTitle:LOC(@"MSG_CANCEL")
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler: ^(UIAlertAction * action) {
|
|
||||||
return;
|
|
||||||
}];
|
|
||||||
|
|
||||||
[alertController addAction:defaultAction];
|
|
||||||
[alertController addAction:noButton];
|
|
||||||
|
|
||||||
id rootViewController = [%c(UIApplication) sharedApplication].delegate.window.rootViewController;
|
|
||||||
if ([rootViewController isKindOfClass:[%c(UINavigationController) class]]) {
|
|
||||||
rootViewController = ((UINavigationController *)rootViewController).viewControllers.firstObject;
|
|
||||||
}
|
|
||||||
if ([rootViewController isKindOfClass:[%c(UITabBarController) class]]) {
|
|
||||||
rootViewController = ((UITabBarController *)rootViewController).selectedViewController;
|
|
||||||
}
|
|
||||||
if ([rootViewController presentedViewController] != nil) {
|
|
||||||
rootViewController = [rootViewController presentedViewController];
|
|
||||||
}
|
|
||||||
[rootViewController presentViewController:alertController animated:YES completion:nil];
|
|
||||||
} else { return %orig; }
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Workaround for https://github.com/MiRO92/uYou-for-YouTube/issues/12
|
|
||||||
%hook YTAdsInnerTubeContextDecorator
|
|
||||||
- (void)decorateContext:(id)arg1 { %orig(nil); }
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Workaround for https://github.com/MiRO92/uYou-for-YouTube/issues/94
|
|
||||||
%hook YTELMView
|
|
||||||
%new
|
|
||||||
- (id)entry {
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Workaround for https://github.com/MiRO92/uYou-for-YouTube/issues/140
|
|
||||||
%hook YTLocalPlaybackController
|
|
||||||
%new
|
|
||||||
- (id)activeVideoController {
|
|
||||||
return [self activeVideo];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTClassicVideoQuality: https://github.com/PoomSmart/YTClassicVideoQuality
|
|
||||||
%hook YTVideoQualitySwitchControllerFactory
|
|
||||||
- (id)videoQualitySwitchControllerWithParentResponder:(id)responder {
|
|
||||||
Class originalClass = %c(YTVideoQualitySwitchOriginalController);
|
|
||||||
return originalClass ? [[originalClass alloc] initWithParentResponder:responder] : %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTNoCheckLocalNetwork: https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html
|
|
||||||
%hook YTHotConfig
|
|
||||||
- (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
|
|
||||||
%hook YTColdConfig
|
|
||||||
- (BOOL)respectDeviceCaptionSetting { return NO; }
|
|
||||||
- (BOOL)shouldUseAppThemeSetting { return YES; } // v16.xx
|
|
||||||
%end
|
|
||||||
|
|
||||||
// NOYTPremium - https://github.com/PoomSmart/NoYTPremium/
|
|
||||||
%hook YTCommerceEventGroupHandler
|
|
||||||
- (void)addEventHandlers {}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTInterstitialPromoEventGroupHandler
|
|
||||||
- (void)addEventHandlers {}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTPromosheetEventGroupHandler
|
|
||||||
- (void)addEventHandlers {}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTPromoThrottleController
|
|
||||||
- (BOOL)canShowThrottledPromo { return NO; }
|
|
||||||
- (BOOL)canShowThrottledPromoWithFrequencyCap:(id)arg1 { return NO; }
|
|
||||||
- (BOOL)canShowThrottledPromoWithFrequencyCaps:(id)arg1 { return NO; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTIShowFullscreenInterstitialCommand
|
|
||||||
- (BOOL)shouldThrottleInterstitial { return YES; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTSurveyController
|
|
||||||
- (void)showSurveyWithRenderer:(id)arg1 surveyParentResponder:(id)arg2 {}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Enable Shorts scroll bar - @PoomSmart
|
|
||||||
%hook YTReelPlayerViewController
|
|
||||||
- (BOOL)shouldAlwaysEnablePlayerBar { return YES; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTInlinePlayerBarContainerView
|
|
||||||
- (void)setUserInteractionEnabled:(BOOL)enabled { %orig(YES); }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTReelPlayerViewControllerSub // v16.42.3 - @level3tjg: https://reddit.com/r/jailbreak/comments/v29yvk/_/iasl1l0/
|
|
||||||
- (BOOL)shouldEnablePlayerBar { return YES; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Workaround for issue #54
|
|
||||||
%hook YTMainAppVideoPlayerOverlayViewController
|
|
||||||
- (void)updateRelatedVideos {
|
|
||||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"relatedVideosAtTheEndOfYTVideos"] == NO) {}
|
|
||||||
else { return %orig; }
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Hide YouTube Shorts banner in Home page? - @MiRO92 - YTNoShorts: https://github.com/MiRO92/YTNoShorts
|
|
||||||
%hook YTAsyncCollectionView
|
|
||||||
- (id)cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
UICollectionViewCell *cell = %orig;
|
|
||||||
if ([cell isKindOfClass:NSClassFromString(@"_ASCollectionViewCell")]) {
|
|
||||||
_ASCollectionViewCell *cell = %orig;
|
|
||||||
if ([cell respondsToSelector:@selector(node)]) {
|
|
||||||
if ([[[cell node] accessibilityIdentifier] isEqualToString:@"statement_banner.view"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
|
||||||
if ([[[cell node] accessibilityIdentifier] isEqualToString:@"compact.view"]) { [self removeShortsAndFeaturesAdsAtIndexPath:indexPath]; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
|
|
||||||
%new
|
|
||||||
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
[self deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// uYou's slide settings?
|
|
||||||
%hook FRPSliderCell
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
|
||||||
MSHookIvar<UILabel *>(self, "_lLabel").textColor = [UIColor whiteColor];
|
|
||||||
MSHookIvar<UILabel *>(self, "_rLabel").textColor = [UIColor whiteColor];
|
|
||||||
MSHookIvar<UILabel *>(self, "_cLabel").textColor = [UIColor whiteColor];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTNoPaidPromo: https://github.com/PoomSmart/YTNoPaidPromo
|
|
||||||
%hook YTMainAppVideoPlayerOverlayViewController
|
|
||||||
- (void)setPaidContentWithPlayerData:(id)data {
|
|
||||||
if (hidePaidPromotionCard()) {}
|
|
||||||
else { return %orig; }
|
|
||||||
}
|
|
||||||
- (void)playerOverlayProvider:(YTPlayerOverlayProvider *)provider didInsertPlayerOverlay:(YTPlayerOverlay *)overlay {
|
|
||||||
if ([[overlay overlayIdentifier] isEqualToString:@"player_overlay_paid_content"] && hidePaidPromotionCard()) return;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTInlineMutedPlaybackPlayerOverlayViewController
|
|
||||||
- (void)setPaidContentWithPlayerData:(id)data {
|
|
||||||
if (hidePaidPromotionCard()) {}
|
|
||||||
else { return %orig; }
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
# pragma mark - IAmYouTube - https://github.com/PoomSmart/IAmYouTube/
|
|
||||||
%hook YTVersionUtils
|
|
||||||
+ (NSString *)appName { return YT_NAME; }
|
|
||||||
+ (NSString *)appID { return YT_BUNDLE_ID; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook GCKBUtils
|
|
||||||
+ (NSString *)appIdentifier { return YT_BUNDLE_ID; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook GPCDeviceInfo
|
|
||||||
+ (NSString *)bundleId { return YT_BUNDLE_ID; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook OGLBundle
|
|
||||||
+ (NSString *)shortAppName { return YT_NAME; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook GVROverlayView
|
|
||||||
+ (NSString *)appName { return YT_NAME; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook OGLPhenotypeFlagServiceImpl
|
|
||||||
- (NSString *)bundleId { return YT_BUNDLE_ID; }
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook SSOConfiguration
|
|
||||||
- (id)initWithClientID:(id)clientID supportedAccountServices:(id)supportedAccountServices {
|
|
||||||
self = %orig;
|
|
||||||
[self setValue:YT_NAME forKey:@"_shortAppName"];
|
|
||||||
[self setValue:YT_BUNDLE_ID forKey:@"_applicationIdentifier"];
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook NSBundle
|
|
||||||
- (NSString *)bundleIdentifier {
|
|
||||||
NSArray *address = [NSThread callStackReturnAddresses];
|
|
||||||
Dl_info info = {0};
|
|
||||||
if (dladdr((void *)[address[2] longLongValue], &info) == 0)
|
|
||||||
return %orig;
|
|
||||||
NSString *path = [NSString stringWithUTF8String:info.dli_fname];
|
|
||||||
if ([path hasPrefix:NSBundle.mainBundle.bundlePath])
|
|
||||||
return YT_BUNDLE_ID;
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (id)objectForInfoDictionaryKey:(NSString *)key {
|
|
||||||
if ([key isEqualToString:@"CFBundleIdentifier"])
|
|
||||||
return YT_BUNDLE_ID;
|
|
||||||
if ([key isEqualToString:@"CFBundleDisplayName"] || [key isEqualToString:@"CFBundleName"])
|
|
||||||
return YT_NAME;
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
# pragma mark - OLED dark mode by BandarHL
|
|
||||||
UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:1.0];
|
|
||||||
%group gOLED
|
|
||||||
%hook YTCommonColorPalette
|
|
||||||
- (UIColor *)brandBackgroundSolid {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)brandBackgroundPrimary {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)brandBackgroundSecondary {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [[UIColor blackColor] colorWithAlphaComponent:0.9];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)raisedBackground {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)staticBrandBlack {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)generalBackgroundA {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTColorPalette // v16.42.3
|
|
||||||
- (UIColor *)brandBackgroundSolid {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)brandBackgroundPrimary {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)brandBackgroundSecondary {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [[UIColor blackColor] colorWithAlphaComponent:0.9];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)staticBrandBlack {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (UIColor *)generalBackgroundA {
|
|
||||||
if (self.pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Account view controller
|
|
||||||
%hook YTAccountPanelBodyViewController
|
|
||||||
- (UIColor *)backgroundColor:(NSInteger)pageStyle {
|
|
||||||
if (pageStyle == 1) {
|
|
||||||
return [UIColor blackColor];
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Explore
|
|
||||||
%hook ASScrollView
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
if (isDarkMode()) {
|
|
||||||
self.backgroundColor = [UIColor clearColor];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Your videos
|
|
||||||
%hook ASCollectionView
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
if (isDarkMode() && [self.nextResponder isKindOfClass:%c(_ASDisplayView)]) {
|
|
||||||
self.superview.backgroundColor = [UIColor clearColor];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// iSponsorBlock
|
|
||||||
%hook SponsorBlockSettingsController
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
|
||||||
%orig;
|
|
||||||
self.tableView.backgroundColor = [UIColor blackColor];
|
|
||||||
} else { return %orig; }
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook SponsorBlockViewController
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
|
||||||
%orig;
|
|
||||||
self.view.backgroundColor = [UIColor blackColor];
|
|
||||||
} else { return %orig; }
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Search View
|
|
||||||
%hook YTSearchBarView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// History Search view
|
|
||||||
%hook YTSearchBoxView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Comment view
|
|
||||||
%hook YTCommentView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTCreateCommentAccessoryView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTCreateCommentTextView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
- (void)setTextColor:(UIColor *)color { // fix black text in #Shorts video's comment
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor whiteColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTCommentDetailHeaderCell
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
if (isDarkMode()) {
|
|
||||||
self.subviews[2].backgroundColor = [UIColor blackColor];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTFormattedStringLabel // YT is werid...
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor clearColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Live chat comment
|
|
||||||
%hook YCHLiveChatActionPanelView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTEmojiTextView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig([UIColor blackColor]);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Others
|
|
||||||
%hook _ASDisplayView
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
if (isDarkMode()) {
|
|
||||||
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = [UIColor blackColor]; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
// Open link with...
|
|
||||||
%hook ASWAppSwitchingSheetHeaderView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig(raisedColor);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook ASWAppSwitchingSheetFooterView
|
|
||||||
- (void)setBackgroundColor:(UIColor *)color {
|
|
||||||
if (isDarkMode()) {
|
|
||||||
return %orig(raisedColor);
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook ASWAppSwitcherCollectionViewCell
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
if (isDarkMode()) {
|
|
||||||
self.subviews[1].backgroundColor = raisedColor;
|
|
||||||
self.superview.backgroundColor = raisedColor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
%end
|
|
||||||
|
|
||||||
# pragma mark - OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
|
|
||||||
%group gOLEDKB
|
|
||||||
%hook UIPredictionViewController
|
|
||||||
- (void)loadView {
|
|
||||||
%orig;
|
|
||||||
[self.view setBackgroundColor:[UIColor blackColor]];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook UICandidateViewController
|
|
||||||
- (void)loadView {
|
|
||||||
%orig;
|
|
||||||
[self.view setBackgroundColor:[UIColor blackColor]];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook UIKeyboardDockView
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
self.backgroundColor = [UIColor blackColor];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook UIKeyboardLayoutStar
|
|
||||||
- (void)didMoveToWindow {
|
|
||||||
%orig;
|
|
||||||
self.backgroundColor = [UIColor blackColor];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook UIKBRenderConfig // Prediction text color
|
|
||||||
- (void)setLightKeyboard:(BOOL)arg1 { %orig(NO); }
|
|
||||||
%end
|
|
||||||
%end
|
|
||||||
|
|
||||||
// YTReExplore: https://github.com/PoomSmart/YTReExplore/
|
|
||||||
%group gReExplore
|
|
||||||
static void replaceTab(YTIGuideResponse *response) {
|
|
||||||
NSMutableArray <YTIGuideResponseSupportedRenderers *> *renderers = [response itemsArray];
|
|
||||||
for (YTIGuideResponseSupportedRenderers *guideRenderers in renderers) {
|
|
||||||
YTIPivotBarRenderer *pivotBarRenderer = [guideRenderers pivotBarRenderer];
|
|
||||||
NSMutableArray <YTIPivotBarSupportedRenderers *> *items = [pivotBarRenderer itemsArray];
|
|
||||||
NSUInteger shortIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
|
||||||
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:@"FEshorts"];
|
|
||||||
}];
|
|
||||||
if (shortIndex != NSNotFound) {
|
|
||||||
[items removeObjectAtIndex:shortIndex];
|
|
||||||
NSUInteger exploreIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) {
|
|
||||||
return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:[%c(YTIBrowseRequest) browseIDForExploreTab]];
|
|
||||||
}];
|
|
||||||
if (exploreIndex == NSNotFound) {
|
|
||||||
YTIPivotBarSupportedRenderers *exploreTab = [%c(YTIPivotBarRenderer) pivotSupportedRenderersWithBrowseId:[%c(YTIBrowseRequest) browseIDForExploreTab] title:@"Explore" iconType:292];
|
|
||||||
[items insertObject:exploreTab atIndex:1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%hook YTGuideServiceCoordinator
|
|
||||||
- (void)handleResponse:(YTIGuideResponse *)response withCompletion:(id)completion {
|
|
||||||
replaceTab(response);
|
|
||||||
%orig(response, completion);
|
|
||||||
}
|
|
||||||
- (void)handleResponse:(YTIGuideResponse *)response error:(id)error completion:(id)completion {
|
|
||||||
replaceTab(response);
|
|
||||||
%orig(response, error, completion);
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
%end
|
|
||||||
|
|
||||||
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
|
|
||||||
%group Main
|
|
||||||
%hook YTWatchMiniBarView
|
|
||||||
- (void)setWatchMiniPlayerLayout:(int)arg1 {
|
|
||||||
%orig(1);
|
|
||||||
}
|
|
||||||
- (int)watchMiniPlayerLayout {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
- (void)layoutSubviews {
|
|
||||||
%orig;
|
|
||||||
self.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width - self.frame.size.width), self.frame.origin.y, self.frame.size.width, self.frame.size.height);
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTMainAppVideoPlayerOverlayView
|
|
||||||
- (BOOL)isUserInteractionEnabled {
|
|
||||||
if([[self _viewControllerForAncestor].parentViewController.parentViewController isKindOfClass:%c(YTWatchMiniBarViewController)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return %orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
%end
|
|
||||||
|
|
||||||
// iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224
|
|
||||||
%group iOS16
|
|
||||||
%hook OBPrivacyLinkButton
|
|
||||||
%new
|
|
||||||
- (instancetype)initWithCaption:(NSString *)caption
|
|
||||||
buttonText:(NSString *)buttonText
|
|
||||||
image:(UIImage *)image
|
|
||||||
imageSize:(CGSize)imageSize
|
|
||||||
useLargeIcon:(BOOL)useLargeIcon {
|
|
||||||
return [self initWithCaption:caption
|
|
||||||
buttonText:buttonText
|
|
||||||
image:image
|
|
||||||
imageSize:imageSize
|
|
||||||
useLargeIcon:useLargeIcon
|
|
||||||
displayLanguage:[NSLocale currentLocale].languageCode];
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
%end
|
|
||||||
|
|
||||||
# pragma mark - ctor
|
|
||||||
%ctor {
|
|
||||||
%init;
|
|
||||||
if (![[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"relatedVideosAtTheEndOfYTVideos"]) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"relatedVideosAtTheEndOfYTVideos"];
|
|
||||||
}
|
|
||||||
if (oled()) {
|
|
||||||
%init(gOLED);
|
|
||||||
}
|
|
||||||
if (oledKB()) {
|
|
||||||
%init(gOLEDKB);
|
|
||||||
}
|
|
||||||
if (reExplore()) {
|
|
||||||
%init(gReExplore);
|
|
||||||
}
|
|
||||||
if (bigYTMiniPlayer() && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) {
|
|
||||||
%init(Main);
|
|
||||||
}
|
|
||||||
if (@available(iOS 16, *)) {
|
|
||||||
%init(iOS16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user