Compare commits
538 Commits
3.1.2
...
guidelines
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97aea1c268 | ||
|
|
b70f50e1a0 | ||
|
|
4880227320 | ||
|
|
dfa21068f4 | ||
|
|
fd75a33e50 | ||
|
|
1409c563e2 | ||
|
|
588c42d579 | ||
|
|
d7ff6aa6a2 | ||
|
|
44266e508b | ||
|
|
c0f8f5e1d0 | ||
|
|
e948e1e569 | ||
|
|
5289e62d43 | ||
|
|
eda7aac5ef | ||
|
|
d9f4ab0d04 | ||
|
|
2665327729 | ||
|
|
4738c1897f | ||
|
|
cfbb194a61 | ||
|
|
9ad21e8ea1 | ||
|
|
941fc2985d | ||
|
|
e2da071761 | ||
|
|
c20c9ac64a | ||
|
|
2d59f3825c | ||
|
|
fb8b7a7d19 | ||
|
|
d992cc7a3c | ||
|
|
f8fecf5174 | ||
|
|
3007cddce9 | ||
|
|
2b3c812f8a | ||
|
|
61535fac95 | ||
|
|
4182595436 | ||
|
|
97e30e4001 | ||
|
|
6763fd3b4b | ||
|
|
a39ec76340 | ||
|
|
f68282decc | ||
|
|
160de56a71 | ||
|
|
bd4fbcc93d | ||
|
|
f1839eef94 | ||
|
|
3e3abf36e5 | ||
|
|
393861dcd3 | ||
|
|
b5d6b2d3fd | ||
|
|
a0c82dc734 | ||
|
|
e4be99c3d7 | ||
|
|
3da6a57e42 | ||
|
|
7ce9442153 | ||
|
|
773da185ee | ||
|
|
bf3dcd97b8 | ||
|
|
793c16a21b | ||
|
|
52dc697635 | ||
|
|
36689ed886 | ||
|
|
4d4689a190 | ||
|
|
78aaffb8d8 | ||
|
|
b82e43bb93 | ||
|
|
8eef3a3ce5 | ||
|
|
063845d513 | ||
|
|
7353a2ac0d | ||
|
|
5e733fddad | ||
|
|
5d48e87e0b | ||
|
|
e86f5a1a59 | ||
|
|
2d2bd36abb | ||
|
|
e72f3b1a12 | ||
|
|
fd260f4caa | ||
|
|
95696e23fe | ||
|
|
463ce258bf | ||
|
|
0bf8368686 | ||
|
|
0c216792cf | ||
|
|
dd447297f9 | ||
|
|
1a908b5038 | ||
|
|
ba629e9c9e | ||
|
|
fb11242dd5 | ||
|
|
aa88ab1985 | ||
|
|
b075116502 | ||
|
|
9e02e35c4d | ||
|
|
d7e67fb397 | ||
|
|
f2172bb2ad | ||
|
|
c773b4ecd1 | ||
|
|
9bad5ed324 | ||
|
|
93bb016b4f | ||
|
|
8c901d5bad | ||
|
|
ac533c612c | ||
|
|
21e9dd870d | ||
|
|
e3f6242e5f | ||
|
|
a47fa20652 | ||
|
|
fa0c890633 | ||
|
|
d7d12e1618 | ||
|
|
82bdc28305 | ||
|
|
7c4f649016 | ||
|
|
d937a2ae59 | ||
|
|
d19fcd2a4c | ||
|
|
9b4c4afa35 | ||
|
|
c5b00f67a1 | ||
|
|
6f79e986ba | ||
|
|
8aa10605c5 | ||
|
|
44421c4b5d | ||
|
|
fbbd6de0ff | ||
|
|
c6e3d11071 | ||
|
|
ae7f1f228f | ||
|
|
d353f3b677 | ||
|
|
42eceb3efd | ||
|
|
6f5586d656 | ||
|
|
9bea04dfc2 | ||
|
|
0d34e643c7 | ||
|
|
88f60c0e84 | ||
|
|
964a277331 | ||
|
|
057c7792df | ||
|
|
bd6372d944 | ||
|
|
0d31b8276c | ||
|
|
b15a8db651 | ||
|
|
9f1f9f84d4 | ||
|
|
5d72498aac | ||
|
|
e8536fd404 | ||
|
|
9489354357 | ||
|
|
940350504a | ||
|
|
0e37ebd789 | ||
|
|
c66110a60f | ||
|
|
ac7f2eb5b1 | ||
|
|
0cdbcfc97e | ||
|
|
821bbc969b | ||
|
|
e20011ce08 | ||
|
|
e30bccd2b7 | ||
|
|
c0cfa3a683 | ||
|
|
f7510eea88 | ||
|
|
24fc5e4370 | ||
|
|
5b62e76a63 | ||
|
|
15c73d7940 | ||
|
|
36f0fccd9c | ||
|
|
d4544a7c47 | ||
|
|
d9f1ee9bb8 | ||
|
|
5f4c4332be | ||
|
|
1acda5fe0a | ||
|
|
21d4f0487c | ||
|
|
340127a7f3 | ||
|
|
38ab10a191 | ||
|
|
ced30c711e | ||
|
|
6bb265939a | ||
|
|
d495be18a3 | ||
|
|
476efff47b | ||
|
|
dcbefb5457 | ||
|
|
b167cecdce | ||
|
|
924c777736 | ||
|
|
405fb342f0 | ||
|
|
c76f241b63 | ||
|
|
54013681ef | ||
|
|
8e94a05fa9 | ||
|
|
7c747e6566 | ||
|
|
a64deb2e18 | ||
|
|
effac2449a | ||
|
|
d02aab4ba3 | ||
|
|
a1caf8fbdb | ||
|
|
a3734e050f | ||
|
|
5496b05c88 | ||
|
|
f6d2497e7b | ||
|
|
6ea18fd536 | ||
|
|
3d51c4eb53 | ||
|
|
e11a8531fe | ||
|
|
05ba554075 | ||
|
|
0e5606423e | ||
|
|
87354009b5 | ||
|
|
50c87a6842 | ||
|
|
84a234f9b6 | ||
|
|
fd5ab9f153 | ||
|
|
30fe40a523 | ||
|
|
6e23650a99 | ||
|
|
d6a0029b85 | ||
|
|
f25f986200 | ||
|
|
8843fb767e | ||
|
|
3a17299610 | ||
|
|
64d2c0a299 | ||
|
|
a2a5d27900 | ||
|
|
eb9e2d8726 | ||
|
|
ddc34bacc7 | ||
|
|
60b0a59ba1 | ||
|
|
c9903b5926 | ||
|
|
db7251cbfb | ||
|
|
fcf42560bf | ||
|
|
036b3967a9 | ||
|
|
e622ee725c | ||
|
|
5ace92dc8b | ||
|
|
bb490bf7ad | ||
|
|
4cc248eb17 | ||
|
|
2e8ce93c1d | ||
|
|
4fc9856e34 | ||
|
|
f92e3dbc9a | ||
|
|
7f75929d81 | ||
|
|
43699c1875 | ||
|
|
6128d37ac2 | ||
|
|
c64c5125fb | ||
|
|
cbb8d48820 | ||
|
|
008079c74c | ||
|
|
e65642237f | ||
|
|
84d4c9da4c | ||
|
|
e623af859f | ||
|
|
8c60f25d4a | ||
|
|
7896b474db | ||
|
|
4d60dec7f9 | ||
|
|
53d0ac8677 | ||
|
|
e4ba67999c | ||
|
|
0b6ade4a1d | ||
|
|
816e9a78be | ||
|
|
ccb0e8bed9 | ||
|
|
459de6654a | ||
|
|
8b6f0d8a2e | ||
|
|
cf792e849f | ||
|
|
fce82b48b0 | ||
|
|
3d2fe8c409 | ||
|
|
f513c3b8cb | ||
|
|
c66e624c16 | ||
|
|
ddca15ca01 | ||
|
|
199ccb1b12 | ||
|
|
552b33104b | ||
|
|
57b952f64c | ||
|
|
6867fa88d3 | ||
|
|
93af8d966b | ||
|
|
32fa9c3398 | ||
|
|
4a8e769596 | ||
|
|
9c836a89a3 | ||
|
|
b21b6edb0c | ||
|
|
ca49b48814 | ||
|
|
2b9a93deb0 | ||
|
|
d9dede6578 | ||
|
|
2a8a9ba667 | ||
|
|
1bd7c6a33a | ||
|
|
f5301fc374 | ||
|
|
159e7598d7 | ||
|
|
2bd1688d8d | ||
|
|
26143460b7 | ||
|
|
2575141d35 | ||
|
|
48124e56d6 | ||
|
|
e8307a2af7 | ||
|
|
d01ed86803 | ||
|
|
628c978286 | ||
|
|
a0ba496d83 | ||
|
|
0ac4ef7a4b | ||
|
|
ba2efe59cb | ||
|
|
88f61cf292 | ||
|
|
86e5ef7523 | ||
|
|
0451dcd975 | ||
|
|
ba7d46dd73 | ||
|
|
1115ffd8cf | ||
|
|
fa926ef686 | ||
|
|
22fcea99f5 | ||
|
|
876b55dcc1 | ||
|
|
6d0d533fa7 | ||
|
|
9457aff44f | ||
|
|
193374db30 | ||
|
|
2a7f08f360 | ||
|
|
b02e4c1b4f | ||
|
|
8922c6cb67 | ||
|
|
f555a8e7bb | ||
|
|
aac2572b4e | ||
|
|
56e7dc842e | ||
|
|
8452bfb32a | ||
|
|
c49ebbe371 | ||
|
|
e87ec3842b | ||
|
|
595cb84941 | ||
|
|
8d5f244d2f | ||
|
|
8455ac8b39 | ||
|
|
666aaab7f2 | ||
|
|
963ead0a30 | ||
|
|
28a711de75 | ||
|
|
1fca10a1c1 | ||
|
|
96cefeaaf3 | ||
|
|
23a6940894 | ||
|
|
7f2b1c60c7 | ||
|
|
c542cd9f73 | ||
|
|
7e091d1c67 | ||
|
|
6a07a9f693 | ||
|
|
c34d1e0bc1 | ||
|
|
b4c8e54d3e | ||
|
|
b83426caba | ||
|
|
9da99688d3 | ||
|
|
9bcee6afce | ||
|
|
1b5d7ccf3e | ||
|
|
41a8b2718a | ||
|
|
002f22c040 | ||
|
|
bf735f47b0 | ||
|
|
e4aa7efd3c | ||
|
|
b210b22af3 | ||
|
|
154e12f201 | ||
|
|
b6c1ee1743 | ||
|
|
6b6ca6198f | ||
|
|
6788394be1 | ||
|
|
059a674ae1 | ||
|
|
a45bd4c5c7 | ||
|
|
bb47863080 | ||
|
|
d50a69f1fd | ||
|
|
31014b78ac | ||
|
|
cf9e016581 | ||
|
|
dee836c783 | ||
|
|
5c7f8cef45 | ||
|
|
9f5ec09789 | ||
|
|
a82062da5b | ||
|
|
35da572f3f | ||
|
|
cf01679f16 | ||
|
|
16f4ab53b6 | ||
|
|
65f4a2ec28 | ||
|
|
983b1f64da | ||
|
|
70b2491975 | ||
|
|
0fdb76ffe0 | ||
|
|
e2ba5c2063 | ||
|
|
6d4ec823a0 | ||
|
|
917e644822 | ||
|
|
c986860a42 | ||
|
|
881cea4f6d | ||
|
|
5dd78e1cb3 | ||
|
|
83db64d084 | ||
|
|
0da8a34e7a | ||
|
|
ed17d4859f | ||
|
|
dc560cd73e | ||
|
|
90eaab4e50 | ||
|
|
3b54fde3f9 | ||
|
|
02d8bf9a6f | ||
|
|
2cf89b1850 | ||
|
|
fb74823c92 | ||
|
|
024480513c | ||
|
|
e9b217c685 | ||
|
|
7b917fb2b6 | ||
|
|
2db35a624a | ||
|
|
c31866ff5f | ||
|
|
e347165073 | ||
|
|
57de51475f | ||
|
|
d16a409db2 | ||
|
|
c63416fd7b | ||
|
|
4d724deba3 | ||
|
|
1aac863df0 | ||
|
|
c7d5011cc0 | ||
|
|
8e964b40b3 | ||
|
|
a6a9b7dd8c | ||
|
|
d23e434209 | ||
|
|
040bce2638 | ||
|
|
388b9179ac | ||
|
|
2883a50f27 | ||
|
|
d36b4a54f3 | ||
|
|
6ed946c998 | ||
|
|
44bc8741ef | ||
|
|
7a7b21cd87 | ||
|
|
229bd23a68 | ||
|
|
894410db98 | ||
|
|
0336157673 | ||
|
|
b758cbb25f | ||
|
|
f2be7a9c5b | ||
|
|
8763d173bd | ||
|
|
07e3117e22 | ||
|
|
12bc10ea1f | ||
|
|
2db1971190 | ||
|
|
9b152a5525 | ||
|
|
7f374f0f86 | ||
|
|
aca52abefc | ||
|
|
6930980a4d | ||
|
|
5af4833763 | ||
|
|
c3107ffcff | ||
|
|
4bca8ad2f7 | ||
|
|
e729e036cf | ||
|
|
7b74307013 | ||
|
|
6aa1665d7c | ||
|
|
a1bae95cdc | ||
|
|
c5b72a01a2 | ||
|
|
8ade66d7b3 | ||
|
|
d42862541b | ||
|
|
54001763a7 | ||
|
|
46e515b130 | ||
|
|
9a9e564dbf | ||
|
|
4971824067 | ||
|
|
dface28c84 | ||
|
|
7186829bc3 | ||
|
|
3d3b261f8f | ||
|
|
33094f2541 | ||
|
|
9f9df9479b | ||
|
|
1c911581db | ||
|
|
071f8b1729 | ||
|
|
8d1b35403d | ||
|
|
a8fee918e4 | ||
|
|
7bca8e508e | ||
|
|
e16aae393f | ||
|
|
44de741e84 | ||
|
|
bc990cd683 | ||
|
|
33098ac659 | ||
|
|
2f8ec7a5e5 | ||
|
|
48f7c1e0a1 | ||
|
|
29c3b80d0b | ||
|
|
dc47b9ffd2 | ||
|
|
eaa47c8d40 | ||
|
|
e4e453a11c | ||
|
|
2209c230e7 | ||
|
|
9d70332c9a | ||
|
|
8150d38df0 | ||
|
|
75b5c31d07 | ||
|
|
c007ac3d86 | ||
|
|
7218be73c6 | ||
|
|
96693342a3 | ||
|
|
d2ff7b5c04 | ||
|
|
9a0f1db31e | ||
|
|
06da4d6556 | ||
|
|
20d0c05049 | ||
|
|
96e4957f71 | ||
|
|
9c5eeac239 | ||
|
|
e685697bbb | ||
|
|
752e515a1c | ||
|
|
ca0f68bb7d | ||
|
|
34884026d9 | ||
|
|
7a38bf0c08 | ||
|
|
5adcec2ca5 | ||
|
|
36989907a2 | ||
|
|
db55778fd8 | ||
|
|
41be51b384 | ||
|
|
e87efe2c67 | ||
|
|
069299e968 | ||
|
|
4d09a603fe | ||
|
|
8b595af5e9 | ||
|
|
41739a8799 | ||
|
|
23bebbca7c | ||
|
|
5f2af12150 | ||
|
|
628abd03f0 | ||
|
|
8e254c5807 | ||
|
|
0647576d6f | ||
|
|
c803ae9499 | ||
|
|
95f45312e1 | ||
|
|
9dda9a583d | ||
|
|
d1e6421e5b | ||
|
|
bd0a6aaaad | ||
|
|
1e8b176c69 | ||
|
|
14018798f7 | ||
|
|
a0d06ca6e8 | ||
|
|
95fe1eef6f | ||
|
|
38b1dda20b | ||
|
|
07cf1764dc | ||
|
|
aeb9c5b203 | ||
|
|
ad3f0c1a06 | ||
|
|
4bc180077e | ||
|
|
510db57666 | ||
|
|
5ee6a2195d | ||
|
|
63d4c1aedb | ||
|
|
e9204be96f | ||
|
|
0863061665 | ||
|
|
8aea74160c | ||
|
|
d375a97e99 | ||
|
|
fe5499e80a | ||
|
|
598da2a7fe | ||
|
|
fcbeeb9fc1 | ||
|
|
d82ef63d89 | ||
|
|
a457a8009e | ||
|
|
7698be8462 | ||
|
|
738868da8d | ||
|
|
fc7fc693ed | ||
|
|
27f5997e5a | ||
|
|
45274f5c72 | ||
|
|
2bdfd3f39b | ||
|
|
9b9174ab9a | ||
|
|
3e3e9796b1 | ||
|
|
ff5fa4c724 | ||
|
|
b8ab05ccad | ||
|
|
93e440385f | ||
|
|
af66a77026 | ||
|
|
75607dea1c | ||
|
|
5b353b05ac | ||
|
|
3162ab93a1 | ||
|
|
b18f631d33 | ||
|
|
2e254cb917 | ||
|
|
77ce9433a7 | ||
|
|
509e54762f | ||
|
|
caeb347137 | ||
|
|
a2b054844a | ||
|
|
5b79d4ef48 | ||
|
|
3de66ebe23 | ||
|
|
60ef51b7f5 | ||
|
|
aa8ee02277 | ||
|
|
b927ebbbf7 | ||
|
|
d72d5dcbcb | ||
|
|
d9f703d808 | ||
|
|
a9cc43c586 | ||
|
|
844567dcdf | ||
|
|
52ed4f73f4 | ||
|
|
907bd68e4e | ||
|
|
f35afaf6bc | ||
|
|
85b1b51b76 | ||
|
|
9dc5449e37 | ||
|
|
6ea226c972 | ||
|
|
44f9ab9806 | ||
|
|
edd1011737 | ||
|
|
08558bfaeb | ||
|
|
4afc2c153a | ||
|
|
988905c155 | ||
|
|
51aab00985 | ||
|
|
84924b6364 | ||
|
|
93f02877a7 | ||
|
|
7baac9dcbf | ||
|
|
4045978b54 | ||
|
|
56bc3fca04 | ||
|
|
c571a9ecb6 | ||
|
|
1ad60720df | ||
|
|
e5fe99c89b | ||
|
|
3fc32a68c3 | ||
|
|
142cc2881f | ||
|
|
4de55ea5fe | ||
|
|
620e75517c | ||
|
|
cba26a42af | ||
|
|
f3f598d6c7 | ||
|
|
fe7d9986fa | ||
|
|
143ca6f6e0 | ||
|
|
69ce065588 | ||
|
|
bfa31429f1 | ||
|
|
66f0cc8883 | ||
|
|
1a0ac27e49 | ||
|
|
7b87ae7b08 | ||
|
|
9ab8e63b1d | ||
|
|
0e147134f3 | ||
|
|
8605e23fbb | ||
|
|
5f34a777f1 | ||
|
|
1f43d07e16 | ||
|
|
a88aaf4590 | ||
|
|
25f78ed55b | ||
|
|
26e73c515c | ||
|
|
028374e62d | ||
|
|
dc1e5ce762 | ||
|
|
8fcf8ac46c | ||
|
|
ef70e71051 | ||
|
|
23a91c626d | ||
|
|
c92f63af36 | ||
|
|
0a21ef7af0 | ||
|
|
5a74a28520 | ||
|
|
1bfb5cfb13 | ||
|
|
59f8f82655 | ||
|
|
2064afb235 | ||
|
|
ebcb600e99 | ||
|
|
9ec984065e | ||
|
|
63cfe760b6 | ||
|
|
1a717542c7 | ||
|
|
de607d317f | ||
|
|
76d9a9afa9 | ||
|
|
22ecc05a55 | ||
|
|
514ebe8660 | ||
|
|
2f4722162b | ||
|
|
f219122f00 | ||
|
|
008671d97f | ||
|
|
6fb3802fd4 | ||
|
|
73241a0bd1 | ||
|
|
cc995b9848 | ||
|
|
778379d294 | ||
|
|
1083520666 | ||
|
|
cad5cd97fc |
33
.eslintrc.js
@@ -1,33 +0,0 @@
|
||||
module.exports = {
|
||||
env: {
|
||||
browser: true,
|
||||
es2021: true,
|
||||
node: true,
|
||||
jest: true,
|
||||
jasmine: true,
|
||||
},
|
||||
extends: [
|
||||
"eslint:recommended",
|
||||
"plugin:react/recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
],
|
||||
parser: "@typescript-eslint/parser",
|
||||
parserOptions: {
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
},
|
||||
ecmaVersion: 12,
|
||||
sourceType: "module",
|
||||
},
|
||||
plugins: ["react", "@typescript-eslint"],
|
||||
rules: {
|
||||
// TODO: Remove warn rules when not needed anymore
|
||||
"no-self-assign": "off",
|
||||
"@typescript-eslint/no-empty-interface": "off",
|
||||
},
|
||||
settings: {
|
||||
react: {
|
||||
version: "detect",
|
||||
},
|
||||
},
|
||||
};
|
||||
33
.eslintrc.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es2021": true,
|
||||
"node": true,
|
||||
"jest": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:react/recommended",
|
||||
"plugin:@typescript-eslint/recommended"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
},
|
||||
"ecmaVersion": 12,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": ["react", "@typescript-eslint"],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unused-vars": "error",
|
||||
"no-self-assign": "off",
|
||||
"@typescript-eslint/no-empty-interface": "off",
|
||||
"react/prop-types": [2, { "ignore": ["children"] }]
|
||||
},
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
}
|
||||
}
|
||||
}
|
||||
28
.github/workflows/ci.yml
vendored
@@ -10,9 +10,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
# Initialization
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/setup-node@v1
|
||||
- run: npm install
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '16'
|
||||
- run: npm ci
|
||||
- name: Copy configuration
|
||||
run: cp config.json.example config.json
|
||||
|
||||
@@ -23,44 +25,44 @@ jobs:
|
||||
# Create Chrome artifacts
|
||||
- name: Create Chrome artifacts
|
||||
run: npm run build:chrome
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ChromeExtension
|
||||
path: dist
|
||||
- run: mkdir ./builds
|
||||
- uses: montudor/action-zip@v0.1.0
|
||||
- uses: montudor/action-zip@v1
|
||||
with:
|
||||
args: zip -qq -r ./builds/ChromeExtension.zip ./dist
|
||||
|
||||
# Create Firefox artifacts
|
||||
- name: Create Firefox artifacts
|
||||
run: npm run build:firefox
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: FirefoxExtension
|
||||
path: dist
|
||||
- uses: montudor/action-zip@v0.1.0
|
||||
- uses: montudor/action-zip@v1
|
||||
with:
|
||||
args: zip -qq -r ./builds/FirefoxExtension.zip ./dist
|
||||
|
||||
# Create Beta artifacts (Builds with the name changed to beta)
|
||||
- name: Create Chrome Beta artifacts
|
||||
run: npm run build:chrome -- --env.stream=beta
|
||||
- uses: actions/upload-artifact@v1
|
||||
run: npm run build:chrome -- --env stream=beta
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ChromeExtensionBeta
|
||||
path: dist
|
||||
- uses: montudor/action-zip@v0.1.0
|
||||
- uses: montudor/action-zip@v1
|
||||
with:
|
||||
args: zip -qq -r ./builds/ChromeExtensionBeta.zip ./dist
|
||||
|
||||
- name: Create Firefox Beta artifacts
|
||||
run: npm run build:firefox -- --env.stream=beta
|
||||
- uses: actions/upload-artifact@v1
|
||||
run: npm run build:firefox -- --env stream=beta
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: FirefoxExtensionBeta
|
||||
path: dist
|
||||
- uses: montudor/action-zip@v0.1.0
|
||||
- uses: montudor/action-zip@v1
|
||||
with:
|
||||
args: zip -qq -r ./builds/FirefoxExtensionBeta.zip ./dist
|
||||
|
||||
|
||||
58
.github/workflows/release.yml
vendored
@@ -12,16 +12,18 @@ jobs:
|
||||
|
||||
steps:
|
||||
# Initialization
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/setup-node@v1
|
||||
- run: npm install
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '16'
|
||||
- run: npm ci
|
||||
- name: Copy configuration
|
||||
run: cp config.json.example config.json
|
||||
|
||||
# Create Chrome artifacts
|
||||
- name: Create Chrome artifacts
|
||||
run: npm run build:chrome
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ChromeExtension
|
||||
path: dist
|
||||
@@ -32,7 +34,7 @@ jobs:
|
||||
# Create Firefox artifacts
|
||||
- name: Create Firefox artifacts
|
||||
run: npm run build:firefox
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: FirefoxExtension
|
||||
path: dist
|
||||
@@ -41,14 +43,36 @@ jobs:
|
||||
|
||||
# Create Beta artifacts (Builds with the name changed to beta)
|
||||
- name: Create Chrome Beta artifacts
|
||||
run: npm run build:chrome -- --env.stream=beta
|
||||
- uses: actions/upload-artifact@v1
|
||||
run: npm run build:chrome -- --env stream=beta
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ChromeExtensionBeta
|
||||
path: dist
|
||||
- name: Zip Artifacts
|
||||
run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *
|
||||
|
||||
|
||||
# Create Safari artifacts
|
||||
- name: Create Safari artifacts
|
||||
run: npm run build:safari
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: SafariExtension
|
||||
path: dist
|
||||
- name: Zip Artifacts
|
||||
run: cd ./dist ; zip -r ../builds/SafariExtension.zip *
|
||||
# Create Edge artifacts
|
||||
- name: Clear dist for Edge
|
||||
run: rm -rf ./dist
|
||||
- name: Create Edge artifacts
|
||||
run: npm run build:edge
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: EdgeExtension
|
||||
path: dist
|
||||
- name: Zip Artifacts
|
||||
run: cd ./dist ; zip -r ../builds/EdgeExtension.zip *
|
||||
|
||||
# Upload each release asset
|
||||
- name: Upload ChromeExtension to release
|
||||
uses: Shopify/upload-to-release@master
|
||||
@@ -71,11 +95,25 @@ jobs:
|
||||
name: FirefoxExtension.zip
|
||||
path: ./builds/FirefoxExtension.zip
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Upload SafariExtension to release
|
||||
uses: Shopify/upload-to-release@master
|
||||
with:
|
||||
args: builds/SafariExtension.zip
|
||||
name: SafariExtension.zip
|
||||
path: ./builds/SafariExtension.zip
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Upload EdgeExtension to release
|
||||
uses: Shopify/upload-to-release@master
|
||||
with:
|
||||
args: builds/EdgeExtension.zip
|
||||
name: EdgeExtension.zip
|
||||
path: ./builds/EdgeExtension.zip
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Firefox Beta
|
||||
- name: Create Firefox Beta artifacts
|
||||
run: npm run build:firefox -- --env.stream=beta
|
||||
- uses: actions/upload-artifact@v1
|
||||
run: npm run build:firefox -- --env stream=beta
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: FirefoxExtensionBeta
|
||||
path: dist
|
||||
@@ -92,7 +130,7 @@ jobs:
|
||||
run: sudo apt-get install rename
|
||||
- name: Rename signed file
|
||||
run: cd ./web-ext-artifacts ; rename 's/.*/FirefoxSignedInstaller.xpi/' *
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: FirefoxExtensionSigned.xpi
|
||||
path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi
|
||||
|
||||
20
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: Tests
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
name: Run tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Initialization
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '16'
|
||||
- run: npm ci
|
||||
|
||||
- name: Run tests
|
||||
run: npm run test-without-building
|
||||
34
.github/workflows/update-oss-attribution.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: update oss attributions
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-oss:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '16'
|
||||
- name: Install and generate attribution
|
||||
run: |
|
||||
npm ci
|
||||
npm i -g oss-attribution-generator
|
||||
generate-attribution
|
||||
mv ./oss-attribution/attribution.txt ./public/oss-attribution/attribution.txt
|
||||
|
||||
- name: Create pull request to update list
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
commit-message: Update OSS Attribution
|
||||
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||
branch: ci/oss_attribution
|
||||
title: Update OSS Attribution
|
||||
body: Automated OSS Attribution update
|
||||
28
.github/workflows/updateInvidous.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
name: update invidious
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 1 * *' # check every month
|
||||
|
||||
jobs:
|
||||
check-list:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Download instance list
|
||||
run: |
|
||||
wget https://api.invidious.io/instances.json -O ci/data.json
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: "Run CI"
|
||||
run: npm run ci:invidious
|
||||
|
||||
- name: Create pull request to update list
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
commit-message: Update Invidious List
|
||||
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||
branch: ci/update_invidious_list
|
||||
title: Update Invidious List
|
||||
body: Automated Invidious list update
|
||||
3
.gitignore
vendored
@@ -6,4 +6,5 @@ web-ext-artifacts
|
||||
.vscode/
|
||||
dist/
|
||||
tmp/
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
ci/data.json
|
||||
40
README.md
@@ -1,6 +1,6 @@
|
||||
<p align="center">
|
||||
<a href="https://sponsor.ajay.app"><img src="public/icons/LogoSponsorBlocker256px.png" alt="Logo"></img></a>
|
||||
|
||||
|
||||
<br/>
|
||||
<sub>Logo by <a href="https://github.com/munadikieh">@munadikieh</a></sub>
|
||||
</p>
|
||||
@@ -13,7 +13,7 @@
|
||||
<a href="https://addons.mozilla.org/addon/sponsorblock/?src=external-github">Firefox</a> |
|
||||
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Android">Android</a> |
|
||||
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Edge">Edge</a> |
|
||||
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Safari">Safari for MacOS</a> |
|
||||
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Safari">Safari for MacOS and iOS</a> |
|
||||
<a href="https://sponsor.ajay.app">Website</a> |
|
||||
<a href="https://sponsor.ajay.app/stats">Stats</a>
|
||||
</p>
|
||||
@@ -50,47 +50,41 @@ See the [Wiki](https://github.com/ajayyy/SponsorBlock/wiki) for important links.
|
||||
|
||||
The backend server code is available here: https://github.com/ajayyy/SponsorBlockServer
|
||||
|
||||
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database ([License](https://github.com/ajayyy/SponsorBlock/wiki/Database-and-API-License)). If you are planning on using the database in another project, please read the [API Docs](https://github.com/ajayyy/SponsorBlock/wiki/API-Docs) page for more information.
|
||||
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database ([License](https://github.com/ajayyy/SponsorBlock/wiki/Database-and-API-License)). If you are planning on using the database in another project, please read the [API Docs](https://wiki.sponsor.ajay.app/index.php/API_Docs) page for more information.
|
||||
|
||||
The dataset and API are now being used in some [ports](https://github.com/ajayyy/SponsorBlock/wiki/3rd-Party-Ports) as well as a [neural network](https://github.com/andrewzlee/NeuralBlock).
|
||||
|
||||
# API
|
||||
|
||||
You can read the API docs [here](https://github.com/ajayyy/SponsorBlockServer#api-docs).
|
||||
You can read the API docs [here](https://wiki.sponsor.ajay.app/index.php/API_Docs).
|
||||
|
||||
# Building
|
||||
|
||||
Rename `config.json.example` to `config.json` and adjust configuration as desired.
|
||||
You must have [Node.js 16](https://nodejs.org/) and npm installed.
|
||||
|
||||
There are also other build scripts available. Install `npm`, then run `npm install` in the repository to install dependencies.
|
||||
1. Copy the file `config.json.example` to `config.json` and adjust configuration as desired.
|
||||
|
||||
Run `npm run build` to generate a Chrome extension.
|
||||
- You will need to repeat this step in the future if you get build errors related to `CompileConfig`. This can happen for example when a new category is added.
|
||||
|
||||
Use `npm run build:firefox` to generate a Firefox extension.
|
||||
2. Run `npm install` in the repository to install dependencies.
|
||||
|
||||
The result is in `dist`. This can be loaded as an unpacked extension
|
||||
3. Run `npm run build:dev` (for Chrome) or `npm run build:dev:firefox` (for Firefox) to generate a development version of the extension with source maps.
|
||||
|
||||
## Developing with a clean profile
|
||||
- You can also run `npm run build` (for Chrome) or `npm run build:firefox` (for Firefox) to generate a production build.
|
||||
|
||||
4. The built extension is now in `dist/`. You can load this folder directly in Chrome as an [unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#manifest), or convert it to a zip file to load it as a [temporary extension](https://developer.mozilla.org/en-US/docs/Tools/about:debugging#loading_a_temporary_extension) in Firefox.
|
||||
|
||||
### Developing with a clean profile and hot reloading
|
||||
|
||||
Run `npm run dev` (for Chrome) or `npm run dev:firefox` (for Firefox) to run the extension using a clean browser profile with hot reloading. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
|
||||
|
||||
Run `npm run dev` to run the extension using a clean browser profile with hot reloading. Use `npm run dev:firefox` for Firefox. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
|
||||
Known chromium bug: Extension is not loaded properly on first start. Visit `chrome://extensions/` and reload the extension.
|
||||
|
||||
For Firefox for Android, use `npm run dev:firefox-android -- --adb-device <ip-address of the device>`. See the [Firefox documentation](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/#debug-your-extension) for more information.
|
||||
|
||||
### Attribution Generation
|
||||
|
||||
If you contribute and add a dependency, update the attribution file using the following steps:
|
||||
|
||||
Make sure the attribution generator is installed: `npm i -g oss-attribution-generator`
|
||||
|
||||
```bash
|
||||
generate-attribution
|
||||
mv ./oss-attribution/attribution.txt ./public/oss-attribution/attribution.txt
|
||||
```
|
||||
|
||||
# Credit
|
||||
|
||||
The awesome [Invidious API](https://github.com/omarroth/invidious/wiki/API) was previously used, and the server is now using [NewLeaf](https://git.sr.ht/~cadence/NewLeaf) as a to get video info from YouTube.
|
||||
The awesome [Invidious API](https://docs.invidious.io/API.md) was previously used, and the server is now using [NewLeaf](https://git.sr.ht/~cadence/NewLeaf) as a to get video info from YouTube.
|
||||
|
||||
Originally forked from [YTSponsorSkip](https://github.com/NDevTK/YTSponsorSkip), but very little code remains.
|
||||
|
||||
|
||||
55
ci/invidiousCI.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
This file is only ran by GitHub Actions in order to populate the Invidious instances list
|
||||
|
||||
This file should not be shipped with the extension
|
||||
*/
|
||||
|
||||
import { writeFile, existsSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
|
||||
// import file from https://api.invidious.io/instances.json
|
||||
if (!existsSync(join(__dirname, "data.json"))) {
|
||||
process.exit(1);
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
import * as data from "../ci/data.json";
|
||||
|
||||
type instanceMap = {
|
||||
name: string,
|
||||
url: string,
|
||||
dailyRatios: {ratio: string, label: string }[],
|
||||
thirtyDayUptime: string
|
||||
}[]
|
||||
|
||||
// only https servers
|
||||
const mapped: instanceMap = data
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
.filter((i: any) => i[1]?.type === 'https')
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
.map((instance: any) => {
|
||||
return {
|
||||
name: instance[0],
|
||||
url: instance[1].uri,
|
||||
dailyRatios: instance[1].monitor.dailyRatios,
|
||||
thirtyDayUptime: instance[1]?.monitor['30dRatio'].ratio,
|
||||
}
|
||||
})
|
||||
|
||||
// reliability and sanity checks
|
||||
const reliableCheck = mapped
|
||||
.filter((instance) => {
|
||||
// 30d uptime >= 90%
|
||||
const thirtyDayUptime = Number(instance.thirtyDayUptime) >= 90
|
||||
// available for at least 80/90 days
|
||||
const dailyRatioCheck = instance.dailyRatios.filter(status => status.label !== "black")
|
||||
return (thirtyDayUptime && dailyRatioCheck.length >= 80)
|
||||
})
|
||||
// url includes name
|
||||
.filter(instance => instance.url.includes(instance.name))
|
||||
|
||||
// finally map to array
|
||||
const result: string[] = reliableCheck.map(instance => instance.name)
|
||||
writeFile(join(__dirname, "./invidiouslist.json"), JSON.stringify(result), (err) => {
|
||||
if (err) return console.log(err);
|
||||
})
|
||||
1
ci/invidiouslist.json
Normal file
@@ -0,0 +1 @@
|
||||
["yewtu.be","vid.puffyan.us","invidious.snopyta.org","inv.riverside.rocks","invidious-us.kavin.rocks","invidious.osi.kr","tube.cthd.icu","invidious.flokinet.to","yt.artemislena.eu","invidious.mutahar.rocks","invidious.esmailelbob.xyz","youtube.076.ne.jp","invidious.weblibre.org","invidious.namazso.eu","invidious.kavin.rocks"]
|
||||
@@ -2,15 +2,31 @@
|
||||
"serverAddress": "https://sponsor.ajay.app",
|
||||
"testingServerAddress": "https://sponsor.ajay.app/test",
|
||||
"serverAddressComment": "This specifies the default SponsorBlock server to connect to",
|
||||
"categoryList": ["sponsor", "selfpromo", "interaction", "poi_highlight", "intro", "outro", "preview", "music_offtopic"],
|
||||
"categoryList": ["sponsor", "selfpromo", "exclusive_access", "interaction", "poi_highlight", "intro", "outro", "preview", "filler", "music_offtopic"],
|
||||
"categorySupport": {
|
||||
"sponsor": ["skip", "mute"],
|
||||
"selfpromo": ["skip", "mute"],
|
||||
"sponsor": ["skip", "mute", "full"],
|
||||
"selfpromo": ["skip", "mute", "full"],
|
||||
"exclusive_access": ["full"],
|
||||
"interaction": ["skip", "mute"],
|
||||
"intro": ["skip"],
|
||||
"outro": ["skip"],
|
||||
"preview": ["skip"],
|
||||
"intro": ["skip", "mute"],
|
||||
"outro": ["skip", "mute"],
|
||||
"preview": ["skip", "mute"],
|
||||
"filler": ["skip", "mute"],
|
||||
"music_offtopic": ["skip"],
|
||||
"poi_highlight": ["skip"]
|
||||
"poi_highlight": ["poi"]
|
||||
},
|
||||
"wikiLinks": {
|
||||
"sponsor": "https://wiki.sponsor.ajay.app/w/Sponsor",
|
||||
"selfpromo": "https://wiki.sponsor.ajay.app/w/Unpaid/Self_Promotion",
|
||||
"exclusive_access": "https://wiki.sponsor.ajay.app/w/Exclusive_Access",
|
||||
"interaction": "https://wiki.sponsor.ajay.app/w/Interaction_Reminder_(Subscribe)",
|
||||
"intro": "https://wiki.sponsor.ajay.app/w/Intermission/Intro_Animation",
|
||||
"outro": "https://wiki.sponsor.ajay.app/w/Endcards/Credits",
|
||||
"preview": "https://wiki.sponsor.ajay.app/w/Preview/Recap",
|
||||
"filler": "https://wiki.sponsor.ajay.app/w/Filler_Tangent",
|
||||
"music_offtopic": "https://wiki.sponsor.ajay.app/w/Music:_Non-Music_Section",
|
||||
"poi_highlight": "https://wiki.sponsor.ajay.app/w/Highlight",
|
||||
"guidelines": "https://wiki.sponsor.ajay.app/w/Guidelines",
|
||||
"mute": "https://wiki.sponsor.ajay.app/w/Mute_Segment"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,4 +5,5 @@ module.exports = {
|
||||
"transform": {
|
||||
"^.+\\.ts$": "ts-jest"
|
||||
},
|
||||
"reporters": ["github-actions"]
|
||||
};
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "__MSG_fullName__",
|
||||
"short_name": "SponsorBlock",
|
||||
"version": "3.1.2",
|
||||
"version": "4.4.5",
|
||||
"default_locale": "en",
|
||||
"description": "__MSG_Description__",
|
||||
"homepage_url": "https://sponsor.ajay.app",
|
||||
@@ -34,9 +34,11 @@
|
||||
"icons/settings.svg",
|
||||
"icons/pencil.svg",
|
||||
"icons/check.svg",
|
||||
"icons/check-smaller.svg",
|
||||
"icons/upvote.png",
|
||||
"icons/downvote.png",
|
||||
"icons/thumbs_down.svg",
|
||||
"icons/thumbs_down_locked.svg",
|
||||
"icons/thumbs_up.svg",
|
||||
"icons/help.svg",
|
||||
"icons/report.png",
|
||||
@@ -46,6 +48,19 @@
|
||||
"icons/beep.ogg",
|
||||
"icons/pause.svg",
|
||||
"icons/stop.svg",
|
||||
"icons/heart.svg",
|
||||
"icons/visible.svg",
|
||||
"icons/not_visible.svg",
|
||||
"icons/money.svg",
|
||||
"icons/segway.png",
|
||||
"icons/close-smaller.svg",
|
||||
"icons/right-arrow.svg",
|
||||
"icons/campaign.svg",
|
||||
"icons/star.svg",
|
||||
"icons/lightbulb.svg",
|
||||
"icons/bolt.svg",
|
||||
"icons/stopwatch.svg",
|
||||
"icons/music-note.svg",
|
||||
"icons/PlayerInfoIconSponsorBlocker.svg",
|
||||
"icons/PlayerDeleteIconSponsorBlocker.svg",
|
||||
"popup.html",
|
||||
@@ -60,7 +75,35 @@
|
||||
],
|
||||
"browser_action": {
|
||||
"default_title": "SponsorBlock",
|
||||
"default_popup": "popup.html"
|
||||
"default_popup": "popup.html",
|
||||
"default_icon": {
|
||||
"16": "icons/IconSponsorBlocker16px.png",
|
||||
"32": "icons/IconSponsorBlocker32px.png",
|
||||
"64": "icons/LogoSponsorBlocker64px.png",
|
||||
"128": "icons/LogoSponsorBlocker128px.png"
|
||||
},
|
||||
"theme_icons": [
|
||||
{
|
||||
"light": "icons/IconSponsorBlocker16px.png",
|
||||
"dark": "icons/IconSponsorBlocker16px.png",
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"light": "icons/IconSponsorBlocker32px.png",
|
||||
"dark": "icons/IconSponsorBlocker32px.png",
|
||||
"size": 32
|
||||
},
|
||||
{
|
||||
"light": "icons/LogoSponsorBlocker64px.png",
|
||||
"dark": "icons/LogoSponsorBlocker64px.png",
|
||||
"size": 64
|
||||
},
|
||||
{
|
||||
"light": "icons/LogoSponsorBlocker128px.png",
|
||||
"dark": "icons/LogoSponsorBlocker128px.png",
|
||||
"size": 128
|
||||
}
|
||||
]
|
||||
},
|
||||
"background": {
|
||||
"scripts":[
|
||||
|
||||
5
manifest/safari-manifest-extra.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"background": {
|
||||
"persistent": false
|
||||
}
|
||||
}
|
||||
27073
package-lock.json
generated
95
package.json
@@ -3,39 +3,40 @@
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "background.js",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@types/react": "^16.9.22",
|
||||
"@types/react-dom": "^16.9.5",
|
||||
"@types/selenium-webdriver": "^4.0.15",
|
||||
"babel": "^6.23.0",
|
||||
"babel-core": "^6.26.3",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"concurrently": "^5.1.0",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/chrome": "0.0.91",
|
||||
"@types/firefox-webext-browser": "70.0.1",
|
||||
"@types/jest": "^24.0.23",
|
||||
"@types/jquery": "^3.3.31",
|
||||
"@typescript-eslint/eslint-plugin": "^4.9.1",
|
||||
"@typescript-eslint/parser": "^4.9.1",
|
||||
"chromedriver": "^92.0.0",
|
||||
"copy-webpack-plugin": "^6.0.3",
|
||||
"eslint": "^7.15.0",
|
||||
"eslint-plugin-react": "^7.21.5",
|
||||
"jest": "^27.0.6",
|
||||
"rimraf": "^3.0.0",
|
||||
"selenium-webdriver": "^4.0.0-beta.4",
|
||||
"ts-jest": "^27.0.3",
|
||||
"ts-loader": "^6.2.1",
|
||||
"typescript": "~4.3",
|
||||
"web-ext": "^6.2.0",
|
||||
"webpack": "~4.41.2",
|
||||
"webpack-cli": "~3.3.10",
|
||||
"webpack-merge": "~4.2.2"
|
||||
"@types/chrome": "^0.0.188",
|
||||
"@types/firefox-webext-browser": "^94.0.1",
|
||||
"@types/jest": "^27.5.1",
|
||||
"@types/react": "^17.0.43",
|
||||
"@types/react-dom": "^17.0.14",
|
||||
"@types/selenium-webdriver": "^4.1.0",
|
||||
"@types/wicg-mediasession": "^1.1.3",
|
||||
"@typescript-eslint/eslint-plugin": "^5.26.0",
|
||||
"@typescript-eslint/parser": "^5.26.0",
|
||||
"chromedriver": "^101.0.0",
|
||||
"concurrently": "^7.2.1",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"eslint": "^8.16.0",
|
||||
"eslint-plugin-react": "^7.30.0",
|
||||
"fork-ts-checker-webpack-plugin": "^7.2.11",
|
||||
"jest": "^28.1.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"schema-utils": "^4.0.0",
|
||||
"selenium-webdriver": "^4.1.2",
|
||||
"speed-measure-webpack-plugin": "^1.5.0",
|
||||
"ts-jest": "^28.0.3",
|
||||
"ts-loader": "^9.3.0",
|
||||
"ts-node": "^10.8.0",
|
||||
"typescript": "4.7",
|
||||
"web-ext": "^6.8.0",
|
||||
"webpack": "^5.72.1",
|
||||
"webpack-cli": "^4.9.2",
|
||||
"webpack-merge": "^5.8.0"
|
||||
},
|
||||
"scripts": {
|
||||
"web-run": "npm run web-run:chrome",
|
||||
@@ -44,14 +45,17 @@
|
||||
"web-run:firefox-android": "cd dist && web-ext run -t firefox-android --firefox-apk org.mozilla.fenix",
|
||||
"web-run:chrome": "cd dist && web-ext run --start-url https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm -t chromium",
|
||||
"build": "npm run build:chrome",
|
||||
"build:chrome": "webpack --env.browser=chrome --config webpack/webpack.prod.js",
|
||||
"build:firefox": "webpack --env.browser=firefox --config webpack/webpack.prod.js",
|
||||
"build:chrome": "webpack --env browser=chrome --config webpack/webpack.prod.js",
|
||||
"build:firefox": "webpack --env browser=firefox --config webpack/webpack.prod.js",
|
||||
"build:safari": "webpack --env browser=safari --config webpack/webpack.prod.js",
|
||||
"build:edge": "webpack --env browser=edge --config webpack/webpack.prod.js",
|
||||
"build:dev": "npm run build:dev:chrome",
|
||||
"build:dev:chrome": "webpack --env.browser=chrome --config webpack/webpack.dev.js",
|
||||
"build:dev:firefox": "webpack --env.browser=firefox --config webpack/webpack.dev.js",
|
||||
"build:dev:chrome": "webpack --env browser=chrome --config webpack/webpack.dev.js",
|
||||
"build:dev:firefox": "webpack --env browser=firefox --config webpack/webpack.dev.js",
|
||||
"build:watch": "npm run build:watch:chrome",
|
||||
"build:watch:chrome": "webpack --env.browser=chrome --config webpack/webpack.dev.js --watch",
|
||||
"build:watch:firefox": "webpack --env.browser=firefox --config webpack/webpack.dev.js --watch",
|
||||
"build:watch:chrome": "webpack --env browser=chrome --config webpack/webpack.dev.js --watch",
|
||||
"build:watch:firefox": "webpack --env browser=firefox --config webpack/webpack.dev.js --watch",
|
||||
"ci:invidious": "ts-node ci/invidiousCI.ts",
|
||||
"dev": "npm run build:dev && concurrently \"npm run web-run\" \"npm run build:watch\"",
|
||||
"dev:firefox": "npm run build:dev:firefox && concurrently \"npm run web-run:firefox\" \"npm run build:watch:firefox\"",
|
||||
"dev:firefox-android": "npm run build:dev:firefox && concurrently \"npm run web-run:firefox-android\" \"npm run build:watch:firefox\"",
|
||||
@@ -61,11 +65,32 @@
|
||||
"lint": "eslint src",
|
||||
"lint:fix": "eslint src --fix"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "hhttps://sponsor.ajay.app/donate"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ajayyy-org"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/ajayyy"
|
||||
},
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://paypal.me/ajayyy"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/ajayyy/SponsorBlock.git"
|
||||
},
|
||||
"author": "Ajay Ramachandran",
|
||||
"license": "GPL-3.0-only",
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"private": true
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "اعاده التخطي"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "إلغاء الكتم"
|
||||
},
|
||||
"paused": {
|
||||
"message": "ايقاف مؤقت"
|
||||
},
|
||||
@@ -87,5 +90,399 @@
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "تحديث الأجزاء"
|
||||
},
|
||||
"success": {
|
||||
"message": "تم بنجاح!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "تم التصويت!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "يبدو أن الخادم غير متصل. تواصل مع المطوّر على الفور."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "حدث خطأ في الاتصال. رمز الخطأ: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "مسح الأجزاء"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "فتح نافذة سبونسر بلوك المنبثقة"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "إغلاق النافذة المنبثقة"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "إرسال الأجزاء"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "هل أنت متيقّن من إرسال هذا؟"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "إضافة القناة إلى القائمة البيضاء"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "إزالة القناة من القائمة البيضاء"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "صوّت لجزء"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "المشاركات"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "لقد وفّرت على الناس "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "لوحة الصدارة"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "إرسال"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "سيظهر تحرير القسم بعد النقر على إرسال",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "تلميح: يمكنك إعداد اختصارات مفاتيح للتقديم في الخيارات"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "مسح الأوقات"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "إرسال الأوقات"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "يستخدم هذا في صفحة الإحصائيات العامة لإظهار مقدار مساهمتك. قم برؤيتها"
|
||||
},
|
||||
"Username": {
|
||||
"message": "اسم المستخدم"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "تعيين اسم مستخدم"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "نسخ معرف المستخدم العام"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "انضم إلى سيرفر \"ديسكورد\" الرسمي لتقديم اقتراحات وتعليقات!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "إخفاء هذا"
|
||||
},
|
||||
"Options": {
|
||||
"message": "خيارات"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "إظهار الأزرار على مشغل اليوتيوب"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "إخفاء الأزرار على مشغل اليوتيوب"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "هذا يخفي الأزرار التي تظهر على مشغل اليوتيوب لإرسال أجزاء للتخطي."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "إبقاء زر \"تخطي للعنوان الرئيس\" على المشغّل"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "إظهار زر \"معلومات\" على مشغّل اليوتيوب"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "إخفاء زر \"معلومات\" على مشغّل اليوتيوب"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "إخفاء تلقائي لزر \"معلومات\""
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "إخفاء زر \"حذف\" على مشغّل اليوتيوب"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "إظهار زر \"حذف\" على مشغّل اليوتيوب"
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "إظهار الإشعار مرة أخرى"
|
||||
},
|
||||
"website": {
|
||||
"message": "موقع الويب",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"sourceCode": {
|
||||
"message": "الشفرة المصدرية",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "تخطي الجزء",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "بدء/إيقاف الجزء",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "إرسال الأجزاء",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "رمز الخطأ: "
|
||||
},
|
||||
"skip": {
|
||||
"message": "تخطي"
|
||||
},
|
||||
"mute": {
|
||||
"message": "كتم"
|
||||
},
|
||||
"full": {
|
||||
"message": "فيديو كامل",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "تخطي {0}؟"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "كتم {0}؟"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "تخطي إلى {0}؟",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "تم تخطي {0}",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "تم كتم {0}",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "تم التخطي إلى {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "تعطيل التخطي التلقائي"
|
||||
},
|
||||
"enableAutoSkip": {
|
||||
"message": "تفعيل التخطي التلقائي"
|
||||
},
|
||||
"minLower": {
|
||||
"message": "دقيقة"
|
||||
},
|
||||
"minsLower": {
|
||||
"message": "دقائق"
|
||||
},
|
||||
"hourLower": {
|
||||
"message": "ساعة"
|
||||
},
|
||||
"hoursLower": {
|
||||
"message": "ساعات"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "لقد وفّرت على الناس",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " من حياتهم",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "أنشئت من قِبل"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "دعم مواقع يوتيوب الطرف الثالث"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "المواقع المدعومة: "
|
||||
},
|
||||
"add": {
|
||||
"message": "أضِف"
|
||||
},
|
||||
"save": {
|
||||
"message": "حفظ"
|
||||
},
|
||||
"reset": {
|
||||
"message": "إعادة تعيين"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "تعديل/نسخ"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "حفظ إلى ملف"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "تحميل من ملف"
|
||||
},
|
||||
"submit": {
|
||||
"message": "إرسال"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "إلغاء"
|
||||
},
|
||||
"delete": {
|
||||
"message": "حذف"
|
||||
},
|
||||
"preview": {
|
||||
"message": "معاينة"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "غير مرسلة"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "فحص"
|
||||
},
|
||||
"edit": {
|
||||
"message": "تعديل"
|
||||
},
|
||||
"to": {
|
||||
"message": "إلى",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "الراعي"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "وصول حصري"
|
||||
},
|
||||
"category_outro": {
|
||||
"message": "الخاتمة/تترات النهاية"
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "معاينة/خلاصة"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "حشو"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "الموسيقى: مقطع غير موسيقي"
|
||||
},
|
||||
"category": {
|
||||
"message": "الفئة"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(الآن)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "المزيد من الفئات"
|
||||
},
|
||||
"chooseACategory": {
|
||||
"message": "اختر فئة"
|
||||
},
|
||||
"permissionRequestSuccess": {
|
||||
"message": "نجح طلب الإذن!"
|
||||
},
|
||||
"permissionRequestFailed": {
|
||||
"message": "فشل طلب الإذن ، هل نقرت على رفض؟"
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "خاطئ/التوقيت غير صحيح"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "تغيير الفئة"
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "أجزاء متعددة"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "الإرشادات"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "اقرأ الإرشادات!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"categoryUpdate1": {
|
||||
"message": "الفئات هنا!"
|
||||
},
|
||||
"help": {
|
||||
"message": "المساعدة"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "فهمت",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"Donate": {
|
||||
"message": "تبرع"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "إخفاء رابط التبرع"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "الوضع الداكن في صفحة الخيارات"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "التعديل"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "هذا بطيء جداً"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "هل يمكنني الحصول على نسخة من قاعدة البيانات؟ ماذا يحدث إذا اختفيت؟"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "قاعدة البيانات عامة ومتاحة على"
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "الأخبار وكيف تم صنعها"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "أين يمكنني الحصول على شفرة المصدر؟"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "معرفة المزيد"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "افتح صفحة ويكي هذه الفئة."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "نسخ وتصويت معارض"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "متابعة التصويت"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "استخدم عجلة الماوس أثناء التمرير فوق مربع التعديل لضبط الوقت بسرعة. يمكن استخدام مجموعات مفتاح ctrl أو Shift لضبط التغييرات."
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "ي",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "س",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "سلوك",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "واجهه المستخدم",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "اختصارات لوحة المفاتيح",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "النسخ الاحتياطي/الاستعادة",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "متنوع",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "تخطي ظهور الإشعار",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "إلغاء ربط",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "لم يتم التعيين"
|
||||
},
|
||||
"change": {
|
||||
"message": "تغيير"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "هذا اختصار يوتيوب مدمج. هل أنت متأكد أنك تريد استخدامه؟"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "Прескачайте спонсорства, напомняния за абониране, и други неща в YouTube клипове. Докладвайте спонсорства на клиповете които гледате, за да спестите време на други потребители.",
|
||||
"message": "Прескачайте спонсорства, напомняния за абониране и други неща в клипове в YouTube. Докладвайте спонсорства в клиповете, които гледате, за да спестите време на други потребители.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
@@ -23,7 +23,7 @@
|
||||
"message": "сегмент"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "сегменти"
|
||||
"message": "сегмента"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Одобряване на това предложение"
|
||||
@@ -86,7 +86,7 @@
|
||||
"message": "Отказ от създаването на сегмент"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Не е намерен видеоклип в YouTube.\nАко това е неправилно, опреснете раздела."
|
||||
"message": "Не е намерен видеоклип в YouTube.\nАко това не е правилно, опреснете раздела."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Опресняване на сегментите"
|
||||
@@ -131,7 +131,7 @@
|
||||
"message": "Изпратени сегменти"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Вие сте помогнали на хората да пропуснат "
|
||||
"message": "Помогнахте на хората да пропуснат "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Класиране"
|
||||
@@ -156,7 +156,7 @@
|
||||
"message": "Това се използва на страницата с публичната статистика, за да покаже колко сте допринесли. Вижте го"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Потребителско име"
|
||||
"message": "Потребител"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Задайте потребителско име"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Копиране на публичния UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Копиране на идентификатора на сегмента"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Елате в официалния Discord сървър, за да давате предложения!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Това скрива бутоните, които се показват в плейъра на YouTube за изпращане на сегменти за пропускане."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Оставяне в плейъра на бутона за преминаване към акцента"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Показване на бутона за информация в плейъра на YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Скриване на бутона за информация в плейъра на YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Това е бутонът, който отваря изскачащ прозорец в страницата на YouTube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Автоматично скриване на бутона за информация"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Показване на бутона за изтриване в плейъра на YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Това е бутонът в плейъра на YouTube, който ще изчисти всичките ви неизпратени сегменти за текущия видеоклип."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Активиране проследяването на броя пропускания"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Активиране проследяването на броя пропускания в раздели „Инкогнито“"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Съхраняване на отрицателните гласове за сегменти"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Всички сегменти, за които гласувате против, ще останат скрити дори след опресняване"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Внимание: Деактивирането на това ще изтрие всички по-рано запазени отрицателни гласове"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Заявка по префикс на хеш"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Задайте клавиш за пропускане на сегмент"
|
||||
"message": "Пропускане на сегмент",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Задайте клавиш за начало/край на сегмент"
|
||||
"message": "Начало/край на сегмент",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Задайте клавиш за изпращане"
|
||||
"message": "Изпращане на сегментите",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Изберете клавиш, като го натиснете"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Клавишът е зададен за: "
|
||||
"message": "Изберете клавиш, като го натиснете, заедно с всички клавишни модификатори, които искате да използвате."
|
||||
},
|
||||
"0": {
|
||||
"message": "Времето за изчакване на връзката изтече. Проверете връзката си с интернет. Ако вашият интернет работи, вероятно сървърът е претоварен или не работи."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Заглушаване"
|
||||
},
|
||||
"full": {
|
||||
"message": "Целия видеоклип",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Пропускане на {0}?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Пропуснали сте "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Спестили сте "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "минута"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "часа"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Спестили сте на хората"
|
||||
"message": "Спестили сте на хората",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " от живота им"
|
||||
"message": " от живота им",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Проверете status.sponsor.ajay.app за състоянието на сървъра."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Създаден от"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". В момента е настроено на:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Поддръжка на YouTube-сайтове на трети страни"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Следното предложение е по-кратко от опцията за минимална продължителност. Това може да означава, че вече е изпратено и просто е игнорирано поради тази опция. Наистина ли искате да го изпратите?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Не е разрешено изпращането по време на активен поток на живо или премиера. Моля, изчакайте, докато приключи, след което опреснете страницата и проверете дали сегментите са все още валидни."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Показване на бутона за качване"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Този бутон се появява в плейъра на YouTube, след като сте избрали времева отметка и сте готови за изпращане."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Адрес на сървъра на SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Импортиране/експортиране на всички опции"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Редактиране/копиране"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Записване във файл"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Зареждане от файл"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Това е цялата ви конфигурация в JSON. Това включва вашия userID, така че се уверете, че споделяте това разумно."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Информацията за отстраняване на грешки е копирана в клипборда. Чувствайте се свободни да премахнете всяка информация, която предпочитате да не споделяте. Запазете това в текстов файл или го поставете в доклада за грешки."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Клавишът"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "е обвързан с друго действие. Моля, изберете друг клавиш."
|
||||
"message": "Тази клавишна комбинация е свързана с друго действие. Моля, изберете друга."
|
||||
},
|
||||
"to": {
|
||||
"message": "до",
|
||||
@@ -534,11 +549,21 @@
|
||||
"message": "Платена промоция, платени препоръки и директни реклами. Не за самореклама или безплатни препоръки за каузи/създатели/уебсайтове/продукти, които се харесват на автора."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Неплатени/Самореклама"
|
||||
"message": "Неплатена/Самореклама"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "Подобно на „спонсорство“, но за безплатна реклама или самореклама. Това включва търговия със стоки, дарения или информация с кого каналът има сътрудничество."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Ексклузивен достъп"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Само за обозначаване на цели видеоклипове. Използва се, когато видеоклипът представя продукт, услуга или място, до които е получен безплатен или субсидиран достъп."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Този видеоклип представя продукт, услуга или място, до което е получен безплатен или субсидиран достъп",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Напомняне за действие (абониране)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Бързо обобщение на предишни епизоди или преглед на това, което предстои по-късно в текущия видеоклип. Предназначен за монтирани заедно клипове, а не за речеви обобщения."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Пълнеж/Шеги"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Съпътстващи сцени, добавени само за пълнеж или хумор, които не са необходими за разбирането на основното съдържание на видеоклипа. Това не трябва да включва сегменти, предоставящи контекст или справочни данни."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Пълнеж"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Музика: Част без музика"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Показване в лентата на прогреса"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Показване на етикета"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Автоматично пропускане на всички сегменти, когато има сегмент без музика"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Разрешаване на сегменти, които заглушават звука, вместо да се пропускат"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Вашият цвят не е форматиран правилно. Трябва да бъде 3- или 6-цифрен шестнадесетичен код с „#“ в началото."
|
||||
"fullVideoSegments": {
|
||||
"message": "Показване на икона, когато видеоклипът е изцяло реклама",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Цвят на неизпратен сегмент",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "За да изпратите сегменти с категория „{0}“, трябва да я активирате от опциите. Ще бъдете пренасочени към опциите сега.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Внимание: Само един сегмент от този тип може да е активен. Изпращането на няколко ще доведе до показване на случаен."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Трябва да изберете категория за всички сегменти, които изпращате!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "скрито: твърде кратко"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "ръчно скрито"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "ID на канала все още не е зареден. Ако използвате вграден видеоклип, опитайте вместо това да използвате началната страница на YouTube. Това може да бъде причинено и от промени в оформлението на YouTube, ако мислите така, направете коментар тук:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Грешно/Неправилно време"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Грешна категория"
|
||||
"message": "Промяна на категорията"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Това видео е категоризирано като музика. Сигурни ли сте, че това има спонсор? Ако това всъщност е „Немузикален сегмент“, отворете опциите на разширението и активирайте тази категория. След това можете да изпратите този сегмент като „Немузикален“ вместо като спонсор. Моля, прочетете указанията, ако сте объркани."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Разбрах",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Този сегмент е голям. Ако целия видеоклип е на една тема, променете от „Пропускане“ на „Целия видеоклип“. Вижте насоките за повече информация."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Целият видеоклип е обозначен с тази категория и е твърде тясно интегриран, за да може да се раздели"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Отказ от всички бъдещи експерименти",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Скриване завинаги"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Получихте предупреждение и временно не можете да изпращате сегменти. Това означава, че забелязахме, че допускате някои често срещани грешки, които не са злонамерени, и просто искаме да изясним правилата. Можете също да се присъедините към този чат с помощта на discord.gg/SponsorBlock или matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Получихте предупреждение и временно не можете да изпращате сегменти. Това означава, че забелязахме, че допускате някои често срещани грешки, които не са злонамерени. Моля, просто потвърдете, че разбирате правилата и ние ще премахнем предупреждението. Можете също да се присъедините към този чат от discord.gg/SponsorBlock или matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Гласуването е отхвърлено поради предупреждение. Щракнете, за да отворите чат и да го разрешите, или се върнете по-късно, когато имате време.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Дарение"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Помогнете с финансиране на разработката"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Скриване на връзката за дарение"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Тъмен режим на страницата с опции"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Благодарим ви, че инсталирахте SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Заслуги"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Ново! Отидете до съществената част на видеоклипа с едно щракване с новата категория „Акцент“"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Научете повече"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Гласуване против и създаване на локално копие, за да го изпратите отново"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Отваряне на wiki страницата на тази категория."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Копиране и гласуване против"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Продължаване на гласуването"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Това незабавно ще се приложи към вашите сегменти"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Не одобрение"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Одобрение"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Скриване на сегмента"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Използвайте колелото на мишката, докато държите курсора върху полето за редактиране, за да коригирате бързо времето. Комбинации с клавиша ctrl или shift могат да се използват за фина настройка на промените."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Ново! Вижте кога видеоклипът е изцяло спонсориран или саморекламен"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "д",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "ч",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Поведение",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Интерфейс",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Клавишни комбинации",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Архивиране/Възстановяване",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Други",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Изглед на известията за пропускане",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Освобождаване",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Не е зададено"
|
||||
},
|
||||
"change": {
|
||||
"message": "Промяна"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Това е вградена клавишна комбинация в YouTube. Наистина ли искате да я използвате?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Сървърът BETA е активиран!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Отваряне на страницата с опции"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,949 @@
|
||||
"message": "ইউটিউবের জন্য স্পনসরব্লক - স্পনসরশিপ এড়িয়ে যান",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "YouTube ভিডিওতে স্পনসরশিপ, সাবস্ক্রিপশন ভিক্ষা এবং আরও অনেক কিছু এড়িয়ে যান। অন্যদের সময় বাঁচাতে আপনার দেখা ভিডিওগুলিতে স্পনসরদের রিপোর্ট করুন।",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "সার্ভার বলেছে এই অনুরোধটি অবৈধ"
|
||||
},
|
||||
"429": {
|
||||
"message": "আপনি এই একটি ভিডিওর জন্য অনেক বেশি স্পনসর জমা দিয়েছেন, আপনি কি নিশ্চিত যে এই একটি ভিডিওর জন্য অনেকগুলি স্পনসর আছে?"
|
||||
},
|
||||
"409": {
|
||||
"message": "এটি আগেই জমা দেওয়া হয়েছে"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "চ্যানেল সাদা তালিকাভুক্ত!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "অংশ"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "অংশগুলো"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "এই জমাটিকে সমর্থন করুন"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "রিপোর্ট"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "এই জমাটি ভুল হিসাবে রিপোর্ট করুন।"
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "খারিজ করুন"
|
||||
},
|
||||
"Loading": {
|
||||
"message": "লোড করা হচ্ছে..."
|
||||
},
|
||||
"Hide": {
|
||||
"message": "কখনো দেখাবে না"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "আপনি যেখান থেকে এসেছেন সেখানে যেতে আনস্কিপ টিপুন"
|
||||
},
|
||||
"unskip": {
|
||||
"message": "বাদ দিন"
|
||||
},
|
||||
"reskip": {
|
||||
"message": "বাদ দিন"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "সরব করুন"
|
||||
},
|
||||
"paused": {
|
||||
"message": "বিরতি"
|
||||
},
|
||||
"manualPaused": {
|
||||
"message": "টাইমার থেমেছে"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "পৃথক মান সম্পাদনা করতে বা মুছতে, তথ্য বোতামে ক্লিক করুন বা উপরের ডানদিকের কোণায় এক্সটেনশন আইকনে ক্লিক করে এক্সটেনশন পপআপ খুলুন।"
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "আপনি কি পরিষ্কার করতে চান?"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "আপনার স্পনসর জমা দেওয়ার সময় একটি ত্রুটি হয়েছে, অনুগ্রহ করে পরে আবার চেষ্টা করুন৷"
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "এই ভিডিওটি ডাটাবেসে সেগমেন্ট আছে!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "কোনো সেগমেন্ট পাওয়া যায়নি"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "অংশ এখন শুরু হয়"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "অংশ এখন শেষ হয়"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "সেগমেন্ট তৈরি করা বাতিল করুন"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "কোনো ইউটিউব ভিডিও পাওয়া যায়নি।\nযদি এটি ভুল হয়, ট্যাব রিফ্রেশ করুন।"
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "সেগমেন্ট রিফ্রেশ করুন"
|
||||
},
|
||||
"success": {
|
||||
"message": "সফল!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "ভোট দিয়েছেন!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "মনে হচ্ছে সার্ভার ডাউন। অবিলম্বে বিকাশকারীর সাথে যোগাযোগ করুন।"
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "একটি সংযোগ ত্রুটি ঘটেছে. ভুল সংকেত: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "বিভাগগুলি পরিষ্কার করুন"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "স্পনসরব্লক পপআপ খুলুন"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "পপআপ বন্ধ করুন"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "সেগমেন্ট জমা দিন"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "আপনি কি এটি জমা দেওয়ার বিষয়ে নিশ্চিত?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "সাদা তালিকার চ্যানেল"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "সাদা তালিকা থেকে চ্যানেল সরান"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "একটি বিভাগে ভোট দিন"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "জমা"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "আপনি মানুষকে রক্ষা করেছেন "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "শীর্ষতালিকা"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "সাবমিট"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "আপনি জমা ক্লিক করার পরে বিভাগ সম্পাদনা প্রদর্শিত হবে",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "ইঙ্গিত: আপনি বিকল্পগুলিতে জমা দেওয়ার জন্য কীবাইন্ড সেটআপ করতে পারেন"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "সময় মুছুন"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "সময় জমা দিন"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "আপনি কতটা অবদান রেখেছেন তা দেখানোর জন্য এটি সর্বজনীন পরিসংখ্যান পৃষ্ঠায় ব্যবহার করা হয়। এটা দেখ"
|
||||
},
|
||||
"Username": {
|
||||
"message": "ব্যবহারকারীর নাম"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "ব্যবহারকারীর নাম দিন"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "পাবলিক ইউজার আইডি কপি করুন"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "অংশের আইডি কপি করুন"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "পরামর্শ এবং প্রতিক্রিয়া জানাতে অফিসিয়াল ডিসকর্ড সার্ভারে যোগ দিন!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "এই বিষয়বস্তু লুকান"
|
||||
},
|
||||
"Options": {
|
||||
"message": "বিকল্পসমূহ"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "ইউটিউব প্লেয়ারে বোতাম দেখান"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "ইউটিউব প্লেয়ারে বোতাম বাদ দিন"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "এটি স্কিপ সেগমেন্ট জমা দেওয়ার জন্য ইউটিউব প্লেয়ারে প্রদর্শিত বোতামগুলিকে লুকিয়ে রাখে।"
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "প্লেয়ারে বোতাম হাইলাইট করতে এড়িয়ে যান"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "ইউটিউব প্লেয়ারে তথ্য বোতাম দেখান"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "ইউটিউব প্লেয়ারে তথ্য বোতাম লুকান"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "অটো-লুকান তথ্য বোতাম"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "ইউটিউব প্লেয়ারে ডিলিট বোতাম লুকান"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "ইউটিউব প্লেয়ারে ডিলিট বোতাম দেখান"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "স্কিপ কাউন্ট ট্র্যাকিং সক্ষম করুন"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "এই বৈশিষ্ট্যটি ট্র্যাক করে যে আপনি কোন বিভাগগুলি এড়িয়ে গেছেন ব্যবহারকারীদের জানাতে যে তাদের জমা দেওয়া অন্যদের কতটা সাহায্য করেছে এবং স্প্যাম ডাটাবেসে প্রবেশ না করে তা নিশ্চিত করার জন্য আপভোট সহ একটি মেট্রিক হিসাবে ব্যবহার করা হয়েছে৷ আপনি যখনই একটি সেগমেন্ট এড়িয়ে যান তখন এক্সটেনশনটি সার্ভারে একটি বার্তা পাঠায়। আশা করি অধিকাংশ মানুষ এই সেটিং পরিবর্তন করবেন না যাতে ভিউ সংখ্যা সঠিক হয়। :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "ব্যক্তিগত/ছদ্মবেশী ট্যাবে গণনা ট্র্যাকিং এড়িয়ে যাওয়া সক্ষম করুন৷"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "স্টোর সেগমেন্ট ডাউনভোট"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "যেকোন ডাউনভোটকৃত অংশ রিফ্রেশ করার পরেও অদৃশ্য থাকবে"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "সতর্কীকরণ: এটি বন্ধ করলে পূর্বে সংরক্ষিত সব ডাউনভোট মুছে যাবে"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "হ্যাশের প্রিফিক্স দিয়ে খুজুন "
|
||||
},
|
||||
"whatQueryByHashPrefix": {
|
||||
"message": "সার্ভার থেকে videoID দিয়ে অংশ অনুরোধ করার পরিবর্তে videoID এর হ্যাশ এর প্রথম ৪ অক্ষর পাঠানো হয়। এই সার্ভার সমতুল্য হ্যাশ এর সকল ভিডিও এর তথ্য ফেরত পাঠাবে।"
|
||||
},
|
||||
"enableRefetchWhenNotFound": {
|
||||
"message": "নতুন ভিডিওতে আবার অংশটি যোগার করুন"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "যদি ভিডিওটি নতুন হয়, এবং কোন অংশ পাওয়া না যায়, আপনার দেখার সময় কয়েক মিনিট পর পরই এটি তথ্য আনতে থাকবে।"
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "নোটিশ পুনরায় প্রদর্শন করুন"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "একটি অংশ এড়ানোর পরে নোটিস প্রদর্শন করুন"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "পূর্ণ আকারের স্কিপ নোটিস"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "স্বয়ংক্রিয় স্কিপের জন্য ক্ষুদ্র আকারের স্কিপ নোটিস"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "সব ক্ষুদ্র আকারের স্কিপ নোটিস"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "স্বয়ংক্রিয় স্কিপের জন্য অনুজ্বল স্কিপ নোটিস"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "সব অনুজ্বল স্কিপ নোটিস"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock আপনাকে YouTube ভিডিওসমূহের স্পন্সর বার্তা, সূচনাবার্তা, সমাপ্তিবার্তা, সাবস্ক্রাইব করার জন্য স্মরণ করানো, এবং অন্যান্য বিবিধ বিরক্তিকর অংশ এড়িয়ে যেতে সাহায্য করে। SponsorBlock জনসংগৃহীত তথ্যসম্বলিত একটি ব্রাউজার এক্সটেনশন যা যে কাউকে একটি ভিডিওর স্পন্সর বার্তা এবং অন্যান্য অংশের শুরু এবং শেষ সময় সাবমিট করতে দেয়। যখন কেউ একজন এই তথ্য সাবমিট করে, এই এক্সটেনশন ব্যবহারকারী সবাই ঐ স্পন্সর বার্তা সম্বলিত অংশ এড়িয়ে যাবে। মিউজিক ভিডিও এর মিউজিক বহির্ভুত অংশও আপনি এড়িয়ে যেতে পারেন।",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
"message": "ওয়েবসাইট",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"sourceCode": {
|
||||
"message": "সোর্স কোড",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"noticeUpdate": {
|
||||
"message": "নোটিসটি আপগ্রেড করা হয়েছে!",
|
||||
"description": "The first line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"noticeUpdate2": {
|
||||
"message": "আপনি যদি এখনও এটি পছন্দ না করেন তবে কখনই দেখাবে না বোতামটি চাপুন।",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "সেগমেন্ট এড়িয়ে যান",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "সেগমেন্ট শুরু/শেষ",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "সেগমেন্ট জমা দিন",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "এটি টাইপ করে একটি কী নির্বাচন করুন এবং আপনি যে কোনও সংশোধক কীগুলি ব্যবহার করতে চান তা চয়ন করুন।"
|
||||
},
|
||||
"0": {
|
||||
"message": "সংযোগের সময়সীমা অতিক্রান্ত। আপনার ইন্টারনেট সংযোগ যাচাই করুন. যদি আপনার ইন্টারনেট কাজ করে থাকে তবে সার্ভারটি সম্ভবত ওভারলোডেড বা ডাউন।"
|
||||
},
|
||||
"disableSkipping": {
|
||||
"message": "স্কিপিং চালু করা হয়েছে"
|
||||
},
|
||||
"enableSkipping": {
|
||||
"message": "স্কিপিং বন্ধ করা হয়েছে"
|
||||
},
|
||||
"yourWork": {
|
||||
"message": "আপনার কাজ",
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
"message": "সার্ভারটি সম্ভবত ওভারলোডেড। কয়েক সেকেন্ডের মধ্যে আবার চেষ্টা করুন।"
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "ইরোর কোডঃ "
|
||||
},
|
||||
"skip": {
|
||||
"message": "এড়িয়ে যান"
|
||||
},
|
||||
"mute": {
|
||||
"message": "নিঃশব্দ করুন"
|
||||
},
|
||||
"full": {
|
||||
"message": "সমপূর্ণ ভিডিও",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} এড়িয়ে যান?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} নিঃশব্দ করুন?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "{0} তে চলে যান?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} এড়িয়ে যাওয়া হয়েছে",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} নিঃশব্দ করা হয়েছে",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "{0} তে চলে যাওয়া হয়েছে",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "স্বয়ংক্রিয়ভাবে স্কিপ করা বন্ধ করুন"
|
||||
},
|
||||
"enableAutoSkip": {
|
||||
"message": "স্বয়ংক্রিয়ভাবে স্কিপ করা চালু করুন"
|
||||
},
|
||||
"audioNotification": {
|
||||
"message": "স্কিপের জন্য অডিও নোটিস"
|
||||
},
|
||||
"audioNotificationDescription": {
|
||||
"message": "যখনই কোনও অংশ এড়িয়ে যাওয়া হয় তখন একটি শব্দ বাজাবে। যদি বন্ধ করা হয় (বা অটো স্কিপ বন্ধ থাকে) তবে কোনও শব্দ বাজানো হবে না।"
|
||||
},
|
||||
"showTimeWithSkips": {
|
||||
"message": "স্কিপগুলি সরানো সহ সময় দেখান"
|
||||
},
|
||||
"showTimeWithSkipsDescription": {
|
||||
"message": "এই সময়টি সময় বারের নীচে বর্তমান সময়ের পাশের বন্ধনীগুলিতে উপস্থিত হয়। এটি মোট ভিডিও সময়কাল যে কোনও বিভাগকে বিয়োগ করে তা দেখায়। এর মধ্যে কেবল \"সময় বার এ দেখান\" হিসাবে চিহ্নিত বিভাগগুলি অন্তর্ভুক্ত রয়েছে।"
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "আপনি এড়িয়েছেন "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "মিনিট"
|
||||
},
|
||||
"minsLower": {
|
||||
"message": "মিনিট"
|
||||
},
|
||||
"hourLower": {
|
||||
"message": "ঘন্টা"
|
||||
},
|
||||
"hoursLower": {
|
||||
"message": "ঘন্টা"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "আপনি মানুষকে রক্ষা করেছেন",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": "তাদের জীবন থেকে",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "সার্ভারের স্ট্যাটাস এর জন্য status.sponsor.ajay.app দেখুন করুন।"
|
||||
},
|
||||
"changeUserID": {
|
||||
"message": "আপনার ইউজার আইডি ইম্পোর্ট/এক্সপোর্ট করুন"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "এটি ব্যক্তিগত রাখা উচিত। এটি একটি পাসওয়ার্ডের মতো এবং কারও সাথে ভাগ করা উচিত নয়। কারও যদি এটি থাকে তবে তারা আপনার ছদ্মবেশ ধারণ করতে পারে। আপনি যদি আপনার পাবলিক ইউজারআইডি খুঁজছেন তবে পপআপে ক্লিপবোর্ড আইকনটি ক্লিক করুন।"
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "ইউজার আইডি দিন"
|
||||
},
|
||||
"userIDChangeWarning": {
|
||||
"message": "সতর্কতা: ইউজারআইডি পরিবর্তন করা চিরস্থায়ী। আপনি কি নিশ্চিত যে আপনি এটি করতে চান? আপনার পুরানোটিকে সাবধানতার সার্থে ব্যাকআপ করার বিষয়টি নিশ্চিত করুন।"
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "সৃষ্টি করেছেন"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "এটি ৩য় পক্ষের ইউটইউব সাইট সাপোর্ট করে"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "তৃতীয় পক্ষের ইউটিউব ক্লায়েন্টদের সমর্থন করুন। সমর্থন সক্ষম করতে, আপনাকে অবশ্যই অতিরিক্ত অনুমতিগুলি গ্রহণ করতে হবে। এটি ক্রোম এবং অন্যান্য ক্রোমিয়াম ভেরিয়েন্টগুলিতে ছদ্মবেশে কাজ করে না।",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "সমর্থিত সাইটসমুহ:"
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Indivious সমর্থন সক্ষম করুন, অটোস্কিপ বন্ধ করুন, বোতামগুলি লুকান এবং আরও অনেক কিছু করুন।"
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "তৃতীয় পক্ষের ক্লায়েন্ট যুক্ত করুন"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "একটি কাস্টম উদাহরণ যুক্ত করুন। এটি অবশ্যই ডোমেন দিয়ে ফর্ম্যাট করা উচিত। উদাহরণ: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "যোগ করুন"
|
||||
},
|
||||
"addInvidiousInstanceError": {
|
||||
"message": "এটি একটি অবৈধ ডোমেন। এটিতে কেবল ডোমেন অংশ অন্তর্ভুক্ত করা উচিত। উদাহরণ: invidious.ajay.app"
|
||||
},
|
||||
"resetInvidiousInstance": {
|
||||
"message": "Invidious Instance এর তালিকা পুনরায় সেট করুন"
|
||||
},
|
||||
"resetInvidiousInstanceAlert": {
|
||||
"message": "আপনি এখন Invidious Instance এর তালিকা পুনরায় আগের মত করে দিবেন"
|
||||
},
|
||||
"currentInstances": {
|
||||
"message": "বর্তমান Instance এর তালিকা"
|
||||
},
|
||||
"minDuration": {
|
||||
"message": "সর্বনিম্ন দৈর্ঘ্য (সেকেন্ড):"
|
||||
},
|
||||
"minDurationDescription": {
|
||||
"message": "সেট করা মান (সেকেন্ডে) থেকে ছোট সেগমেন্টগুলি প্লেয়ারে এড়িয়ে যাওয়া হবে বা দেখানো হবে না"
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "নোটিশ প্রদর্শন করার দৈর্ঘ্য (সেকেন্ড):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "স্কিপ নোটিশটি কমপক্ষে এত সেকেন্ডের জন্য স্ক্রিনে থাকবে। নিজে এড়িয়ে যাওয়ার জন্য, এটি দীর্ঘকাল ধরে দৃশ্যমান হতে পারে।"
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "নিম্নলিখিত সাবমিশনটি আপনার ন্যূনতম সময়কাল অপশনের চেয়ে কম। এর মানে এই হতে পারে যে এটি ইতিমধ্যে জমা দেওয়া হয়েছে, এবং এই অপশনের কারণে উপেক্ষা করা হচ্ছে। আপনি কি জমা দিতে চান?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "একটি সক্রিয় লাইভস্ট্রিম বা প্রিমিয়ারে জমা দেওয়ার অনুমতি নেই। এটি শেষ না হওয়া পর্যন্ত অপেক্ষা করুন, তারপরে পৃষ্ঠাটি রিফ্রেশ করুন এবং অংশগুলি এখনও বৈধ কিনা তা যাচাই করুন।"
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "আপলোড করার বোতামটি দেখান"
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "স্পনসরব্লক সার্ভার ঠিকানা"
|
||||
},
|
||||
"customServerAddressDescription": {
|
||||
"message": "এ ঠিকানা SponsorBlock সার্ভারে সাথে যোগাযোগ করতে ব্যবহার করে।\nআপনার নিজের সার্ভার না থাকলে এটি পরিবর্তন করবেন না।"
|
||||
},
|
||||
"save": {
|
||||
"message": "সংরক্ষণ করুন"
|
||||
},
|
||||
"reset": {
|
||||
"message": "পুনরায় সেট করুন"
|
||||
},
|
||||
"customAddressError": {
|
||||
"message": "এই ঠিকানাটি সঠিক আকারে নেই। এটিতে http: // বা https: // শুরুতে এবং কোনও পিছনের স্ল্যাশ নেই তা নিশ্চিত করুন।"
|
||||
},
|
||||
"areYouSureReset": {
|
||||
"message": "আপনি কি নিশ্চিতভাবে এটি মুছে ফেলতে চান??"
|
||||
},
|
||||
"mobileUpdateInfo": {
|
||||
"message": "m.youtube.com এখন সাপর্টেড"
|
||||
},
|
||||
"exportOptions": {
|
||||
"message": "সব অপশন ইম্পোর্ট/এক্সপোর্ট করুন"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "সম্পাদন/কপি করুন"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "ফাইল এ সেভ করুন"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "ফাইল থেকে লোড করুন"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "এটি আপনার সম্পূর্ণ কনফিগারেশন এতে আপনার ইউজারআইডি অন্তর্ভুক্ত রয়েছে, তাই বিজ্ঞতার সাথে শেয়ার করতে ভুলবেন না।."
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "অপশন সেট করুন"
|
||||
},
|
||||
"exportOptionsWarning": {
|
||||
"message": "সতর্কতা: অপশনগুলি পরিবর্তন করা চিরস্থায়ী এবং আপনার ইনস্টলটি ভাঙতে পারে। আপনি কি নিশ্চিত যে আপনি এটি করতে চান? আপনার পুরানোটিকে সাবধানতার সার্থে ব্যাকআপ করার বিষয়টি নিশ্চিত করুন।"
|
||||
},
|
||||
"incorrectlyFormattedOptions": {
|
||||
"message": "এই JSON সঠিকভাবে ফর্ম্যাট করা হয় নাই। আপনার অপশনগুলি পরিবর্তন করা হয়নি।"
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "অংশ জমা দিন"
|
||||
},
|
||||
"submit": {
|
||||
"message": "জমা দিন"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "বাতিল করুন"
|
||||
},
|
||||
"delete": {
|
||||
"message": "মুছে ফেলুন"
|
||||
},
|
||||
"preview": {
|
||||
"message": "প্রিভিউ দেখুন"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "জমাকৃত নয়"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "পরিদর্শন করুন"
|
||||
},
|
||||
"edit": {
|
||||
"message": "সম্পাদন করুন"
|
||||
},
|
||||
"copyDebugInformation": {
|
||||
"message": "ডিবাগ তথ্য ক্লিপবোর্ডে কপি করুন"
|
||||
},
|
||||
"copyDebugInformationFailed": {
|
||||
"message": "ক্লিপবোর্ডে কপি করা যায় নি"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": " কোনও বাগ উত্থাপন করার সময় / যখন কোনও ডেভেলপার এটির জন্য অনুরোধ করে তখন ক্লিপবোর্ডে তথ্য কপি করে। সংবেদনশীল তথ্য যেমন আপনার ইউজার আইডি, সাদা তালিকাভুক্ত চ্যানেল এবং কাস্টম সার্ভারের ঠিকানা সরানো হয়েছে। তবে এটিতে আপনার ব্যবহারকারীর, ব্রাউজার, অপারেটিং সিস্টেম এবং এক্সটেনশন সংস্করণ নম্বরের মতো তথ্য রয়েছে।"
|
||||
},
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "ডিবাগের তথ্য ক্লিপ বোর্ডে কপি করা হয়েছে। আপনি কোনও তথ্য দিতে অনিচ্ছুক হলে তা নির্দ্বিধায় অপসারণ করতে পারেন। এটি একটি টেক্সট ফাইলে সংরক্ষণ করুন বা বাগ প্রতিবেদনে পেস্ট করুন।"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "এই শর্টকাটটি অন্য ক্রিয়ায় আবদ্ধ। দয়া করে একটি আলাদা নির্বাচন করুন।"
|
||||
},
|
||||
"to": {
|
||||
"message": "থেকে",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "স্পন্সর"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "পেইড প্রমোশন, পেইড রেফারেল এবং সরাসরি বিজ্ঞাপন। নিজের পছন্দসই কারণ/স্রষ্টা/ওয়েবসাইট/পণ্যগুলিতে স্ব-প্রচার বা বিনামূল্যে প্রচারের জন্য নয়।"
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "বিনা অর্থপ্রাপ্ত/স্ব-প্রচার"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "অবৈতনিক বা স্ব -প্রচার ব্যতীত \"স্পনসর\" এর মতো। এর মধ্যে পণ্যদ্রব্য, অনুদান বা তারা কার সাথে সহযোগিতা করেছে সে সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছে।"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "এক্সক্লুসিভ অ্যাক্সেস"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "শুধুমাত্র পুরো ভিডিও লেবেল করার জন্য। যখন কোনও ভিডিও কোনও পণ্য, পরিষেবা বা অবস্থান প্রদর্শন করে যা তারা নিখরচায় বা ভর্তুকিযুক্ত অ্যাক্সেস পেয়েছে।"
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "এই ভিডিওটি এমন একটি পণ্য, পরিষেবা বা অবস্থান প্রদর্শন করে যা তারা নিখরচায় বা ভর্তুকিযুক্ত অ্যাক্সেস পেয়েছে",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "ইন্টারঅ্যাকশন রেমাইন্ডার (সাবস্ক্রাইব)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "যখন সামগ্রীর মাঝখানে তাদেরকে লাইক, সাবস্ক্রাইব বা ফলো করার জন্য একটি সংক্ষিপ্ত অনুস্মারক থাকে। যদি এটি দীর্ঘ বা নির্দিষ্ট কিছু সম্পর্কে হয় তবে পরিবর্তে এটি স্ব -প্রচারের অধীনে থাকা উচিত।"
|
||||
},
|
||||
"category_interaction_short": {
|
||||
"message": "ইন্টারঅ্যাকশন রেমাইন্ডার"
|
||||
},
|
||||
"category_intro": {
|
||||
"message": "ইন্টারমিশন/ইন্ট্র অ্যানিমেশন"
|
||||
},
|
||||
"category_intro_description": {
|
||||
"message": "প্রকৃত বিষয়বস্তু ছাড়াই একটি বিরতি। বিরতি, স্থির ফ্রেম, অ্যানিমেশন পুনরাবৃত্তি হতে পারে। এটি তথ্যযুক্ত ট্রানজিশনের জন্য ব্যবহার করা উচিত নয়।"
|
||||
},
|
||||
"category_intro_short": {
|
||||
"message": "ইন্টারমিশন"
|
||||
},
|
||||
"category_outro": {
|
||||
"message": "এন্ডকার্ডস/ক্রেডিট"
|
||||
},
|
||||
"category_outro_description": {
|
||||
"message": "ক্রেডিট বা যখন ইউটিউব এন্ডকার্ডগুলি উপস্থিত হয়। তথ্য সহ সিদ্ধান্তের জন্য নয়।"
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "প্রিভিউ/রিক্যাপ"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "পূর্ববর্তী পর্বগুলির দ্রুত পুনরুদ্ধার, বা বর্তমান ভিডিওতে পরে কী ঘটছে তার পূর্বরূপ। একসাথে সম্পাদিত ক্লিপ এর জন্য, কথ্য সংক্ষিপ্তসার এর জন্য নয়।"
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "ফিলার ট্যানজেন্ট/জোকস"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "স্পর্শকাতর দৃশ্য যেগুলি কেবল ফিলার বা হাস্যরসের জন্য যুক্ত হয়েছে যা ভিডিওর মূল বিষয়বস্তু বোঝার জন্য প্রয়োজন হয় না। এর মধ্যে প্রসঙ্গ বা পটভূমির বিশদ সরবরাহকারী বিভাগগুলি অন্তর্ভুক্ত করা উচিত নয়।"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "ফিলার"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "সঙ্গীত: অসঙ্গীত বিভাগ"
|
||||
},
|
||||
"category_music_offtopic_description": {
|
||||
"message": "শুধুমাত্র সঙ্গীত ভিডিওতে ব্যবহারের জন্য। এটি কেবলমাত্র সংগীত ভিডিওর সেসব বিভাগের জন্য ব্যবহার করা উচিত যা ইতিমধ্যে অন্য কোনও বিভাগ দ্বারা আচ্ছাদিত নয়।"
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "মিউসিক নয়"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "গুরুত্বপূর্ণ"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "ভিডিওর অংশটি যা বেশিরভাগ লোকেরা খুঁজছেন। \"ভিডিওটি x এ শুরু হয়\" মন্তব্যের মতো।"
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "লাইভস্ট্রিম: অনুদান/বার্তা পাঠ"
|
||||
},
|
||||
"category_livestream_messages_short": {
|
||||
"message": "বার্তা পাঠ"
|
||||
},
|
||||
"autoSkip": {
|
||||
"message": "স্বয়ংক্রিয়ভাবে এড়িয়ে যান"
|
||||
},
|
||||
"manualSkip": {
|
||||
"message": "নিজে এড়িয়ে যান"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "সময় বার এ দেখান"
|
||||
},
|
||||
"disable": {
|
||||
"message": "নিষ্ক্রিয় করুন"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "স্বয়ংক্রিয় ভাবে শুরুতে স্কিপ করুন"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "ভিডিও লোড হলে জিজ্ঞেস করুন"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "সময় বার এ দেখান"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "লেবেল দেখান"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "যখন অ-সংগীত বিভাগ থাকে তখন স্বয়ংক্রিয়ভাবে সমস্ত বিভাগগুলি এড়িয়ে যান"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "স্কিপের পরিবর্তে অডিও নিঃশব্দ এমন বিভাগগুলিকে দেখানোর অনুমতি দিন"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "যখন কোনও ভিডিও সম্পূর্ণ বিজ্ঞাপন হয় তখন একটি আইকন দেখান",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "জমাকৃত নয় এমন অংশের রঙ",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "সময় বারের রঙ"
|
||||
},
|
||||
"category": {
|
||||
"message": "বিভাগ"
|
||||
},
|
||||
"skipOption": {
|
||||
"message": "সেগমেন্ট এড়িয়ে যাওয়ার অপশন",
|
||||
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
|
||||
},
|
||||
"enableTestingServer": {
|
||||
"message": "বিটা টেস্টিং প্রোগ্রামে যোগদান করুন"
|
||||
},
|
||||
"whatEnableTestingServer": {
|
||||
"message": "আপনার জমাকৃত অংশ এবং ভোটগুলি মূল সার্ভারের হিসাবে গণনা করা হবে না। কেবল পরীক্ষার জন্য এটি ব্যবহার করুন।"
|
||||
},
|
||||
"testingServerWarning": {
|
||||
"message": "সমস্ত জমাকৃত অংশ এবং ভোট টেস্ট সার্ভারের সাথে সংযোগ করার সময় মূল সার্ভারের হিসাবে গণনা করা হবেনা। আপনি যখন সত্যিকারের অংশ ও ভোট জমা দিতে চান তখন এটি বন্ধ করার বিষয়টি নিশ্চিত করুন।"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(এখন)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "আরো বিভাগ"
|
||||
},
|
||||
"chooseACategory": {
|
||||
"message": "বিভাগ নির্বাচন করুন"
|
||||
},
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "\"{0}\" বিভাগের অন্তর্ভুক্ত অংশ জমা দিতে, আপনাকে এটি অপশন এ গিয়ে চালু করতে হবে। আপনাকে এখন অপশন এ পাঠানো হবে।",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "সতর্কতা: এই ধরণের বিভাগে একসময়ে সর্বাধিক একবার সক্রিয় থাকতে পারে। একাধিক জমা দেওয়া হলে যেকোন একটি এলোমেলোভাবে বেছে সেটি দেখানো হবে।"
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "আপনাকে প্রত্যেকটি অংশের জন্য কমপক্ষে একটি করে ক্যাটাগরি সিলেক্ট করতে হবে!"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(শেষ)"
|
||||
},
|
||||
"hiddenDueToDownvote": {
|
||||
"message": "লুক্কায়িতঃ ডাউনভোট"
|
||||
},
|
||||
"hiddenDueToDuration": {
|
||||
"message": "লুক্কায়িতঃ খুব ছোট"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "নিজে লুক্কায়িত"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "চ্যানেল আইডি এখনও লোড হয় না। আপনি যদি এম্বেডে থাকা ভিডিও দেখছেন তবে পরিবর্তে ইউটিউব হোমপেজটি ব্যবহার করার চেষ্টা করুন। এটি ইউটিউব লেআউটে পরিবর্তনের কারণেও হতে পারে, আপনার যদি মনেহয় এটি লেআউটে পরিবর্তনের কারণে হয়েছে তাহলে এখানে একটি মন্তব্য করুনঃ "
|
||||
},
|
||||
"videoInfoFetchFailed": {
|
||||
"message": "দেখে মনে হচ্ছে যে কোনও কিছু স্পনসরব্লকের ভিডিওর ডেটা পাওয়ার ক্ষমতা অবরুদ্ধ করছে। আরও তথ্যের জন্য দয়া করে https://github.com/ajayy/sponsorblock/issues/741 দেখুন।"
|
||||
},
|
||||
"youtubePermissionRequest": {
|
||||
"message": "দেখে মনে হচ্ছে স্পনসরব্লক YouTube API তে পৌঁছাতে অক্ষম। এটি ঠিক করতে, এরপর উপস্থিত হবে সেই অনুমতি প্রম্পটটি গ্রহণ করবেন, তারপর কয়েক সেকেন্ড অপেক্ষা করে পৃষ্ঠাটি পুনরায় লোড করুন।"
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "অনুমতি একসেপ্ট করুন"
|
||||
},
|
||||
"permissionRequestSuccess": {
|
||||
"message": "অনুমতির অনুরোধ সফল হয়েছে!"
|
||||
},
|
||||
"permissionRequestFailed": {
|
||||
"message": "অনুমতির অনুরোধ ব্যর্থ হয়েছে, আপনি কি ডেনাই ক্লিক করেছেন?"
|
||||
},
|
||||
"adblockerIssueWhitelist": {
|
||||
"message": "আপনি যদি এটি সমাধান করতে অক্ষম হন তবে সেটিংস এ গিয়ে 'এড়িয়ে যাওয়ার আগে চ্যানেল চেক করুন' বন্ধ করুন, কারণ স্পনসরব্লক এই ভিডিওটির জন্য চ্যানেলের তথ্য পুনরুদ্ধার করতে অক্ষম"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "এড়িয়ে যাওয়ার আগে চ্যানেল চেক করুন"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "সাধারণত, এটি চ্যানেলটি কী তা জানার আগেই এটি এখনই বিভাগগুলি এড়িয়ে যাবে। সাধারণত, ভিডিওর শুরুতে কিছু বিভাগগুলি সাদা তালিকাভুক্ত চ্যানেলগুলিতে এড়িয়ে যেতে পারে। এই বিকল্পটি সক্ষম করা এটিকে প্রতিরোধ করবে তবে চ্যানেলআইডি পেতে কিছুটা সময় নিতে পারে বলে সমস্ত এড়িয়ে যাওয়া কিছুটা বিলম্বিত করে। আপনার যদি দ্রুত ইন্টারনেট থাকে তবে এই বিলম্বটি অদৃশ্য হতে পারে।"
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "\"এড়িয়ে যাওয়ার আগে চ্যানেল চেক করুন\" সেটিংস টি চালু করার বিষয়টি বিবেচনা করুন"
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "সময় ভুল দেওয়া হয়েছে"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "বিভাগ পরিবর্তন করুন"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "এই ভিডিওটি সংগীত হিসাবে শ্রেণীবদ্ধ করা হয়েছে। আপনি কি নিশ্চিত যে এটি একটি স্পনসর আছে? যদি এটি আসলে একটি \"অ-সংগীত বিভাগ\" হয় তবে এক্সটেনশন এর অপশন এ যান এবং এই বিভাগটি চালু করুন। তারপরে, আপনি এই বিভাগটিকে স্পনসর পরিবর্তে \"অ-সংগীত\" হিসাবে জমা দিতে পারেন। আপনি বিভ্রান্ত হলে দয়া করে নিয়মকানুনপড়ুন।"
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "অনেকগুলো অংশ"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "নিয়মকানুন"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "নিয়মকানুন পড়ুন!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"categoryUpdate1": {
|
||||
"message": "বিভাগ ফিচার এসেছে!"
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "ইন্ট্রোস, আউট্রোস, মার্চ ইত্যাদি এড়িয়ে যাওয়ার জন্য অপশন খুলুন।"
|
||||
},
|
||||
"help": {
|
||||
"message": "সাহায্য"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "বুঝেছি",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "এই বিভাগটি বিশাল। যদি পুরো ভিডিওটি একটি বিষয় নিয়ে হয় তবে \"Skip\" থেকে \"Full Video\" এ পরিবর্তন করুন। আরও তথ্যের জন্য নিয়মকানুন দেখুন।"
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "এই পুরো ভিডিওটি এই বিভাগ হিসাবে লেবেলযুক্ত এবং পৃথক করা সম্ভব না কারন এটি খুব ঘন ঘন সংযুক্ত করা হয়েছে"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "ভবিষ্যতের সমস্ত পরীক্ষা-নিরীক্ষা পাওয়া থেকে বিরত থাকুন",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "চিরকালের জন্য এই বিষয়বস্তু লুকান"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "আপনি একটি সতর্কতা পেয়েছেন এবং অস্থায়ীভাবে বিভাগগুলি জমা দিতে পারবেন না। এর অর্থ হ'ল আমরা লক্ষ্য করেছি যে আপনি কিছু সাধারণ ভুল করছেন যা দূষিত নয়, দয়া করে কেবল নিশ্চিত করুন যে আপনি নিয়মগুলি বুঝতে পেরেছেন এবং আমরা সতর্কতাটি সরিয়ে দেব। আপনি আমাদের চ্যাটটি discord.gg/SponsorBlock or matrix.to/#/#sponsor:ajay.app ব্যবহার করে যোগ দিতে পারেন"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "একটি সতর্কতার কারণে ভোট প্রত্যাখ্যান করা হয়েছে। এটি সমাধানের জন্য চ্যাট খুলতে ক্লিক করুন বা আপনার এখন সময় না থাকলে পরে আবার ফিরে আসুন।",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "অনুদান"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "অনুদানের মাধ্যমে ভবিষ্যতেে এর উন্নয়নের কাজে সাহায্য হবে"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "অনুদানের লিঙ্ক লুকান"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "অপশন পেজে ডার্ক মোড "
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "স্পনসরব্লক ইনস্টল করার জন্য আপনাকে ধন্যবাদ."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "নীচের অপশনগুলি পর্যালোচনা করুন"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "অনেকগুলি বৈশিষ্ট্য সাধারণত অক্ষম থাকে। আপনি যদি ইন্ট্রোস, আউট্রোস এড়িয়ে যেতে চান, Invidious ইত্যাদি ব্যবহার করতে চান তবে সেগুলি নীচে সক্ষম করুন। আপনি UI উপাদানগুলিও লুকাতে/দেখাতে পারেন।"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "এটি কীভাবে কাজ করে"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "ভিডিও এর অংশ ডাটাবেসে পাওয়া গেলে সেগুলি স্বয়ংক্রিয়ভাবে এড়িয়ে যাবে। তারা কীরকম তা পূর্বরূপ দেখতেআপনি এক্সটেনশন আইকনে ক্লিক করে পপআপটি খুলতে পারেন।"
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "আপনি যখনই কোনও বিভাগ এড়িয়ে যান, আপনি একটা নোটিস পাবেন। সময়টি যদি ভুল বলে মনে হয় তবে ডাউনভোটে ক্লিক করে ভোট দিন! আপনি পপআপ থেকেও ভোট দিতে পারেন।"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "নতুন অংশ জমা দেওয়া"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "জমা দেওয়া যায় পপআপে \"অংশ এখন শুরু হয়\" বোতামটি টিপ মেরে বা প্লেয়ারের বোতামগুলি সহ ভিডিও প্লেয়ারে টিপ মেরে করে।"
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "প্লে বোতামটি ক্লিক করা একটি বিভাগের শুরু নির্দেশ করে এবং স্টপ আইকনটি ক্লিক করা শেষটি নির্দেশ করে। আপনি জমা দেওয়ার আগে একাধিক স্পনসর প্রস্তুত করতে পারেন। আপলোড বোতামটি ক্লিক করা জমা দেওয়া হবে। আবর্জনায় ক্লিক করে বাদ দিতে পারেন এটি।"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "সম্পাদন করা"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "যদি আপনি ভুল করে বসেন তবে আপনি উপড়ের তীর বোতামটি ক্লিক করার পরে আপনার বিভাগগুলি সম্পাদনা বা মুছতে পারেন।"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "গতি অত্যন্ত ধীর।"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "আপনি যদি ব্যবহার করতে চান তাইলে হটকি রয়েছে। স্পনসর বিভাগের শুরু/শেষ নির্দেশ করতে সেমিকোলন কী টিপুন এবং জমা দেওয়ার জন্য অ্যাপোস্ট্রোফে ক্লিক করুন। এগুলি পরিবর্তন করা যেতে পারে। আপনি যদি QWERTY ব্যবহার না করেন তবে আপনার সম্ভবত কীবাইন্ডিং পরিবর্তন করা উচিত।"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "আমি কি ডাটাবেসের একটি অনুলিপি পেতে পারি? আপনি হারিয়ে গেলে হলে কি হবে?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "ডাটাবেসটি সবার জন্য প্রকাশিত এবং পাওয়া যাবে এখানেঃ "
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "এটির সোর্স কোড অবাধে উপলব্ধ। সুতরাং, যদি আমার কিছু ঘটেও যায় তবে আপনার জমাকৃত অংশগুলি হারিয়ে যাবে না।"
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "খবর এবং এটি কীভাবে তৈরি হয়"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "আমি সোর্স কোডটি কোথায় পেতে পারি?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "কৃতিত্ব"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "আরও জানুন"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "ডাউনভোট করে আপনার জন্য পুনরায় জমা দেওয়ার জন্য একটি স্থানীয় অনুলিপি তৈরি করে"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "এই বিভাগের উইকি পাতা খুলুন."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "কপি এবং ডাউনভোট"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "ভোট করা চালিয়ে যান"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "এটি তাৎক্ষনিকভাবে আপনার অংশে দেওয়া হবে"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "ডাউনভোট"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "আপভোট"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "অংশ আড়াল করুন"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "দ্রুত সময়টি পরিবর্কতন করতে সম্পাদনা বাক্সে ঘুরে দেখার সময় আপনার মাউস এর হুইয়িলটি ব্যবহার করুন। কন্ট্রল বা শিফট কী এর সংমিশ্রণগুলি পরিবর্তনগুলি আরো নিখুতভাবে টিউন করতে ব্যবহার করা যেতে পারে।"
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "নতুন! দেখুন যখন কোনও ভিডিও সম্পূর্ণ স্পনসর করা বা স্ব-প্রচার হয়"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": " দিন",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": " ঘণ্টা",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "আচরণ",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "ইন্টারফেস",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "কীবোর্ড শর্টকাট",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "ব্যাকআপ এবং পুনঃস্থাপন",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "বিবিধ",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "নোটিশ প্রদর্শন করা বন্ধ করুন",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "বাদ দিন",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "নির্ধারণ করা হয়নি"
|
||||
},
|
||||
"change": {
|
||||
"message": "বদল করুন"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "এটি একটি অন্তর্নির্মিত ইউটিউব শর্টকাট। আপনি কি নিশ্চিত যে আপনি এটি ব্যবহার করতে চান?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "বেটা সার্ভার চালু করা হয়েছে!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "বিকল্প পাতা খুলুন"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,5 +42,185 @@
|
||||
},
|
||||
"Hide": {
|
||||
"message": "No mostris mai"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Premeu \"no saltar\" per tornar on estàveu."
|
||||
},
|
||||
"unskip": {
|
||||
"message": "No saltar"
|
||||
},
|
||||
"reskip": {
|
||||
"message": "Saltar de nou"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Deixa de silenciar"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pausat"
|
||||
},
|
||||
"manualPaused": {
|
||||
"message": "S'ha aturat el temporitzador"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "Per editar o esborrar valors individuals, premeu el botó d'informació o cliqueu la pestanya de l'extensió al cantó superior dret."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "Segur que voleu esborrar això?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "S'ha produït un error en enviar els temps d'anunciant, torneu-ho a provar més endavant."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Aquest vídeo té segments a la base de dades!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "No s'han trobat segments"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "El segment comença ara"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "El segment acaba ara"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Cancel·la la creació del segment"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "No s'ha trobat cap vídeo de YouTube.\nSi penseu que és incorrecte, refresqueu la pestanya."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Refresca els segments"
|
||||
},
|
||||
"success": {
|
||||
"message": "Èxit!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "Votat!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Sembla que ha caigut el servidor. Contacteu el desenvolupador immediatament."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "S'ha produït un error de connexió. Codi d'error: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Esborra els segments"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "Obrir finestra de SponsorBlock"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "Tanca la finestra"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Envia els segments"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Segur que voleu enviar això?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Canal de llista blanca"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Treure canal de la llista blanca"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Vota un segment"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Propostes"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Heu estalviat la gent "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Classificació"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "Envia"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "L'edició de seccions apareixerà després de prémer \"envia\"",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Consell: Podeu crear tecles de drecera per enviar en \"opcions\""
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Esborra temps"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Envia temps"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Això s'utilitza a la pàgina d'estadístiques pública per fatxendejar de quant heu contribuït. Vegeu"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Nom d'usuari"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Definiu el nom d'usuari"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Copia l'identificador públic d'usuari"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Uniu-vos al servidor de Discord oficial per opinar i fer suggeriments!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Amaga això"
|
||||
},
|
||||
"Options": {
|
||||
"message": "Opcions"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "Mostra els botons al reproductor de YouTube"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "Amaga els botons al reproductor de YouTube"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Això amaga els botons que apareixen al reproductor de YouTube per enviar segments."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Mantenir \"Botar al destacat\" al reproductor"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Mostra el botó d'informació al reproductor de YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Amaga el botó d'informació al reproductor de YouTube"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Amaga automàticament el botó d'informació"
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minut"
|
||||
},
|
||||
"minsLower": {
|
||||
"message": "minuts"
|
||||
},
|
||||
"hourLower": {
|
||||
"message": "hora"
|
||||
},
|
||||
"hoursLower": {
|
||||
"message": "hores"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Heu estalviat la gent",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " de les seves vides",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Visiteu status.sponsor.ajay.app per conèixer l'estat del servidor."
|
||||
},
|
||||
"changeUserID": {
|
||||
"message": "Importa/exporta la vostra identificació d'usuari"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "Això hauria de romandre privat: és semblant a una contrasenya i no s'hauria de compartir amb cap persona. Si algú hi té accés, poden suplantar-vos. Si esteu cercant el vostre identificador d'usuari públic, premeu la icona del portanotes a la finestra."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Kopírovat veřejné uživatelské ID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Zkopírovat ID segmentu"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Připojte se k oficiálnímu Discord serveru k podání návrhů a zpětné vazby!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Skryje tlačítka, která se zobrazí v YouTube přehrávači pro přeskočení segmentů."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Nechat tlačítko přeskočení na zvýraznění v přehrávači"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Zobrazit informační tlačítko v YouTube přehrávači"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Skrýt informační tlačítko v YouTube přehrávači"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Toto je tlačítko, které otevře vyskakovací nabídku na YouTube stránce."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Automaticky skrýt informační tlačítko"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Zobrazit tlačítko Odstranit v YouTube přehrávači"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Toto je tlačítko v YouTube přehrávači, které odebere všechny vaše neodeslané segmenty v současném videu."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Povolit počítadlo přeskočení"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Povolit sledování počtu přeskočení v soukromých/anonymních oknech"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Ukládat hlasy proti segmentům"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Jakékoli segmenty, proti kterým budete hlasovat, zůstanou skryté i po obnovení karty"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Varování: Zakázání této možnosti odstraní všechny dříve uložené hlasy proti"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Dotaz podle hash předpony"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Nastavit klíč pro přeskočení segmentu"
|
||||
"message": "Přeskočit segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Nastavte klávesu pro spuštění/zastavení segmentu"
|
||||
"message": "Začít/ukončit segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Nastavte klávesu pro odeslání"
|
||||
"message": "Odeslat segmenty",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Nastavte klávesu jejím zadáním"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Klávesa byla nastavena na: "
|
||||
"message": "Vyberte klávesu jejím zadáním a zvolte si modifikátory, které chcete použít."
|
||||
},
|
||||
"0": {
|
||||
"message": "Vypršel časový limit připojení. Zkontrolujte vaše připojení k internetu. Pokud váš internet funguje, server je nejspíš přetížený nebo spadnul."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Ztlumit"
|
||||
},
|
||||
"full": {
|
||||
"message": "Celé video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Přeskočit {0}?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Přeskočili jste "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Ušetřili jste si "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minutu"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "hodin"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Ušetřili jste lidem"
|
||||
"message": "Ušetřili jste lidem",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " jejich života"
|
||||
"message": " jejich života",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Podívejte se na status.sponsor.ajay.app pro stav serverů."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Vytvořil"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Je momentálně nastaveno na:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Podpora pro weby YouTube třetích stran"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Váš příspěvek je kratší než vaše možnost nejkratší doby trvání. To by mohlo znamenat, že někdo segment již odeslal, a je jenom ignorován kvůli této možnosti. Opravdu chcete odeslat váš příspěvek?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Odesílání na aktivním streamu nebo premiéře. Počkejte prosím, než skončí, poté obnovte stránku a ověřte, zda jsou segmenty stále platné."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Zobrazit tlačítko Nahrát"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Toto tlačítko se objeví v YouTube přehrávači po vybrání časového razítka a po připravení k odeslání."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Adresa serveru SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importovat / exportovat všechny možnosti"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Upravit/kopírovat"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Uložit do souboru"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Načíst ze souboru"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Toto je celá vaše konfigurace ve formátu JSON. Zahrnuje vaše userID, takže s ní nakládejte opatrně."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Ladící informace byly zkopírovány do schránky. Můžete odstranit jakékoli informace, které raději nechcete sdílet. Uložte text do textového souboru nebo vložte do chybového hlášení."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Klávesa"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "je přiřazena k jiné akci. Zvolte prosím jinou klávesu."
|
||||
"message": "Tato zkratka je vázána na jinou akci. Vyberte prosím jinou."
|
||||
},
|
||||
"to": {
|
||||
"message": "do",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Podobně jako \"sponzor\" s výjimkou neplacených nebo propagačních akcí. Zahrnuje sekce o zboží, dary nebo informace o tom, s kým spolupracují."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exkluzivní přístup"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Pouze pro označování celých videí. Používá se v případě, že je ve videu zobrazován produkt, služba nebo místo, které autor obdržel zdarma nebo s bezplatným přístupem."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "V tomto videu je zobrazován produkt, služba nebo místo, které autor obdržel zdarma nebo s bezplatným přístupem",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Připomenutí interakce (odběr)"
|
||||
},
|
||||
@@ -564,11 +589,20 @@
|
||||
"message": "Titulky nebo když se objeví konečné karty YouTube. Není pro závěry s informacemi."
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Náhled/shrnutí"
|
||||
"message": "Náhled / shrnutí"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Rychlé shrnutí předchozích epizod nebo náhled toho, co se objeví v aktuálním videu. Myšleno pro upravené sloučené klipy, ne pro mluvená shrnutí."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Výplň / vtipy"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Výplňové scény přidané jen jako přídavek nebo humor, které nejsou vyžadovány pro pochopení hlavního obsahu videa. Toto by nemělo zahrnovat segmenty poskytující kontext nebo podrobnosti na pozadí."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Výplň"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Hudba: nehudební sekce"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Zobrazit v liště"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Zobrazit štítek"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Automaticky přeskočit všechny segmenty, když je ve videu nehudební segment"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Povolit segmenty, které místo přeskočení ztlumují zvuk"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Vaše barva má nesprávný formát. Měl by to být 3 nebo 6 znaků dlouhý HEX kód s křížkem na začátku."
|
||||
"fullVideoSegments": {
|
||||
"message": "Zobrazit ikonu, když je celé video reklama",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Barva neodeslaného segmentu",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Pro odeslání segmentů v kategorii \"{0}\" to nejprve musíte povolit v nastavení. Nyní budete přesměrováni do nastavení.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Varování: tento typ segmentu může být aktivní najednou pouze jeden. Odeslání více segmentů způsobí zobrazení náhodného segmentu."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Musíte vybrat kategorii pro všechny odeslané segmenty!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "skryté: moc krátké"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "ručně skryto"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "ID kanálu ještě není načteno. Pokud používáte vložené video, zkuste místo toho použít domovskou stránku YouTube. Toto může být také způsobeno změnami v rozložení YouTube, pokud si myslíte, že tomu tak bude, zanechte zde komentář:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Nesprávné / špatné časování"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Špatná kategorie"
|
||||
"message": "Změnit kategorii"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Toto video je kategorizováno jako hudba. Jste si jisti, že je v něm sponzorská sekce? Pokud se opravdu jedná o \"Nehudební segment\", otevřete nastavení a povolte tuto kategorii. Poté budete moct odeslat segment jako \"Nehudební\" místo sponzorského. Pokud jste zmateni, přečtěte si prosím pokyny."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Rozumím",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Tento segment je velký. Pokud je celé video o jednom tématu, změňte z \"Přeskočit\" na \"Celé video\". Pro více informací se podívejte na pokyny."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Toto celé video je označeno jako tato kategorie a je příliš integrované na to, aby se dalo rozdělit"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Odhlásit se ze všech budoucích experimentů",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Skrýt napořád"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Dostali jste varování a nemůžete dočasně přidávat segmenty. To znamená, že jsme si všimli, že děláte běžné chyby, které nejsou škodlivé, jen chceme vyjasnit pravidla. Také se můžete připojit do tohoto chatu pomocí discord.gg/SponsorBlock nebo matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Dostali jste varování a nemůžete dočasně přidávat segmenty. To znamená, že jsme si všimli, že děláte běžné chyby, které nejsou škodlivé, stačí potvrdit přečtení pravidel a odebereme varování. Tají se můžete připojit do tohoto chatu pomocí discord.gg/SponsorBlock nebo matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Hlas zamítnut kvůli varování. Klikněte pro otevření chatu pro vyřešení, nebo se vraťte později, až budete mít čas.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Přispět"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Pomozte s financováním vývoje"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Skrýt odkaz na přispění"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Tmavý režim na stránce možností"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Děkujeme za instalaci SponsorBlocku."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Poděkování"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Novinka! Dostaňte se k pointě videa jedním kliknutím s novou kategorií zvýraznění"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Zjistit více"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Zahlasuje proti a vytvoří pro vás lokální kopii pro opětovné odeslání"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Otevřít wiki stránku této kategorie."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Zkopírovat a hlasovat proti"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Pokračovat v hlasování"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Toto bude okamžitě platit pro vaše segmenty"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Hlas proti"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Hlas pro"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Skrýt segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Použijte kolečko myši při přechodu přes editační okno pro rychlou úpravu času. Kombinace kláves Ctrl nebo Shift mohou být použity k doladění změn."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Novinka! Nyní uvidíte, zda je video zcela sponzorované nebo celé obsahuje sebepropagaci"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Chování",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Rozhraní",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Klávesové zkratky",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Záloha/obnovení",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Různé",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Vzhled oznámení o přeskočení",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Odebrat",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Nenastaveno"
|
||||
},
|
||||
"change": {
|
||||
"message": "Změnit"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Toto je vestavěná zkratka YouTube. Opravdu ji chcete použít?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA server je povolen!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Otevřít stránku s možnostmi"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Spring over"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Lyd til"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Sat på pause"
|
||||
},
|
||||
@@ -115,7 +118,834 @@
|
||||
"submitCheck": {
|
||||
"message": "Er du sikker på, at du vil indsende dette?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Hvidlist kanal"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Fjern kanal fra hvidliste"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Stem På Et Segment"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Indsendelser"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Du har sparret folk "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Topliste"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "Indsend"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "Sektionsredigering vises, når du klikker på afsend",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Tip: Du kan opsætte keybinds til indsendelse i indstillingerne"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Ryd Tider"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Indsend Tider"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Dette bruges på siden med offentlige statistikker til at vise, hvor meget du har bidraget. Se det"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Brugernavn"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Angiv Brugernavn"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Kopier Offentligt Bruger-ID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Kopier Segment-Id"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Kom til den officielle Discord-server for at give forslag og feedback!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Skjul dette"
|
||||
},
|
||||
"Options": {
|
||||
"message": "Indstillinger"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "Vis Knapper På YouTube-Afspiller"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "Skjul Knapper På YouTube-Afspiller"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Dette skjuler knapperne, der vises på YouTube-afspilleren for indsende springe segmenter."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Behold Knappen Spring Til Fremhævning På Afspilleren"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Vis Info-Knap På YouTube-Afspiller"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Skjul Info-Knap På YouTube-Afspiller"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Auto-Skjul Info-Knap"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Skjul Slet-Knappen på YouTube-Afspiller"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Vis Slet-Knappen på YouTube-Afspiller"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Aktiver Optælling Af Antal Spring Over"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Denne funktion registrerer hvilke segmenter, du har sprunget over, så brugere kan se, hvor meget deres bidrag har hjulpet andre, og bruges som en måleenhed sammen med upvotes for at sikre, at spam ikke kommer ind i databasen. Udvidelsen sender en besked til serveren hver gang, du springer et segment over. Forhåbentlig ændrer de fleste ikke denne indstilling, så visningstallene er korrete. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Aktiver Optælling Af Antal Spring Over I Private-/Inkognitovinduer"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Gem segment nedstemmer"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Ethvert segment, du nedstemmer vil forblive skjult selv efter genindlæsning"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Advarsel: Deaktivering af dette vil slette alle tidligere gemte nedstemmer"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Forespørg Efter Hashpræfiks"
|
||||
},
|
||||
"whatQueryByHashPrefix": {
|
||||
"message": "I stedet for at anmode om segmenter fra serveren ved hjælp af videoID'et, sendes de første 4 tegn i hashen af videoID'et. Serveren sender data tilbage for alle videoer med lignende hashes."
|
||||
},
|
||||
"enableRefetchWhenNotFound": {
|
||||
"message": "Opdater Segmenter På Nye Videoer"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Hvis videoen er ny, og der ikke er nogle segmenter fundet, vil den opdatere hvert par minutter, mens du ser."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Vis Bemærkning Igen"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Vis Bemærkning Efter Et Segment Skippes"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Fuld Størrelse Skip-Bemærkninger"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Små Skip-Bemærkninger for Auto-Skip"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Alle Små Skip-Bemærkninger"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Faded Skip-Bemærkninger for Auto-Skip"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Alle Faded Skip-Bemærkninger"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsoBlock lader dig skippe sponsorer, introer, outroer, abonnement påmindelser og andre irriterende dele af YouTube-Videoer. SponsorBlock er en crowdsourced browerudvidelse, hvor alle kan indsende start- og sluttidspunkter for sponsorerede og andre segmenter i YouTube-Videoer. Du kan også springe over de dele af musikvideoer, som ikke er musik.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
"message": "Hjemmeside",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"sourceCode": {
|
||||
"message": "Kildekode",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"noticeUpdate": {
|
||||
"message": "Meddelelsen er blevet opgraderet!",
|
||||
"description": "The first line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"noticeUpdate2": {
|
||||
"message": "Hvis du stadig ikke kan lide det, så tryk på aldrig vis knappen.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Spring segment over",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Start/stop segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Indsend segmenter",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Velg en tast ved at trykke på den og vælg de modificeringstaster du ønsker at bruge."
|
||||
},
|
||||
"0": {
|
||||
"message": "Forbindelsestimeout. Tjek din internetforbindelse. Hvis dit internet fungerer, er serveren sandsynligvis overbelastet eller nede."
|
||||
},
|
||||
"disableSkipping": {
|
||||
"message": "Spring over er aktiveret"
|
||||
},
|
||||
"enableSkipping": {
|
||||
"message": "Spring over er deaktiveret"
|
||||
},
|
||||
"yourWork": {
|
||||
"message": "Dit Arbejde",
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
"message": "Serveren virker at være overbelastet. Prøv igen om et par sekunder."
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "Fejlkode: "
|
||||
},
|
||||
"skip": {
|
||||
"message": "Spring Over"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Gør Tavs"
|
||||
},
|
||||
"full": {
|
||||
"message": "Fuld Video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Spring {0} over?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Gør {0} tavs?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Spring til {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} Sprunget Over",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} Tavsgjort",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Skipped til {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "Deaktiver Auto-Skip"
|
||||
},
|
||||
"enableAutoSkip": {
|
||||
"message": "Aktiver Auto-Skip"
|
||||
},
|
||||
"audioNotification": {
|
||||
"message": "Lydnofikation på Skip"
|
||||
},
|
||||
"audioNotificationDescription": {
|
||||
"message": "Lydnotifikation ved skip vil spille en lyd når et segment skippes. Hvis deaktiveret (eller auto-skip er deaktiveret) vil ingen lyd blive spillet."
|
||||
},
|
||||
"showTimeWithSkips": {
|
||||
"message": "Vis Tid Med Skip Fjernet"
|
||||
},
|
||||
"showTimeWithSkipsDescription": {
|
||||
"message": "Denne tid vises i parantes ved siden af den aktuelle tid under søgelinjen. Dette viser den totale videovarighed minus alle segmenter. Dette inkluderer segmenter markeret som kun \"Vis I Søgelinjen\"."
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "Du har sprunget over "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minut"
|
||||
},
|
||||
"minsLower": {
|
||||
"message": "minutter"
|
||||
},
|
||||
"hourLower": {
|
||||
"message": "time"
|
||||
},
|
||||
"hoursLower": {
|
||||
"message": "timer"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Du har sparret folk",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " af deres liv",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Tjek status.sponsor.ajay.app for serverstatus."
|
||||
},
|
||||
"changeUserID": {
|
||||
"message": "Importer/Eksporter Dit Bruger-ID"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "Dette bør holdes privat. Det er ligesom en adgangskode og bør ikke deles med nogen. Hvis nogen har dette, kan de udgive sig for at være dig. Hvis du leder efter dit offentlige bruger-ID, skal du klikke på udklipsholderikonet i popup-vinduet."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Indstil Bruger-ID"
|
||||
},
|
||||
"userIDChangeWarning": {
|
||||
"message": "Advarsel: Ændring af Bruger-IDet er permanent. Er du sikker på, at du vil gøre det? Sørg for at sikkerhedskopiere din gamle for en sikkerheds skyld."
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "Oprettet Af"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Understøtter tredjeparts YouTube sider"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "Understøt tredjeparts YouTube klienter. For at aktivere understøttelse, skal du acceptere de ekstra tilladelser. Dette virker IKKE i inkognito på Chrome og andre Chromium varianter.",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "Understøttede Sider: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Aktiver Invidious understøttelse, deaktiver auto spring over, skjul knapper og mere."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Tilføj Tredjeparts Klientinstans"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "Tilføj brugerdefineret instans. Dette skal formateres med KUN domænet. Eksempel: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "Tilføj"
|
||||
},
|
||||
"addInvidiousInstanceError": {
|
||||
"message": "Dette er et ugyldigt domæne. Dette bør KUN omfatte domænedele. Eksempel: invidious.ajay.app"
|
||||
},
|
||||
"resetInvidiousInstance": {
|
||||
"message": "Nulstil Liste over Invidious-Instanser"
|
||||
},
|
||||
"resetInvidiousInstanceAlert": {
|
||||
"message": "Du er ved at nulstille listen over Invidious-instancer"
|
||||
},
|
||||
"currentInstances": {
|
||||
"message": "Nuværende Instans:"
|
||||
},
|
||||
"minDuration": {
|
||||
"message": "Minimumsvarighed (sekunder):"
|
||||
},
|
||||
"minDurationDescription": {
|
||||
"message": "Segmenter kortere end den indstillede værdi vil ikke blive sprunget over eller vist i spilleren."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Spring meddelelsesvarighed over (sekunder):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Overspringsmeddelelsen vil blive på skærmen i mindst så længe. For manuel spring, kan den være synlig i længere tid."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "Den følgende indsendelse er kortere end din minimums varighed indstilling. Dette kan betyde, at den allerede er indsendt, og bare bliver ignoreret på grund af denne indstilling. Er du sikker på, at du vil indsende?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Indendeslse på en aktiv livestream eller premiere er ikke tilladt. Vent venligst indtil den er færdig og opdater derefter siden og bekræft, at segmenterne stadig er gyldige."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Vis Upload-Knap"
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock Serveradresse"
|
||||
},
|
||||
"customServerAddressDescription": {
|
||||
"message": "Adressen SponsorBlock bruger til at foretage opkald til serveren. Med mindre du har din egen serverinstans, bør dette ikke ændres."
|
||||
},
|
||||
"save": {
|
||||
"message": "Gem"
|
||||
},
|
||||
"reset": {
|
||||
"message": "Nulstil"
|
||||
},
|
||||
"customAddressError": {
|
||||
"message": "Denne adresse er ikke i den rigtige form. Sørg for at du har http:// eller https:// i begyndelsen og ingen efterfølgende skråstreger."
|
||||
},
|
||||
"areYouSureReset": {
|
||||
"message": "Er du sikker på, at du ønsker at nulstille dette?"
|
||||
},
|
||||
"mobileUpdateInfo": {
|
||||
"message": "m.youtube.com understøttes nu"
|
||||
},
|
||||
"exportOptions": {
|
||||
"message": "Importer/Eksporter Alle Indstillinger"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Rediger/kopier"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Gem til fil"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Indlæs fra fil"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Dette er hele din konfiguration i JSON. Dette inkluderer dit bruger-ID, så sørg for at dele dette med omtanke."
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "Indstil Indstillinger"
|
||||
},
|
||||
"exportOptionsWarning": {
|
||||
"message": "Advarsel: Ændring af indstillingerne er permanent, og kan ødelægge din installation. Er du sikker på, at du vil gøre dette? Sørg for at sikkerhedskopiere din gamle for en sikkerheds skyld."
|
||||
},
|
||||
"incorrectlyFormattedOptions": {
|
||||
"message": "Denne JSON er ikke formateret korrekt. Dine indstillinger er ikke blevet ændret."
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Indsend Segment"
|
||||
},
|
||||
"submit": {
|
||||
"message": "Indsend"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "Annuller"
|
||||
},
|
||||
"delete": {
|
||||
"message": "Slet"
|
||||
},
|
||||
"preview": {
|
||||
"message": "Forhåndsvisning"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "Ikke Indsendt"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "Undersøg"
|
||||
},
|
||||
"edit": {
|
||||
"message": "Rediger"
|
||||
},
|
||||
"copyDebugInformation": {
|
||||
"message": "Kopier Fejlretningsoplysninger Til Udklipsholder"
|
||||
},
|
||||
"copyDebugInformationFailed": {
|
||||
"message": "Det lykkedes ikke at skrive til udklipsholderen"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": "Kopierer information til udklipsholderen, der skal leveres til en udvikler, når en fejl indberettes / når en udvikler anmoder om det. Følsomme oplysninger som dit bruger-ID, hvidlistede kanaler og brugerdefineret serveradresse er blevet fjernet. Dog indeholder det oplysninger som din brugeragent, browser, operativsystem og versionsnummer for udvidelsen. "
|
||||
},
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Fejlfindingsinformationen er blevet kopieret til klippebordet. Du er velkommen til at fjerne alle oplysninger, du helst ikke vil dele. Gem dette i en tekstfil eller indsæt i fejlrapporten."
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "Denne genvej er budnet til en anden handling. Vælg venligst en anden."
|
||||
},
|
||||
"to": {
|
||||
"message": "til",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "Sponsor"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Betalt kampagne, betalte henvisninger og direkte reklamer. Ikke for selvpromoverende eller gratis shoutouts til årsager/skabere/hjemmesider/produkter, de kan lide."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Ubetalt/Egen Markedsføring"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "Ligesom \"sponsor\" bortset fra ubetalt- eller selfmarkedsføring. Dette inkluderer sektioner om merchandise, donationer eller oplysninger om hvem, de har samarbejdet med."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Eksklusiv Adgang"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Kun til mærkning af hele videor. Bruges, når en video viser et produkt, tjeneste eller sted, som de har modtaget gratis eller subsidieret adgang til."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Denne video viser et produkt, tjeneste eller et sted, som de har modtaget gratis eller subsidieret adgang til",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Påmindelse Om Interaktion (Abonnement)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "Når der er en kort påmindelse om at like, abonnere eller følge dem midt i indholdet. Hvis den er lang eller om noget specifikt, bør den i stedet være under selvpromovering."
|
||||
},
|
||||
"category_interaction_short": {
|
||||
"message": "Påmindelse Om Interaktion"
|
||||
},
|
||||
"category_intro": {
|
||||
"message": "Pause/Intro-Animation"
|
||||
},
|
||||
"category_intro_description": {
|
||||
"message": "Et interval uden reelt indhold. Kunne være en pause, statisk ramme, gentagelse af animation. Dette bør ikke bruges til overgange som indeholder information."
|
||||
},
|
||||
"category_intro_short": {
|
||||
"message": "Pause"
|
||||
},
|
||||
"category_outro": {
|
||||
"message": "Slutkort/Kreditter"
|
||||
},
|
||||
"category_outro_description": {
|
||||
"message": "Medvirkende eller når YouTube-endcards vises. Ikke for konklusioner med information."
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Forhåndsvisning/Opsamling"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Hurtig opsummering af tidligere episoder eller en forsmag på, hvad der kommer senere i den aktuelle video. Er beregnet til sammenklippede klip, ikke til talte resuméer."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Fyldningstangent/Jokes"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Tangential scener kun tilføjet for fyldstof eller humor, som ikke er nødvendige for at forstå videoens hovedindhold. Dette bør ikke omfatte segmenter, der gtiver kontekst eller bagrundsoplysninger."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Fyldstof"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musik: Ikke-Musikalsk Sektion"
|
||||
},
|
||||
"category_music_offtopic_description": {
|
||||
"message": "Kun til brug i musikvideoer. Dette bør kun bruges til sektioner af musikvideoer, der ikke allerede er dækket af en anden kategori."
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Ikke-Musikalsk"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Fremhæv"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Den del af videoen, som de fleste mennesker leder efter. Svarende til \"Video starter ved x\" kommentarer."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Livestream: Donations-/Beskedsaflæsning"
|
||||
},
|
||||
"category_livestream_messages_short": {
|
||||
"message": "Læsning Af Meddelelser"
|
||||
},
|
||||
"autoSkip": {
|
||||
"message": "Auto Spring Over"
|
||||
},
|
||||
"manualSkip": {
|
||||
"message": "Manuel Spring Over"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "Vis I Søgebar"
|
||||
},
|
||||
"disable": {
|
||||
"message": "Deaktiver"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "Spring automatisk til starten"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Spørg, når videoen indlæses"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Vis I Søgebar"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Vis Etiket"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Spring automatisk over alle segmenter, når der er et ikke-musik-segment"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Tillad segmenter som dæmper lyden i stedet for at springe over"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Vis et ikon, når en video udelukkende er en reklame",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Ikke-Indsendt Farve",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "Søgebarsfarve"
|
||||
},
|
||||
"category": {
|
||||
"message": "Kategori"
|
||||
},
|
||||
"skipOption": {
|
||||
"message": "Spring Over Indstillinger",
|
||||
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
|
||||
},
|
||||
"enableTestingServer": {
|
||||
"message": "Aktiver Betatestserver"
|
||||
},
|
||||
"whatEnableTestingServer": {
|
||||
"message": "Dine indsendelser og stemmer TÆLLER IKKE med i hovedserveren. Brug kun dette til testformål."
|
||||
},
|
||||
"testingServerWarning": {
|
||||
"message": "Alle indsendelser og stemmer TÆLLES IKKE med i hovedserveren, når du opretter forbindelse til testserveren. Sørg for at deaktivere dette, når du ønsker at foretage rigtige indsendelser."
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(Nu)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "Flere Kategorier"
|
||||
},
|
||||
"chooseACategory": {
|
||||
"message": "Vælg en Kategori"
|
||||
},
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "Hvis du vil indsende segmenter med kategorien \"{0}\", skal du aktivere den i indstillingerne. Du vil blive omdirigeret til indstillingerne nu.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Advarsel: Denne type segment kan have maksimalt en aktiv ad gangen. Indsendelse af flere vil få en tilfældig til at blive vist."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Du skal vælge en kategori for alle segmenter, du indsender!"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(Slut)"
|
||||
},
|
||||
"hiddenDueToDownvote": {
|
||||
"message": "skjult: nedstem"
|
||||
},
|
||||
"hiddenDueToDuration": {
|
||||
"message": "skjult: for kort"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "manuelt skjult"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanal-ID er ikke indlæst endnu. Hvis du bruger en integreret video, så prøv i stedet at bruge YouTube-hjemmesiden. Dette kunne også være forårsaget af ændringer i YouTube-layout. Hvis du mener det, så lav en kommentar her:"
|
||||
},
|
||||
"videoInfoFetchFailed": {
|
||||
"message": "Det ser ud til, at noget blokerer SponsorBlock's evne til at hente videodata. Se https://github.com/ajayyy/SponsorBlock/issues/741 for mere info."
|
||||
},
|
||||
"youtubePermissionRequest": {
|
||||
"message": "Det ser ud til, at SponsorBlock ikke kan nå YouTube APIen. Acceptér tilladelsesprompten som vises næste gang, vent et par sekunder, og genindlæs siden."
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "Accepter tilladelse"
|
||||
},
|
||||
"permissionRequestSuccess": {
|
||||
"message": "Tilladelsesandmodning lykkedes!"
|
||||
},
|
||||
"permissionRequestFailed": {
|
||||
"message": "Tilladelsesanmodning mislykkedes, klikkede du på afvis?"
|
||||
},
|
||||
"adblockerIssueWhitelist": {
|
||||
"message": "Hvis du ikke kan løse dette problem, skal du deaktivere indstillingen 'Tving Kanaltjek Inden Springning', da SponsorBlock ikke er i stand til at hente kanaloplysningerne for denne video"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "Tving Kanaltjek Inden Springning"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Som standard vil den springe segmenter over med det samme, før den overhovedet ved, hvad kanalen er. Som standard kan nogle segmenter i starten af videoen blive sprunget over på kanaler på whitelisten. Hvis du aktiverer denne indstilling, forhindrer du dette, men det vil medføre en lille forsinkelse, da det kan tage noget tid at få kanal-ID'et. Denne forsinkelse kan være umærkelig, hvis du har hurtigt internet."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Overvej At Aktivere \"Tving Kanaltjek Inden Springning\""
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "Ukorrekt/Forkert Timing"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Skift Kategori"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Denne video er kategoriseret som musik. Er du sikker på, at denne har en sponsor? Hvis dette faktisk er et \"Ikke-musik segment\", skal du åbne udvidelsesindstillingerne og aktivere denne kategori. Derefter kan du indsende dette segment som \"Ikke-musik\" i stedet for sponsor. Læs venligst retningslinjerne, hvis du er forvirret."
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "Adskillige Segmenter"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "Retningslinjer"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "Læs Retningslinjerne!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"categoryUpdate1": {
|
||||
"message": "Kategorier er her!"
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Åbn mulighederne for at springe intros, outros, merch osv. over."
|
||||
},
|
||||
"help": {
|
||||
"message": "Hjælp"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "Forstået",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Dette segment er stort. Hvis hele videon handler om et emne, så skift fra \"Skip\" til \"Fuld Video\". Se retningslinjerne for mere information."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Hele denne video er mærket som denne kategori og er for tæt integreret til at være i stand til at adskille"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Fravælg alle fremtidige eksperimenter",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "Skjul for evigt"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Du har fået en advarsel og kan midlertidigt ikke indsende segmenter. Det betyder, at vi har bemærket, at du har begået nogle almindelige fejl, som ikke er skadelige. Bekræft venligst, at du har forstået reglerne, så fjerner vi advarslen. Du kan også deltage i denne chat ved hjælp af discord.gg/SponsorBlock eller matrix.to/#/##sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Afstemningen blev afvist på grund af en advarsel. Klik for at åbne en chat for at løse problemet, eller kom tilbage senere, når du har tid.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Doner"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Hjælp til at finansiere udvikling"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Skjul Donationslink"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Mørk Tilstand På Indstillingssiden"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Tak for at installere SponsorBlock."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Venligst gennemgå indstillingerne nedenfor"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Mange funktioner er deaktiveret som standard. Hvis du vil springe intros, outros over, bruge Invidious osv., skal du aktivere dem nedenfor. Du kan også skjule/vise brugergrænsefladeelementer."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Hvordan spring over virker"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Videosegmenter vil automatisk blive sprunget over, hvis de findes i databasen. Du kan åbne popup-vinduet ved at klikke på ikonet for udvidelsen for at få et eksempel på, hvad de er."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Når du springer et segment over, får du besked, når du springer et segment over. Hvis timingen virker forkert, kan du stemme ned ved at klikke på nedstem! Du kan også stemme i popup-vinduet."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Indsendelse"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Indsendelse kan enten ske i popup-vinduet ved at trykke på \"Segment Begynder Nu\"-knappen eller i videoafspilleren med knapperne på afspilleren."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Clicking the play button indicated the start of a segment and clicking the stop icon indicates the end. You can prepare multiple sponsors before hitting submit. Clicking the upload button will submit. Clicking the garbage can will delete."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Redigering"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Hvis du har lavet en fejl, kan du redigere eller slette dine segmenter, når du har klikket på pil op knappen."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Det er for langsomt"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Der er genvejstaster, hvis du vil bruge dem. Tryk på semikolon-tasten for at angive start/slutning af en sponsor segment og klik på apostrof for at indsende. Disse kan ændres i valgmulighederne. Hvis du ikke bruger QWERTY, bør du sandsynligvis ændre tastebindingen."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Kan jeg få en kopi af databasen? Hvad sker der, hvis du forsvinder?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Databasen er offentlig og tilgængelig på"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Kildekoden er frit tilgængelig. Så selvom der sker noget med mig, går dine indsendelser ikke tabt."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Nyheder og hvordan det er lavet"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Hvor kan jeg få kildekoden?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Anerkendelser"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Læs mere"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Nedstemmer og opretter en lokal kopi for dig at genindsende"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Åbn denne kategoris wikiside."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopier og nedstem"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Fortsæt Afstemning"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Dette vil øjeblikkeligt gælde for dine indsendelser"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Downvote"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Upvote"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Skjul segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Brug musehjulet, mens du holder musen over redigeringsfeltet for hurtigt at justere tiden. Kombinationer af ctrl eller shift-tastenerne kan bruges til at finjustere ændringerne."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Ny! Se når en video er helt sponsoreret eller selvpromoverende"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "t",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Adfærd",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Grænseflade",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Tastaturgenveje",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Sikkerhedskopier/Gendan",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Diverse",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Spring meddelelsesvisning over",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Adskil",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Ikke indstillet"
|
||||
},
|
||||
"change": {
|
||||
"message": "Skift"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Dette er en indbygget Youtube-genvej. Er du sikker på, at du vil bruge den?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA Server er aktiveret!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Åbn indstillinger"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"message": "Abbrechen"
|
||||
},
|
||||
"Loading": {
|
||||
"message": "Laden..."
|
||||
"message": "Lädt..."
|
||||
},
|
||||
"Hide": {
|
||||
"message": "Verstecken"
|
||||
@@ -98,7 +98,7 @@
|
||||
"message": "Abgestimmt!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Der Server ist anscheinend offline. Bitte unverzüglich dem Entwickler melden."
|
||||
"message": "Der Server ist anscheinend offline. Bitte kontaktiere den Entwickler unverzüglich."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Ein Verbindungsfehler ist aufgetreten. Fehlermeldung: "
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Öffentliche Benutzer-ID kopieren"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Segment-ID kopieren"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Tritt dem offiziellen Discord-Server bei und teile Anregungen und Feedback!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Versteckt die Schaltflächen im YouTube-Videoplayer, um Segmente einzusenden."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "\"Zum Highlight springen\"-Button im Youtube-Player anzeigen"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Zeige Info-Knopf im Youtube-Videoplayer"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Deaktiviere Info-Knopf im Youtube-Videoplayer"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Dieser Knopf öffnet ein Pop-up auf der Youtube-Seite."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Info-Button automatisch ausblenden"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Zeige den Löschen-Knopf im Youtube-Videoplayer"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Dieser Knopf im YouTube-Videoplayer löscht alle nicht übermittelten Segmente für das aktuelle Video."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Aktiviere das Zählen übersprungener Segmente"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Aktiviere den Übersprungen Zähler in Privaten/Incognito Tabs"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Speichere Downvotes von Segmenten"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Alle Segmente, welche du downvotest, werden verborgen und bleiben es auch dauerhaft"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Warnung: Das Deaktivieren wird alle vorher gespeicherten Downvotes löschen"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Abfrage nach Hash-Präfix"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Taste zum Überspringen eines Segments festlegen"
|
||||
"message": "Segment überspringen",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Taste für das Starten/Stoppen eines Segments festlegen"
|
||||
"message": "Starte/Stoppe Segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Taste für das Einsenden festlegen"
|
||||
"message": "Segmente senden",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Zum Festlegen eine Taste drücken"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Die Taste wurde festgelegt auf: "
|
||||
"message": "Wähle eine Taste durch Eingeben aus, und wähle (optional) gewünschte Hilfstasten."
|
||||
},
|
||||
"0": {
|
||||
"message": "Zeitüberschreibung. Überprüfe deine Internetverbindung. Bist du mit dem Internet verbunden, ist der Server wahrscheinlich offline."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Ton aus"
|
||||
},
|
||||
"full": {
|
||||
"message": "Ganzes Video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} überspringen?"
|
||||
},
|
||||
@@ -320,7 +333,7 @@
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} stummgeschalten",
|
||||
"message": "{0} stummgeschaltet",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Du übersprangst "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": " und erspartest dir damit "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "Minute"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "Stunden"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Du erspartest anderen"
|
||||
"message": "Du erspartest anderen",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " ihres Lebens"
|
||||
"message": " ihres Lebens",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Du kannst den Serverstatus auf https://status.sponsor.ajay.app überprüfen."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Erstellt von"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Aktuelle Einstellung:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Drittanbieter YouTube-Sites unterstützen"
|
||||
},
|
||||
@@ -431,20 +440,20 @@
|
||||
"message": "Videosegmente, die kürzer als der festgelegte Wert sind, werden nicht übersprungen oder im Player angezeigt."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Benachrichtigungsdauer überspringen (Sekunden):"
|
||||
"message": "Dauer der Überspringen-Meldung (Sekunden):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Die Überspringen Benachrichtigung wird mindestens so lange angezeigt. Für manuelles Überspringen kann sie länger sichtbar sein."
|
||||
"message": "Die überspringen Benachrichtigung wird mindestens für so viele Sekunden angezeigt. Für manuelles Überspringen kann sie länger sichtbar sein."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "Die folgende Einreichung ist kürzer als deine Mindestdauer. Das könnte bedeuten, dass dieses Videosegment bereits eingereicht wurde und aufgrund dieser Option einfach ignoriert wird. Bist du dir sicher, dass du es übermitteln möchtest?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Das Einreichen eines aktiven Livestreams oder Premiere ist nicht erlaubt. Bitte warte bis es zu ende ist, lade die Seite neu und überprüfe, dass die Segmente noch immer korrekt sind."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Upload-Knopf anzeigen"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Dieser Knopf erscheint im YouTube-Videoplayer, nachdem du ein Videosegment markiert hast und dazu bereit bist, es zu übermitteln."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock Serveradresse"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Import/Export aller Einstellungen"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Bearbeiten/kopieren"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Als Datei speichern"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Aus Datei laden"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Dies ist deine gesamte Konfiguration im JSON-Format. Da diese auch deine Benutzer-ID enthält, solltest du dir genau überlegen, mit wem du diese teilen möchtest."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Die Debug-Informationen wurden in die Zwischenablage kopiert. Du kannst alle Informationen entfernen, die du nicht teilen möchtest. Verwende einen Texteditor um die Informationen in einer Textdatei zu speichern (um diese ggf. einem Fehlerbericht hinzuzufügen)."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Die Taste"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "wird bereits für eine andere Aktion verwendet. Bitte wähle eine andere Taste."
|
||||
"message": "Diese Verknüpfung ist an eine andere Aktion gebunden. Bitte wähle eine andere."
|
||||
},
|
||||
"to": {
|
||||
"message": "bis",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Ähnlich wie bei \"gesponserte Videosegmente\", mit Ausnahme von unbezahlten oder Selbstpromotionen. Dies beinhaltet Merchandising (Fan-Artikel), Spenden oder Informationen darüber, mit wem für das Video zusammengearbeitet wurde."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exklusiver Zugriff"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Nur für das Kennzeichnen ganzer Videos. Wird verwendet wenn ein Video ein Produkt, eine Dienstleistung oder einen Ort präsentiert, zu welchem sie freien oder subventionierten Zugriff erhalten haben."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Dieses Video präsentiert ein Produkt, eine Dienstleistung oder einen Ort, zu welchem sie freien oder subventionierten Zugriff erhalten haben",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Interaktions-Erinnerungen (Abonnieren, etc.)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Kurze Zusammenfassung bisheriger Videos oder eine Vorschau auf das aktuelle Video. Für zusammengeschnittene Clips gedacht, jedoch nicht für mündliche Zusammenfassungen."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Füller/Witze"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Nebensächliche Szenen, die nur als Füller oder Witz dienen und nicht benötigt sind um den Hauptinhalt des Videos zu verstehen. Dies bezieht sich nicht auf Segmente, die Kontext oder Hintergrunddetails liefern."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Füller"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musikvideoteile ohne Musik"
|
||||
},
|
||||
@@ -579,7 +613,7 @@
|
||||
"message": "Musikvideoteile ohne Musik"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Hervorheben"
|
||||
"message": "Highlight"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Der Teil des Videos, nach dem die meisten Leute suchen, ähnlich wie \"Video startet bei x\" Kommentare."
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "In Suchleiste anzeigen"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Zeige Label"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Alle Segmente automatisch überspringen, wenn ein nicht-Musiksegment vorhanden ist"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Segmente zulassen, die den Ton ausschalten anstatt zu überspringen"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Die Farbe ist falsch formatiert. Sie sollte ein 3-6-stelliger Hex-Code mit einer Raute am Anfang sein."
|
||||
"fullVideoSegments": {
|
||||
"message": "Zeige ein Icon, wenn ein ganzes Video Werbung ist",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Nicht eingereichte Farbe",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Um Segmente aus der Kategorie \"{0}\" zu senden, musst du diese in den Optionen aktivieren. Du wirst jetzt zu den Optionen weitergeleitet.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Achtung: Diese Art von Segment kann nur einmal pro Video aktiv sein. Sollten mehrere eingereicht werden, wird ein zufälliges angezeigt werden."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Du musst eine Kategorie für jedes zu übermittelnde Segment auswählen!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "Ausgeblendet: zu kurz"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "Manuell versteckt"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanal-ID ist noch nicht geladen. Falls es sich um ein eingebettetes Video handelt, probiere stattdessen die YouTube-Homepage. Dies könnte auch durch Änderungen im YouTube-Layout verursacht werden. Sollte das der Fall sein, kannst du es hier vermerken:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Nicht korrekt oder falsches Timing"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Falsche Kategorie"
|
||||
"message": "Kategorie ändern"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Dieses Video ist als Musikvideo kategorisiert. Bist du dir sicher, dass es ein gesponsertes Videosegment hat? Wenn dies tatsächlich ein Musikvideoteil ohne Musik ist, öffne die Optionen von SponsorBlock und aktiviere diese Kategorie. Danach kannst du dieses Segment als solches markieren. Bitte lese die Richtlinien, wenn du dir nicht sicher bist."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Verstanden",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Dieses Segment ist lang. Wenn das gesamte Video nur ein Thema behandelt, wechsle von \"Überspringen\" zu \"Ganzes Video\". Erfahre mehr in den Richtlinien."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Das gesamte Video fällt unter diese Kategorie und ist zu stark integriert, um es zu trennen"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Aus allen zukünftigen Experimenten abmelden",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Dauerhaft verbergen"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Du wurdest verwarnt und kannst vorrübergehend keine Segmente einreichen. Es ist uns aufgefallen, dass du gängige Fehler machst, welche nicht schädlich sind, und wir wollen dir nur die Regeln klar machen. Du kannst auch dem Chat durch discord.gg/SponsorBlock oder matrix.to/#/#sponsor:ajay.app beitreten"
|
||||
"message": "Du hast eine Warnung erhalten und kannst vorübergehend keine Segmente einreichen. Uns ist nämlich aufgefallen, dass du nicht bösartige Fehler in deinen Einreichungen machst. Bitte bestätige, dass du die Regeln verstanden hast. Darauffolgend können wir die Warnung entfernen. Du kannst diesem Chat auch mit discord.gg/SponsorBlock oder matrix.to/#/#sponsor:ajay.app beitreten"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Abstimmung wegen einer Warnung abgelehnt. Klicke hier um einen Chat zu öffnen, oder versuch es später erneut, wenn du Zeit hast.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Spenden"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Unterstütze die Entwicklung mit einer Spende"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Verstecke Spendenlink"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Dunkler Modus auf der Optionsseite"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Danke fürs installieren von SponsorBlock."
|
||||
},
|
||||
@@ -806,12 +862,90 @@
|
||||
"message": "Wo kann ich den Quellcode kriegen?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Credits"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Neu! Gehe mit einem Klick zum Punkt des Videos mit der neuen \"Hervorheben\" Kategorie"
|
||||
"message": "Mitwirkende"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Erfahre mehr"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Downvotet, und erstellt eine lokale Kopie zum erneuten Einreichen"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Öffne den Wiki-Artikel dieser Kategorie."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopieren und abwerten"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Bewerten fortsetzen"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Dies wirkt sich sofort auf eigene Segmente aus"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Negativ bewertet"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Positiv bewerten"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Segment verbergen"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Benutze das Mausrad während der Mauszeiger über dem Eingabefeld schwebt um die Zeit schnell anzupassen. Benutze Strg bzw. Shift für gröbere/genauere Änderungen."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Neu! Sieh, ob ein Video ausschließlich Sponsor oder Eigenwerbung ist"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "T",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "S",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Verhalten",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Aussehen",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Tastenkürzel",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Sichern/Wiederherstellen",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Verschiedenes",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Aussehen der Überspringen-Meldung",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Aufheben",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Nicht gesetzt"
|
||||
},
|
||||
"change": {
|
||||
"message": "Ändern"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Dies ist ein vorhandenes YouTube-Kürzel. Bist du sicher, dass du es verwenden möchtest?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA Server wurde aktiviert!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Einstellungen öffnen"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,24 @@
|
||||
{
|
||||
"fullName": {
|
||||
"message": "SponsorBlock for YouTube - Skip Sponsorships",
|
||||
"message": "SponsorBlock για το YouTube - Παραλείπει Χορηγίες",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "Παράλειψη χορηγιών, έκκλησης συνδρομής και πολλά περισσότερα στα βίντεο του YouTube. Αναφέρετε χορηγίες σε βίντεο που βλέπετε για να κερδίσετε χρόνο στους υπολοίπους.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "Ο διακομιστής ανέφερε πως αυτό το αίτημα δεν είναι έγκυρο"
|
||||
},
|
||||
"429": {
|
||||
"message": "Έχετε υποβάλει πολλά τμήματα χορηγιών για αυτό το βίντεο, είστε σίγουροι ότι υπάρχουν τόσα πολλά;"
|
||||
},
|
||||
"409": {
|
||||
"message": "Αυτό έχει ήδη υποβληθεί στο παρελθόν"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Το κανάλι προστέθηκε στη λίστα αποδοχής!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "τμήμα"
|
||||
},
|
||||
@@ -10,31 +26,70 @@
|
||||
"message": "τμήματα"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Κάντε upvote αυτήν την υποβολή"
|
||||
"message": "Θετική ψήφος για αυτήν την υποβολή"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "Αναφορά"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "Αναφέρετε αυτή την υποβολή σαν λανθασμένη."
|
||||
"message": "Αναφορά αυτής της υποβολής ως λανθασμένης."
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "Παράβλεψη"
|
||||
},
|
||||
"Loading": {
|
||||
"message": "Φόρτωση..."
|
||||
"message": "Φόρτωση…"
|
||||
},
|
||||
"Hide": {
|
||||
"message": "Να μην εμφανίζεται ποτέ"
|
||||
"message": "Να μην ξαναεμφανιστεί"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Πατήστε αναίρεση παράλειψης για να επιστρέψετε όπου βρισκόσασταν."
|
||||
},
|
||||
"unskip": {
|
||||
"message": "Αναίρεση παράλειψης"
|
||||
},
|
||||
"reskip": {
|
||||
"message": "Παράλειψη ξανά"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Αναίρεση σίγασης"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Σε παύση"
|
||||
},
|
||||
"manualPaused": {
|
||||
"message": "Λήξη χρονομέτρου"
|
||||
"message": "Λήξη Χρονομέτρου"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "Για να επεξεργαστείτε ή να διαγράψετε τα τμήματα ξεχωριστά, ανοίξτε το αναδυόμενο παράθυρο πατώντας το κουμπί πληροφορίες (i) ή πατώντας το εικονίδιο της επέκτασης στην πάνω δεξιά γωνία του προγράμματος περιήγησης σας."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "Θέλετε σίγουρα να εκκαθαρίσετε τη φόρμα;\n\n"
|
||||
"message": "Θέλετε σίγουρα να σβήσετε τη φόρμα υποβολής τμημάτων;\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "Παρουσιάστηκε ένα σφάλμα κατά την υποβολή των τμημάτων χορηγιών, παρακαλώ προσπαθήστε ξανά αργότερα."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Υπάρχουν τμήματα στη βάση δεδομένων για αυτό το βίντεο!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Δε βρέθηκαν τμήματα στη βάση δεδομένων"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "Το τμήμα ξεκινάει εδώ"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "Το τμήμα τελειώνει εδώ"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Ακύρωση δημιουργίας τμήματος"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Δε βρέθηκε βίντεο YouTube.\nΑν αυτό δεν είναι σωστό, παρακαλώ ανανεώστε την καρτέλα."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Ανανέωση των δεδομένων των τμημάτων"
|
||||
},
|
||||
"success": {
|
||||
"message": "Επιτυχία!"
|
||||
@@ -42,11 +97,154 @@
|
||||
"voted": {
|
||||
"message": "Ψηφίστηκε!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Φαίνεται ότι ο διακομιστής έχει πέσει. Παρακαλώ επικοινωνήστε με τον προγραμματιστή αμέσως."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Παρουσιάστηκε σφάλμα σύνδεσης. Κωδικός σφάλματος: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Καθαρισμός τμημάτων"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "Εμφάνιση του αναδυόμενου παραθύρου του SponsorBlock"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "Κλείσιμο αναδυόμενου παραθύρου"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Υποβολή Τμημάτων"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Είσαστε σίγουροι για την υποβολή σας;"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Λίστα αποδοχής καναλιών"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Αφαίρεση καναλιού από τη λίστα αποδοχής"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Ψηφίστε για κάποιο τμήμα"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Υποβολές"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Έχετε γλιτώσει τον κόσμο από "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Πίνακας βαθμολογίας"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "Υποβολή"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "Η επεξεργασία τμήματος θα εμφανιστεί αφότου πατήσετε υποβολή",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Συμβουλή: Μπορείτε να ρυθμίσετε συντομεύσεις πλήκτρων για υποβολή στις ρυθμίσεις"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Σβήσιμο τμημάτων"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Υποβολή τμημάτων"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Χρησιμοποιείται στη δημόσια σελίδα στατιστικών για να αναδειχθεί πόσο έχετε συμβάλει. Δείτε το"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Όνομα χρήστη"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Ορισμός ονόματος χρήστη"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Αντιγραφή δημόσιου αναγνωριστικού χρήστη"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Μπείτε στον επίσημο διακομιστή μας στο Discord για ανατροφοδότηση και προτάσεις!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Απόκρυψη"
|
||||
},
|
||||
"Options": {
|
||||
"message": "Επιλογές"
|
||||
"message": "Ρυθμίσεις"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "Εμφάνιση Κουμπιών στην οθόνη αναπαραγωγής YouTube"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "Απόκρυψη Κουμπιών από την οθόνη αναπαραγωγής YouTube"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Αυτό αποκρύπτει τα κουμπιά που εμφανίζονται στο πρόγραμμα αναπαραγωγής YouTube ώστε να υποβάλετε τμήματα προς παράλειψη."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Διατήρηση του κουμπιού παράλειψης προς την καλύτερη στιγμή στο πρόγραμμα αναπαραγωγής"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Εμφάνιση κουμπιού «πληροφορίες» στο πρόγραμμα αναπαραγωγής YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Απόκρυψη κουμπιού «πληροφορίες» από το πρόγραμμα αναπαραγωγής YouTube"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Αυτόματη απόκρυψη του κουμπιού «Πληροφορίες»"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Απόκρυψη κουμπιού «διαγραφή» από το πρόγραμμα αναπαραγωγής YouTube"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Εμφάνιση κουμπιού «διαγραφή» στο πρόγραμμα αναπαραγωγής YouTube"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Ενεργοποίηση του μετρητή παραλείψεων"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Αυτή η δυνατότητα ανιχνεύει ποια τμήματα έχετε παραλείψει, ώστε να ξέρουν εκείνοι που τα υπέβαλαν, πόσο έχουν βοηθήσει τους συνανθρώπους τους, και χρησιμοποιείται ως μέτρηση μαζί με τις θετικές ψήφους, ώστε να βεβαιωθεί η βάση δεδομένων πως δεν είναι ανεπιθύμητο τμήμα. Κάθε φορά που παραλείπετε κάποιο τμήμα ή επέκταση το στέλνει στον διακομιστή. Ελπίζουμε οι περισσότεροι χρήστες να μην αλλάξουν αυτή τη ρύθμιση, ώστε ο αριθμός μη προβολής τμημάτων να είναι ακριβής. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Ενεργοποίηση του μετρητή παραλείψεων σε καρτέλες Ιδιωτικής/Ανώνυμης περιήγησης"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Αιτήματα μέσω προθέματος Hash"
|
||||
},
|
||||
"whatQueryByHashPrefix": {
|
||||
"message": "Αντί να ζητάτε τα τμήματα από τον διακομιστή μέσω ολόκληρης της ταυτότητας του βίντεο, στέλνονται μόνο οι πρώτοι 4 κομμένοι χαρακτήρες από την ταυτότητα του βίντεο. Ο διακομιστής στέλνει πίσω δεδομένα για όλα τα βίντεο με παρόμοιους κομμένους χαρακτήρες."
|
||||
},
|
||||
"enableRefetchWhenNotFound": {
|
||||
"message": "Επανάληψη αναζήτησης τμημάτων σε νέα βίντεο"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Εάν το βίντεο είναι καινούργιο, και δεν έχουν βρεθεί τμήματα, θα συνεχιστεί η αναζήτηση κάθε μερικά λεπτά, ενώ το παρακολουθείτε."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Επανεμφάνιση ειδοποιήσεων"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Εμφάνιση ειδοποιήσεων μετά την παράλειψη κάθε τμήματος"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Ειδοποιήσεις παράλειψης πλήρους μεγέθους"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Μικρές ειδοποιήσεις αυτόματης παράλειψης"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Να είναι όλες μικρές ειδοποιήσεις"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Ξεθωριασμένες ειδοποιήσεις αυτόματης παράλειψης"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Να είναι όλες ξεθωριασμένες ειδοποιήσεις"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "Το SponsorBlock σας επιτρέπει να παραλείψετε χορηγίες, εισαγωγές, επίλογους, υπενθυμίσεις εγγραφής, και άλλα ενοχλητικά μέρη των βίντεο YouTube. Το SponsorBlock είναι μια επέκταση που τροφοδοτείται, από τους ίδιους τους χρήστες, επιτρέπει στον κάθε έναν να υποβάλει το πότε ξεκινούν και πότε τελειώνουν τμήματα χορηγιών των βίντεο YouTube. Μόλις κάποιος χρήστης υποβάλει αυτή τη πληροφορία, ο οποιοσδήποτε άλλος που έχει αυτήν την επέκταση μπορεί να παραλείψει όλα αυτά τα ενοχλητικά τμήματα χορηγιών. Μπορείτε επίσης να παραλείψετε τμήματα, που δεν περιέχουν μουσική, σε μουσικά βίντεο.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
"message": "Ιστοσελίδα",
|
||||
@@ -56,12 +254,75 @@
|
||||
"message": "Πηγαίος Κώδικας",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"noticeUpdate": {
|
||||
"message": "Οι ειδοποιήσεις αναβαθμίστηκαν!",
|
||||
"description": "The first line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"noticeUpdate2": {
|
||||
"message": "Εάν δεν σας αρέσουν, πατήστε το κουμπί «Να μην ξαναεμφανιστεί».",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"0": {
|
||||
"message": "Λήξη χρονικού ορίου σύνδεσης. Παρακαλώ ελέγξτε ότι η σύνδεσή σας με το διαδίκτυο λειτουργεί, αλλιώς ο διακομιστής μπορεί να υπερφορτώθηκε ή να έπεσε."
|
||||
},
|
||||
"disableSkipping": {
|
||||
"message": "Η παράλειψη είναι ενεργή"
|
||||
},
|
||||
"enableSkipping": {
|
||||
"message": "Η παράλειψη είναι ανενεργή"
|
||||
},
|
||||
"yourWork": {
|
||||
"message": "Η δουλειά σας",
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
"message": "Ο διακομιστής φαίνεται ότι έχει υπερφορτωθεί. Δοκιμάστε ξανά σε μερικά δευτερόλεπτα."
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "Κωδικός σφάλματος: "
|
||||
},
|
||||
"skip": {
|
||||
"message": "Παράκαμψη"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Σίγαση"
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Παράλειψη {0};"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Παράλειψη προς το σημείο «{0}»;",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "Παραλείφθηκε «{0}»",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Παραλείφθηκε προς το σημείο «{0}»",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "Απενεργοποίηση Αυτόματης Παράληψης"
|
||||
},
|
||||
"enableAutoSkip": {
|
||||
"message": "Ενεργοποίηση Αυτόματης Παράληψης"
|
||||
},
|
||||
"audioNotification": {
|
||||
"message": "Ηχητική ειδοποίηση κατά την παράληψη"
|
||||
},
|
||||
"audioNotificationDescription": {
|
||||
"message": "Οι ειδοποιήσεις μετά την παράλειψη κάθε τμήματος θα αναπαράγουν ήχο. Εάν είναι ανενεργή αυτή η επιλογή εκτός αν η αυτόματη παράλειψη είναι ανενεργή."
|
||||
},
|
||||
"showTimeWithSkips": {
|
||||
"message": "Εμφάνιση χρόνου συμπεριλαμβάνοντας τις παραλήψεις"
|
||||
},
|
||||
"showTimeWithSkipsDescription": {
|
||||
"message": "Αυτός ο χρόνος εμφανίζεται σε παρενθέσεις δίπλα από τον τρέχων χρόνο που είναι κάτω από την μπάρα χρόνου. Αυτό δείχνει την συνολική διάρκεια του βίντεο πλην οποιουδήποτε τμήματος. Αυτό περιλαμβάνει και τα τμήματα που εμφανίζονται μόνο στην μπάρα χρόνου."
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "Έχετε παραλείψει "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "λεπτό"
|
||||
},
|
||||
@@ -74,20 +335,119 @@
|
||||
"hoursLower": {
|
||||
"message": "ώρες"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Έχετε γλιτώσει τον κόσμο από",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " της ζωής τους",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Ελέγξτε το status.sponsor.ajay.app για την κατάσταση διακομιστή."
|
||||
},
|
||||
"changeUserID": {
|
||||
"message": "Εισαγωγή/Εξαγωγή της Ταυτότητας Χρήστη σας"
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Ορισμός Ταυτότητας Χρήστη"
|
||||
},
|
||||
"userIDChangeWarning": {
|
||||
"message": "Προσοχή: Η αλλαγή της Ταυτότητας Χρήστη είναι μόνιμη. Είστε βέβαιοι ότι θέλετε να το κάνετε; Βεβαιωθείτε ότι έχετε δημιουργήσει αντίγραφο ασφαλείας του παλιού σας για παν ενδεχόμενο."
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "Δημιουργήθηκε από"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Υποστήριξη 3των ιστοσελίδων τύπου YouTube"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "Υποστήριξη 3των πελατών διακομιστή YouTube. Για να ενεργοποιήσετε την υποστήριξη πρέπει να αποδεχτείτε επιπλέον άδειες. Αυτό ΔΕ λειτουργεί σε καρτέλες ανώνυμης περιήγησης του Chrome ή άλλων Chromium εκδοχών.",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "Υποστηριζόμενες Ιστοσελίδες: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Ενεργοποίηση υποστήριξης «Invidious», απενεργοποίηση αυτόματης παράληψης, απόκρυψη κουμπιών και άλλα."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Προσθήκη 3ου πελάτη συνεδρίας"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "Προσθέστε μια προσαρμοσμένη συνεδρία. Αυτό πρέπει να είναι μορφοποιημένο MONO με την διεύθυνση. Για παράδειγμα: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "Προσθήκη"
|
||||
},
|
||||
"addInvidiousInstanceError": {
|
||||
"message": "Μη έγκυρη διεύθυνση. Θα πρέπει να περιλαμβάνεται ΜΟΝΟ αυτό το μέρος της διεύθυνσης.\nΓια παράδειγμα: invidious.ajay.app"
|
||||
},
|
||||
"resetInvidiousInstance": {
|
||||
"message": "Επαναφορά Λίστας «Invidious»"
|
||||
},
|
||||
"resetInvidiousInstanceAlert": {
|
||||
"message": "Πρόκειται να επαναφέρετε τη λίστα «Invidious»"
|
||||
},
|
||||
"currentInstances": {
|
||||
"message": "Τρέχουσες Συνεδρίες:"
|
||||
},
|
||||
"minDuration": {
|
||||
"message": "Ελάχιστη διάρκεια (σε δευτερόλεπτα):"
|
||||
},
|
||||
"minDurationDescription": {
|
||||
"message": "Τμήματα μικρότερα από την καθορισμένη τιμή δε θα παραλείπονται ή δε θα εμφανίζονται στην οθόνη αναπαραγωγής."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Διάρκεια ειδοποίησης παράλειψης (σε δευτερόλεπτα):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Η ειδοποίηση παράλειψης θα παραμείνει στην οθόνη για τουλάχιστον τόσα δευτερόλεπτα. Στη μη αυτόματη παράκαμψη, μπορεί να είναι ορατή για μεγαλύτερο χρονικό διάστημα."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "Η ακόλουθη υποβολή είναι μικρότερη από την επιλεγμένη ελάχιστη διάρκεια. Αυτό θα μπορούσε να σημαίνει ότι αυτό το τμήμα έχει ήδη υποβληθεί, και απλά αγνοείται λόγω αυτής της επιλογής. Είστε σίγουροι ότι θα θέλατε να το υποβάλετε;"
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Εμφάνιση κουμπιού υποβολής"
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Διεύθυνση Διακομιστή SponsorBlock"
|
||||
},
|
||||
"customServerAddressDescription": {
|
||||
"message": "Η διεύθυνση που χρησιμοποιείται για την επικοινωνία με τον διακομιστή του SponsorBlock. Εάν δε διαθέτετε το δικό σας διακομιστή, αυτή η επιλογή δεν πρέπει να αλλάξει."
|
||||
},
|
||||
"save": {
|
||||
"message": "Αποθήκευση"
|
||||
},
|
||||
"reset": {
|
||||
"message": "Επαναφορά"
|
||||
},
|
||||
"customAddressError": {
|
||||
"message": "Η διεύθυνση δεν έχει τη σωστή μορφή. Παρακαλώ ελέγξτε ότι έχετε http:// ή https:// στην αρχή της χωρίς κάθετους στο τέλος."
|
||||
},
|
||||
"areYouSureReset": {
|
||||
"message": "Είστε σίγουροι ότι θέλετε να το επαναφέρετε;"
|
||||
},
|
||||
"mobileUpdateInfo": {
|
||||
"message": "Το m.youtube.com υποστηρίζεται πλέον"
|
||||
},
|
||||
"exportOptions": {
|
||||
"message": "Εισαγωγή/Εξαγωγή όλων των ρυθμίσεων"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Αυτές είναι όλες σας οι ρυθμίσεις σε αρχείο JSON. Αυτό περιλαμβάνει και την Ταυτότητα Χρήστη, οπότε μοιραστείτε το με προσοχή."
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "Ορισμός Επιλογών"
|
||||
},
|
||||
"exportOptionsWarning": {
|
||||
"message": "Προσοχή: Η αλλαγή των επιλογών είναι μόνιμη και μπορεί να χαλάσει την εγκατάσταση σας. Είσαστε σίγουροι ότι θέλετε να προχωρήσετε; Σιγουρευτείτε ότι έχετε δημιουργήσει αντίγραφο ασφαλείας για καλό και για κακό."
|
||||
},
|
||||
"incorrectlyFormattedOptions": {
|
||||
"message": "Αυτό το JSON δεν έχει μορφοποιηθεί σωστά. Οι ρυθμίσεις σας δεν έχουν αλλάξει."
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Υποβολή Κατηγορίας"
|
||||
"message": "Υποβολή Τμήματος"
|
||||
},
|
||||
"submit": {
|
||||
"message": "Υποβολή"
|
||||
@@ -101,22 +461,125 @@
|
||||
"preview": {
|
||||
"message": "Προεπισκόπηση"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "Μη Υποβληθέντα"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "Επιθεώρηση"
|
||||
},
|
||||
"edit": {
|
||||
"message": "Επεξεργασία"
|
||||
},
|
||||
"copyDebugInformation": {
|
||||
"message": "Αντιγραφή πληροφοριών αντιμετώπισης προβλημάτων στο πρόχειρο"
|
||||
},
|
||||
"copyDebugInformationFailed": {
|
||||
"message": "Αδυναμία εγγραφής στο πρόχειρο"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": "Αντιγράφει πληροφορίες αντιμετώπισης προβλημάτων στο πρόχειρο, ώστε να μπορέσετε να τις στείλετε στον προγραμματιστή όταν αναφέρετε κάποιο σφάλμα / όταν ο προγραμματιστής σας το ζητήσει. Ευαίσθητες πληροφορίες όπως η ταυτότητα χρήστη σας, η λίστα αποδοχής καναλιών και η προσαρμοσμένη διεύθυνση διακομιστή έχουν αφαιρεθεί. Αλλά περιέχει πληροφορίες για τον περιηγητή ιστού σας, τον τύπο δυσκευής, το λειτουργικό σύστημα, και τον αριθμό έκδοσης της επέκτασης. "
|
||||
},
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Οι πληροφορίες εντοπισμού σφαλμάτων έχουν αντιγραφεί στο πρόχειρο. Μη διστάσετε να αφαιρέσετε οποιαδήποτε πληροφορία που προτιμάτε να μη μοιραστείτε. Αποθηκεύστε τες σε ένα αρχείο κειμένου ή επικολλήστε στην αναφορά σφάλματός σας."
|
||||
},
|
||||
"to": {
|
||||
"message": "έως",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "Χορηγός"
|
||||
"message": "Χορηγία"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Προώθηση επί πληρωμή, παραπομπές επί πληρωμή και άμεσες διαφημίσεις. Όχι, για προσωπική προώθηση ή δωρεάν αναφορές σε δημιουργούς/ιστοσελίδες/προϊόντα που τους αρέσουν."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Αφιλοκέρδεια/Προσωπική Προώθηση"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "Παρόμοιο με τη «χορηγία» αλλά για μη κερδοσκοπικό σκοπό ή για προσωπική προώθηση. Αυτό συμπεριλαμβάνει τμήματα από εμπορεύματα, δωρεές, ή πληροφορίες σχετικές με το ποιους συνεργάστηκαν."
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Υπενθύμιση Αλληλεπίδρασης (Εγγραφή)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "Όταν υπάρχει μια σύντομη υπενθύμιση για να προσθέσετε το βίντεο στα βίντεο που σας αρέσουν, να εγγραφείτε ή να τους ακολουθήσετε στη μέση του περιεχομένου. Εάν διαρκεί για αρκετή ώρα, τότε αυτό περιλαμβάνεται στη κατηγορία «προσωπική προώθηση»."
|
||||
},
|
||||
"category_interaction_short": {
|
||||
"message": "Υπενθύμιση Αλληλεπίδρασης"
|
||||
},
|
||||
"category_intro": {
|
||||
"message": "Παύση/Εισαγωγή με Animation"
|
||||
},
|
||||
"category_intro_description": {
|
||||
"message": "Ένα διάστημα χωρίς ουσιαστικό περιεχόμενο. Θα μπορούσε να είναι κάποια παύση, στατική εικόνα, επαναλαμβανόμενο animation. Δεν πρέπει να επιλέγεται για μεταβάσεις που περιέχουν πληροφορίες."
|
||||
},
|
||||
"category_intro_short": {
|
||||
"message": "Διάλειμμα"
|
||||
},
|
||||
"category_outro": {
|
||||
"message": "Προτεινόμενα βίντεο καναλιών/Εύσημα"
|
||||
},
|
||||
"category_outro_description": {
|
||||
"message": "Όταν εμφανίζονται τα εύσημα ή τα προτεινόμενα βίντεο των καναλιών. Όχι, για επίλογους που περιέχουν πληροφορίες."
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Προεπισκόπηση/Αναθεώρηση"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Γρήγορη ανακεφαλαίωση προηγουμένων επεισοδίων, ή προεπισκόπηση του τι ακολουθεί στο τρέχων βίντεο. Εννοώντας επεξεργασία μερικών κλιπ μαζί, όχι για προφορικές περιγραφές."
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Μουσική: Τμήμα χωρίς μουσική"
|
||||
},
|
||||
"category_music_offtopic_description": {
|
||||
"message": "Μόνο για χρήση σε βίντεο μουσικής. Αυτό θα πρέπει να χρησιμοποιείται μόνο για τμήματα βίντεο μουσικής που δεν καλύπτονται ήδη από κάποια άλλη κατηγορία."
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Χωρίς Μουσική"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Καλύτερη στιγμή"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Το κομμάτι του βίντεο που ψάχνουν να δουν οι περισσότεροι άνθρωποι. Παρόμοιο με το «Το βίντεο ξεκινάει από το x σημείο» στα σχόλια."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Ζωντανή μετάδοση: Δωρεές/Ανάγνωση Μηνυμάτων από δωρεές"
|
||||
},
|
||||
"category_livestream_messages_short": {
|
||||
"message": "Ανάγνωση Μηνυμάτων"
|
||||
},
|
||||
"autoSkip": {
|
||||
"message": "Αυτόματη Παράληψη"
|
||||
},
|
||||
"manualSkip": {
|
||||
"message": "Χειροκίνητη Παράληψη"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "Εμφάνιση στην μπάρα χρόνου"
|
||||
},
|
||||
"disable": {
|
||||
"message": "Απενεργοποίηση"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "Αυτόματη παράλειψη στην αρχή του τμήματος"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Ερώτηση μόλις φορτώνει το βίντεο"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Εμφάνιση στην μπάρα χρόνου"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Αυτόματη παράλειψη όλων των τμημάτων όταν είναι «Χωρίς μουσική»"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Χρώμα Μη Υποβληθέντων",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "Χρώμα Μπάρας Χρόνου"
|
||||
},
|
||||
"category": {
|
||||
"message": "Κατηγορία"
|
||||
},
|
||||
@@ -130,8 +593,11 @@
|
||||
"whatEnableTestingServer": {
|
||||
"message": "Οι υποβολές και οι ψήφοι ΔΕΝ ΘΑ ΜΕΤΡΗΣΟΥΝ προς τον κεντρικό διακομιστή. Χρησιμοποίησέ το μόνο για δοκιμή."
|
||||
},
|
||||
"testingServerWarning": {
|
||||
"message": "Όλες οι υποβολές και οι ψήφοι ΔΕΝ ΘΑ ΜΕΤΡΙΣΟΥΝ στον κύριο διακομιστή κατά τη σύνδεση με τον δοκιμαστικό διακομιστή. Σιγουρευτείτε για να την απενεργοποιήσετε όταν θέλετε να κάνετε πραγματικές υποβολές."
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(τώρα)"
|
||||
"message": "(εδώ)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "Περισσότερες κατηγορίες"
|
||||
@@ -139,8 +605,58 @@
|
||||
"chooseACategory": {
|
||||
"message": "Επιλέξτε μια κατηγορία"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Λάθος κατηγορία"
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "Για να υποβάλετε τμήματα της «{0}» κατηγορίας, πρέπει να την ενεργοποιήσετε στις ρυθμίσεις. Θα μεταφερθείτε στις ρυθμίσεις τώρα.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Πρέπει να επιλέξετε Κατηγορία για όλα τα τμήματα που υποβάλετε!"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(τέλος)"
|
||||
},
|
||||
"hiddenDueToDownvote": {
|
||||
"message": "κρυφό: αρνητική ψήφος"
|
||||
},
|
||||
"hiddenDueToDuration": {
|
||||
"message": "κρυφό: πολύ κοντό"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Η ταυτότητα καναλιού δεν έχει φορτώσει ακόμα. Εάν χρησιμοποιείτε ενσωματωμένο βίντεο, δοκιμάστε αντιθέτως να το ανοίξετε στο YouTube. Μπορεί επίσης να ευθύνονται αλλαγές στη διάταξη του YouTube, εάν το πιστεύετε, γράψτε ένα σχόλιο εδώ:"
|
||||
},
|
||||
"videoInfoFetchFailed": {
|
||||
"message": "Φαίνεται ότι κάτι εμποδίζει το SponsorBlock να ανακτήσει δεδομένα βίντεο. Παρακαλώ δείτε αυτό https://github.com/ajayyy/SponsorBlock/issues/741 για περισσότερες πληροφορίες."
|
||||
},
|
||||
"youtubePermissionRequest": {
|
||||
"message": "Φαίνεται ότι το SponsorBlock δεν μπορεί να επικοινωνήσει με το YouTube API. Για να το διορθώσετε αυτό, αποδεχτείτε την προτροπή άδειας, που θα εμφανιστεί στη συνέχεια, περιμένετε μερικά δευτερόλεπτα και στη συνέχεια ανανεώστε τη σελίδα."
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "Αποδεχτείτε την άδεια"
|
||||
},
|
||||
"permissionRequestSuccess": {
|
||||
"message": "Επιτυχείς αίτηση της άδειας!"
|
||||
},
|
||||
"permissionRequestFailed": {
|
||||
"message": "Η αίτηση της άδειας απέτυχε, πατήσατε απόρριψη;"
|
||||
},
|
||||
"adblockerIssueWhitelist": {
|
||||
"message": "Εάν δεν μπορείτε να το επιδιορθώσετε, απενεργοποιείστε την επιλογή «Εξαναγκασμός Ελέγχου Καναλιού πριν την παράλειψη», καθώς το SponsorBlock δεν μπόρεσε να ανακτήσει τις πληροφορίες του καναλιού αυτού του βίντεο"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "Εξαναγκασμός Ελέγχου Καναλιού πριν την παράλειψη"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Από προεπιλογή, παραλείπονται τμήματα αμέσως πριν ακόμα ανοιχνευτεί ποιό κανάλι είναι. Από προεπιλογή, ορισμένα τμήματα στην αρχή του βίντεο μπορεί να παραλείπονται στα επιτρεπόμενα κανάλια που είναι στην «Λίστα αποδοχής». Η ενεργοποίηση αυτής της επιλογής θα το αποτρέψει αυτό, αλλά μετά η παράλειψη όλων των τμημάτων θα έχει μια μικρή καθυστέρηση, καθώς η απόκτυση της ταυτότητας καναλιού μπορεί να πάρει κάμποσο χρόνο. Αυτή η καθυστέρηση μπορεί να είναι μη αντιληπτή αν έχετε γρήγορη σύνδεση στο διαδίκτυο."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Σκεφτείτε να ενεργοποιήσετε τη ρύθμιση «Εξαναγκασμός Ελέγχου Καναλιού πριν την παράλειψη»"
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "Λάθος Συγχρονισμός"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Αυτό το βίντεο έχει κατηγοριοποιηθεί ως μουσική. Είσαστε σίγουροι ότι έχει χορηγία; Εάν είναι ένα τμήμα «Χωρίς μουσική», ανοίξτε τις επιλογές της επέκτασης και ενεργοποιήστε αυτήν την κατηγορία. Μετά μπορείτε, να υποβάλετε αυτό το τμήμα ως «Χωρίς μουσική», αντί για χορηγία. Παρακαλώ διαβάστε τις οδηγίες, εάν είστε μπερδεμένοι."
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "Πολλαπλά Τμήματα"
|
||||
@@ -157,5 +673,76 @@
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Άνοιξε τις επιλογές για την παράλειψη τίτλων αρχής-τέλους, πωλήσεων κ. α."
|
||||
},
|
||||
"help": {
|
||||
"message": "Βοήθεια"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "Το' χω",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Αποχή από μελλοντικά πειράματα",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "Απόκρυψη για πάντα"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Η ψήφος απορρίφθηκε λόγο μιας προειδοποίησης. Πατήστε για να ανοίξετε μια συνομιλία ώστε να το διορθώσετε, ή επιστρέψτε όταν έχετε περισσότερο χρόνο.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Δωρεά"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Απόκρυψη Συνδέσμου Δωρεάς"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Ευχαριστούμε που εγκαταστήσατε το SponsorBlock."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Παρακαλώ ελέγξτε τις παρακάτω ρυθμίσεις"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Πολλές δυνατότητες είναι ανενεργές από προεπιλογή. Εάν θέλετε να παραλείπετε εισαγωγές, επίλογους, χρήση «Invidious», κτλ., ενεργοποιήστε τα παρακάτω. Μπορείτε επίσης να κρύψετε/εμφανίσετε στοιχεία της διεπαφής."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Πως λειτουργεί η παράλειψη"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Τα τμήματα βίντεο θα παραλειφθούν αυτόματα αν βρεθούν στη βάση δεδομένων. Μπορείτε να ανοίξετε το αναδυόμενο παράθυρο κάνοντας κλικ στο εικονίδιο της επέκτασης για να πάρετε μια ιδέα του τι είναι."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Κάθε φορά που παραλείπετε κάποιο τμήμα, θα λαμβάνετε ειδοποίηση. Εάν ο συγχρονισμός σας φαίνεται λάθος, ψηφίστε αρνητικά πατώντας το εικονίδιο! Μπορείτε επίσης να ψηφίσετε μέσω του αναδυόμενου παράθυρου."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Υποβολή"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Η υποβολή μπορεί είτε να γίνει στο αναδυόμενο παράθυρο πατώντας το κουμπί «Το τμήμα ξεκινάει εδώ» είτε στα κουμπιά κάτω από την μπάρα χρόνου κατά την αναπαραγωγή βίντεο."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Πατώντας το κουμπί αναπαραγωγής δείχνετε την αρχή του τμήματος και πατώντας το κουμπί της διακοπής δείχνετε το τέλος του τμήματος. Μπορείτε να ετοιμάσετε πολλαπλά τμήματα χορηγιών πρώτου πατήσετε υποβολή. Πατώντας το κουμπί της αποστολής τα τμήματα υποβάλλονται, ενώ πατώντας το εικονίδιο του κάδου απορριμάτων τα διαγραφεί."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Επεξεργασία"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Αν κάνατε κάτι λάθος, μπορείτε να διορθώσετε ή να διαγράψετε τα τμήματα σας πατώντας το εικονίδιο πάνω βελάκι."
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Πού μπορώ να βρω τον πηγαίο κώδικα;"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Μάθετε περισσότερα"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Συμπεριφορά",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Διάφορα",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
"message": "It seems the server is down. Contact the dev immediately."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "A connection error has occured. Error code: "
|
||||
"message": "A connection error has occurred. Error code: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Clear Segments"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Copy Public UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Copy Segment ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Come join the official discord server to give suggestions and feedback!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "This hides the buttons that appear on the YouTube player to submit skip segments."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Keep Skip To Highlight Button On Player"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Show Info Button On YouTube Player"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Hide Info Button On YouTube Player"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "This is the button that opens up a popup in the YouTube page."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Auto-hide Info Button"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Show Delete Button On YouTube Player"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "This is the button on the YouTube player that will clear all your un-submitted segments for the current video."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Enable Skip Count Tracking"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Enable Skip Count Tracking In Private/Incognito tabs"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Store segment downvotes"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Any segments you downvote will remain hidden even after refreshing"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Warning: Disabling this will delete all previously stored downvotes"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Query By Hash Prefix"
|
||||
},
|
||||
@@ -230,6 +239,9 @@
|
||||
"showSkipNotice": {
|
||||
"message": "Show Notice After A Segment Is Skipped"
|
||||
},
|
||||
"showCategoryGuidelines": {
|
||||
"message": "Show Category Help"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Full Size Skip Notices"
|
||||
},
|
||||
@@ -246,7 +258,7 @@
|
||||
"message": "All Faded Skip Notices"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock lets you skip over sponsors, intros, outros, subscription reminders, and other annoying parts of YouTube videos. SponsorBlock is a crowdsourced browser extension that let's anyone submit the start and end time's of sponsored segments and other segments of YouTube videos. Once one person submits this information, everyone else with this extension will skip right over the sponsored segment. You can also skip over non music sections of music videos.",
|
||||
"message": "SponsorBlock lets you skip over sponsors, intros, outros, subscription reminders, and other annoying parts of YouTube videos. SponsorBlock is a crowdsourced browser extension that lets anyone submit the start and end times of sponsored segments and other segments of YouTube videos. Once one person submits this information, everyone else with this extension will skip right over the sponsored segment. You can also skip over non music sections of music videos.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
@@ -266,19 +278,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Set key for skipping a segment"
|
||||
"message": "Skip segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Set key for start/stop segment keybind"
|
||||
"message": "Start/stop segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Set key for submission keybind"
|
||||
"message": "Submit segments",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Select a key by typing it"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "The keybind has been set to: "
|
||||
"message": "Select a key by typing it and choose any modifier keys you wish to use."
|
||||
},
|
||||
"0": {
|
||||
"message": "Connection Timeout. Check your internet connection. If your internet is working, the server is probably overloaded or down."
|
||||
@@ -305,6 +317,10 @@
|
||||
"mute": {
|
||||
"message": "Mute"
|
||||
},
|
||||
"full": {
|
||||
"message": "Full Video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Skip {0}?"
|
||||
},
|
||||
@@ -343,14 +359,11 @@
|
||||
"message": "Show Time With Skips Removed"
|
||||
},
|
||||
"showTimeWithSkipsDescription": {
|
||||
"message": "This time appears in brackets next to the current time on below the seekbar. This shows the total video duration minus any segments. This includes segments marked as only \"Show In Seekbar\"."
|
||||
"message": "This time appears in brackets next to the current time on below the Seek Bar. This shows the total video duration minus any segments. This includes segments marked as only \"Show In Seek Bar\"."
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "You've skipped "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "You have saved yourself "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minute"
|
||||
},
|
||||
@@ -364,10 +377,12 @@
|
||||
"message": "hours"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "You've saved people"
|
||||
"message": "You've saved people",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " of their lives"
|
||||
"message": " of their lives",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Check status.sponsor.ajay.app for server status."
|
||||
@@ -387,9 +402,6 @@
|
||||
"createdBy": {
|
||||
"message": "Created By"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". It is currently set to:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Support 3rd Party YouTube-Sites"
|
||||
},
|
||||
@@ -401,7 +413,7 @@
|
||||
"message": "Supported Sites: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Enable Invidious support, disable autoskip, hide buttons and more."
|
||||
"message": "Enable Invidious support, disable auto skip, hide buttons and more."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Add 3rd-Party Client Instance"
|
||||
@@ -434,17 +446,17 @@
|
||||
"message": "Skip notice duration (seconds):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "The skip notice will stay on screen for at least this long. For manual skipping, it may be visible for longer."
|
||||
"message": "The skip notice will stay on screen for at least this many seconds. For manual skipping, it may be visible for longer."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "The following submission is shorter than your minimum duration option. This could mean that this is already submitted, and just being ignored due to this option. Are you sure you would like to submit?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Submitting on an active livestream or premiere is not allowed. Please wait until it finishes, then refresh the page and verify that the segments are still valid."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Show Upload Button"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "This button appears on the YouTube player after you have selected a timestamp and are ready to submit."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock Server Address"
|
||||
},
|
||||
@@ -469,6 +481,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Import/Export All Options"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Edit/copy"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Save to file"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Load from file"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "This is your entire configuration in JSON. This includes your userID, so be sure to share this wisely."
|
||||
},
|
||||
@@ -481,7 +502,7 @@
|
||||
"incorrectlyFormattedOptions": {
|
||||
"message": "This JSON is not formatted correctly. Your options have not been changed."
|
||||
},
|
||||
"confirmNoticeTitle" : {
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Submit Segment"
|
||||
},
|
||||
"submit": {
|
||||
@@ -517,34 +538,74 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "The debug information has been copied to the clip board. Feel free to remove any information you would rather not share. Save this in a text file or paste into the bug report."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "The key"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "is bound to another action. Please select another key."
|
||||
"message": "This shortcut is bound to another action. Please select a different one."
|
||||
},
|
||||
"to": {
|
||||
"message": "to",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"generic_guideline1": {
|
||||
"message": "Include segue transitions"
|
||||
},
|
||||
"generic_guideline2": {
|
||||
"message": "Plays as if nothing was skipped"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "Sponsor"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Paid promotion, paid referrals and direct advertisements. Not for self-promotion or free shoutouts to causes/creators/websites/products they like."
|
||||
},
|
||||
"category_sponsor_guideline1": {
|
||||
"message": "Paid promotions"
|
||||
},
|
||||
"category_sponsor_guideline2": {
|
||||
"message": "Not for donations or custom merch"
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Unpaid/Self Promotion"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "Similar to \"sponsor\" except for unpaid or self promotion. This includes sections about merchandise, donations, or information about who they collaborated with."
|
||||
},
|
||||
"category_selfpromo_guideline1": {
|
||||
"message": "Donations, memberships and custom merch"
|
||||
},
|
||||
"category_selfpromo_guideline2": {
|
||||
"message": "Free shoutouts that don't add to the video"
|
||||
},
|
||||
"category_selfpromo_guideline3": {
|
||||
"message": "Not for corporate designed products and merch"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exclusive Access"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Only for labeling entire videos. Used when a video showcases a product, service or location that they've received free or subsidized access to."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "This video showcases a product, service or location that they've received free or subsidized access to",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_exclusive_access_guideline1": {
|
||||
"message": "Entire video showcases something where recieved free or subsidized access"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Interaction Reminder (Subscribe)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "When there is a short reminder to like, subscribe or follow them in the middle of content. If it is long or about something specific, it should be under self promotion instead."
|
||||
},
|
||||
"category_interaction_guideline1": {
|
||||
"message": "Short reminders to like, subscribe or follow"
|
||||
},
|
||||
"category_interaction_guideline2": {
|
||||
"message": "Includes indirect reminders to comment"
|
||||
},
|
||||
"category_interaction_guideline3": {
|
||||
"message": "Not for general promotion, only calls to action"
|
||||
},
|
||||
"category_interaction_short": {
|
||||
"message": "Interaction Reminder"
|
||||
},
|
||||
@@ -557,18 +618,54 @@
|
||||
"category_intro_short": {
|
||||
"message": "Intermission"
|
||||
},
|
||||
"category_intro_guideline1": {
|
||||
"message": "Interval without actual content"
|
||||
},
|
||||
"category_intro_guideline2": {
|
||||
"message": "Not for transitions with information"
|
||||
},
|
||||
"category_outro": {
|
||||
"message": "Endcards/Credits"
|
||||
},
|
||||
"category_outro_description": {
|
||||
"message": "Credits or when the YouTube endcards appear. Not for conclusions with information."
|
||||
},
|
||||
"category_outro_guideline1": {
|
||||
"message": "Don't include content, even if endcards are on screen"
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Preview/Recap"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Quick recap of previous episodes, or a preview of what's coming up later in the current video. Meant for edited together clips, not for spoken summaries."
|
||||
},
|
||||
"category_preview_guideline1": {
|
||||
"message": "Clips that appear later, or in a future video"
|
||||
},
|
||||
"category_preview_guideline2": {
|
||||
"message": "Recap of a previous video"
|
||||
},
|
||||
"category_preview_guideline3": {
|
||||
"message": "Not for sections that add additional content"
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Filler Tangent/Jokes"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Tangential scenes added only for filler or humor that are not required to understand the main content of the video. This should not include segments providing context or background details."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Filler"
|
||||
},
|
||||
"category_filler_guideline1": {
|
||||
"message": "Tangential scenes only for filler or humor"
|
||||
},
|
||||
"category_filler_guideline2": {
|
||||
"message": "Distractions, bloopers, replays"
|
||||
},
|
||||
"category_filler_guideline3": {
|
||||
"message": "Not for scenes required to understand the topic"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Music: Non-Music Section"
|
||||
},
|
||||
@@ -578,12 +675,27 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Non-Music"
|
||||
},
|
||||
"category_music_offtopic_guideline1": {
|
||||
"message": "Sections not in official releases"
|
||||
},
|
||||
"category_music_offtopic_guideline2": {
|
||||
"message": "Non-music in a live performance"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Highlight"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "The part of the video that most people are looking for. Similar to \"Video starts at x\" comments."
|
||||
},
|
||||
"category_poi_highlight_guideline1": {
|
||||
"message": "Section most people are looking for"
|
||||
},
|
||||
"category_poi_highlight_guideline2": {
|
||||
"message": "Can help skip past context"
|
||||
},
|
||||
"category_poi_highlight_guideline3": {
|
||||
"message": "Can skip to the title or thumbnail"
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Livestream: Donation/Message Readings"
|
||||
},
|
||||
@@ -611,14 +723,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Show In Seek Bar"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Show Label"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Auto skip all segments when there is a non-music segment"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Allow segments that mute audio instead of skip"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Your color is formatted incorrectly. It should be a 3 or 6 digit hex code with a number sign at the beginning."
|
||||
"fullVideoSegments": {
|
||||
"message": "Show an icon when a video is entirely an advertisement",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Unsubmitted Color",
|
||||
@@ -656,6 +772,9 @@
|
||||
"message": "To submit segments with the category of \"{0}\", you must enable it in the options. You will be redirected to the options now.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Warning: This type of segment can have a maximum of one active at a time. Submitting multiple will cause a random one to be shown."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "You must select a category for all segments you are submitting!"
|
||||
},
|
||||
@@ -668,6 +787,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "hidden: too short"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "manually hidden"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Channel ID is not loaded yet. If you are using an embedded video, try using the YouTube homepage instead. This could also be caused by changes in the YouTube layout, if you think so, make a comment here:"
|
||||
@@ -703,7 +825,7 @@
|
||||
"message": "Incorrect/Wrong Timing"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Wrong Category"
|
||||
"message": "Change Category"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "This video is categorized as music. Are you sure this has a sponsor? If this is actually a \"Non-Music segment\", open up the extension options and enable this category. Then, you can submit this segment as \"Non-Music\" instead of sponsor. Please read the guidelines if you are confused."
|
||||
@@ -731,6 +853,12 @@
|
||||
"message": "Got it",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "This segment is large. If the whole video is about one topic, then change from \"Skip\" to \"Full Video\". See the guidelines for more information."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "This entire video is labeled as this category and is too tightly integrated to be able to separate"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Opt-out of all future experiments",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +867,7 @@
|
||||
"message": "Hide forever"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "You got a warning and cannot submit segments temporarily. This means that we noticed you were making some common mistakes that are not malicious, and we just want to clarify the rules. You can also join this chat using discord.gg/SponsorBlock or matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "You got a warning and cannot submit segments temporarily. This means that we noticed you were making some common mistakes that are not malicious, please just confirm that you understand the rules and we will remove the warning. You can also join this chat using discord.gg/SponsorBlock or matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Vote rejected due to a warning. Click to open a chat to resolve it, or come back later when you have time.",
|
||||
@@ -748,9 +876,15 @@
|
||||
"Donate": {
|
||||
"message": "Donate"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Help fund development"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Hide Donation Link"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Dark Mode On Options Page"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Thanks for installing SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +942,97 @@
|
||||
"Credits": {
|
||||
"message": "Credits"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "New! Get to the point of the video with one click with the new highlight category"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Learn More"
|
||||
},
|
||||
"FullDetails": {
|
||||
"message": "Full Details"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Downvotes and creates a local copy for you to resubmit"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Open this category's wiki page."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Copy and downvote"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Continue Voting"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "This will instantly apply to your segments"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Downvote"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Upvote"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Hide segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Use your mousewheel while hovering over the edit box to quickly adjust the time. Combinations of the ctrl or shift key can be used to fine tune the changes."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "New! See when a video is entirely sponsored or self-promotion"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Behavior",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interface",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Keyboard shortcuts",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Backup/Restore",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Miscellaneous",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Skip notice appearance",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Unbind",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Not set"
|
||||
},
|
||||
"change": {
|
||||
"message": "Change"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "This is a built-in YouTube shortcut. Are you sure you want to use it?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA Server is enabled!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Open options page"
|
||||
},
|
||||
"resetToDefault": {
|
||||
"message": "Reset settings to default"
|
||||
},
|
||||
"confirmResetToDefault": {
|
||||
"message": "Are you sure you want to reset all settings to their default values? This cannot be undone."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "Salte todos los patrocinios, súplicas por suscripción y más en los vídeos de YouTube. Reporta secciones de patrocinio en los vídeos que veas para ahorrarle tiempo a los demás.",
|
||||
"message": "Salte todos los sponsors, súplicas de suscripción y más en vídeos de YouTube. Reporta sponsors en los vídeos que veas para ahorrarle tiempo a los demás.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
@@ -17,7 +17,7 @@
|
||||
"message": "Esto ya ha sido enviado antes"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Canal Permitido!"
|
||||
"message": "¡Canal Permitido!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "segmento"
|
||||
@@ -26,13 +26,13 @@
|
||||
"message": "segmentos"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Votar a favor de esta sumisión"
|
||||
"message": "Votar positivamente este envío"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "Denunciar"
|
||||
"message": "Reportar"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "Denunciar esta sumisión como incorrecta."
|
||||
"message": "Reportar este envío como incorrecto."
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "Descartar"
|
||||
@@ -53,7 +53,7 @@
|
||||
"message": "Volver a saltar"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Restaurar sonido"
|
||||
"message": "Quitar silencio"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pausado"
|
||||
@@ -156,7 +156,7 @@
|
||||
"message": "Esto se utiliza en la página de estadísticas públicas para mostrar cuánto has contribuido. Véala"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Usuario"
|
||||
"message": "Nombre de Usuario"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Escoger Nombre De Usuario"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Copiar el ID de usuario público"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Copiar ID de Segmento"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "¡Únete al servidor oficial de discord para darnos sugerencias y comentarios!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Esto oculta los botones que aparecen en el reproductor de YouTube que se usan para enviar segmentos saltados."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Mantener el Botón de \"Saltar a Destacado\" en el Reproductor"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Mostrar botón de información en el reproductor de YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Ocultar botón de información en el reproductor de YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Este es el botón que abre una ventana en la página de YouTube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Ocular automáticamente el Botón de Información"
|
||||
},
|
||||
@@ -200,18 +203,24 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Mostrar botón de eliminar en el reproductor de YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Este es el botón en el reproductor de YouTube que eliminará todos tus segmentos no enviados para el vídeo actual."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Habilitar el conteo de omisiones"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Esta función rastrea los segmentos que se han saltado para que los usuarios sepan en qué medida sus aportes ayudaron a los demás y se utilizan como una métrica junto con los votos favorables para garantizar que no aparezca spam en la base de datos. La extensión envía un mensaje al servidor cada vez que se salta un segmento. Esperemos que la mayoría de la gente no cambie esta configuración para que los números de vista sean exactos. :)"
|
||||
"message": "Esta función rastrea los segmentos que se han saltado para que los usuarios sepan en qué medida sus envíos ayudaron a los demás y se utilizan como una métrica junto con los votos positivos para garantizar que no aparezca spam en la base de datos. La extensión envía un mensaje al servidor cada vez que se salta un segmento. Esperemos que la mayoría de la gente no cambie esta configuración para que los números de vistas sean exactos. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Activar el seguimiento del número de saltos en las pestañas privadas/de incógnito"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Almacenar los votos negativos de los segmentos"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Los segmentos que votes negativamente permanecerán ocultos incluso después de actualizar la página"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Advertencia: Desactivar esto eliminará todos los votos negativos previamente almacenados"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Consulta Por Prefijo Hash"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Establecer tecla para omitir un segmento"
|
||||
"message": "Omitir segmento",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Establecer tecla para iniciar/detener un segmento"
|
||||
"message": "Iniciar/detener segmento",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Establecer botón de envío"
|
||||
"message": "Enviar segmentos",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Seleccione un botón escribiéndolo"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "El botón se ha establecido a: "
|
||||
"message": "Selecciona una tecla escribiéndola y elige las teclas modificadoras que desees utilizar."
|
||||
},
|
||||
"0": {
|
||||
"message": "Tiempo de espera agotado. Compruebe su conexión a Internet. Si su internet está funcionando, el servidor probablemente esta sobrecargado o desconectado."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Silenciar"
|
||||
},
|
||||
"full": {
|
||||
"message": "Video Completo",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "¿Saltar {0}?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Has saltado "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Te has ahorrado "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minuto"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "horas"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Has salvado personas"
|
||||
"message": "Has salvado personas",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " de sus vidas"
|
||||
"message": " de sus vidas",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Comprueba status.sponsor.ajay.app para ver el estado del servidor."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Creado Por"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Actualmente está configurado para:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Soportar sitios de YouTube de terceros"
|
||||
},
|
||||
@@ -437,14 +446,14 @@
|
||||
"message": "El aviso de omisión permanecerá en la pantalla por lo menos este tiempo. Si la omisión es manual, podría ser visible por más tiempo."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "La siguiente sumisión es más corto que su opción de duración mínima. Esto podría significar que esto ya se ha enviado y que simplemente se ha ignorado debido a esta opción. ¿Está seguro de que desea enviar?"
|
||||
"message": "El siguiente envío es más corto que su opción de duración mínima. Esto podría significar que esto ya se ha enviado y que simplemente se ha ignorado debido a esta opción. ¿Está seguro de que desea enviar?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "No se permite enviar en una transmisión en vivo activa o estreno. Espere hasta que finalice, luego actualice la página y verifique que los segmentos aún sean válidos."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Mostrar botón de subida"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Este botón aparece en el reproductor de YouTube después de que has seleccionado una marca de tiempo y estas listo para enviar."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Dirección del servidor SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importar/Exportar todas las opciones"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Editar/copiar"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Guardar en archivo"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Cargar desde archivo"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Esta es toda su configuración en JSON. Esto incluye tu ID de usuario, así que asegúrate de compartir esto sabiamente."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "La información de depuración ha sido copiada al portapapeles. Siéntase libre de eliminar cualquier información que prefiera no compartir. Guarde esto en un archivo de texto o péguelo en el informe de errores."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "El botón"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "está enlazado a otra acción. Por favor, seleccione otro botón."
|
||||
"message": "Este atajo está vinculado a otra acción. Por favor, selecciona uno diferente."
|
||||
},
|
||||
"to": {
|
||||
"message": "a",
|
||||
@@ -531,7 +546,7 @@
|
||||
"message": "Sponsor"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Promoción pagada, referencias pagadas y anuncios directos. No para autopromoción o anuncios gratuitos a causas/creadores/sitios web/productos que les gusten."
|
||||
"message": "Promoción pagada, recomendaciones pagadas y anuncios directos. No para promoción propia o anuncios gratuitos a causas/creadores/sitios web/productos que les gusten."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Promoción Propia/No Remunerada"
|
||||
@@ -539,14 +554,24 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Similar a \"sponsor\", excepto que para la promoción propia o no remunerada. Esto incluye secciones sobre mercancía, donaciones o información sobre con quiénes colaboraron."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Acceso Exclusivo"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Solo para etiquetar videos completos. Utilizado cuando un video exhibe un producto, servicio o ubicación al que han recibido acceso gratuito o subsidiado."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Este video exhibe un producto, servicio o ubicación al que han recibido acceso gratuito o subsidiado",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Recordatorio de interacción (subscribir)"
|
||||
"message": "Recordatorio de Interacción (Suscribir)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "Cuando hay un breve recordatorio para dar like, suscribirse o seguirlos en medio del contenido. Si es largo o sobre algo específico, debería estar bajo autopromoción en su lugar."
|
||||
},
|
||||
"category_interaction_short": {
|
||||
"message": "Recordatorio de interacción"
|
||||
"message": "Recordatorio de Interacción"
|
||||
},
|
||||
"category_intro": {
|
||||
"message": "Intermisión/Animación de Introducción"
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Recapitulación rápida de los episodios anteriores, o una vista previa de lo que va a ocurrir más adelante en el vídeo actual. Está pensado para clips editados juntos, no para resúmenes hablados."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Tangentes de Relleno/Chistes"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Escenas tangenciales añadidas solo para relleno o humor que no son necesarias para entender el contenido principal del video. Esto no debe incluir segmentos que proporcionen contexto o detalles de fondo."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Relleno"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Música: Sección sin musica"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Mostrar en la barra de búsqueda"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Mostrar Etiqueta"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Omitir automáticamente todos los segmentos cuando hay un segmento sin música"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Permitir segmentos que silencian el audio en lugar de omitir"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Su color está formateado incorrectamente. Debería ser un código hexadecimal de 3 o 6 dígitos con un signo numérico al principio."
|
||||
"fullVideoSegments": {
|
||||
"message": "Mostrar un icono cuando un video es enteramente un anuncio",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Color No Enviado",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Para enviar segmentos con la categoría de \"{0}\", debes activarlo en las opciones. Serás redirigido a las opciones ahora.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Advertencia: Solo puede haber uno de este tipo de segmento activo a la vez. Enviar múltiples causará que se muestre uno al azar."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "¡Debes seleccionar una categoría para todos los segmentos que estés presentando!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "oculto: demasiado corto"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "manualmente oculto"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "El ID del canal no está cargado todavía. Si está usando un vídeo incrustado, intente usar la página de inicio de YouTube en su lugar. Esto también podría ser causado por cambios en el diseño de YouTube, si lo cree, haga un comentario aquí:"
|
||||
@@ -691,19 +735,19 @@
|
||||
"message": "Si no puede resolverlo, desactive la opción \"Forzar Comprobación de Canal antes de Saltar\", ya que SponsorBlock no puede recuperar la información del canal de este video"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "Comprobación forzada del canal antes de saltarse"
|
||||
"message": "Forzar Comprobación de Canal antes de Saltar"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Por defecto, se saltará los segmentos inmediatamente antes de saber cuál es el canal. Por defecto, algunos segmentos al principio del vídeo pueden ser salteados en los canales de la lista blanca. Al activar esta opción se evitará esto, pero haciendo que todos los saltos tengan un ligero retraso, ya que obtener el ID del canal puede llevar algún tiempo. Este retraso podría ser imperceptible si tienes una Internet rápida."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Considere la posibilidad de activar \"Comprobación del canal de fuerza antes de saltar\""
|
||||
"message": "Considere la posibilidad de activar \"Forzar Comprobación de Canal antes de Saltar\""
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "Tiempo incorrecto/equivocado"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Categoría Incorrecta"
|
||||
"message": "Cambiar Categoría"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Este video está clasificado como música. ¿Estás seguro de que esto tiene un sponsor? Si esto es realmente un \"Segmento Sin Música\", abre las opciones de la extensión y activa esta categoría. Entonces, puedes enviar este segmento como \"Sin Música\" en lugar de sponsor. Por favor, lee las instrucciones si estás confundido/a."
|
||||
@@ -722,7 +766,7 @@
|
||||
"message": "¡Las categorías están aquí!"
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Abre las opciones de saltarse intros, otros, mercantil, etc."
|
||||
"message": "Abre las opciones de saltarse intros, outros, mercancía, etc."
|
||||
},
|
||||
"help": {
|
||||
"message": "Ayuda"
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Entendido",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Este segmento es grande. Si todo el video es acerca de un tema, entonces cámbielo de \"Omitir\" a \"Video completo\". Consulte las instrucciones para más información."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Todo el video está etiquetado como esta categoría y está muy estrechamente integrado como para poder separarlo"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "No participar en futuros experimentos",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Ocultar para siempre"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Ha recibido una advertencia y no puede enviar segmentos temporalmente. Esto significa que hemos notado de que estaba cometiendo algunos errores comunes que no son maliciosos, y solo queremos aclarar las reglas. Puedes unirte a este chat usando discord.gg/SponsorBlock o matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Has recibido una advertencia y no puedes enviar segmentos temporalmente. Esto significa que hemos notado que estabas cometiendo algunos errores comunes que no son maliciosos, por favor, solo confirma que entiendes las reglas y anularemos la advertencia. También puedes unirte a este chat usando discord.gg/SponsorBlock o matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Voto rechazado debido a una advertencia. Haga clic aquí para abrir un chat para resolverlo, o vuelva más tarde cuando tenga tiempo.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Donar"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Ayuda a financiar el desarrollo"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Ocular Enlace de Donación"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Modo Oscuro en la página de Opciones"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Gracias por instalar SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Créditos"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "¡Nuevo! Llega al punto del video con un solo clic con la nueva categoría \"destacado\""
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Aprenda Más"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Vota negativamente y crea una copia local para que la puedas volver a enviar"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Abrir la página de la wiki de esta categoría."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Copiar y votar negativamente"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Continuar Votando"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Esto se aplicará instantáneamente a tus segmentos"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Voto negativo"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Voto positivo"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Ocultar segmento"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Utilice la rueda del ratón mientras pasa el cursor por encima del cuadro de edición para ajustar el tiempo. Se pueden utilizar combinaciones de la tecla ctrl o shift para afinar los cambios."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "¡Nuevo! Mira cuando un video es enteramente un sponsor o una promoción propia"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Comportamiento",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interfaz",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Atajos de teclado",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Respaldar/Restaurar",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Miscelánea",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Apariencia del aviso de omisión",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Desvincular",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "No establecido"
|
||||
},
|
||||
"change": {
|
||||
"message": "Cambiar"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Este un atajo incorporado de YouTube. ¿Estás seguro de que quieres usarlo?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "¡El servidor BETA está activado!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Abrir página de opciones"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"message": "See on juba varasemalt saadetud"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Kanal lubamisnimekirjas!"
|
||||
"message": "Kanal ignoreerimisnimekirjas!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "segmendi"
|
||||
@@ -41,7 +41,7 @@
|
||||
"message": "Laadimine..."
|
||||
},
|
||||
"Hide": {
|
||||
"message": "Ära näita kunagi"
|
||||
"message": "Ära kunagi näita"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Vajuta \"kuva uuesti\", et jõuda sinna, kust tulid."
|
||||
@@ -119,10 +119,10 @@
|
||||
"message": "Kas soovid kindlasti selle saata?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Lisa kanal lubamisnimekirja"
|
||||
"message": "Lisa kanal ignoreerimisnimekirja"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Eemalda kanal lubamisnimekirjast"
|
||||
"message": "Eemalda kanal ignoreerimisnimekirjast"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Hääleta segmendi sobivust"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Kopeeri avalik UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Kopeeri segmendi ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Tule liitu ametliku Discordi serveriga, et anda soovitusi ja tagasisidet!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "See peidab nupud, mis kuvatakse YouTube'i mängijal vahelejätmiste segmentide saatmiseks."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Hoia esiletõstuni vahelejätmise nuppu mängijal"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Kuva YouTube'i mängijal infonupp"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Peida YouTube'i mängijal infonupp"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "See on see nupp, mis avab YouTube'i lehel hüpiku."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Peida infonupp automaatselt"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Kuva YouTube'i mängijal kustutusnupp"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "YouTube'i mängija nupp, mis tühjendab kõik sinu praeguse video saatmata segmendid."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Luba vahelejätmiste arvu jälgimine"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Luba vahelejätmiste arvu jälgimine privaatsetel/inkognito kaartidel"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Säilita segmentide vastuhääled"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Segmendid, millele annad vastuhääle, peidetakse ka pärast lehe uuesti laadimist"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Hoiatus: selle keelamine kustutab kõik varasemalt säilitatud vastuhääled"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Küsi räsi eesliite järgi"
|
||||
},
|
||||
@@ -262,23 +271,20 @@
|
||||
"description": "The first line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"noticeUpdate2": {
|
||||
"message": "Kui sulle see ikka ei meeldi, vajuta \"ära näita kunagi\" nuppu.",
|
||||
"message": "Kui sulle see ikka ei meeldi, vajuta \"ära kunagi näita\" nuppu.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Seadista segmendi vahelejätmise klahv"
|
||||
"message": "Jäta segment vahele",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Seadista segmendi alustamise/lõpetamise klahv"
|
||||
"message": "Alusta/lõpeta segmenti",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Seadista segmendi saatmise klahv"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Vali klahv, seda vajutades"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Otsetee on seatud: "
|
||||
"message": "Esita segmendid",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"0": {
|
||||
"message": "Ühenduse ajalõpp. Kontrolli oma võrguühendust. Kui internet töötab, on ilmselt server ülekoormatud või maas."
|
||||
@@ -305,6 +311,10 @@
|
||||
"mute": {
|
||||
"message": "Vaigista"
|
||||
},
|
||||
"full": {
|
||||
"message": "Terve video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Jätad {0} vahele?"
|
||||
},
|
||||
@@ -348,9 +358,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Oled vahele jätnud "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Oled enda aega säästnud "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minut"
|
||||
},
|
||||
@@ -364,10 +371,12 @@
|
||||
"message": "tundi"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Oled inimestel säästnud"
|
||||
"message": "Oled inimestel säästnud",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " nende eludest"
|
||||
"message": " nende eludest",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Serveri oleku saamiseks vaata status.sponsor.ajay.app"
|
||||
@@ -387,9 +396,6 @@
|
||||
"createdBy": {
|
||||
"message": "Autor"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Hetkel on selleks määratud:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Toeta 3. osapoole YouTube-saite"
|
||||
},
|
||||
@@ -442,9 +448,6 @@
|
||||
"showUploadButton": {
|
||||
"message": "Kuva üleslaadimisnupp"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "See nupp kuvatakse YouTube'i mängijal, kui oled ajatempli ära valinud ning saatmiseks valmis."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlocki serveri aadress"
|
||||
},
|
||||
@@ -469,6 +472,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Impordi/ekspordi kõik valikud"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Muuda/kopeeri"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Salvesta faili"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Laadi failist"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "See on sinu kogu seadistus JSON-formaadis. Selle hulgas on ka UserID, seega jaga seda targalt."
|
||||
},
|
||||
@@ -512,17 +524,11 @@
|
||||
"message": "Lõikelauale kirjutamine ebaõnnestus"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": "Kopeerib lõikelauale info, mida saad arendajale anda veast teatamisel või siis, kui arendaja seda sinult taotleb. Tundlik info, sealhulgas sinu kasutaja ID, lubamisnimekirjas kanalid ning kohandatud serveri aadress on eemaldatud. Siiski see sisaldab teatud infot, nagu sinu kasutajaagent, brauser, opsüsteem ning laienduse versiooninumber."
|
||||
"message": "Kopeerib lõikelauale info, mida saad arendajale anda veast teatamisel või siis, kui arendaja seda sinult taotleb. Tundlik info, sealhulgas sinu kasutaja ID, ignoreerimisnimekirjas kanalid ning kohandatud serveri aadress on eemaldatud. Siiski see sisaldab teatud infot, nagu sinu kasutajaagent, brauser, opsüsteem ning laienduse versiooninumber."
|
||||
},
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Silumisinfo on lõikelauale kopeeritud. Võid sellelt vabalt eemaldada mistahes info, mida ei soovi jagada. Salvesta see tekstifaili või kleebi vearaportisse."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Klahv"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "on juba teisele tegevusele määratud. Palun vali teine klahv."
|
||||
},
|
||||
"to": {
|
||||
"message": "kuni",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -539,6 +545,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Sarnaneb \"sponsorile\", ent on mõeldud tasumata või enesepromo jaoks. Selle alla kuuluvad jaotised oma müüdava kauba, annetuste ja koostööpartnerite kohta."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Eksklusiivne ligipääs"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Ainult tervete videote märkimiseks. Kasutatakse, kui video esitleb toodet, teenust või asukohta, millele isik on tasuta või toetusega ligipääsu saanud."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "See video esitleb toodet, teenust või asukohta, millele isik on tasuta või toetusega ligipääsu saanud",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Tegutsemise meeldetuletus (kanali tellimine)"
|
||||
},
|
||||
@@ -569,6 +585,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Kiire kokkuvõte eelmistest episoodidest või eelvaade videos hiljem tulevast. Mõeldud valmis töödeldud klippide, mitte suuliste kokkuvõtete jaoks."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Täitesisu/naljad"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Video täiteks või huumori eesmärgil lisatud sisu, mis ei ole vajalik video põhieesmärgi mõistmiseks. Selle alla ei kuulu segmendid, mis annavad kontekstiteavet või taustainfot."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Täide"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Muusika: mitte-muusika jaotis"
|
||||
},
|
||||
@@ -611,14 +636,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Kuva mängija ajaribal"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Kuva silt"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Jäta automaatselt kõik segmendid vahele, kui eksisteerib mitte-muusika segment"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Luba segmente, mis vahelejätmise asemel vaigistavad heli"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Sinu värv on sobimatult vormistatud. See peaks olema 3- või 6-numbriline 16-kümmendsüsteemis kood, arvu ees trellid."
|
||||
"fullVideoSegments": {
|
||||
"message": "Kuva ikoon, kui terve video on reklaam",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Saatmata värv",
|
||||
@@ -656,6 +685,9 @@
|
||||
"message": "Kategooriaga \"{0}\" segmentide saatmiseks pead selle enne valikutes lubama. Sind suunatakse nüüd valikutesse.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Hoiatus: Seda tüüpi segmenti saab korraga aktiivne olla vaid üks. Mitme saatmine põhjustab suvalise segmendi kuvamise."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Sa pead enne saatmist igale segmendile kategooria valima!"
|
||||
},
|
||||
@@ -668,6 +700,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "peidetud: liiga lühike"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "käsitsi peidetud"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanali ID pole veel laaditud. Kui vaatad manustatud videot, proovi seda vaadata YouTube'i kodulehelt. See võib olla põhjustatud ka YouTube'i paigutuse muudatustest - kui arvad et see nii on, kommenteeri siin:"
|
||||
@@ -694,7 +729,7 @@
|
||||
"message": "Sunnitud kanalikontroll enne vahelejätmist"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Vaikimisi jätab see segmendid vahele juba siis, kui veel kanalitki ei tea. Vaikimisi võidakse mõned video alguses olevad segmendid lubamisnimekirjas olevatel kanalitel vahele jätta. Selle valiku lubamine väldib seda, kuid võib lisada vahelejätmistele väikese viivituse, sest kanali ID hankimine võib aega võtta. Viivitus võib kiire interneti puhul olla märkamatu."
|
||||
"message": "Vaikimisi jätab see segmendid vahele juba siis, kui veel kanalitki ei tea. Vaikimisi võidakse mõned video alguses olevad segmendid ignoreerimisnimekirjas olevatel kanalitel vahele jätta. Selle valiku lubamine väldib seda, kuid võib lisada vahelejätmistele väikese viivituse, sest kanali ID hankimine võib aega võtta. Viivitus võib kiire interneti puhul olla märkamatu."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Kaalu valiku \"Sunnitud kanalikontroll enne vahelejätmist\" lubamist"
|
||||
@@ -703,7 +738,7 @@
|
||||
"message": "Sobimatu/vale ajastus"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Vale kategooria"
|
||||
"message": "Muuda kategooriat"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "See video on muusikana kategoriseeritud. Kas oled kindel, et sellel on sponsor? Kui see on tegelikult \"mitte-muusika segment\", ava laienduse valikud ning luba see kategooria. Seejärel saad selle segmendi saata \"mitte-muusika\" kategoorias. Segaduse korral palun loe üle juhised."
|
||||
@@ -731,6 +766,9 @@
|
||||
"message": "Sain aru",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "See terve video on selle kategooriaga sildistatud ning on liiga tihedalt integreeritud, et eraldada saaks"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Keeldu kõigist tulevikus tehtavatatest eksperimentidest",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +777,7 @@
|
||||
"message": "Peida igaveseks"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Sa said hoiatuse ning ei saa ajutiselt segmente saata. See tähendab, et me leidsime sind tegemast teatud sagedasi, mitte-pahatahtlikke vigu, ning soovime sulle meie reegleid täpsustada (inglise keeles). Sa võid selle vestlusega liituda ka discord.gg/SponsorBlock või matrix.to/#/#sponsor:ajay.app kaudu."
|
||||
"message": "Sa said hoiatuse ning ei saa ajutiselt segmente saata. See tähendab, et me leidsime sind tegemast teatud sagedasi, mitte-pahatahtlikke vigu - palun kinnita (inglise keeles), et mõistad reegleid ning me eemaldame hoiatuse. Sa võid selle vestlusega liituda ka discord.gg/SponsorBlock või matrix.to/#/#sponsor:ajay.app kaudu."
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Hääletus hoiatuse tõttu tagasilükatud. Klõpsa, et avada selle lahendamiseks vestlus või tule hiljem tagasi, kui aega saad.",
|
||||
@@ -748,22 +786,130 @@
|
||||
"Donate": {
|
||||
"message": "Anneta"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Aita arendust toetada"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Peida annetuste link"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Tume režiim valikute lehel"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Täname SponsorBlocki paigaldamise eest."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Palun vaata allolevad valikud üle"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Kuidas vahelejätmine töötab"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Saatmine"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Redigeerimine"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "See on liiga aeglane"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Kas ma saaksin andmebaasist koopia? Mis juhtub, kui sa kaod?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Andmebaas on avalik ning saadaval aadressil"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Lähtekood on vabalt saadaval. Seega, isegi kui minuga midagi juhtub, ei ole sinu saadetud segmendid kadunud."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Uudised ja kuidas see on valmistatud"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Kust ma saan selle lähtekoodi?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Tiitrid"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Uus! Mine ühe klõpsuga video eesmärgi juurde uue \"esiletõstu\" kategooriaga"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Lisateave"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Annab vastuhääle ja loob kohaliku koopia, mida saad uuesti saata"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Ava selle kategooria vikileht."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopeeri ja anna vastuhääl"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Jätka hääletamist"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "See rakendub sinu segmentidele koheselt"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Vastuhääl"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Poolthääl"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Peida segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Kiireks aja reguleerimiseks keri hiirega muutmiskasti kohal. Täpsemaks reguleerimiseks hoia kerimise ajal all Ctrl või Shift klahvi."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Uus! Näe, kui video on täielikult sponsoreeritud või enesepromo"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "p",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "t",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Käitumine",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Liides",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Klaviatuuriotseteed",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Varunda/taasta",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Varia",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Vahelejätmise teavituse välimus",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Tühista määrang",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Määramata"
|
||||
},
|
||||
"change": {
|
||||
"message": "Muuda"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BEETAserver on lubatud!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Ava valikute leht"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,15 @@
|
||||
"message": "اسپانسربلاک برای یوتیوب - اسپانسر ها را رد کنید",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "بخش های اسپانسر شده، درخواست ساب اسکرایب و خیلی چیز های دیگر در ویدیو های یوتیوب را رد کنید. قسمت های اسپانسری ویدیو هایی که میبینید را گزارش کنید تا در وقت دیگران صرفه جویی شود.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "سرور گفت که این درخواست نامعتبر است"
|
||||
},
|
||||
"429": {
|
||||
"message": "شما برای این یک ویدیو تعداد بیش از حدی زمان اسپانسر ثبت کردهاید، آیا مطمئن هستید که به این تعداد وجود دارد؟"
|
||||
"message": "شما برای این ویدیو قسمت های اسپانسری خیلی زیادی ثبت کرده اید، آیا مطمئنید که به این تعداد وجوددارد؟"
|
||||
},
|
||||
"409": {
|
||||
"message": "این قبلاً ثبت شده است"
|
||||
@@ -127,7 +131,7 @@
|
||||
"message": "شما دیگران را نجات دادید از "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "لیست سرنشینان"
|
||||
"message": "نفرات برتر"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "ثبت"
|
||||
@@ -144,6 +148,9 @@
|
||||
"setUsername": {
|
||||
"message": "تنظیم نام کاربری"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "به سرور رسمی دیسکورد بپیوندید تا پیشنهادات و بازخوردهای خود را ارائه دهید!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "مخفیسازی"
|
||||
},
|
||||
@@ -156,6 +163,9 @@
|
||||
"hideButtons": {
|
||||
"message": "مخفیسازی کلید ها در پخشکننده یوتیوب"
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "نمایش مجدد اطلاعیه"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "افزونه اسپانسر بلاک به شما امکان رد کردن بخشهای تبلیغاتی (اسپانسر شده)، قسمتهای شروع و پایان ویدیو، درخواست ساباسکرایب و سایر قسمتهای آزار دهنده یوتیوب را میدهد. اسپانسر بلاک یک افزونه مرورگر است که به هر کسی امکان ثبت زمان شروع و پایان بخش های اسپانسر شده و سایر بخش های ویدیو های یوتیوب را میدهد. پس از اینکه هر کاربر این اطلاعات را ثبت کرده و گزارش دهد، بقیه کاربرانی که از این افزونه استفاده میکنند مستقیماً بخش اسپانسر شده ویدیو را رد خواهند کرد. شما همچنین میتوانید در ویدیو های نماهنگ (موزیک ویدیو)، قسمتهای غیر موسیقی ویدیو را رد کنید.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -182,6 +192,9 @@
|
||||
"message": "کار شما",
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
"message": "به نظر میرسد سرور زیر فشار است. چند ثانیهی دیگر دوباره امتحان کنید."
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "کد خطا: "
|
||||
},
|
||||
@@ -191,9 +204,32 @@
|
||||
"mute": {
|
||||
"message": "بیصدا"
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} رد شود؟"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} بیصدا شود؟"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} رد شد",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} بیصدا شد",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"minLower": {
|
||||
"message": "دقیقه"
|
||||
},
|
||||
"hourLower": {
|
||||
"message": "ساعت"
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "ایجاد شده توسط"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "وبسایتهای پشتیبانی شده: "
|
||||
},
|
||||
"add": {
|
||||
"message": "افزودن"
|
||||
},
|
||||
@@ -212,6 +248,9 @@
|
||||
"setOptions": {
|
||||
"message": "تنظیم گزینهها"
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "ثبت بخش"
|
||||
},
|
||||
"submit": {
|
||||
"message": "ثبت"
|
||||
},
|
||||
@@ -240,6 +279,12 @@
|
||||
"category_sponsor": {
|
||||
"message": "اسپانسر"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "دسترسی اختصاصی"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "پر کننده"
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "غیر موسیقی"
|
||||
},
|
||||
@@ -252,12 +297,43 @@
|
||||
"manualSkip": {
|
||||
"message": "ردکردن دستی"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "نمایش در نوار پیشرفت"
|
||||
},
|
||||
"disable": {
|
||||
"message": "غیرفعال کردن"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "نمایش در نوار پیشرفت"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "نمایش نام"
|
||||
},
|
||||
"category": {
|
||||
"message": "دسته بندی"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(اکنون)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "نمایش دستهبندیها"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(پایان)"
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "تأیید دسترسی"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "تغییر دسته بندی"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "دستورالعملها"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "دستورالعملها را بخوانید!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"help": {
|
||||
"message": "راهنما"
|
||||
},
|
||||
@@ -265,7 +341,61 @@
|
||||
"message": "فهمیدم",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "مخفیسازی برای همیشه"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "شما یک اخطار دریافت کرده اید و موقتاً نمیتوانید بخشی را ثبت کنید. این یعنی ما متوجه شدیم که شما یک سری اشتباهات متداول داشتید اما قصد و نیت خرابکاری نداشتید، لطفاً فقط تایید کنید که شما از قوانین آگاهی دارید و سپس ما این اخطار را حذف خواهیم کرد. شما میتوانید به کمک discord.gg/SponsorBlock یا matrix.to/#/#sponsor:ajay.app عضو گروه ما بشوید."
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "رای شما رد شد چون شما یک اخطار دارید. برای حل این مشکل یک کلیک کنید تا گروه چت ما باز بشود، یا اینکه بعداً هر موقع وقت داشتید این کار را انجام بدهید.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "کمک مالی"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "پنهان کردن لینک کمک مالی"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "ازینکه افزونه SponserBlock را نصب کردید سپاسگزاریم."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "لطفاً تنظیمات زیر را بررسی کنید"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "چگونه ردکردن کار میکند"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "ثبت نمودن"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "ویرایش"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "آیا میتوان یک کپی از پایگاه داده را دریافت کرد؟ اگر شما یک روز ناپدید شدید چه میشود؟"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "پایگاه داده بهصورت عمومی در دسترس است در"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "سورس کد بهصورت رایگان ارائه شده است. بنابراین، اگر اتفاقی برای من بیفتد، ارسالات شما از بین نمیروند."
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "از کجا سورس کد را بگیرم؟"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "سازندگان"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "بیشتر بدانید"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "روز",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "ساعت",
|
||||
"description": "100h"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
"message": "Kanava lisätty valkolistalle!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "segmentti"
|
||||
"message": "osio"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "segmentit"
|
||||
"message": "osiot"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Äänestä tätä lähetystä"
|
||||
"message": "Äänestä lähetystä"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "Ilmoita"
|
||||
@@ -44,7 +44,7 @@
|
||||
"message": "Älä näytä koskaan"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Paina 'älä ohita' mennäksesi takaisin kohtaan jossa olit."
|
||||
"message": "Paina 'älä ohita' palatakasesi kohtaan, jossa olit."
|
||||
},
|
||||
"unskip": {
|
||||
"message": "Älä ohita"
|
||||
@@ -71,25 +71,25 @@
|
||||
"message": "Sponsorointiaikoja lähetettäessä tapahtui virhe, yritä myöhemmin uudelleen."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Tällä videolla on segmenttejä tietokannassa!"
|
||||
"message": "Tällä videolla on osioita tietokannassa!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Segmenttejä ei löytynyt"
|
||||
"message": "Osioita ei löytynyt"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "Segmentti alkaa nyt"
|
||||
"message": "Osio alkaa nyt"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "Segmentti päättyy nyt"
|
||||
"message": "Osio päättyy nyt"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Peruuta segmentin luominen"
|
||||
"message": "Peruuta osion luominen"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "YouTube-videota ei löytynyt.\nJos tämä on väärässä, päivitä välilehti."
|
||||
"message": "YouTube-videota ei löytynyt.\nJos tämä ei pidä paikkaansa, päivitä välilehti."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Päivitä segmentit"
|
||||
"message": "Päivitä osiot"
|
||||
},
|
||||
"success": {
|
||||
"message": "Onnistui!"
|
||||
@@ -104,7 +104,7 @@
|
||||
"message": "Yhteysvirhe on tapahtunut. Virhekoodi: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Tyhjennä segmentit"
|
||||
"message": "Tyhjennä osiot"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "Avaa SponsorBlock-ponnahdusikkuna"
|
||||
@@ -113,19 +113,19 @@
|
||||
"message": "Sulje ponnahdusikkuna"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Lähetä segmentit"
|
||||
"message": "Lähetä osiot"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Haluatko varmasti lähettää tämän?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Laita kanava valkolistalle"
|
||||
"message": "Lisää kanava valkolistalle"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Poista kanava valkolistalta"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Äänestä segmenttiä"
|
||||
"message": "Äänestä osiota"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Lähetykset"
|
||||
@@ -140,11 +140,11 @@
|
||||
"message": "Lähetä"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "Osien muokkaus ilmestyy sen jälkeen, kun klikkaat lähetä-painiketta",
|
||||
"message": "Osioiden muokkaus ilmestyy klikattuasi lähetä",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Vihje: Voit asettaa lähettämisen pikanäppäimet asetuksissa"
|
||||
"message": "Vihje: Voit määrittää lähetyksen pikanäppäimet asetuksista"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Tyhjennä ajat"
|
||||
@@ -164,8 +164,11 @@
|
||||
"copyPublicID": {
|
||||
"message": "Kopio julkinen UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Kopioi osion ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Liity mukaan viralliselle Discord-palvelimelle, jotta voit antaa ehdotuksia ja palautetta!"
|
||||
"message": "Liity viralliselle Discord-palvelimelle antaaksesi ehdotuksia ja palautetta!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Piilota tämä"
|
||||
@@ -177,58 +180,64 @@
|
||||
"message": "Näytä painikkeet YouTuben soittimessa"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "Piilota painikkeet YouTuben soittimessa"
|
||||
"message": "Piilota painikkeet YouTuben soittimesta"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Tämä piilottaa YouTuben soittimessa näkyvät, ohitettavien aikojen lähettämiseen käytetyt painikkeet."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Pidä \"Ohita kohtaan: Kohokohta\" -painike soittimessa"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Näytä info-painike YouTuben soittimessa"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Piilota info-painike YouTuben soittimessa"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Tämä on painike, joka avaa ponnahdusikkunan YouTube-sivulla."
|
||||
"message": "Piilota info-painike YouTuben soittimesta"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Piilota info-painike automaattisesti"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Piilota poista-painike YouTuben soittimessa"
|
||||
"message": "Piilota poista-painike YouTuben soittimesta"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Näytä poista-painike YouTuben soittimessa"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Tämä on YouTuben soittimen painike, joka poistaa kaikki kyseisen videon sponsorointikohdat, joita et ole vielä lähettänyt."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Ota ohitusten lukumäärän seuranta käyttöön"
|
||||
"message": "Käytä ohitusten lukumäärän seurantaa"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Tämä toiminto seuraa, mitä segmenttejä olet ohittanut. Sen avulla käyttäjät saavat tietää, kuinka paljon heidän lähetyksensä ovat auttaneet muita, ja sitä käytetään myös mittarina äänestysten kanssa estääksemme spämmin pääsyn tietokantaan. Laajennus lähettää viestin palvelimelle aina, kun ohitat segmentin. Toivottavasti useimmat eivät muuta tätä asetusta, jotta katselunumerot pysyisivät tarkkoina. :)"
|
||||
"message": "Tämä toiminto seuraa, mitä osioita olet ohittanut. Sen avulla käyttäjät saavat tietää, kuinka paljon heidän lähetyksensä ovat auttaneet muita, ja sitä käytetään myös mittarina äänestysten kanssa estääksemme spämmin pääsyn tietokantaan. Laajennus lähettää viestin palvelimelle aina kun ohitat osion. Toivottavasti useimmat eivät muuta tätä asetusta, jotta katselunumerot pysyisivät tarkkoina. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Ota ohitusten lukumäärän seuranta käyttöön yksityis-/incognito-välilehdissä"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Säilytä osion negatiiviset äänet"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Negatiivisesti äänestämäsi osiot pysyvät piilotettuina myös päivityksen jälkeen"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Varoitus: Tämän käytöstä poisto poistaa kaikki negatiiviset äänet"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Kysely tiiviste-etuliittellä"
|
||||
},
|
||||
"whatQueryByHashPrefix": {
|
||||
"message": "Sen sijaan, että videoID:tä käyttäen pyydettäisiin segmenttejä palvelimelta, videoID:n tiivisteen 4 ensimmäistä merkkiä lähetetään. Tämä palvelin lähettää takaisin dataa kaikista videoista, joilla on samankaltaiset tiivisteet."
|
||||
"message": "Sen sijaan, että videoID:tä käyttäen pyydettäisiin osioita palvelimelta, videoID:n tiivisteen 4 ensimmäistä merkkiä lähetetään. Palvelin lähettää takaisin dataa kaikista videoista, joilla on samankaltaiset tiivisteet."
|
||||
},
|
||||
"enableRefetchWhenNotFound": {
|
||||
"message": "Hae segmentit uudelleen uusissa videoissa"
|
||||
"message": "Hae osiot uudelleen uusissa videoissa"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Jos video on uusi, eikä segmenttejä löydy, niitä haetaan uudelleen muutaman minuutin välein katsoessasi."
|
||||
"message": "Jos video on uusi, eikä osioita löydy, niitä haetaan uudelleen muutaman minuutin välein katsoessasi."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Näytä ilmoitus uudelleen"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Näytä ilmoitus ohitetun segmentin jälkeen"
|
||||
"message": "Näytä ilmoitus ohitetun osion jälkeen"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Täysikokoiset ohitusilmoitukset"
|
||||
@@ -246,7 +255,7 @@
|
||||
"message": "Kaikki haalistuneet ohitusilmoitukset"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlockin avulla voit ohittaa sponsorit, introt, outrot, tilausmuistutukset ja muut ärsyttävät osat YouTube-videoissa. SponsorBlock on joukkoistettu selainlaajennus, jonka avulla kuka tahansa voi lähettää Youtube-videoiden sponsoroitujen ja muiden segmenttien aloitus- ja päättymisajat. Kun yksi henkilö on lähettänyt tämän tiedon, kaikki muut, joilla on tämä laajennus, ohittavat sponsoroidun segmentin. Voit myös ohittaa musiikkivideoiden musiikittomat osat.",
|
||||
"message": "SponsorBlockin avulla voit ohittaa sponsorit, introt, outrot, tilausmuistutukset ja muut ärsyttävät osat YouTube-videoissa. SponsorBlock on käyttäjälähteinen selainlaajennus, jonka avulla kuka tahansa voi lähettää Youtube-videoiden sponsoroitujen ja muiden osioiden aloitus- ja päättymisajat. Kun yksi henkilö on lähettänyt tämän tiedon, kaikki muut, joilla on tämä laajennus, ohittavat sponsoroidun osion. Voit myös ohittaa musiikkivideoiden musiikittomat osat.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Aseta näppäin segmentin ohittamista varten"
|
||||
"message": "Ohita osio",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Aseta pikanäppäin segmentin aloittamiseen/lopettamiseen"
|
||||
"message": "Aloita/lopeta osio",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Aseta pikanäppäin tietojen lähetykseen"
|
||||
"message": "Lähetä osiot",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Valitse näppäin painamalla sitä"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Pikanäppäin on asetettu näppäimeen: "
|
||||
"message": "Valitse näppäin painamalla sitä ja valitse haluamasi vaihtonäppäin."
|
||||
},
|
||||
"0": {
|
||||
"message": "Yhteyden aikakatkaisu. Tarkista internet-yhteytesi. Jos internetyhteytesi toimii, palvelin on todennäköisesti ylikuormittunut tai alhaalla."
|
||||
@@ -305,9 +314,16 @@
|
||||
"mute": {
|
||||
"message": "Mykistä"
|
||||
},
|
||||
"full": {
|
||||
"message": "Koko video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Ohita {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Mykistä {0}?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Ohita kohtaan: {0}",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
@@ -316,6 +332,10 @@
|
||||
"message": "{0} ohitettu",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} Mykistetty",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Ohitettiin kohtaan: {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
@@ -330,20 +350,17 @@
|
||||
"message": "Ääni-ilmoitus ohitettaessa"
|
||||
},
|
||||
"audioNotificationDescription": {
|
||||
"message": "Ääni-ilmoitus ohittaessa toistaa äänen kun segmentti ohitetaan. Jos asetus on pois päältä (tai automaattinen ohitus on pois käytöstä), ääntä ei soiteta."
|
||||
"message": "Ääni-ilmoitus ohittaessa toistaa äänen kun osio ohitetaan. Jos asetus on pois päältä (tai automaattinen ohitus on pois käytöstä), ääntä ei soiteta."
|
||||
},
|
||||
"showTimeWithSkips": {
|
||||
"message": "Näytä kesto ilman ohitettuja osioita"
|
||||
},
|
||||
"showTimeWithSkipsDescription": {
|
||||
"message": "Tämä aika näkyy sulkeissa nykyisen ajan vieressä liukusäätimen alapuolella. Se näyttää videon koko pituuden ilman segmenttejä. Se sisältää vain segmentit, jotka on merkitty \"Näytä liukusäätimessä\"."
|
||||
"message": "Tämä aika näkyy sulkeissa nykyisen ajan vieressä liukusäätimen alapuolella. Se näyttää videon koko pituuden ilman osioita. Se sisältää vain osiot, jotka on merkitty \"Näytä liukusäätimessä\"."
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "Olet ohittanut "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Olet säästänyt itseltäsi "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minuutin"
|
||||
},
|
||||
@@ -357,10 +374,12 @@
|
||||
"message": "tuntia"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Olet säästänyt ihmisiltä"
|
||||
"message": "Olet säästänyt ihmisiltä",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " heidän elämistään"
|
||||
"message": " heidän elämistään",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Tarkista palvelimen tila osoitteessa status.sponsor.ajay.app."
|
||||
@@ -380,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Luonut"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Tällä hetkellä se on asetettu näppäimeen:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Tue kolmansien osapuolien YouTube-sivustoja"
|
||||
},
|
||||
@@ -421,7 +437,7 @@
|
||||
"message": "Vähimmäiskesto (sekuntia):"
|
||||
},
|
||||
"minDurationDescription": {
|
||||
"message": "Segmenttejä jotka ovat asetettua arvoa lyhyempiä ei ohiteta tai näytetä soittimessa."
|
||||
"message": "Osioita jotka ovat asetettua arvoa lyhyempiä ei ohiteta tai näytetä soittimessa."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Ohitusilmoituksen kesto (sekuntia):"
|
||||
@@ -432,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Seuraava lähetys on lyhyempi kuin vähimmäiskeston asetuksesi. Tämä voi tarkoittaa sitä, että tämä on jo lähetetty, ja sitä ei vain oteta huomioon tämän asetuksen vuoksi. Oletko varma, että haluat lähettää?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Aktiivisen livestriimin tai ensiesityksen aikana lähettäminen ei ole sallittua. Odota kunnes se loppuu, sitten päivitä sivu ja varmista, että osiot ovat yhä oikein."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Näytä lähetä-painike"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Tämä painike ilmestyy YouTube-soittimeen, kun olet valinnut aikaleiman ja olet valmis lähettämään sen."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock-palvelimen osoite"
|
||||
},
|
||||
@@ -448,7 +464,7 @@
|
||||
"message": "Tallenna"
|
||||
},
|
||||
"reset": {
|
||||
"message": "Nollaa"
|
||||
"message": "Palauta"
|
||||
},
|
||||
"customAddressError": {
|
||||
"message": "Tämä osoite ei ole oikeassa muodossa. Varmista, että sinulla on http:// tai https:// alussa eikä perässä kauttaviivoja."
|
||||
@@ -462,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Vie/tuo kaikki asetukset"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Muokkaa/kopioi"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Tallenna tiedostoon"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Lataa tiedostosta"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Tämä on koko konfiguraatiosi JSON-tiedostona. Tämä sisältää userID:si, joten jaa sitä viisaasti."
|
||||
},
|
||||
@@ -475,7 +500,7 @@
|
||||
"message": "Tämä JSON ei ole muotoiltu oikein. Asetuksiasi ei ole muutettu."
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Lähetä segmentti"
|
||||
"message": "Lähetä osio"
|
||||
},
|
||||
"submit": {
|
||||
"message": "Lähetä"
|
||||
@@ -510,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Virheenkorjaustiedot on kopioitu leikepöydälle. Voit poistaa mitä tahansa tietoa mitä et mielummin jakaisi. Tallenna tämä tekstitiedostoon tai liitä se virheraporttiin."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Näppäin"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "on jo liitetty toiseen toimintoon. Valitse toinen näppäin."
|
||||
"message": "Pikänäppäin on jo liitetty toiselle toiminnolle. Valitse eri näppäin."
|
||||
},
|
||||
"to": {
|
||||
"message": "-",
|
||||
@@ -532,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Samankaltainen \"sponsorin\" kanssa, mutta maksamattomalle tai itsensä mainostukselle. Tämä sisältää osioita kauppatavarasta, lahjoituksista tai tietoa siitä, kenen kanssa he ovat tehneet yhteistyötä."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Yksinoikeudellinen ensikatsaus"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Vain kokonaisten videoiden merkitsemiseen. Käytetään kun videossa esitellään tuote, palvelu tai sijainti, johon he ovat saaneet ilmaisen tai tuetun käyttöoikeuden."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Tämä video esittelee tuotteen, palvelun tai sijainnin, johon he ovat saaneet ilmaisen tai tuetun käyttöoikeuden",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Vuorovaikutusmuistutus (tilaaminen)"
|
||||
},
|
||||
@@ -562,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Nopea kertaus aiemmista jaksoista, tai esikatselu siitä, mitä on tulossa myöhemmin nykyisessä videossa. Tarkoitettu yhteen editoituja klippejä varten, ei puhutuille yhteenvedoille."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Epäolennainen täytesisältö/Vitsit"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Täytteeksi tai huumoriksi lisättyjä toissijaisia kohtauksia, joita videon pääsisällön ymmärrys ei edellytä. Tämän ei tulisi sisältää aiheeseen liittyviä tai taustatietoja tarjoavia osioita."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Täytesisältö"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musiikki: Musiikiton osa"
|
||||
},
|
||||
@@ -604,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Näytä liukusäätimessä"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Näytä merkki"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Ohita kaikki segmentit automaattisesti, kun videossa on \"Musiikiton\" segmentti"
|
||||
"message": "Ohita kaikki osiot automaattisesti, kun videossa on \"Musiikiton\" osio"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Salli segmentit, jotka mykistävät äänen ohittamisen sijaan"
|
||||
"message": "Salli osiot, jotka mykistävät äänen ohittamisen sijaan"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Väriformaattisi on muotoiltu väärin. Sen pitäisi olla 3 tai 6 numeroinen hex-koodi, jossa on # alussa."
|
||||
"fullVideoSegments": {
|
||||
"message": "Näytä kuvake, kun video on kokonaan mainos",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Lähettämättömien väri",
|
||||
@@ -628,7 +673,7 @@
|
||||
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
|
||||
},
|
||||
"enableTestingServer": {
|
||||
"message": "Ota betatestauspalvelin käyttöön"
|
||||
"message": "Käytä betatestauspalvelinta"
|
||||
},
|
||||
"whatEnableTestingServer": {
|
||||
"message": "Lähetyksiäsi ja ääniäsi EI LASKETA pääpalvelimella. Käytä tätä vain testaamiseen."
|
||||
@@ -646,11 +691,14 @@
|
||||
"message": "Valitse kategoria"
|
||||
},
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "Lähettääksesi segmenttejä \"{0}\" kategorialla, sinun täytyy aktivoida se asetuksista. Sinut uudelleenohjataan asetuksiin nyt.",
|
||||
"message": "Lähettääksesi osioita \"{0}\" kategorialla, sinun täytyy aktivoida se asetuksista. Sinut uudelleenohjataan asetuksiin nyt.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Varoitus: Tämäntyyppisiä osioita voi olla aktiivisena enintään yksi. Usean lähettäminen aiheuttaa sen, että satunnainen osio näytetään."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Sinun täytyy valita kategoria kaikille segmenteille, joita olet lähettämässä!"
|
||||
"message": "Sinun täytyy valita kategoria kaikille osioille, joita olet lähettämässä!"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(Loppu)"
|
||||
@@ -661,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "piilotettu: liian lyhyt"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "manuaalisesti piilotettu"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanavan ID ei ole vielä latautunut. Jos käytät upotettua videota, kokeile sen sijaan käyttää YouTuben kotisivua. Tämä voi myös johtua muutoksista YouTuben ulkoasussa. Jos luulet luulet niin, tee kommenti tänne:"
|
||||
@@ -687,7 +738,7 @@
|
||||
"message": "Pakota kanavan tarkistus ennen ohittamista"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Oletuksena segmentit ohitetaan heti ennen kuin kanava tiedetään. Oletuksena jotkut segmentit videon alussa saattavat tulla ohitetuiksi sallituilla kanavilla. Tämän vaihtoehdon ottaminen käyttöön estää sen, mutta kaikki ohitukset viivästyvät hieman, koska kanavatunnuksen saaminen voi kestää jonkin aikaa. Tämä viive saattaa olla huomaamaton, jos sinulla on nopea internetyhteys."
|
||||
"message": "Oletuksena osiot ohitetaan heti ennen kuin kanava tiedetään. Oletuksena, jotkut osiot videon alussa saattavat tulla ohitetuiksi sallituilla kanavilla. Tämän vaihtoehdon ottaminen käyttöön estää sen, mutta kaikki ohitukset viivästyvät hieman, koska kanavatunnuksen saaminen voi kestää jonkin aikaa. Tämä viive saattaa olla huomaamaton, jos sinulla on nopea internetyhteys."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Harkitse asetuksen \"Pakota kanavan tarkistus ennen ohittamista\" käyttöön ottaminen"
|
||||
@@ -696,13 +747,13 @@
|
||||
"message": "Virheellinen/väärä aika"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Väärä kategoria"
|
||||
"message": "Vaihda kategoria"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Tämä video on luokiteltu musiikiksi. Oletko varma, että siinä on sponsori? Jos tämä on oikeasti \"Musiikiton segmentti\", avaa laajennuksen asetukset ja ota tämä kategoria käyttöön. Sitten voit lähettää tämän segmentin oikeassa kategoriassa. Lue säännöt, jos olet vielä hämilläsi."
|
||||
"message": "Tämä video on luokiteltu musiikiksi. Oletko varma, että siinä on sponsori? Jos tämä on oikeasti \"Musiikiton osio\", avaa laajennuksen asetukset ja ota tämä kategoria käyttöön. Sitten voit lähettää tämän osion oikeassa kategoriassa. Lue säännöt, jos olet vielä hämilläsi."
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "Useita segmenttejä"
|
||||
"message": "Useita osioita"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "Säännöt"
|
||||
@@ -724,6 +775,12 @@
|
||||
"message": "Selvä",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Tämä osio on suuri. Jos koko video koskee yhtä aihetta, vaihda \"Ohita\" valintaan \"Koko video\". Katso lisätietoja säännöistä."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Koko video on merkitty tällä luokituksella ja se on liian tiiviisti integroitu eroteltavaksi"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Jättäydy pois kaikista tulevista kokeiluista",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -732,7 +789,7 @@
|
||||
"message": "Piilota ikuisesti"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Sait varoituksen ja et voi lähettää segmenttejä väliaikaisesti. Tämä tarkoittaa, että huomasimme, että teit joitakin yleisiä virheitä, jotka eivät ole tahallisia, ja haluamme vain selventää säännöt. Voit myös liittyä tähän keskusteluun käyttäen discord.gg/SponsorBlock tai matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Sait varoituksen ja et voi lähettää osioita väliaikaisesti. Tämä tarkoittaa, että huomasimme, että teit joitakin yleisiä virheitä, jotka eivät ole tahallisia, joten vahvistakaa, että ymmärrätte säännöt ja poistamme varoituksen. Voit myös liittyä tähän keskusteluun käyttäen discord.gg/SponsorBlock tai matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Ääni hylättiin varoituksen takia. Klikkaa avataksesi chatin sen ratkaisemiseksi, tai tule takaisin myöhemmin kun sinulla on siihen aikaa.",
|
||||
@@ -741,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Lahjoita"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Auta rahoittamalla kehitystä"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Piilota lahjoituslinkki"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Tumma tila asetussivulla"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Kiitos, että asensit SponsorBlockin."
|
||||
},
|
||||
@@ -757,31 +820,31 @@
|
||||
"message": "Miten ohittaminen toimii"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Videosegmentit ohitetaan automaattisesti, jos ne löytyvät tietokannasta. Voit avata ponnahdusikkunan klikkaamalla laajennuksen kuvaketta saadaksesi esikatselun siitä, mitä ne ovat."
|
||||
"message": "Video-osiot ohitetaan automaattisesti, jos ne löytyvät tietokannasta. Voit avata ponnahdusikkunan klikkaamalla laajennuksen kuvaketta saadaksesi esikatselun siitä, mitä ne ovat."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Aina kun ohitat segmentin, saat ilmoituksen. Jos ajoitus näyttää väärältä, äänestä alaspäin klikkaamalla 👎! Voit myös äänestää ponnahdusikkunassa."
|
||||
"message": "Aina kun ohitat osion, saat ilmoituksen. Jos ajoitus näyttää väärältä, äänestä alaspäin klikkaamalla 👎! Voit myös äänestää ponnahdusikkunassa."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Lähettäminen"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Lähettäminen voidaan tehdä joko ponnahdusikkunassa painamalla \"Segmentti alkaa nyt\" -painiketta tai videosoittimessa olevilla painikkeilla."
|
||||
"message": "Lähettäminen voidaan tehdä joko ponnahdusikkunassa painamalla \"Osio alkaa nyt\" -painiketta, tai videosoittimessa olevilla painikkeilla."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Toistopainikkeen klikkaaminen osoittaa segmentin alun ja pysäytyskuvakkeen klikkaaminen sen lopun. Voit valmistella useita sponsoreita ennen kuin painat lähetä. Lähetä-painikkeen klikkaaminen lähettää segmentin. Roskakorin klikkaaminen poistaa."
|
||||
"message": "Toistopainikkeen klikkaaminen osoittaa osion alun ja pysäytyskuvakkeen klikkaaminen sen lopun. Voit valmistella useita sponsoreita ennen kuin painat lähetä. Lähetä-painikkeen klikkaaminen lähettää osion. Roskakorin klikkaaminen poistaa."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Muokkaus"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Jos jokin meni pieleen, voit muokata tai poistaa segmenttisi ylänuolipainikkeen klikkaamisen jälkeen."
|
||||
"message": "Jos jokin meni pieleen, voit muokata tai poistaa osiosi ylänuolipainikkeen klikkaamisen jälkeen."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Tämä on liian hidasta"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Voit käyttää pikanäppäimiä jos haluat. Paina puolipiste näppäintä merkitäksesi sponsori segmentin alun/lopun, ja paina heittomerkkiä lähettääksesi sen. Nämä voidaan vaihtaa asetuksista. Jos et käytä QWERTYä, sinun varmaan kannattaisi vaihtaa pikanäppäimet."
|
||||
"message": "Voit käyttää pikanäppäimiä jos haluat. Paina puolipiste näppäintä merkitäksesi sponsori osion alun/lopun, ja paina heittomerkkiä lähettääksesi sen. Nämä voidaan vaihtaa asetuksista. Jos et käytä QWERTYä, sinun varmaan kannattaisi vaihtaa pikanäppäimet."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Voinko saada kopion tietokannasta? Mitä tapahtuu, jos katoat?"
|
||||
@@ -801,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Tekijät"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Uutta! Pääse videon asiaan yhdellä klikkauksella uudella kohokohta kategorialla"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Opi lisää"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Äänestää alas ja luo paikallisen kopion, jonka voit lähettää uudelleen"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Avaa tämän kategorian wiki-sivu."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopioi ja äänestä alas"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Jatka äänestystä"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Tämä vaikuttaa sinun osioihin välittömästi"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Äänestä puolesta"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Äänestä vastaan"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Piilota osio"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Käytä hiiren rullaa samalla kun osoitin on muokkauslaatikon päällä säätääksesi aikaa nopeasti. Ctrl- tai Shift-näppäimen yhdistelmiä voi käyttää muutoksien hienosäätelyyn."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Uutta! Näe, kun video on kokonaan sponsoroitu tai itsensä mainostusta"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "vrk",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "t",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Käyttäytyminen",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Käyttöliittymä",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Pikanäppäimet",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Varmuuskopioi/palauta",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Sekalaiset",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Ohitusilmoituksen ulkoasu",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Poista valinta",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Ei määritetty"
|
||||
},
|
||||
"change": {
|
||||
"message": "Vaihda"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Tämä on YouTuben sisäänrakennettu pikanäppäin. Haluatko varmasti käyttää sitä?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA-palvelin on käytössä!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Avaa asetussivu"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"message": "Vous cherchez à envoyer beaucoup de segments, y en a-t-il vraiment autant ?"
|
||||
},
|
||||
"409": {
|
||||
"message": "Déja soumis"
|
||||
"message": "Ce segment a déjà été soumis auparavant"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Chaîne mise sur liste blanche !"
|
||||
@@ -32,7 +32,7 @@
|
||||
"message": "Signaler"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "Signaler que ce segment commercial est incorrect."
|
||||
"message": "Signaler que cette soumission est incorrecte."
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "Fermer"
|
||||
@@ -98,7 +98,7 @@
|
||||
"message": "A voté !"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Le serveur ne fonctionne pas. Contactez le développeur."
|
||||
"message": "Il semblerait que le serveur soit hors service. Contactez le développeur."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Erreur de connexion. Code d'erreur : "
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Copier l'ID utilisateur"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Copier l'identifiant du segment"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Rejoignez le serveur Discord officiel pour toutes suggestions ou remarques!"
|
||||
},
|
||||
@@ -171,7 +174,7 @@
|
||||
"message": "Cacher"
|
||||
},
|
||||
"Options": {
|
||||
"message": "Paramètres"
|
||||
"message": "Options"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "Montrer les boutons sur le lecteur YouTube"
|
||||
@@ -180,7 +183,10 @@
|
||||
"message": "Cacher les boutons sur le lecteur YouTube"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Cela permet de cacher du lecteur YouTube les boutons utilisés pour soumettre des segments commerciaux. Je peux \ncomprendre que certaines personnes les trouvent perturbants. Au lieu d'utiliser ces boutons, cette fenêtre peut être utilisée \npour soumettre des segments commerciaux. Pour cacher la notification, utilisez le bouton \"Ne plus montrer\" sur la notification. Vous pouvez toujours réactiver ces paramètres plus tard."
|
||||
"message": "Ceci enlève du lecteur YouTube les boutons permettant de soumettre des segments."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Conserver le bouton \"Aller au point essentiel\" sur le lecteur"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Montrer le bouton Info sur le lecteur YouTube"
|
||||
@@ -188,11 +194,8 @@
|
||||
"hideInfoButton": {
|
||||
"message": "Cacher le bouton Info sur le lecteur YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Il s'agit du bouton qui ouvre l'encart sur la page YouTube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Masquer Automatiquement Le Button Info"
|
||||
"message": "Masquer automatiquement le bouton Info"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Cacher le bouton Supprimer sur le lecteur YouTube"
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Montrer le bouton Supprimer sur le lecteur YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Il s'agit du bouton qui permet de supprimer tous les segments commerciaux depuis le lecteur YouTube."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Activer le suivi du nombre de sauts de segments"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Activer le suivi du nombre de sauts dans les onglets privés/incognito"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Enregistrer les segments contre lesquels vous avez voté"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Tous les segments que contre lesquels vous votez resteront cachés même après rafraîchissement de la page"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Attention : la désactivation supprimera tous vos votes précédemment enregistrés"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Requête par préfixe du hash"
|
||||
},
|
||||
@@ -222,7 +231,7 @@
|
||||
"message": "Récupérer les segments sur les nouvelles vidéos"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Si la vidéo est nouvelle et qu'aucun segment n'a été trouvé, ils seront réactualisés toutes les quelques minutes pendant le visionnage."
|
||||
"message": "Si la vidéo vient de sortir et qu'aucun segment n'a été encore trouvé, SponsorBlock en cherchera durant la lecture de la vidéo."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Afficher la notification"
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Définir une touche pour passer un segment"
|
||||
"message": "Passer le segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Définir le raccourci pour démarrer/terminer un segment"
|
||||
"message": "Commencer/arrêter le segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Changer le raccourci pour soumettre les segments"
|
||||
"message": "Soumettre les segments",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Appuyez sur une touche"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Le raccourci choisi est : "
|
||||
"message": "Sélectionnez une touche en utilisant le clavier et choisissez les touches de modification que vous souhaitez utiliser."
|
||||
},
|
||||
"0": {
|
||||
"message": "Délai de connexion dépassé. Vérifiez votre connexion internet. Si votre connexion internet fonctionne, le serveur est probablement surchargé ou hors service."
|
||||
@@ -305,9 +314,16 @@
|
||||
"mute": {
|
||||
"message": "Couper le son"
|
||||
},
|
||||
"full": {
|
||||
"message": "Toute la vidéo",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Passer {0} ?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Mettre en sourdine {0} ?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Passer à {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
@@ -316,6 +332,10 @@
|
||||
"message": "{0} ignoré",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} mis en sourdine",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Sauté à {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
@@ -341,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Vous avez passé "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Vous vous êtes économisé "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minute"
|
||||
},
|
||||
@@ -357,10 +374,12 @@
|
||||
"message": "heures"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Vous avez fait économiser les utilisateurs"
|
||||
"message": "Vous avez fait économiser les utilisateurs",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " de leurs vies"
|
||||
"message": " de leurs vies",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Vérifiez status.sponsor.ajay.app pour le status du serveur."
|
||||
@@ -380,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Créé par"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Il est actuellement réglé sur :"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Support de YouTube-Sites tierces"
|
||||
},
|
||||
@@ -432,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Le segment suivant est plus court que votre option de durée minimale. Cela pourrait signifier qu'il est déjà soumis, et just ignoré par cette option. Êtes-vous sûr de vouloir soumettre ?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "La soumission de segments sur un direct en cours ou une première n'est pas autorisée. Veuillez attendre qu'il soit terminé puis actualisez la page et vérifiez que les segments sont toujours valides."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Afficher le bouton de téléchargement"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Ce bouton apparaît sur le lecteur YouTube dès qu'un segment est prêt à être envoyé."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Adresse du serveur SponsorBlock"
|
||||
},
|
||||
@@ -462,8 +478,17 @@
|
||||
"exportOptions": {
|
||||
"message": "Importer/Exporter toutes les options"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Modifier/copier"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Enregistrer dans un fichier"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Charger à partir du fichier"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "C'est votre configuration complète au format JSON. Elle inclut votre identifiant utilisateur, gardez-la pour vous."
|
||||
"message": "Contient toute votre configuration au format JSON. Inclut votre UserID privé, donc ne partagez pas ce fichier."
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "Définir les options"
|
||||
@@ -505,23 +530,20 @@
|
||||
"message": "Impossible de copier dans le presse-papiers"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": "Copie les informations dans le presse-papiers pour les fournir aux développeurs lors d'un rapport de bug ou lorsqu'un développeur le demande. Les informations sensibles telles que l'ID d'utilisateur, les chaînes sur liste blanche ou l'adresse du serveur personnalisé ont été supprimées. Cependant, ça contient des informations telles que votre user-agent, votre navigateur, votre système d'exploitation et le numéro de version d'extension. "
|
||||
"message": "Copie les informations dans le presse-papiers de manière à les fournir à l'équipe de développement dans un rapport de bug ou si on vous le demande. Les informations personnelles telles que le UserID privé, les chaînes sur liste blanche ou l'adresse du serveur personnalisé sont retirées des données copiées. Cependant, des informations telles que votre user-agent, votre navigateur web, votre système d'exploitation ou le numéro de version d'extension de SponsorBlock font partie des données copiées. "
|
||||
},
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Les informations de débogage ont été copiées dans le presse-papiers. N'hésitez pas à supprimer toute information que vous ne préférez pas partager. Enregistrez-les dans un fichier texte ou collez-les dans le rapport de bug."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "La clé"
|
||||
"message": "Les informations de débogage ont été copiées dans le presse-papiers. N'hésitez pas à supprimer toute information que vous ne souhaitez pas partager. Enregistrez-les dans un fichier texte ou collez-les dans le rapport de bug."
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "est lié à une autre action. Veuillez sélectionner une autre clé."
|
||||
"message": "Ce raccourci est lié à une autre action. Veuillez en choisir un autre."
|
||||
},
|
||||
"to": {
|
||||
"message": "à",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "Message commercial"
|
||||
"message": "Message sponsorisé"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Promotion rémunérée, parrainage rémunéré et publicité directe. Pas pour l'autopromotion ou les présentations gratuites de causes, de créateurs, de sites web ou de produits qu'ils aiment."
|
||||
@@ -532,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Semblable au \"sponsor\", excepté pour la promotion non rémunérée ou l'auto-promotion. Cela inclut les marchandises, les dons et les informations sur leurs collaborateurs."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Accès exclusif"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Sert uniquement à étiqueter les vidéos entièrement sponsorisées. Utilisé quand une vidéo présente un produit, un service ou un emplacement pour lesquels un accès gratuit ou subventionné a été reçu."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Cette vidéo présente un produit, un service ou un lieu pour lequel un accès gratuit ou subventionné a été reçu",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Rappel d'interaction (abonnement)"
|
||||
},
|
||||
@@ -545,7 +577,7 @@
|
||||
"message": "Entracte/Animation d'intro"
|
||||
},
|
||||
"category_intro_description": {
|
||||
"message": "Un intervalle sans réel contenu, comme une pause, une image statique ou une animation répétitive. Ne doit pas être utilisé pour les transitions avec des informations."
|
||||
"message": "Un intervalle sans réel contenu, par exemple une pause, une image statique ou une animation répétitive. N'utilisez pas cette catégorie pour les transitions contenant de l'information."
|
||||
},
|
||||
"category_intro_short": {
|
||||
"message": "Entracte"
|
||||
@@ -562,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Résumé rapide des épisodes précédents, ou aperçu de ce qui se passera plus tard dans la vidéo en cours. Pour les plans collectifs édités, pas pour les résumés parlés."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Digressions/Blagues"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Digressions ajoutées uniquement dans un but de remplissage ou de l'humour non requis pour comprendre le sujet principal de la vidéo. Ne doit pas inclure des segments fournissant du contexte ou des détails de fond."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Remplissage"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musique : Segment non musical"
|
||||
},
|
||||
@@ -572,7 +613,7 @@
|
||||
"message": "Hors musique"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Surligner"
|
||||
"message": "Point essentiel"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "La partie de la vidéo que la plupart des gens veulent voir. Similaire à \"la vidéo commence à x mins\"."
|
||||
@@ -604,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Afficher dans la barre de recherche"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Afficher l'étiquette"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Ignorer automatiquement tous les segments lorsqu'il y a un segment non-musical"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Autoriser les segments qui bloquent l'audio au lieu de le passer"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Votre couleur est mal formatée. Il devrait s'agir d'un code hexadécimal à 3 ou 6 chiffres avec un signe numérique au début."
|
||||
"fullVideoSegments": {
|
||||
"message": "Afficher une icône lorsqu'une vidéo est entièrement promotionnelle",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Couleur non soumise",
|
||||
@@ -649,6 +694,9 @@
|
||||
"message": "Pour envoyer des segments de la catégorie \"{0}\", vous devez l'activer dans les options. Vous allez être redirigé vers les options maintenant.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Attention : un seul segment de ce type de segment peut être actif à la fois. En soumettant plusieurs segments, un seul d'entre eux sera aléatoirement affiché."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Vous devez sélectionner une catégorie pour tous les segments que vous soumettez !"
|
||||
},
|
||||
@@ -661,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "masqué : trop court"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "masqué manuellement"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Le Channel ID n'est pas encore chargé. Si vous utilisez une vidéo intégrée, essayez d'utiliser la page d'accueil de YouTube. Cela pourrait également être causé par des changements dans l'interface de YouTube. Si vous pensez que c'est le cas, écrivez un commentaire ici :"
|
||||
@@ -687,7 +738,7 @@
|
||||
"message": "Forcer la vérification du canal avant de passer"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Par défaut, passer les segments avant même de savoir à quelle chaîne appartient la vidéo. Par défaut, les segments en début des vidéos des chaînes sur liste blanche peuvent être passés. Activer cette option empêchera cela mais passer les segments aura un délai, car obtenir l'id des chaînes peut prendre du temps. Ce délai sera imperceptible si votre connexion est rapide."
|
||||
"message": "Par défaut, les segments sont passés avant même de savoir à quelle chaîne la vidéo appartient. Par défaut, certains segments en début de vidéo des chaînes sur liste blanche peuvent être involontairement passés. Activer cette option évitera ce problème mais le passage des segments aura un léger retard, du fait que l'obtention du ChannelID prend du temps. Ce retard devrait être imperceptible si vous avez un haut débit internet."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Envisagez d'activer \"Forcez la vérification de la chaîne avant de passer\""
|
||||
@@ -696,7 +747,7 @@
|
||||
"message": "Segment de mauvaise qualité"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Mauvaise catégorie"
|
||||
"message": "Changer de catégorie"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Cette vidéo est catégorisée comme de la musique. Êtes-vous sûr qu'elle est sponsorisée? S'il s'agit en fait d'un \"Segment non musical\", allez dans les options de l'extension et activez cette catégorie. Ensuite, vous pourrez soumettre ce segment en tant que \"Segment non musical\" au lieu de sponsor. Lisez les instructions en cas de confusion."
|
||||
@@ -724,6 +775,12 @@
|
||||
"message": "Compris",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Ce segment est long. Si toute la vidéo parle d'un seul sujet, changer de \"Passer\" à \"Toute la vidéo\". Voir les instructions pour plus d'informations."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "L'intégralité de cette vidéo est classée dans cette catégorie ce qui la rend trop intriquée pour l'en séparer"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Se désinscrire de toutes les futures expériences",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -732,7 +789,7 @@
|
||||
"message": "Cacher pour toujours"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Vous avez reçu un avertissement et ne pouvez pas soumettre des segments temporairement. Cela signifie que nous avons remarqué que vous commettez des erreurs courantes qui ne sont pas malveillantes, et que nous voulons simplement clarifier les règles. Vous pouvez également rejoindre ce chat en utilisant discord.gg/SponsorBlock ou matrix.to/#/+sponsor:ajay.app"
|
||||
"message": "Vous avez reçu un avertissement et ne pouvez temporairement pas soumettre de segments. Cela signifie que nous avons remarqué que vous commettiez des erreurs courantes non malveillantes. Veuillez confirmer que vous comprenez le règlement et nous supprimerons l'avertissement. Vous pouvez également rejoindre cette discussion en utilisant discord.gg/SponsorBlock ou matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Le vote a été rejeté en raison d'un avertissement. Cliquez pour ouvrir un chat et y mettre fin , ou revenez plus tard lorsque vous avez le temps.",
|
||||
@@ -741,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Faire un don"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Aider à financer le développement"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Cacher le lien de don"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Page options affichée en mode sombre"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Merci d'avoir installé SponsorBlock."
|
||||
},
|
||||
@@ -801,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Crédits"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Nouveau! Aller à l'essentiel de la vidéo en un clic avec la nouvelle catégorie points essentiels"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "En savoir plus"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Vote contre et crée une copie locale à soumettre à nouveau"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Ouvrir la page wiki de cette catégorie."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Copier et voter contre"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Continuer à voter"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Cela s'appliquera instantanément à vos segments"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Voter contre"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Voter pour"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Cacher le segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Utilisez la molette de votre souris en survolant la boîte d'édition pour ajuster rapidement le minutage. Les combinaisons de touches ctrl ou maj peuvent être utilisées pour affiner les modifications."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Nouveau ! Soyez prévenu-e quand une vidéo est entièrement sponsorisée ou autopromotionnelle"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "j",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Comportement",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interface",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Raccourcis clavier",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Sauvegarde/Restauration",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Divers",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Sauter l'affichage de l'avertissement",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Délier",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Non configuré"
|
||||
},
|
||||
"change": {
|
||||
"message": "Changer"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Il s'agit d'un raccourci intégré à YouTube. Êtes-vous sûr de vouloir l'utiliser ?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Le serveur BETA est actif !"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Ouvrir la page d'options"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "דלג קדימה"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "ביטול השתקה"
|
||||
},
|
||||
"paused": {
|
||||
"message": "מושהה"
|
||||
},
|
||||
@@ -79,9 +82,15 @@
|
||||
"sponsorEnd": {
|
||||
"message": "מקטע נגמר עכשיו"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "ביטול יצירת מקטע"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "לא נמצא סרטון יוטיוב.\nאם זה לא נכון, רענן את הכרטיסייה."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "רענן מקטעים"
|
||||
},
|
||||
"success": {
|
||||
"message": "הצלחה!"
|
||||
},
|
||||
@@ -137,21 +146,67 @@
|
||||
"popupHint": {
|
||||
"message": "רמז: אתה יכול להגדיר קיצורים מהמקלדת דרך תפריט אפשרויות כדי להזין זמנים"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "נקה זמנים"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "הגש זמנים"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "זה משומש בעמוד הסטטים הפומביים כדי להראות כמה תרמת. צפה בזה"
|
||||
},
|
||||
"Username": {
|
||||
"message": "שם משתמש"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "הגדר שם משתמש"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "העתק קוד משתמש פומבי"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "הצטרף לשרת הדיסקורד הרשמי כדי לביא הצעות וחוות דעת!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "הסתר"
|
||||
},
|
||||
"Options": {
|
||||
"message": "אפשרויות"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "הראה כפתורים על הנגן של יוטיוב"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "הסתר כפתורים על הנגן של יוטיוב"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "זה מחביא את הכפתורים שמופיעים בנגן YouTube להגיש מקטעי דילוג."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "השאר את כפתור הדילוג לשיא הסרטון על הנגן באופן קבוע"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "הראה כפתור מידע בנגן YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "החבא כפתור מידע בנגן YouTube"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "הסתר אוטומטית כפתורי אינפורמציה"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "הסתר כפתור מחיקה על הנגן של יוטיוב"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "הצג כפתור מחיקה על הנגן של יוטיוב"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "הפיצ'ר הזה עוקב אחרי מקטעים שדילגת עליהם בכדי ליידע משתמשים אחרים כמה ההגשות שלך עזרו לאחרים ושומשו כמטריקה יחד עם ההצבעות בעד בכדי להבטיח שלא ייכנס ספאם אל תוך המערכת. ההרחבה שולחת הודעה לשרת בכל פעם שאתה מדלג על מקטע. התקווה היא שרוב האנשים לא ישנו את ההגדרה הזו כדי שהמספרי צפייה יהיו מדוייקים :)"
|
||||
},
|
||||
"website": {
|
||||
"message": "אתר",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"sourceCode": {
|
||||
"message": "קוד מקור",
|
||||
"description": "Used on Firefox Store Page"
|
||||
@@ -159,6 +214,15 @@
|
||||
"errorCode": {
|
||||
"message": "קוד שגיאה: "
|
||||
},
|
||||
"skip": {
|
||||
"message": "דלג"
|
||||
},
|
||||
"mute": {
|
||||
"message": "השתק"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "השתק {0}?"
|
||||
},
|
||||
"minLower": {
|
||||
"message": "דקה"
|
||||
},
|
||||
@@ -172,18 +236,235 @@
|
||||
"message": "שעות"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "חסכת לאנשים"
|
||||
"message": "חסכת לאנשים",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " מחייהם"
|
||||
"message": " מחייהם",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "נוצר על ידי"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "אתרים נתמכים: "
|
||||
},
|
||||
"add": {
|
||||
"message": "הוסף"
|
||||
},
|
||||
"save": {
|
||||
"message": "שמור"
|
||||
},
|
||||
"reset": {
|
||||
"message": "אתחל"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "ערוך/העתק"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "שמור לקובץ"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "טען מקובץ"
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "הגדר אפשרויות"
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "הגש מקטע"
|
||||
},
|
||||
"submit": {
|
||||
"message": "הגש"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "ביטול"
|
||||
},
|
||||
"delete": {
|
||||
"message": "מחק"
|
||||
},
|
||||
"preview": {
|
||||
"message": "תצוגה מקדימה"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "לא מוגש"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "סקור"
|
||||
},
|
||||
"edit": {
|
||||
"message": "עריכה"
|
||||
},
|
||||
"to": {
|
||||
"message": "עד ל",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "נותן חסות"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "גישה אקסקלוסיבית"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "מוזיקה: קטעים ללא מוזיקה"
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "ללא מוזיקה"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "קטע חשוב"
|
||||
},
|
||||
"autoSkip": {
|
||||
"message": "דילוג אוטומטי"
|
||||
},
|
||||
"manualSkip": {
|
||||
"message": "דלג ידנית"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "הראה בטיימליין"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "הראה בטיימליין"
|
||||
},
|
||||
"category": {
|
||||
"message": "קטגוריה"
|
||||
},
|
||||
"skipOption": {
|
||||
"message": "אפשרות דילוג",
|
||||
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(עכשיו)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "עוד קטגוריות"
|
||||
},
|
||||
"chooseACategory": {
|
||||
"message": "בחר קטגוריה"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(סוף)"
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "זמן שגוי/לא נכון"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "שנה קטגוריה"
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "מספר מקטעים"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "הנחיות"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "קראו את ההנחיות!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"categoryUpdate1": {
|
||||
"message": "קטגוריות נמצאות כאן!"
|
||||
},
|
||||
"help": {
|
||||
"message": "עזרה"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "הבנתי",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "לא מעוניין להשתתף בניסויים עתידיים",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "הסתר לעד"
|
||||
},
|
||||
"Donate": {
|
||||
"message": "תרום"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "עזרו לממן את הפיתוח"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "הסתר כפתור תרומה"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "תודה שהתקנת את ספונסרבלוק."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "אנא סקור את האפשרויות הבאות"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "כיצד דילוג עובד"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "שולח"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "עריכה"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "הקצב איטי מדי"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "קוד המקור זמין באופן חופשי ובחינם. אז, אפילו אם משהו יקרה לי, המקטעים שהגשתם לא יאבדו."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "חדשות וכיצד זה נעשה"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "היכן אוכל להשיג את קוד המקור?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "קרדיטים"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "למידע נוסף"
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "העתק ועשה דיסלייק"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "המשך להצביע"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "זה מיידית ישפיע על כל המקטעים שלך"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "השתמש בגלגלת בזמן שהעכבר מעל הזמן בשלב העריכה על מנת לשנות את הזמן יותר מהר. שילוב של הלחצן Ctrl/Shift יכולים לשנות את מהירות השינוי."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "חדש! ראה מתי וידאו בשלמותו הוא פרסומת או פרסום עצמי"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "ימים",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "שעות",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "התנהגות",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "ממשק",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "קיצורי מקלדת",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "גיבוי/שחזור",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"notSet": {
|
||||
"message": "לא הוגדר"
|
||||
},
|
||||
"change": {
|
||||
"message": "שנה"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "זה הוא קיצור דרך מובנה ביוטיוב. האם אתה בטוח שאתה רוצה להשתמש בו?"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Preskoči opet"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Uključi zvuk"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pauzirano"
|
||||
},
|
||||
@@ -79,6 +82,15 @@
|
||||
"sponsorEnd": {
|
||||
"message": "Isječak završava sada"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Otkaži Kreiranje Segmenta"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Nijedan YouTube video nije pronađen.\nAko ovo nije točno, osvježite karticu."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Osvježi segmente"
|
||||
},
|
||||
"success": {
|
||||
"message": "Uspjeh!"
|
||||
},
|
||||
@@ -97,15 +109,33 @@
|
||||
"openPopup": {
|
||||
"message": "Otvori okvir SponsorBlock"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "Zatvori izbornik"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Podnesi isječke"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Jesi li siguran da želiš unijeti ovo?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Dopusti kanal"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Izbaci kanal iz bijele liste"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Glasaj za isječak"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Prijava"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Sačuvali ste ljude od"
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Ljestvica"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "Pošalji"
|
||||
},
|
||||
@@ -113,21 +143,66 @@
|
||||
"message": "Uređivanje dijela prikazat će se nakon što pritisneš gumb za slanje",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Savjet: Možete namjestiti tipke za podnošenje u opcijama"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Očisti vremena"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Unesi vremena"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Ovo se koristi na stranici sa javnim statistikama da se pokaže koliko se pridonijeli. Pogledajte"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Korisničko ime"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Postavi korisničko ime"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Kopiraj javni UserID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Pridružite nam se u službenoj Discord zajednici i pošaljite svoje prijedloge i povrate informacije!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Sakrijte ovo"
|
||||
},
|
||||
"Options": {
|
||||
"message": "Opcije"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "Prikaži gumbe na YouTube Playeru"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "Sakrij gumbe na YouTube playeru"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Ovo skriva gumbe koji se pojavljuju na YouTube playeru za slanje odsječaka za preskakanje."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Zadržite gumb za preskakanje i označavanje na playeru"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Prikaži gumb za informacije na YouTube Playeru"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Sakrij gumb za informacije na YouTube Playeru"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Automatski sakrij info gumb"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Sakrij gumb za brisanje na YouTube playeru"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Pokaži gumb za brisanje na YouTube sviraču"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Omogući brojanje preskakanja"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Pokaži obavijest nakon preskakanja isječka"
|
||||
},
|
||||
@@ -139,6 +214,9 @@
|
||||
"message": "Izvorni kod",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"0": {
|
||||
"message": "Veza istekla. Provjerite svoju internetski vezu. Ako vaš internet radi, poslužitelj je vjerojatno preopterećen ili nedostupan."
|
||||
},
|
||||
"disableSkipping": {
|
||||
"message": "Preskakanje je aktivirano"
|
||||
},
|
||||
@@ -149,6 +227,9 @@
|
||||
"message": "Tvoja slanja",
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
"message": "Čini se da je poslužitelj preopterećen. Pokušajte ponovno za nekoliko sekundi."
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "Kȏd greške: "
|
||||
},
|
||||
@@ -158,6 +239,17 @@
|
||||
"skip_category": {
|
||||
"message": "Preskočiti {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Utišati {0}?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Preskočiti na {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Preskočeno na {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "Deaktiviraj automatsko preskakanje"
|
||||
},
|
||||
@@ -176,6 +268,9 @@
|
||||
"hoursLower": {
|
||||
"message": "h"
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Provjerite status.sponsor.ajay.app za status poslužitelja."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Postavi UserID"
|
||||
},
|
||||
@@ -185,8 +280,8 @@
|
||||
"createdBy": {
|
||||
"message": "Izradio"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Trenutno je postavljeno na:"
|
||||
"supportedSites": {
|
||||
"message": "Podržane stranice: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Omogući podržavanje Invidiousa, onemogući automatsko preskakanje, sakrij gumbe i drugo."
|
||||
@@ -212,12 +307,24 @@
|
||||
"minDurationDescription": {
|
||||
"message": "Isječci kraći od postavljene vrijednosti neće biti preskočeni ili prikazani u playeru."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Duljina trajanja obavijesti o preskakanju (sekunde):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Obavijest o preskakanju ostat će na zaslonu barem ovoliko dugo. Za ručno preskakanje može biti duže vidljivo."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Adresa SponsorBlock poslužitelja"
|
||||
},
|
||||
"save": {
|
||||
"message": "Spremi"
|
||||
},
|
||||
"reset": {
|
||||
"message": "Resetiraj"
|
||||
},
|
||||
"exportOptions": {
|
||||
"message": "Uvezi/Izvezi sve postavke"
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "Postavi opcije"
|
||||
},
|
||||
@@ -236,15 +343,28 @@
|
||||
"preview": {
|
||||
"message": "Pregledaj"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "Neposlano"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "Provjeri"
|
||||
},
|
||||
"edit": {
|
||||
"message": "Uredi"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": "Kopira informacije u međuspremnik koje treba dati razvojnom programeru kada otkrije grešku / kada to programer zatraži. Osjetljive informacije kao što su vaš korisnički ID, kanali s popisa dopuštenih i prilagođena adresa poslužitelja uklonjeni su. Međutim, sadrži informacije kao što su vaš korisnički agent, preglednik, operativni sustav i broj verzije proširenja. "
|
||||
},
|
||||
"to": {
|
||||
"message": "do",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "Sponzor"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Plaćene promocije, plaćene preporuke i izravne reklame. Nije za samopromociju ili besplatno pozivanje na događaje/kreatore/web stranice/proizvode koji im se sviđaju."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Neplaćena promocija ili samopromocija"
|
||||
},
|
||||
@@ -269,6 +389,12 @@
|
||||
"category_outro": {
|
||||
"message": "Završni kadrovi/Zasluge"
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Pregled/Sažetak"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Popuna"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Glazba: Ne-glazbeni dio"
|
||||
},
|
||||
@@ -278,12 +404,28 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Ne-glazbeni"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Istaknuto"
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Livestream: čitanje donacija/poruka"
|
||||
},
|
||||
"category_livestream_messages_short": {
|
||||
"message": "Čitanje poruka"
|
||||
},
|
||||
"autoSkip": {
|
||||
"message": "Automatsko preskakanje"
|
||||
},
|
||||
"manualSkip": {
|
||||
"message": "Ručno preskakanje"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Dopustite isječke koji isključuju zvuk umjesto da ga preskaču"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Boja neposlanog",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"category": {
|
||||
"message": "Kategorija"
|
||||
},
|
||||
@@ -291,6 +433,9 @@
|
||||
"message": "Preskoči opciju",
|
||||
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
|
||||
},
|
||||
"enableTestingServer": {
|
||||
"message": "Omogućite poslužitelj za beta testiranje"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(sada)"
|
||||
},
|
||||
@@ -300,6 +445,10 @@
|
||||
"chooseACategory": {
|
||||
"message": "Odaberi kategoriju"
|
||||
},
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "Da biste poslali segmente s kategorijom \"{0}\", morate je omogućiti u postavkama. Sada ćete biti preusmjereni na postavke.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Moraš odabrati kategoriju za sve segmente koje šalješ!"
|
||||
},
|
||||
@@ -310,7 +459,7 @@
|
||||
"message": "Neispravno/krivo vrijeme"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Kriva kategorija"
|
||||
"message": "Promijenite kategoriju"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Ovaj je video kategoriziran kao glazba. Je li stvarno ima sponzora? Ako je ovo zapravo „Ne-glazbeni segment”, otvori opcije proširenja i aktiviraj ovu kategoriju. Zatim ovaj segment možeš posalti kao „Ne-glazbeni” umjesto sponzora. Pročitaj smjernice ako nešto nije jasno."
|
||||
@@ -330,5 +479,44 @@
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Otvori opcije za preskakanje uvoda, kraja, proizvoda itd."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Doniraj"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Hvala na instaliranju SponsorBlocka."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Slanje"
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Klikom na gumb za reprodukciju označava se početak segmenta, a klik na ikonu za zaustavljanje označava kraj. Možete pripremiti više sponzora prije nego što pritisnete \"Pošalji\". Klikom na gumb za slanje bit će poslano. Klikom na kantu za smeće izbrisat će se."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Uređivanje"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Ovo je presporo"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Gdje mogu pronaći izvorni kod?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Zasluge"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Saznajte više"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Otvorite wiki stranicu ove kategorije."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopiraj i glasaj protiv"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Nastavite glasati"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Ovo će se odmah primijeniti na vaše isječke"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"fullName": {
|
||||
"message": "SponorBlock YouTube-ra - Szponzorok átugrására",
|
||||
"message": "SponsorBlock YouTube-ra - Szponzorok átugrására",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"message": "Szerver: Ez a kérés érvénytelen"
|
||||
},
|
||||
"429": {
|
||||
"message": "Túl sok szponzoridőt jelölt be ezen a videón. Biztos benne, hogy van ennyi?"
|
||||
"message": "Túl sok szponzoridőt jelöltél be ezen a videón. Biztosan van ennyi?"
|
||||
},
|
||||
"409": {
|
||||
"message": "Ez már korábban be lett küldve"
|
||||
@@ -23,7 +23,7 @@
|
||||
"message": "szegmens"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "szegmensek"
|
||||
"message": "szegmens"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Részlet felszavazása"
|
||||
@@ -44,7 +44,7 @@
|
||||
"message": "Ne mutassa többé"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Kattintson a visszaugrásra, hogy visszakerüljön oda, ahonnan ugrott."
|
||||
"message": "Kattints a visszaugrásra, hogy visszakerülj oda, ahonnan ugrottál."
|
||||
},
|
||||
"unskip": {
|
||||
"message": "Visszaugrás"
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Újra-átugrás"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Némítás feloldása"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Szüneteltetve"
|
||||
},
|
||||
@@ -59,13 +62,13 @@
|
||||
"message": "Időzítő megállítva"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "Ahhoz, hogy értékeket szerkesszen, vagy töröljön kattintson az info gombra, vagy nyissa meg a bővítmény felugró ablakát a bővítmény ikonjával a jobb felső sarokban."
|
||||
"message": "Az egyes értékek szerkesztéséhez vagy törléséhez kattints az info gombra, vagy nyisd meg a bővítmény felugró ablakát a bővítmény ikonjával a jobb felső sarokban."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "Biztosan törölni akarja?\n\n"
|
||||
"message": "Biztosan törölni szeretnéd?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "Hiba történt a szponzoridők bejelentésekor. Kérjük, próbálja újra."
|
||||
"message": "Hiba történt a szponzoridők beküldésekor. Kérjük, próbáld újra később."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Ennek a videónak már vannak szegmensei az adatbázisban!"
|
||||
@@ -80,7 +83,7 @@
|
||||
"message": "Szegmens vége"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Szegmens Készítés Visszavonása"
|
||||
"message": "Szegmens készítés visszavonása"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Nem találtunk YouTube videót.\nHa ez helytelen, frissítsd a lapot."
|
||||
@@ -92,13 +95,13 @@
|
||||
"message": "Siker!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "Szavazott!"
|
||||
"message": "Szavaztál!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Úgy tűnik a szerver nem működik. Kérjük, mihamarabb értesítse a fejlesztőket."
|
||||
"message": "Úgy tűnik, a szerver nem működik. Kérjük, mihamarabb értesítsd a fejlesztőket!"
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Kapcsolódási probléma merült fel. Error kód: "
|
||||
"message": "Kapcsolódási probléma merült fel. Hibakód: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Szegmensek törlése"
|
||||
@@ -110,10 +113,10 @@
|
||||
"message": "Felugró ablak bezárása"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Szegmens beküldése"
|
||||
"message": "Szegmensek beküldése"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Biztosan be akarja küldeni?"
|
||||
"message": "Biztosan be akarod küldeni?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Csatorna fehérlistára tétele"
|
||||
@@ -128,29 +131,29 @@
|
||||
"message": "Beküldések"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Megspóroltál másoknak "
|
||||
"message": "Megspóroltál másoknak: "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Ranglista"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "Küldés"
|
||||
"message": "Beküldés"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "A szegmens szerkesztés azután fog megjelenni miután a közzétételre kattintasz",
|
||||
"message": "A szegmens szerkesztés azután fog megjelenni, hogy a beküldésre kattintasz",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Tipp: A beállításokban készíthetsz gyorsbillentyűket a közzétetelhez"
|
||||
"message": "Tipp: A beállításokban megadhatsz gyorsbillentyűket a beküldéshez"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Időpontok törlése"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Időpontok megadása"
|
||||
"message": "Időpontok beküldése"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Ezt használja a nyilvános ranglistán, hogy megmutassa mennyit járult hozzá. Nézze meg"
|
||||
"message": "Ez a nyilvános ranglistán használatos, ami mutatja, mennyit segítettél. Nézd meg"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Felhasználónév"
|
||||
@@ -158,8 +161,14 @@
|
||||
"setUsername": {
|
||||
"message": "Felhasználónév megadása"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Nyilvános UserID másolása"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Szegmens ID másolása"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Csatlakozzon a hivatalos discord szerverhez, hogy javaslatokat és visszajelzést adhasson!"
|
||||
"message": "Gyere, csatlakozz a hivatalos discord szerverhez, hogy javaslatokat és visszajelzést adhass!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Elrejtés"
|
||||
@@ -176,17 +185,17 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Ez elrejti az átugrandó szegmensek megjelöléséhez használt gombokat a YouTube lejátszón."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Kiemeléshez ugrás gomb maradjon a lejátszón"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Info gomb mutatása a YouTube lejátszón"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Info gomb elrejtése a YouTube lejátszón"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Ez a gomb felhoz egy felugró dobozt a YouTube oldalon."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Automatikus elrejtése az Információ Gombnak"
|
||||
"message": "Info gomb automatikus elrejtése"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Törlés gomb elrejtése a YouTube lejátszón"
|
||||
@@ -194,14 +203,23 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Törlés gomb mutatása a YouTube lejátszón"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Ez egy gomb a lejátszón, ami törli az összes beküldetlen szegmensét a jelenlegi videón."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Átugrás-számláló követés bekapcsolása"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Ez a funkció követi, mely szegmenseket ugrotta át, hogy más felhasználók megtudhassák mennyit segítettek a bejelentéseik és a szavazatokkal együtt egy mértékegységként van használva, hogy ne kerülhessen spam az adatbázisba. A bővítmény küld egy üzenetet a szervernek, minden alkalommal, mikor átugrik egy szegmenst. Remélhetőleg nem sokan állítják át ezt a beállítást, hogy a számok pontosak maradhassanak. :)"
|
||||
"message": "Ez a funkció követi, mely szegmenseket ugrottad át, hogy a felhasználók megtudhassák mennyit segítettek a bejelentéseik, és a szavazatokkal együtt egy mértékegységként van használva, hogy ne kerülhessen szemét az adatbázisba. A bővítmény küld egy üzenetet a szervernek, minden alkalommal, mikor átugrasz egy szegmenst. Remélhetőleg nem sokan állítják át ezt a beállítást, hogy a számok pontosak maradhassanak. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Átugrások számlálásának engedélyezése privát/inkognitó füleken"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Leszavazások tárolása"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Minden szegmens amit leszavazol rejtve marad újratöltés után is"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Figyelem: A beállítás kikapcsolása letöröl minden korábban eltárolt szavazatot"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Lekérdezés Hash előtaggal"
|
||||
@@ -213,7 +231,7 @@
|
||||
"message": "Szegmensek újrakeresése új videókon"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Ha a videó új, és még nem találhatóak szegmensek, a bővítmény pár percenkét újra keresi őket, miközben nézi."
|
||||
"message": "Ha a videó új, és még nem találhatóak szegmensek, a bővítmény pár percenkét újra keresi őket, miközben nézed."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Értesítés megjelenítése ismét"
|
||||
@@ -221,8 +239,23 @@
|
||||
"showSkipNotice": {
|
||||
"message": "Jelezzen, ha egy szegmens át lett ugorva"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Teljes méretű átugrási értesítők"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Kis méretű átugrási értesítők Auto átugrás esetén"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Csak kis méretű átugrási értesítők"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Halvány átugrási értesítők Auto átugrás esetén"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Csak halvány átugrási értesítők"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "A SponsorBlock-al átugorhatja a szponzorokat, introkat, outrokat, feliratkozás emlékeztetőket és a YouTube videók többi idegesítő részeit. A SponsorBlock egy közösség által vezérelt böngészőbővítmény, ami lehetővé tesz bárkit arra, hogy megjelölhesse egy szponzor vagy más szegmens kezdő és végpontjait. Ha megosztja ezt az információt, mindenki más ennek a bővítménynek a birtokában egyenesen átugorja majd ezt a szponzorszegmenst. Emellett például a zene videók nem-zene részei is átugorhatóak.",
|
||||
"message": "A SponsorBlockkal átugorhatja a szponzorokat, introkat, outrokat, feliratkozás emlékeztetőket és a YouTube videók többi idegesítő részeit. A SponsorBlock egy közösség által vezérelt böngészőbővítmény, ami lehetővé teszi bárkinek, hogy megjelölhesse egy szponzor vagy más szegmens kezdő és végpontjait. Amint valaki megosztja ezt az információt, mindenki más ennek a bővítménynek a birtokában egyenesen átugorja majd ezt a szponzorszegmenst. Emellett például a videóklipek nem-zene részei is átugorhatóak.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
@@ -238,23 +271,26 @@
|
||||
"description": "The first line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"noticeUpdate2": {
|
||||
"message": "Ha még mindig nem tetszik, kattintson a ne mutassa többé gombra.",
|
||||
"message": "Ha még mindig nem tetszik, kattints a ne mutassa többé gombra.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Billentyű beállítása szegmens átugráshoz"
|
||||
"message": "Szegmens átugrása",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Szegmens kezdése/befejezése",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Billentyű beállítása a beküldés gombhoz"
|
||||
"message": "Szegmensek beküldése",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Válasszon billentyűt azzal, hogy lenyomja"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "A funkció erre a billentyűre lett állítva: "
|
||||
"message": "Válassz egy billentyűt azzal, hogy lenyomod és válaszd ki a módosító billentyű(ke)t, amiket használni szeretnél."
|
||||
},
|
||||
"0": {
|
||||
"message": "Kapcsolati időtúllépés. Ellenőrizze az internetkapcsolatot. Ha az internet működik, a kiszolgáló valószínűleg túlterhelt vagy leállt."
|
||||
"message": "Kapcsolati időtúllépés. Ellenőrizd az internetkapcsolatodat! Ha az internet működik, a kiszolgáló valószínűleg túlterhelt vagy leállt."
|
||||
},
|
||||
"disableSkipping": {
|
||||
"message": "Átugrás bekapcsolva"
|
||||
@@ -267,7 +303,7 @@
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
"message": "Úgy tűnik, hogy a szerver túlterhelt. Néhány másodperc múlva próbálkozzon újra."
|
||||
"message": "Úgy tűnik, hogy a szerver túlterhelt. Próbálkozz újra néhány másodperc múlva."
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "Hibakód: "
|
||||
@@ -275,9 +311,35 @@
|
||||
"skip": {
|
||||
"message": "Átugrás"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Némítás"
|
||||
},
|
||||
"full": {
|
||||
"message": "Teljes videó",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Átugorja ezt: {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} némítása?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Ugrás ide: {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} átugorva",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} némítva",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Ide ugorva: {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "Auto átugrás kikapcsolása"
|
||||
},
|
||||
@@ -288,7 +350,7 @@
|
||||
"message": "Hangjelzés átugráskor"
|
||||
},
|
||||
"audioNotificationDescription": {
|
||||
"message": "A hangjelzés átugráskor lejátszik egy hangot minden alkalommal amikor átugrik egy szegmenst. Ha kikapcsolja (vagy az auto átugrás ki van kapcsolva) nem lesz hangjelzés lejátszva."
|
||||
"message": "A hangjelzés átugráskor lejátszik egy hangot minden alkalommal, amikor egy szegmens átugrásra kerül. Ha kikapcsolod (vagy az auto átugrás ki van kapcsolva), nem lesz hangjelzés lejátszva."
|
||||
},
|
||||
"showTimeWithSkips": {
|
||||
"message": "Idő megtekintése az átugrandók nélkül"
|
||||
@@ -297,10 +359,7 @@
|
||||
"message": "Ez az idő zárójelben jelenik meg az aktuális idő mellett a keresősáv alatt. Megmutatja a videó teljes időtartamát, levonva a szegmenseket. Beletartoznak a csak \"Megjelenítés a keresősávban\" jelöléssel ellátott szegmensek is."
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "Átugrottál "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Megtakarított magának "
|
||||
"message": "Átugrottál: "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "perc"
|
||||
@@ -315,35 +374,50 @@
|
||||
"message": "óra"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Megspóroltál másoknak"
|
||||
"message": "Megspóroltál másoknak",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " az életükből"
|
||||
"message": " az életükből",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "A szerver állapotához tekintse meg a status.sponsor.ajay.app oldalt."
|
||||
"message": "A szerver állapotához tekintsd meg a status.sponsor.ajay.app oldalt."
|
||||
},
|
||||
"changeUserID": {
|
||||
"message": "UserID importálása / exportálása"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "Ez privát információnak minősül. Ez olyan, mint egy jelszó, így nem ajánlott megosztani senkivel. Ha valakinek birtokában van, megszemélyesíthet téged. Ha a nyilvános userID-dat keresed, kattints a vágólap ikonra a felugró ablakban."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "UserID beállítása"
|
||||
},
|
||||
"userIDChangeWarning": {
|
||||
"message": "Figyelem: A UserID megváltoztatása végleges. Biztosan szeretné megtenni? Minden esetben készítsen biztonsági másolatot a régiről."
|
||||
"message": "Figyelem: A UserID megváltoztatása végleges. Biztosan szeretnéd megtenni? Minden esetben készíts biztonsági másolatot a régiről!"
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "Készítette"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Jelenleg erre van állítva:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Harmadik fél Youtube oldalainak támogatása"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "Harmadik fél YouTube oldalainak támogatása. A támogatás bekapcsolásához el kell fogadnod az extra engedélyeket. NEM működik inkognitó módban Chrome-ban és egyéb Chromium változatokban.",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "Támogatott oldalak: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Invidious támogatás engedélyezése, autoátugrás kikapcsolása, gombok eltűntetése és több."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Harmadik fél kliens példányának hozzáadása"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "Egyedi példány hozzáadása. Formátuma CSAK a domain legyen. Például: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "Hozzáadás"
|
||||
},
|
||||
@@ -354,7 +428,7 @@
|
||||
"message": "Invidious példányok listájának visszaállítása"
|
||||
},
|
||||
"resetInvidiousInstanceAlert": {
|
||||
"message": "Épp visszaállítja az Invidious példányok listát"
|
||||
"message": "Az Invidious példányok listájának visszaállítására készülsz"
|
||||
},
|
||||
"currentInstances": {
|
||||
"message": "Jelenlegi példányok:"
|
||||
@@ -365,20 +439,26 @@
|
||||
"minDurationDescription": {
|
||||
"message": "A beállított értéknél rövidebb szegmenseket nem ugorja át és nem jeleníti meg a lejátszó."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Átugrási értesítés hossza (másodpercekben):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Az átugrási értesítés ennyi ideig marad a képernyőn. Manuális átugrásnál tovább is látható maradhat."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "A következő szegmens rövidebb, mint az Ön által beállított minimális időtartam. Ez azt jelentheti, hogy már beküldhették, csak emiatt az opció miatt Önnek figyelmen kívül marad. Biztosan beküldi?"
|
||||
"message": "A következő szegmens rövidebb, mint az általad beállított minimális időtartam. Ez azt jelentheti, hogy már beküldhették, csak emiatt az opció miatt nálad nem jelenik meg. Biztosan beküldöd?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Aktív élő közvetítés vagy premier közben nem lehet szegmenseket beküldeni. Kérjük várd meg a végét, majd frissítsd az oldalt és ellenőrizd, hogy a szegmensek nem csúsztak-e el."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Feltöltés gomb megjelenítése"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Ez a gomb a YouTube lejátszón jelenik meg, miután kiválasztott egy időtartamot és készen áll a beküldésre."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock szerver címe"
|
||||
},
|
||||
"customServerAddressDescription": {
|
||||
"message": "A SponsorBlock által használt cím a szerverre történő hívások kezdeményezésére szolgál.\nHacsak nincs saját szerverpéldánya, ezt nem szabad megváltoztatni."
|
||||
"message": "A SponsorBlock által használt cím a szerverre történő hívások kezdeményezésére szolgál.\nHacsak nincs saját szerverpéldányod, ezt nem szabad megváltoztatni."
|
||||
},
|
||||
"save": {
|
||||
"message": "Mentés"
|
||||
@@ -387,10 +467,10 @@
|
||||
"message": "Visszaállítás"
|
||||
},
|
||||
"customAddressError": {
|
||||
"message": "A cím helytelenül van formázva. Győződjön meg róla, hogy http:// vagy https:// van az elején, és nem fordított perjeleket használ."
|
||||
"message": "A cím helytelenül van formázva. Győződj meg róla, hogy http:// vagy https:// van az elején, és nincsenek perjelek a végén."
|
||||
},
|
||||
"areYouSureReset": {
|
||||
"message": "Biztosan vissza szeretné állítani?"
|
||||
"message": "Biztosan vissza szeretnéd állítani?"
|
||||
},
|
||||
"mobileUpdateInfo": {
|
||||
"message": "az m.youtube.com már támogatott"
|
||||
@@ -398,17 +478,26 @@
|
||||
"exportOptions": {
|
||||
"message": "Összes beállítás importálása / exportálása"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Szerkesztés/másolás"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Mentés fájlba"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Betöltés fájlból"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Ez az össze beállítása JSON-ban. Ebbe bele tartozik a userID-ja, szóval csak ésszel ossza meg."
|
||||
"message": "Ez az összes beállításod JSON formátumban. Ebbe bele tartozik a userID-d is, szóval csak ésszel oszd meg."
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "Beállítások"
|
||||
"message": "Beállítások módosítása"
|
||||
},
|
||||
"exportOptionsWarning": {
|
||||
"message": "Figyelem: Az beállítások megváltoztatása végleges, és tönkreteheti a bővítményét. Biztosan meg szeretné tenni? Készítsen egy biztonsági mentést a régi beállításairól, biztos, ami biztos."
|
||||
"message": "Figyelem: A beállítások megváltoztatása végleges, és tönkreteheti a bővítményed. Biztosan meg szeretnéd tenni? Készíts egy biztonsági mentést a régi beállításaidról, biztos, ami biztos."
|
||||
},
|
||||
"incorrectlyFormattedOptions": {
|
||||
"message": "Ez a JSON helytelenül van formázva. A beállításai nem lettek megváltoztatva."
|
||||
"message": "Ez a JSON helytelenül van formázva. A beállításaid nem lettek megváltoztatva."
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Szegmens beküldése"
|
||||
@@ -441,38 +530,45 @@
|
||||
"message": "Hiba a vágólapra másoláskor"
|
||||
},
|
||||
"copyDebugInformationOptions": {
|
||||
"message": "Információt másol a vágólapra, amit megadhat egy fejlesztőnek, ha bejelent egy hibát, vagy egy fejlesztő kéri öntől. Az érzékeny információkat, például a felhasználói azonosítót, az engedélyezőlistán szereplő csatornákat és az egyéni szerver címét eltávolítottuk. Azonban tartalmaz olyan információkat, mint a böngésző, az operációs rendszer és a bővítmény verziószáma. "
|
||||
"message": "Információt másol a vágólapra, amit megadhatsz egy fejlesztőnek, ha bejelentesz egy hibát, vagy egy fejlesztő kéri tőled. Az érzékeny információkat, például a userID-t, az engedélyezőlistán szereplő csatornákat és az egyéni szerver címét eltávolítottuk. Azonban tartalmaz olyan információkat, mint a böngésző, az operációs rendszer és a bővítmény verziószáma. "
|
||||
},
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "A hibakeresési információ másolva lett a vágólapjára. Nyugodtan távolítson el belőle olyan információkat, amiket nem szívesen osztana meg. Mentse el szöveges fájlként, vagy másolja a hibajelentésbe."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "A billentyű"
|
||||
"message": "A hibakeresési információ másolva lett a vágólapjára. Nyugodtan távolíts el belőle olyan információkat, amiket nem szívesen osztanál meg. Mentsd el szöveges fájlként, vagy másold a hibajelentésbe."
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "már máshoz van állítva. Kérem, válasszon egy másik billentyűt."
|
||||
"message": "Ez a billentyűparancs egy másik művelethez tartozik. Kérjük, válassz egy újat."
|
||||
},
|
||||
"to": {
|
||||
"message": "-tól eddig:",
|
||||
"message": "–",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"category_sponsor": {
|
||||
"message": "Szponzor"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Fizetett promóció, vagy közvetlen reklám. Nem ön-promóció vagy ingyenes ajánlat (/shoutout) emberekről/termékekről/weboldalakról amik tetszenek nekik."
|
||||
"message": "Fizetett promóció, vagy közvetlen reklám. Nem önpromóció vagy ingyenes ajánlat (shoutout) emberekről/termékekről/weboldalakról amik tetszenek nekik."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Nem fizetett/ön-promóció"
|
||||
"message": "Nem fizetett/önpromóció"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "Hasonló a szponzorhoz, de nem fizetett vagy ön-promóció. Beletartozik a saját ruhaáru, adományok, vagy infó arról hogy kivel működtek együtt."
|
||||
"message": "Hasonló a szponzorhoz, de nem fizetett, vagy önpromóció. Beletartozik a saját ruhaáru, adományok, vagy infó arról, hogy kivel működtek együtt."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exkluzív hozzáférés"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Csak teljes videók megjelölésére. Akkor használt, amikor egy videó egy olyan terméket, szolgáltatást vagy helyszínt mutat be, amihez ingyenes vagy kedvezményes hozzáférést kaptak."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Ez a videó olyan terméket, szolgáltatást vagy helyszínt mutat be, amihez ingyenes vagy kedvezményes hozzáférést kaptak",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Emlékeztető (Feliratkozás)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "Egy rövid emlékeztető arról, hogy likeoljunk, iratkozzunk fel, vagy kövessük a tartalom közben. Ha hosszabb szakasz, vagy egy adott témáról van, inkább a az ön-promóció alá tartozik."
|
||||
"message": "Egy rövid emlékeztető arról, hogy likeoljunk, iratkozzunk fel, vagy kövessük a tartalom közben. Ha hosszabb szakasz, vagy egy adott témáról van, inkább az önpromóció alá tartozik."
|
||||
},
|
||||
"category_interaction_short": {
|
||||
"message": "Emlékeztető"
|
||||
@@ -495,12 +591,33 @@
|
||||
"category_preview": {
|
||||
"message": "Előzetes/Ismétlés"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Az előző részekben történtek rövid ismétlése, vagy a videó további tartalmának előzetese. Összevágott jelenetekhez, nem szóbeli összegzéshez."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Témától eltérő töltelék/viccek"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Csak töltelékként, vagy humornak hozzáadott részek, amik nem szükségesek a videó fő tartalmának megértéséhez. Ne tartalmazzon olyan szegmenseket, amik kontextust, vagy alapvető információkat szolgáltatnak."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Töltelék"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Zene: nem-zene szegmens"
|
||||
},
|
||||
"category_music_offtopic_description": {
|
||||
"message": "Csak videóklipekhez. Ezt csak videóklipek olyan részeihez szabad használni, amiket nem fed le a többi kategória."
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Nem-Zene"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Kiemelés"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "A videónak az a része, amelyiket a legtöbb ember látni szeretne. Hasonlít az \"A videó x percnél kezdődik\" jellegű hozzászólásokhoz."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Élő adás: Adomány / üzenet olvasások"
|
||||
},
|
||||
@@ -519,8 +636,31 @@
|
||||
"disable": {
|
||||
"message": "Kikapcsol"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "A szín helytelenül van formázva. Egy 3 vagy 6 számjegyből álló hex kódnak kell lennie egy kettőskereszttel az elején."
|
||||
"autoSkip_POI": {
|
||||
"message": "Auto ugrás a kezdetéhez"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Kérdezzen rá a videó betöltésekor"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Megjelenítés a keresősávban"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Címke megjelenítése"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Minden szegmens automatikus átugrása, ha van nem-zene szegmens"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Szegmensek engedélyezése, amelyek lenémítják a hangot az átugrás helyett"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Mutasson egy ikont, amikor egy videó egésze reklám",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Beküldetlen színe",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "Keresősáv színe"
|
||||
@@ -528,14 +668,18 @@
|
||||
"category": {
|
||||
"message": "Kategória"
|
||||
},
|
||||
"skipOption": {
|
||||
"message": "Átugrás beállítása",
|
||||
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
|
||||
},
|
||||
"enableTestingServer": {
|
||||
"message": "Bétateszt szerver bekapcsolása"
|
||||
},
|
||||
"whatEnableTestingServer": {
|
||||
"message": "A hozzájárulásai/szavazatai NEM FOGNAK SZÁMÍTANI a fő szerveren. Csak tesztelésre használja."
|
||||
"message": "A beküldéseid és szavazataid NEM FOGNAK SZÁMÍTANI a fő szerveren. Csak tesztelésre használd."
|
||||
},
|
||||
"testingServerWarning": {
|
||||
"message": "Az összes hozzájárulás/szavazat NEM FOG SZÁMÍTANI a fő szerverhez, amíg a tesztszerverhez kapcsolódik. Győződjön meg róla, hogy ki van kapcsolva, ha valódi hozzájárulásokat szeretne megosztani."
|
||||
"message": "Egyik beküldésed vagy szavazatod SEM FOG SZÁMÍTANI a fő szerverhez, amíg a tesztszerverhez kapcsolódsz. Győződj meg róla, hogy ki van kapcsolva, ha valódi beküldéseket akarsz végezni."
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(Most)"
|
||||
@@ -544,10 +688,17 @@
|
||||
"message": "További kategóriák"
|
||||
},
|
||||
"chooseACategory": {
|
||||
"message": "Válasszon kategóriát"
|
||||
"message": "Válassz egy kategóriát"
|
||||
},
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "Hogy \"{0}\" kategóriájú szegmenst küldhess be, először engedélyezned kell a beállításokban. Most átirányításra kerülsz a beállításokhoz.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Figyelem: Az ilyen típusú szegmensekből egyszerre csak egy lehet aktív. Több beküldése esetén véletlenszerűen az egyik fog megjelenni."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Minden szegmenshez kategóriát kell választania beküldés előtt!"
|
||||
"message": "Minden szegmenshez kategóriát kell választani beküldés előtt!"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(Vége)"
|
||||
@@ -558,26 +709,48 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "elrejtve: túl rövid"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "kézzel elrejtve"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "A csatorna ID még nem került betöltésre. Ha beágyazott videót használsz, próbáld meg inkább a YouTube oldalon keresztül. Ezt okozhatja még a YouTube elrendezésének változása is. Ha így gondolod, hagyj egy kommentet itt:"
|
||||
},
|
||||
"videoInfoFetchFailed": {
|
||||
"message": "Úgy tűnik, valami korlátozza a SponsorBlock hozzáférését a videó adataihoz. További információkért látogass el ide: https://github.com/ajayyy/SponsorBlock/issues/741 (angol nyelvű)."
|
||||
},
|
||||
"youtubePermissionRequest": {
|
||||
"message": "Úgy tűnik, a SponsorBlock nem tud csatlakozni a YouTube API-hoz. A javításhoz fogadd el a megjelenő engedélykérést, várj néhány másodpercet, majd töltsd újra az oldalt."
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "Engedély jóváhagyása"
|
||||
},
|
||||
"permissionRequestSuccess": {
|
||||
"message": "Engedélykérés sikeres!"
|
||||
},
|
||||
"permissionRequestFailed": {
|
||||
"message": "Engedélykérés sikertelen. Nem nyomtál az elutasításra?"
|
||||
},
|
||||
"adblockerIssueWhitelist": {
|
||||
"message": "Ha nem sikerül megoldani a problémát, kapcsold ki a \"Csatorna ellenőrzése átugrás előtt\" opciót, mert a SponsorBlock nem tudja megszerezni a csatorna-információkat ehhez a videóhoz"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "Csatorna ellenőrzése átugrás előtt"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "Alapértelmezett állapotban, a bővítmény átugorhat szegmenseket, mielőtt tudná melyik csatornán van. Alapból ezért, néhány szegmens, ami a videók legelején van, engedélyezett csatornákon is átugródhat. Ennek a bekapcsolásával ez elkerülhető, de minden átugrás előtt lesz egy kis késleltetés, hiszen a channelID megszerzéséhez elkell egy kis idő. Ez a késleltetés akár észrevehetetlen is lehet, ha elég gyors a kapcsolata."
|
||||
"message": "Alapértelmezett állapotban a bővítmény átugorhat szegmenseket, mielőtt tudná melyik csatornán van. Alapból ezért néhány videó eleji szegmens engedélyezett csatornákon is átugródhat. Ennek a bekapcsolásával ez elkerülhető, de minden átugrás előtt lesz egy kis késleltetés, hiszen a channelID megszerzéséhez kell egy kis idő. Ez a késleltetés akár észrevehetetlen is lehet, ha elég gyors a kapcsolatod."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Gondolja át a \"Csatorna ellenőrzése átugrás előtt\" bekapcsolását"
|
||||
"message": "Fontold meg a \"Csatorna ellenőrzése átugrás előtt\" bekapcsolását"
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "Helytelen/rossz időzítés"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Hibás kategória"
|
||||
"message": "Kategória módosítása"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Ez a videó zeneként van kategorizálva. Biztos benne, hogy ennek van szponzora? Ha ez valójában egy \"nem-zene szegmens\", nyissa meg a bővítmény beállításait és kapcsolja be azt a kategóriát. Ezt követően elküldheti ezt a szegmenst \"nem-zene\"-ként szponzor helyett. Amennyiben nem érti, kérjük olvassa el az irányelveket."
|
||||
"message": "Ez a videó zeneként van kategorizálva. Biztos vagy benne, hogy ennek van szponzora? Ha ez valójában egy \"nem-zene szegmens\", nyisd meg a bővítmény beállításait és kapcsold be ezt a kategóriát. Ezt követően beküldheted a szegmenst \"nem-zene\"-ként szponzor helyett. Ha nem érthető, kérjük olvasd el az irányelveket."
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "Több szegmens"
|
||||
@@ -586,14 +759,14 @@
|
||||
"message": "Irányelvek"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "Olvassa el az irányelveket!!",
|
||||
"message": "Olvasd el az irányelveket!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"categoryUpdate1": {
|
||||
"message": "Itt vannak a kategóriák!"
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Nyissa meg a beállításokat, hogy átugorhasson introkat, outrokat stb."
|
||||
"message": "Nyisd meg a beállításokat, hogy átugorhass introkat, outrokat stb."
|
||||
},
|
||||
"help": {
|
||||
"message": "Segítség"
|
||||
@@ -602,28 +775,177 @@
|
||||
"message": "Értettem",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Ez a szegmens nagy. Ha az egész videó egy témáról szól, akkor válts \"Átugrás\"-ról \"Teljes videó\"-ra. További információkért lásd az irányelveket."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Az egész videó ezzel a kategóriával van megjelölve és túl szorosan kapcsolódik hozzá, hogy le lehessen választani"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Minden további kísérlet elutasítása",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "Eltüntetés örökre"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Figyelmeztetést kaptál, és ideiglenesen nem tudsz szegmenseket beküldeni. Ez azt jelenti, hogy észrevettük, hogy néhány ártalmatlan gyakori hibát vétettél. Kérjük erősítsd meg, hogy megértetted a szabályokat és eltávolítjuk a figyelmeztetést. Ehhez a beszélgetéshez csatlakozhatsz a discord.gg/SponsorBlock vagy matrix.to/#/#sponsor:ajay.app címeken is."
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Szavazás visszautasítva figyelmeztetés miatt. Kattints, hogy megnyiss egy beszélgetést a tisztázásához, vagy gyere vissza később, amikor időd van rá.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Támogatás"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Segíts a fejlesztés támogatásában"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Támogatás link elrejtése"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Sötét téma a Beállításokban"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Köszönjük, hogy telepítetted a SponsorBlockot."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Kérjük, nézd át az alábbi beállításokat"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Sok funkció le van tiltva alapból. Ha át akarsz ugrani bevezetőket, záróképernyőket, Invidioust használnál, stb., engedélyezd őket alább. Lehetőség van a felület különböző elemeinek elrejtésére/megjelenítésére is."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Az átugrás működése"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "A videók szegmensei automatikusan átugrásra kerülnek, ha szerepelnek az adatbázisban. Megnyithatod a felugró ablakot a bővítmény ikonjára kattintva, hogy megtekinthesd őket."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Ahányszor átugrasz egy szegmenst, kapni fogsz egy értesítést. Ha rossznak tűnik az időzítés, szavazd le a leszavazás gombra kattintva! A felugró ablakban is szavazhatsz."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Küldés"
|
||||
"message": "Beküldés"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Beküldeni lehet a felugró ablakban a \"Szegmens eleje\" gombra kattintva, vagy a videó lejátszón lévő gombokkal."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "A lejátszás gomb megnyomása jelezte a szegmens kezdetét és a stop gomb megnyomása jelzi a végét. Több szponzort is előkészíthetsz, mielőtt a beküldésre nyomnál. A feltöltés gombra kattintva beküldésre kerülnek a szegmensek. A szemetesre kattintva kitörlődnek."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Szerkesztés"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Ha hibáztál, szerkesztheted vagy törölheted a szegmenseid, a felfele nyílra kattintást követően."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Ez túl lassú"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Vannak gyorsbillentyűk is, ha használni szeretnéd őket. Nyomd meg a pontosvessző billentyűt egy szponzor szegmens elejének/végének jelzéséhez és nyomd meg a vesszőt a beküldéshez. Ezek módosíthatók a beállításokban. Ha nem QWERTY-t használsz, valószínűleg szükséges lesz megváltoztatni a billentyűket."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Szerezhetek egy másolatot az adatbázisról? Mi történik, ha eltűnik a fejlesztő?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Az adatbázis nyilvános, és elérhető itt:"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "A forráskód szabadon elérhető. Tehát még ha valami történne is velem, a beküldések nem vesznek el."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Hírek és hogyan készül"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Hol szerezhetem meg a forráskódot?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Készítők"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Tudj meg többet"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Leszavazza és készít egy helyi másolatot, amit beküldhetsz"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "A kategória wiki lapjának megnyitása."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Másol és leszavaz"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Szavazás folytatása"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Ez azonnal érvényes lesz a szegmenseidre"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Leszavazás"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Felszavazás"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Szegmens elrejtése"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Használd egérgörgődet a szerkesztő mező fölött, hogy gyorsan módosíthasd az időt. A ctrl vagy shift billentyűk kombinációjával finomhangolhatod a változás mértékét."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Új! Láthatod, ha egy videó teljes egészében szponzorált, vagy önpromóció"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "n",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "ó",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Működés",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Felület",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Gyorsbillentyűk",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Biztonsági mentés",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Egyéb",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Átugrási értesítés kinézete",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Megszüntetés",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Nincs beállítva"
|
||||
},
|
||||
"change": {
|
||||
"message": "Megváltoztat"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Ez egy beépített YouTube gyorsbillentyű. Biztosan ezt szeretnéd használni?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BÉTA szerver engedélyezve van!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Beállítások megnyitása"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Lewati Ulang"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Batalkan bisu"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Dijeda"
|
||||
},
|
||||
@@ -85,6 +88,9 @@
|
||||
"noVideoID": {
|
||||
"message": "Video YouTube tidak ditemukan.\nJika terjadi kesalahan, segarkan halaman."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Perbarui segmen"
|
||||
},
|
||||
"success": {
|
||||
"message": "Sukses!"
|
||||
},
|
||||
@@ -155,6 +161,12 @@
|
||||
"setUsername": {
|
||||
"message": "Atur Nama Pengguna"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Salin UserID Publik"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Salin ID Segmen"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Gabung dengan server resmi discord untuk memberikan kritik dan saran!"
|
||||
},
|
||||
@@ -173,14 +185,17 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Ini akan menyembunyikan tombol yang muncul di pemutar YouTube untuk mengirimkan segmen yang dilewati."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Tetap lewati ke tombol Highlight di Pemutar"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Tampilkan Tombol Info Di Pemutar Video YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Sembunyikan Tombol Info Di Pemutar Video YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Ini adalah tombol yang membuka popup di halaman YouTube."
|
||||
"autoHideInfoButton": {
|
||||
"message": "Otomatis Sembunyikan Tombol Info"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Sembunyikan Tombol Hapus Di Pemutar Video YouTube"
|
||||
@@ -188,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Tampilkan Tombol Hapus Di Pemutar Video YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Ini adalah tombol di pemutar YouTube yang akan menghapus semua segmen yang belum dikirim pada video."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Aktifkan Pelacakan Jumlah Lewati"
|
||||
},
|
||||
@@ -200,8 +212,17 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Aktifkan Pelacakan Jumlah Lewati Pada Tab Privat/Penyamaran"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Tampung segmen yang dijempolbawahkan"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Semua segmen yang dijempolbawahkan akan tetap tersembunyi bahkan jika disegarkan"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Peringatan: Menonaktifkan ini akan menghapus semua jempol bawah yang ditampung"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Query By Hash Prefix"
|
||||
"message": "Kueri dengan Hash Prefix"
|
||||
},
|
||||
"whatQueryByHashPrefix": {
|
||||
"message": "Daripada meminta segmen dari server menggunakan videoID, 4 huruf pertama dari hash dari videoID dikirim. Server akan mengirim kembali data untuk semua video dengan hash yang mirip."
|
||||
@@ -218,6 +239,21 @@
|
||||
"showSkipNotice": {
|
||||
"message": "Tampilkan pemberitahuan setelah melewati segmen"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Lewati maklumat ukuran penuh"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Maklumat lewati kecil untuk lewati otomatis"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Lewati semua maklumat kecil"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Pudar maklumat lewati untuk semua lewati otomatis"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Lewati semua maklumat pudar"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock membuat anda melewati sponsor, intro, outro, pengingat berlangganan dan segmen mengganggu lainnya di video YouTube. SponsorBlock adalah ekstensi browser crowdsourced yang membolehkan siapa saja mengirim waktu awal dan akhir dari segmen sponsor dan segmen video YouTube lainnya. Setelah seseorang mengirim informasi ini, orang lain yang memakai ekstensi ini akan melewati segmen sponsor di video yang sama. Anda juga dapat melewati bagian non-musik di musik video.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -239,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Atur tombol untuk melewati sebuah segmen"
|
||||
"message": "Lewati segmen",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Atur tombol untuk mulai/hentikan segmen"
|
||||
"message": "Mulai/hentikan segmen",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Atur tombol untuk kirim submisi"
|
||||
"message": "Kirim segmen",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Pilih tombol dengan mengetikkannya"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Tombol diatur menjadi: "
|
||||
"message": "Pilih sebuah tombol dengan mengetikkannya dan pilih tombol modifier apa saja yang Anda ingin gunakan."
|
||||
},
|
||||
"0": {
|
||||
"message": "Koneksi Timeout. Cek koneksi internet anda. Jika internet anda berfungsi, server mungkin kewalahan atau down."
|
||||
@@ -275,9 +311,19 @@
|
||||
"skip": {
|
||||
"message": "Lewati"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Bisukan"
|
||||
},
|
||||
"full": {
|
||||
"message": "Video Penuh",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Lewati {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Bisukan {0}?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Lompat ke {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
@@ -286,6 +332,10 @@
|
||||
"message": "{0} dilewati",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} Dibisukan",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Melewati ke {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
@@ -311,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Anda sudah melewati "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Anda sudah menghemat waktu "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "menit"
|
||||
},
|
||||
@@ -327,10 +374,12 @@
|
||||
"message": "jam"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Anda sudah menghemat waktu orang lain"
|
||||
"message": "Anda sudah menghemat waktu orang lain",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " dari hidup mereka"
|
||||
"message": " dari hidup mereka",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Cek status.sponsor.ajay.app untuk status server."
|
||||
@@ -338,6 +387,9 @@
|
||||
"changeUserID": {
|
||||
"message": "Impor/Ekspor UserID"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "Ini harus dirahasiakan. Ini seperti kata sandi dan tidak boleh dibagikan kepada siapa pun. Jika seseorang mempunyai ini, mereka bisa menyamar jadi anda. Jika anda mencari UserID publik anda, klik ikon papan tulis di popup."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Atur UserID"
|
||||
},
|
||||
@@ -347,15 +399,25 @@
|
||||
"createdBy": {
|
||||
"message": "Dibuat Oleh"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Saat ini diatur pada:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Dukung Situs Youtube Pihak Ketiga"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "Dukung klien YouTube pihak ketiga. Untuk mengaktifkan dukungan, anda harus menerima izin tambahan. Ini tidak akan bekerja di Mode Samaran di Chrome dan varian Chromium lainnya.",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "Situs yang didukung: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Aktifkan dukungan Invidious, nonaktifkan lewati otomatis, tombol sembunyi dan lainnya."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Tambah Instansi Klien Pihak Ketiga"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "Tambahkan instansi khusus. Ini harus diformat Hanya dengan domain. Contoh: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "Tambah"
|
||||
},
|
||||
@@ -377,15 +439,21 @@
|
||||
"minDurationDescription": {
|
||||
"message": "Segmen yang lebih kecil dari nilai yang diatur tidak akan dilewati atau tampil di pemutar."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Lewati maklumat berdurasi (detik):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Maklumat lewati akan tetap di layar setidaknya selama ini. Untuk lewati manual, mungkin akan terlihat lebih lama."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "Submisi ini lebih pendek dari opsi durasi minimalmu. Ini dapat berarti ini sudah dikirim, dan hanya akan diabaikan karena opsi ini. Apakah anda yakin ingin mengirim?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Mengirim pada livestream atau premiere tidak diperbolehkan. Mohon tunggu sampai selesai, lalu muat ulang halamannya dan verifikasi bahwa segmentnya masih valid."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Tampilkan Tombol Unggah"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Tombol ini muncul di pemutar video YouTube setelah anda memilih stempel waktu dan siap untuk dikirimkan."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Alamat Server SponsorBlock"
|
||||
},
|
||||
@@ -410,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Impor/Ekspor Semua Pengaturan"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Edit/salin"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Simpan ke file"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Muat dari file"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Ini adalah seluruh konfigurasi anda di JSON. Ini mencakup userID anda, maka pastikan anda membagikan ini dengan bijak."
|
||||
},
|
||||
@@ -458,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Informasi debug telah disalin ke papan klip. Jangan ragu untuk menghapus informasi yang tidak ingin anda bagikan. Simpan ini di file teks atau salin ke laporan bug."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Tombolnya"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "terikat pada tindakan lain. Mohon memilih tombol lain."
|
||||
"message": "Pintasan ini telah diatur ke aksi yang lain. Mohon pilih yang lain."
|
||||
},
|
||||
"to": {
|
||||
"message": "sampai",
|
||||
@@ -480,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Mirip dengan \"sponsor\" kecuali ini tidak dibayar atau promosi diri sendiri. Ini termasuk merchandise, donasi, atau informasi tentang siapa yang berkolaborasi dengan mereka."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Akses Eksklusif"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Hanya untuk menandai seluruh video. Digunakan ketika sebuah video mempromosikan sebuah produk, layanan atau lokasi yang diterima secara gratis atau mendapatkan izin."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Video ini mempromosikan sebuah produk, layanan atau lokasi yang diterima secara gratis atau mendapatkan izin",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Pengingat Interaksi (Berlangganan)"
|
||||
},
|
||||
@@ -510,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Rekapan singkat dari episode sebelumnya, atau pratinjau tentang apa yang akan terjadi nanti di video. Dimaksudkan untuk klip bersama yang di edit, bukan ringkasan yang diucapkan."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Pengisi Tak berkaitan/Lawakan"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Adegan tangensial ditambahkan hanya untuk pengisi atau humor yang tidak diperlukan untuk memahami isi utama video. Ini tidak boleh mencakup segmen yang memberikan detail konteks atau latar belakang."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Isian"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musik: Bagian Non-Musik"
|
||||
},
|
||||
@@ -519,6 +612,12 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Non-Musik"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Sorotan"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Bagian video yang banyak orang lihat. Sama untuk komentar \"Video dimulai di x\"."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Livestream: Baca Pesan/Donasi"
|
||||
},
|
||||
@@ -537,17 +636,27 @@
|
||||
"disable": {
|
||||
"message": "Nonaktif"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "Otomatis lewati ke awal"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Tanya saat video dimuat"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Tampilkan di Bilah Waktu"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Tampilkan Label"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Lewati semua segmen secara otomatis ketika ada segmen non-music"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Warna anda tidak diformat dengan benar. Harusnya terdiri dari 3 atau 6 digit kode heksa dengan tagar di awal."
|
||||
"muteSegments": {
|
||||
"message": "Perbolehkan segmen untuk bisu daripada melewati"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Tunjukkan ikon ketika keseluruhan video merupakan iklan",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Warna yang Belum Dikirim",
|
||||
@@ -585,6 +694,9 @@
|
||||
"message": "Untuk mengirimkan segmen dengan kategori \"{0}\", Anda harus mengaktifkannya di opsi. Anda akan diarahkan ke opsi sekarang.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Perhatian: Tipe segmen ini hanya bisa maksimum aktif satu kali. Mengirimkan beberapa dapat mengakibatkan muncul pada kondisi acak."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Anda harus memilih kategori untuk semua segmen yang anda kirimkan!"
|
||||
},
|
||||
@@ -597,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "disembunyikan: terlalu pendek"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "disembunyikan sendiri"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "ID Channel belum dimuat. Apabila anda menggunakan video yang tersematkan, coba menggunakan halaman utama YouTube. Hal ini juga dapat disebabkan oleh perubahan yang ada pada tampilan YouTUbe, apabila anda mengira seperti itu, buat komentar disini:"
|
||||
@@ -632,7 +747,7 @@
|
||||
"message": "Salah, Waktu Tidak Tepat"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Salah Kategori"
|
||||
"message": "Ubah Kategori"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Video ini dikategorikan sebagai musik. Apakah anda yakin ini berisi sponsor? Jika ini ternyata adalah \"Segmen non-musik\", buka pengaturan ekstensi dan aktifkan kategorinya. Lalu, anda bisa mengirim segmen ini sebagai \"Non-musik\" bukannya sponsor. Harap membaca panduan jika anda kebingungan."
|
||||
@@ -660,22 +775,177 @@
|
||||
"message": "Mengerti",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Segmen ini besar. Jika seluruh video tentang satu topik, ubah dari \"Lewati\" ke \"Video Penuh\". Lihat pedoman untuk informasi lanjutan."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Seluruh video ini ditandai sebagai kategori ini dan terlalu terintegrasi untuk dapat dipisahkan"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Tidak ikut eksperimen masa depan",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "Sembunyikan selamanya"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Anda mendapatkan peringatan dan tidak bisa mengirim segmen sementara. Ini dikarenakan kami melihat kamu melakukan beberapa kesalahan yang umum, mohon konfirmasi bahwa kamu mengerti perundangan dan kami akan hapus peringatan. Kamu bisa bergabung ke obrolan menggunakan discord.gg/SponsorBlock atau matrix.io/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Suara ditolak karena peringatan. Klik untuk buka obrolan untuk menyelesaikannya, atau kembali beberapa saat lagi ketika ada waktu.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Donasi"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Bantu danai perkembangan"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Sembunyikan tautan donasi"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Mode Gelap Di Halaman Opsi"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Terima kasih telah menginstall SponsorBlock."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Haram ditinjau opsi di bawah ini"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Banyak fitur yang dinonaktifkan secara bawaan. Jika kamu ingin lewati mula, akhir, gunakan Invidious, dll, aktifkan mereka dibawah ini.\nKamu bisa menyembunyikan/menghadirkan elemen UI."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Cara kerja melewati segmen"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Segmen video akan otomatis dilewati jika ditemukan di databasis. Kamu bisa buka munculan dengan klik ikon ekstensi untuk mendapatkan pratinjau apa adanya."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Kapanpun kamu melewati segmen, kamu akan mendapatkan maklumat. Jika waktu terlihat salah dapat menyuarakan turun dengan klik turun-suara! Kamu juga bisa menyuarakan di maklumat."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Mengirim"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Mengirim bisa baik dilakukan di maklumat dengan menekan tombol \"Mulai Segmen Sekarang\" atau di pemutar video dengan tombol di pemutar."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Klik tombol putar indikasikan memulai segmen dan klik tombol ikon stop indikasikan mengakhiri. Kamu bisa persiapkan beberapa sponsor sebelum menekan kirim. Klik tombol unggah akan mengirimkan. Klik tombol sampah akan menghapuskan."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Sunting"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Jika kamu mengacaukan, kamu bisa sunting atau hapus segmen setelah klik tombol panah atas."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Ini terlalu lambat"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Terdapat tombol pintas jika kamu ingin menggunakannya. Tekan tombol semikolon untuk indikasi mulai/akhir segmen sponsor dan tekan tombol kutip untuk mengirimkan. Ini bisa diganti di opsi. Jika kamu tidak menggunakan QWERTY, kamu dimungkinkan harus mengubah tombol."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Bisakah saya mendapatkan salinan Databasis? Apa yang terjadi jika kamu tiada?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Databasis adalah publik dan tersedia di"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Sumber kode tersedia secara bebas. Jadi, jika sesuatu terjadi pada saya, pengajuan kamu tidak akan hilang."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Berita dan bagaimana ini diciptakan"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Dimana saya mendapatkankan sumber kode?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Kredit"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Pelajari Lebih Lanjut"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Menurunkan suara dan membuat salinan lokal untuk Anda kirim ulang"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Membuka halaman wiki kategori ini."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Salin dan berikan turunkan suara"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Lanjutkan Memvoting"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Ini akan menerapkan ke segmen Anda"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Jempol bawah"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Jempol atas"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Sembunyikan segmen"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Gunakan roda mouse ketika berada di kotak edit untuk mengatur waktu dengan cepat. Kombinasi dengan tombol [Ctrl + Shift] bisa digunakan untuk perubahan yang halus."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Baru! Lihat jika sebuah video disponsori seluruhnya atau mempromosikan diri"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "j",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Perilaku",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Tampilan",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Pintasan keyboard",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Cadangkan/Pulihkan",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Lain-lain",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Lewati pelihatan pemberitahuan",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Lepaskan",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Tidak diatur"
|
||||
},
|
||||
"change": {
|
||||
"message": "Ubah"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Ini adalah pintasan YouTube. Apakah Anda yakin untuk menggunakannya?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Server BETA diaktifkan!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Buka laman opsi"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "Salta sponsorizzazioni, implorazioni di iscrizione ai canali e molto altro sui video di YouTube. Segnala gli sponsor sui video che guardi per salvare il tempo ad altri.",
|
||||
"message": "Salta sponsorizzazioni, richieste d'iscrizione ai canali e molto altro sui video di YouTube. Segnala gli sponsor sui video che guardi per salvare il tempo agli altri.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "Richiesta non valida"
|
||||
},
|
||||
"429": {
|
||||
"message": "Stai inviando troppi spezzoni per questo video, sei sicuro che ce ne siano così tanti?"
|
||||
"message": "Stai inviando troppi segmenti per questo video, sei sicuro che ce ne siano così tanti?"
|
||||
},
|
||||
"409": {
|
||||
"message": "Questo spezzone è già stato inviato"
|
||||
"message": "Questo è già stato inviato"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Canale aggiunto alla whitelist!"
|
||||
"message": "Canale aggiunto alla lista delle esclusioni!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "segmento"
|
||||
@@ -53,13 +53,13 @@
|
||||
"message": "Salta ancora"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Riattiva microfono"
|
||||
"message": "Riattiva il microfono"
|
||||
},
|
||||
"paused": {
|
||||
"message": "In pausa"
|
||||
},
|
||||
"manualPaused": {
|
||||
"message": "Timer Fermato"
|
||||
"message": "Timer fermato"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "\n\nPer modificare o eliminare valori specifici, premi il pulsante delle informazioni o apri il popup cliccando l'icona dell'estensione nell'angolo in alto a destra."
|
||||
@@ -68,7 +68,7 @@
|
||||
"message": "Sei sicuro di volerlo cancellare?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "Si è verificato un errore durante l'invio dello spezzone sponsorizzato, per favore riprova più tardi."
|
||||
"message": "Si è verificato un errore durante l'invio del segmento, per favore riprova più tardi."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Questo video ha dei segmenti nel database!"
|
||||
@@ -77,10 +77,10 @@
|
||||
"message": "Nessun segmento trovato"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "Il Segmento Inizia Ora"
|
||||
"message": "Il segmento inizia qui"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "Il Segmento Termina Ora"
|
||||
"message": "Il segmento finisce ora"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Annulla Creazione del Segmento"
|
||||
@@ -92,7 +92,7 @@
|
||||
"message": "Ricarica i segmenti"
|
||||
},
|
||||
"success": {
|
||||
"message": "Successo!"
|
||||
"message": "Ha funzionato!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "Votato!"
|
||||
@@ -104,16 +104,16 @@
|
||||
"message": "Si è verificato un errore durante la connessione. Codice errore: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Pulisci Segmenti"
|
||||
"message": "Rimuovi i segmenti"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "Apri il Popup di SponsorBlock"
|
||||
"message": "Apri il popup di SponsorBlock"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "Chiudi il popup"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Invia Segmenti"
|
||||
"message": "Invia i segmenti"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Sei sicuro di volerlo inviare?"
|
||||
@@ -125,7 +125,7 @@
|
||||
"message": "Rimuovi il canale dalle eccezioni"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Vota un Segmento"
|
||||
"message": "Vota un segmento"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Contributi"
|
||||
@@ -147,19 +147,19 @@
|
||||
"message": "Suggerimento: puoi configurare dei comandi rapidi nelle opzioni"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Cancella Minutaggi"
|
||||
"message": "Cancella minutaggio"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Invia Minutaggi"
|
||||
"message": "Invia minutaggio"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Viene utilizzato nelle pagine delle statistiche pubbliche che mostrano quanto hai contribuito. Vedi"
|
||||
"message": "Questo è usato nelle pagine pubbliche delle statistiche per mostrare quanto hai contribuito. Vedilo"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Nome utente"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Imposta Username"
|
||||
"message": "Imposta nome utente"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Copia UserID Pubblico"
|
||||
@@ -174,44 +174,50 @@
|
||||
"message": "Opzioni"
|
||||
},
|
||||
"showButtons": {
|
||||
"message": "Mostra i Pulsanti nel Lettore di YouTube"
|
||||
"message": "Mostra i pulsanti sul video"
|
||||
},
|
||||
"hideButtons": {
|
||||
"message": "Nascondi i Pulsanti nel Lettore di YouTube"
|
||||
"message": "Nascondi i pulsanti sul video"
|
||||
},
|
||||
"hideButtonsDescription": {
|
||||
"message": "Nasconde i pulsanti che appaiono nel lettore di YouTube per inviare spezzoni sponsorizzati. Capisco che può essere fastidioso per alcune\n persone. Invece di utilizzare quei pulsanti, è possibile utilizzare questo popup per inviare gli spezzoni sponsorizzati. Per nascondere l'avviso che appare, \nusa il bottone \"Non mostrare più\" nell'avviso. Potrai sempre abilitare nuovamente queste impostazioni in futuro."
|
||||
"message": "Nasconde i pulsanti che appaiono sul video per inviare i segmenti da nascondere."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Mantieni Salta Per Evidenziare il Pulsante Sul Lettore"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Mostra il Pulsante Informazioni nel Lettore di YouTube"
|
||||
"message": "Mostra il pulsante delle informazioni sopra al video"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Nascondi il Pulsante Informazioni nel Lettore di YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Questo è il pulsante che apre un popup nella pagina YouTube."
|
||||
"message": "Nascondi il pulsante d'informazioni sopra al video"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Nascondi in automatico il Pulsante di Informazioni"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Nascondi il Pulsante Elimina nel Lettore di YouTube"
|
||||
"message": "Nascondi il pulsante elimina"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Mostra il Pulsante Elimina nel Lettore di YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Questo è il pulsante che ti permette di cancellare tutti gli spezzoni sponsorizzati nel lettore di YouTube."
|
||||
"message": "Mostra il pulsante elimina"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Attiva Monitoraggio Salti"
|
||||
"message": "Attiva il conteggio dei salti"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Questa funzionalità tiene traccia dei segmenti che hai saltato, per far sapere agli utenti quanto il loro contributo abbia aiutato gli altri e sia stato utilizzato come metrica insieme ai voti positivi, per garantire che lo spam non entri nel database. L'estensione invierà un messaggio al server ogni volta che salterai un segmento. Si spera che la maggior parte delle persone non modifichino questa impostazione, in modo da non intaccare l'accuratezza dei numeri di visualizzazione. :)"
|
||||
"message": "Questa funzionalità tiene traccia dei segmenti che hai saltato per far sapere agli utenti quanto il loro contributo abbia aiutato gli altri e anche come statistica, insieme ai voti positivi, per garantire che lo spam non entri nel database. L'estensione invierà un messaggio al server ogni volta che salterai un segmento. Si spera che la maggior parte delle persone non modifichino questa impostazione, in modo da non intaccare l'accuratezza dei numeri di visualizzazione. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Abilita il conteggio dei salti nelle schede private/anonime"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Memorizza i voti negativi del segmento"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Qualsiasi segmento voti negativamente rimarrà nascosto anche dopo aver ricaricato"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Attenzione: Disabilitarlo eliminerà tutti i voti negativi precedentemente memorizzati"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Ricerca tramite prefisso hash"
|
||||
},
|
||||
@@ -219,13 +225,13 @@
|
||||
"message": "Invece di richiedere i segmenti dal server utilizzando l'ID del video, viene inviato un hash dei primi 4 caratteri dell'ID. Questo server invierà i dati per tutti i video con hash simili."
|
||||
},
|
||||
"enableRefetchWhenNotFound": {
|
||||
"message": "Ricarica I Segmenti Su Nuovi Video"
|
||||
"message": "Ricarica i segmenti su nuovi video"
|
||||
},
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Se il video è nuovo, e non risultano esserci segmenti, continueremo a cercarne di nuovi ogni pochi minuti."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Mostra di Nuovo l'Avviso"
|
||||
"message": "Mostra di nuovo l'avviso"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Mostra Avviso Dopo Aver Saltato un Segmento"
|
||||
@@ -246,15 +252,15 @@
|
||||
"message": "Tutti i Salta Avvisi Offuscati"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock ti consente di saltare sponsorizzazioni, introduzioni, conclusioni, promemoria di iscrizione e altre componenti fastidiose dei video su YouTube. SponsorBlock è un'estensione per browser in crowdsourcing, che consente a chiunque di inviare l'ora di inizio e di fine dei segmenti sponsorizzati e altri segmenti video su YouTube. Quando una persona invia queste informazioni, chiunque altro in possesso di questa estensione sarà in grado di saltare direttamente il segmento sponsorizzato. È possibile saltare anche le sezioni non musicali dei video musicali.",
|
||||
"message": "SponsorBlock ti consente di saltare sponsorizzazioni, introduzioni, conclusioni, promemoria di iscrizione e altri elementi fastidiosi dai video YouTube. SponsorBlock è un'estensione per browser di crowdsourcing, cioè che consente a chiunque di inviare l'ora di inizio e di fine dei segmenti sponsorizzati e di altro tipo. Quando una persona invia queste informazioni, chiunque altro in possesso di questa estensione sarà in grado di saltare automaticamente il segmento sponsorizzato. È possibile saltare anche le sezioni non musicali dei video musicali.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
},
|
||||
"website": {
|
||||
"message": "Sito Web",
|
||||
"message": "Sito web",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"sourceCode": {
|
||||
"message": "Codice Sorgente",
|
||||
"message": "Codice sorgente",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"noticeUpdate": {
|
||||
@@ -266,19 +272,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Imposta un tasto per saltare un segmento"
|
||||
"message": "Salta segmento",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Imposta un tasto personalizzato per iniziare/finire il segmento"
|
||||
"message": "Inizio/Fine segmento",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Imposta un comando rapido per l'invio"
|
||||
"message": "Invia i segmenti",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Seleziona un tasto premendolo sulla tastiera"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "L'associazione di tasti è stata impostata a: "
|
||||
"message": "Selezionare una chiave digitandola e scegliere qualsiasi tasto modificatore che si desidera utilizzare."
|
||||
},
|
||||
"0": {
|
||||
"message": "Timeout della connessione. Controlla la tua connessione a Internet. Se internet sta funzionando, il server è probabilmente sovraccarico oppure giù."
|
||||
@@ -305,6 +311,10 @@
|
||||
"mute": {
|
||||
"message": "Silenzia"
|
||||
},
|
||||
"full": {
|
||||
"message": "Video Completo",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Vuoi saltare {0}?"
|
||||
},
|
||||
@@ -320,7 +330,7 @@
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} Silenziato",
|
||||
"message": "{0} silenziato",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
@@ -348,9 +358,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Hai saltato "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Ti sei salvato "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minuto"
|
||||
},
|
||||
@@ -364,10 +371,12 @@
|
||||
"message": "ore"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Hai fatto risparmiare"
|
||||
"message": "Hai fatto risparmiare",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " delle loro vite"
|
||||
"message": " delle loro vite",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Controlla status.sponsor.ajay.app per lo stato del server."
|
||||
@@ -387,9 +396,6 @@
|
||||
"createdBy": {
|
||||
"message": "Creato da"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Attualmente è impostato su:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Supporta siti di YouTube di terze parti"
|
||||
},
|
||||
@@ -439,12 +445,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Il seguente contributo è più breve della tua opzione di durata minima. Ciò potrebbe significare che questo è già stato inviato e viene semplicemente ignorato a causa di questa opzione. Sei sicuro di voler inviare?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Inviare segmenti per una live o premiere non è consentito. Per favore aspetta che finisca, poi ricarica la pagina e verifica che i segmenti siano ancora validi."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Mostra Pulsante di Caricamento"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Questo pulsante appare sul riproduttore di YouTube dopo che hai selezionato un marcatore temporale e sei pronto ad inviarlo."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Indirizzo Server SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +475,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importa/Esporta Tutte Le Opzioni"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Modifica/copia"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Salva su file"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Carica da file"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Questa è la tua intera configurazione in formaro JSON. Questo include il tuo ID utente, quindi presta attenzione se vuoi condividerlo."
|
||||
},
|
||||
@@ -517,11 +532,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Le informazioni di debug sono state copiate nel clip board. Sentiti libero di rimuovere tutte le informazioni che preferisci non condividere. Salva in un file di testo o incollale nella segnalazione di bug."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "La chiave"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "è abbinata ad un'altra azione. Si prega di selezionare un'altra chiave."
|
||||
"message": "Questa scorciatoia è associata ad un'altra azione. Selezionane una diversa."
|
||||
},
|
||||
"to": {
|
||||
"message": "a",
|
||||
@@ -539,8 +551,18 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Simile alle \"sponsorizzazioni\" tranne che per promozioni non pagate o autopromozioni. Ciò include sezioni riguardanti vendita di merce, donazioni o informazioni in merito a collaboratori."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Accesso Esclusivo"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Solo per etichettare interi video. Usato quando un video mostra un prodotto, un servizio o un posto che hanno ricevuto gratuitamente o a cui hanno avuto un accesso sovvenzionato."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Questo video mostra un prodotto, un servizio o un posto che hanno ricevuto gratuitamente o a cui hanno avuto un accesso sovvenzionato",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Promemoria di Interazione (Sottoscrizione)"
|
||||
"message": "Promemoria d'Interazione (Iscrizione)"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "Quando nel punto centrale del contenuto è presente un breve promemoria per aggiunta di mi piace, iscrizione o seguito. Se dovesse risultare esteso o riguardare qualcosa di specifico, potrebbe essere un'autopromozione."
|
||||
@@ -564,11 +586,20 @@
|
||||
"message": "I titoli di coda o quando vengono mostrate annotazioni a fine video su YouTube. Non per conclusioni provviste di informazioni."
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Anteprima"
|
||||
"message": "Anteprima/Riepilogo"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Riepilogo rapido degli episodi precedenti, o un'anteprima di ciò che sta arrivando più tardi nel video attuale. Inteso per clip, non per riassunti a voce."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Riempitivi irrilevanti/Battute"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Le scene riempitive sono aggiunte solo per riempire o per umorismo che non sono richieste per comprendere il contenuto principale del video. Questo non dovrebbe includere segmenti che forniscono contesto o dettagli di sfondo."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Riempimento"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musica: Sezione Non-Musicale"
|
||||
},
|
||||
@@ -611,14 +642,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Mostra Nella Barra di Ricerca"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Mostra Etichetta"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Salta automaticamente tutti i segmenti quando c'è un segmento non musicale"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Consenti i segmenti che silenziano l'audio invece di saltare"
|
||||
"message": "Silenzia i segmenti invece di saltarli, quando possibile"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Il tuo colore è formattato in modo errato. Dovrebbe essere un codice esadecimale a 3 o 6 cifre con un segno numerico iniziale."
|
||||
"fullVideoSegments": {
|
||||
"message": "Mostra un'icona quando un video è interamente una pubblicità",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Segmento non inviato",
|
||||
@@ -656,6 +691,9 @@
|
||||
"message": "Per inviare segmenti della categoria \"{0}\", è necessario abilitarlo nelle opzioni. Sarai reindirizzato alle opzioni.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Attenzione: questo tipo di segmento può essere presente una sola volta. Inviarne più di uno causerà la visualizzazione casuale di uno solo."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Devi selezionare una categoria per tutti i segmenti che stai inviando!"
|
||||
},
|
||||
@@ -668,6 +706,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "nascosto: troppo corto"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "nascosta manualmente"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "L'ID del canale non è ancora caricato. Se stai usando un video incorporato, prova piuttosto a usare la pagina principale di YouTube. Questo potrebbe esser causato dalle modifiche al layout di YouTube, se pensi che sia così, scrivi qui un commento:"
|
||||
@@ -703,7 +744,7 @@
|
||||
"message": "Tempo Non Corretto/Errato"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Categoria Errata"
|
||||
"message": "Cambia Categoria"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Questo video è classificato come musica. Sei sicuro che questo video contenga uno sponsor? Se questo è in realtà un \"Segmento Non-Musica\", apri le opzioni di questa estensione e abilita questa categoria. Quindi, è possibile inviare questo segmento come \"Non-Music\" invece di sponsor. Si prega di leggere la guida se si è confusi."
|
||||
@@ -731,6 +772,12 @@
|
||||
"message": "Capito",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Questo segmento è grande. Se l'intero video è su un argomento, passa da \"Salta\" a \"Video Completo\". Vedi le linee guida per ulteriori informazioni."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Questo intero video è etichettato come questa categoria ed è troppo integrato per poterlo separarare"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Disiscriviti dagli esperimenti futuri",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +786,7 @@
|
||||
"message": "Nascondi per sempre"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Hai ricevuto un ammonimento and non puoi inviare segmenti temporaneamente. Ciò significa che abbiamo notato che stavi commettendo alcuni errori comuni senza scopo malevolo, e vogliamo che tu ricontrollassi le regole. Puoi anche partecipare a questa chat su discord.gg/SponsorBlock o matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Hai ricevuto un avviso e non puoi inviare temporaneamente i segmenti. Questo significa che abbiamo notato che stavi commettendo degli errori comuni, non malevoli; sei pregato di confermare di comprendere le regole e rimuoveremo l'avviso. Puoi anche unirti a questa chat usando discord.gg/SponsorBlock o matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Voto rifiutato a causa di un ammonimento. Clicca per aprire una chat per risolverlo, oppure torna dopo quando hai tempo.",
|
||||
@@ -748,9 +795,15 @@
|
||||
"Donate": {
|
||||
"message": "Dona"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Contribuisci allo sviluppo del fondo"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Nascondi Link di Donazione"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Pagina Delle Opzioni In Modalità Scura"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Grazie per aver installato SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +861,79 @@
|
||||
"Credits": {
|
||||
"message": "Crediti"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Novità! Vai al punto del video con un click con la nuova categoria d'evidenziazione"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Scopri di Più"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Vota negativamente e crea una copia locale da reinviare"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Apri la pagina della wiki di questa categoria."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Copia e vota negativamente"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Continua a Votare"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Questo si applicherà istantaneamente ai tuoi segmenti"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Usa la rotellina del mouse passando sulla casella di modifica per regolare rapidamente il tempo. Le combinazioni dei tasti ctrl o shift sono utilizzabili per perfezionare le modifiche."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Novità! Vedi quando un video è interamente sponsorizzato o auto-promosso"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Comportamento",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interfaccia",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Scorciatoie da tastiera",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Backup/Ripristina",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Varie",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Salta l'aspetto del preavviso",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Dissocia",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Non impostato"
|
||||
},
|
||||
"change": {
|
||||
"message": "Modifica"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Questa è una scorciatoia integrata da YouTube. Sei sicuro di volerla usare?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Il server BETA è abilitato!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Apri la pagina delle opzioni"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"message": "サーバーがこのリクエストは無効であると返答しました"
|
||||
},
|
||||
"429": {
|
||||
"message": "一つの動画に対してあまりに多くのセグメントを提出しています。本当にこれだけ必要ですか?"
|
||||
"message": "一つの動画に対してあまりに多くのセグメントを提案しています。本当にこれだけ必要ですか?"
|
||||
},
|
||||
"409": {
|
||||
"message": "これは既に提出されています。"
|
||||
@@ -23,7 +23,7 @@
|
||||
"message": "セグメント"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "セグメント"
|
||||
"message": "セグメント"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "この提案を支持"
|
||||
@@ -41,7 +41,7 @@
|
||||
"message": "読み込み中..."
|
||||
},
|
||||
"Hide": {
|
||||
"message": "非表示"
|
||||
"message": "再度表示しない"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "スキップ解除を押すと元の場所へ戻ります"
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "再スキップ"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "ミュート解除"
|
||||
},
|
||||
"paused": {
|
||||
"message": "一時停止中"
|
||||
},
|
||||
@@ -80,13 +83,13 @@
|
||||
"message": "セグメント終了を記録"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "区間の作成を取り止める"
|
||||
"message": "セグメントの作成を取り消す"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "YouTube動画が見つかりませんでした。\nこれが正しくない場合は、タブを再読み込みしてください。"
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "区域を更新"
|
||||
"message": "セグメントを更新"
|
||||
},
|
||||
"success": {
|
||||
"message": "成功しました!"
|
||||
@@ -116,7 +119,7 @@
|
||||
"message": "本当に提出してよろしいですか?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "ホワイトリストのチャンネル"
|
||||
"message": "チャンネルをホワイトリストに追加"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "ホワイトリストからチャンネルを削除"
|
||||
@@ -158,6 +161,12 @@
|
||||
"setUsername": {
|
||||
"message": "ユーザー名を設定"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "パブリックユーザIDをコピー"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "セグメントIDをコピー"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "公式Discordサーバーに参加して意見やフィードバックをお寄せください!"
|
||||
},
|
||||
@@ -176,14 +185,14 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "YouTube再生画面のセグメント提出ボタンを非表示にします。"
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "「ハイライトまでスキップ」ボタンをプレイヤーに常に表示する"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "YouTubeプレーヤーの情報ボタンを表示する"
|
||||
"message": "YouTubeプレイヤーに情報ボタンを表示する"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "YouTubeプレーヤーの情報ボタンを隠す"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "これはYouTubeのページ上でポップアップを開くためのボタンです。"
|
||||
"message": "YouTubeプレイヤーに情報ボタンを表示しない"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "情報ボタンを自動的に隠す"
|
||||
@@ -194,17 +203,23 @@
|
||||
"showDeleteButton": {
|
||||
"message": "YouTubeプレーヤーに削除ボタンを表示"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "これはYouTubeプレーヤー上のボタンで、現在の動画から未提出のセグメントを全て消去します。"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "スキップ回数の統計を有効にする"
|
||||
"message": "スキップの集計を有効にする"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "この機能は、あなたがスキップしたセグメントを追跡して、そのセグメントがどれだけ役に立ったかを他のユーザーに知らせることで、スパムがデータベースに紛れないようにするための評価基準として使用されます。あなたがセグメントをスキップするたびに、拡張機能はサーバーにメッセージを送信します。使用回数の統計が正確になるよう、できる限り多くの人がこの設定を変更しないことを望みます。:)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "プライベート/シークレット タブでスキップカウントトラッキングを有効にする"
|
||||
"message": "プライベート/シークレット タブでのスキップ回数の集計を有効にする"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "セグメントの低評価を記録"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "あなたが低評価したセグメントが再読み込み後も非表示のままになります"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "警告: 無効化するとこれまでの低評価記録が全て削除されます"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "ハッシュプレフィックスを使って要求"
|
||||
@@ -225,19 +240,19 @@
|
||||
"message": "セグメントがスキップされた後に通知を表示する"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "飛び越し通知(全体)"
|
||||
"message": "通常サイズのスキップ通知"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "自動飛び越し通知(小)"
|
||||
"message": "自動スキップ時に小サイズの通知"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "すべての飛び越し通知(小)"
|
||||
"message": "常に小サイズのスキップ通知"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "表示の終了した自動飛び越し通知"
|
||||
"message": "自動スキップ時に透過タイプの通知"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "表示の終了した全ての飛び越し通知"
|
||||
"message": "常に透過タイプのスキップ通知"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlockはスポンサー、イントロ、アウトロ、チャンネル登録のお願いなど、YouTube動画の煩わしい部分をスキップします。SponsorBlockはYouTube動画のスポンサー付きセグメントなどの開始時間と終了時間を誰でも投稿できる、クラウドソースのブラウザ拡張機能です。一人がセグメントの情報を送信すると、この拡張機能を使用している他の全員が、スポンサー付きセグメントをスキップできるようになります。また、ミュージックビデオの音楽がない部分をスキップすることもできます。",
|
||||
@@ -260,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "セグメントをスキップするキーを設定"
|
||||
"message": "セグメントをスキップ",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "セグメントの開始/停止キーのバインドを設定"
|
||||
"message": "セグメントを開始/終了",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "提案キーのバインドを設定"
|
||||
"message": "セグメントを提出",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "キーを入力して設定します"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "キーバインドは次のように設定されました: "
|
||||
"message": "使用したいキーをキーボードで入力し、修飾キーを以下から選択してください。"
|
||||
},
|
||||
"0": {
|
||||
"message": "接続がタイムアウトになりました。インターネット接続をご確認ください。接続に問題がない場合、サーバーが混雑またはダウンしている可能性があります。"
|
||||
@@ -296,19 +311,33 @@
|
||||
"skip": {
|
||||
"message": "スキップ"
|
||||
},
|
||||
"mute": {
|
||||
"message": "ミュート"
|
||||
},
|
||||
"full": {
|
||||
"message": "動画全体",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} をスキップしますか?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} をミュートしますか?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "{0}まで飛び越しますか?",
|
||||
"message": "{0}までスキップしますか?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0}を飛び越しました",
|
||||
"message": "{0}をスキップしました",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0}をミュートしました",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "{0}まで飛び越しました",
|
||||
"message": "{0}までスキップしました",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
@@ -330,10 +359,7 @@
|
||||
"message": "この時間は、シークバーの下にある現在の時間の隣に表示されます。これは、動画の合計時間からすべてのセグメントの時間を差し引いたもので「シークバーに表示」として設定されているセグメントも含まれます。"
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "スキップしたセグメント数: "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "ご自身の時間をこれだけ節約しました: "
|
||||
"message": "スキップした数: "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "分"
|
||||
@@ -348,10 +374,12 @@
|
||||
"message": "時間"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "他の人々の時間をこれだけ節約しました:"
|
||||
"message": "他の人々の時間をこれだけ節約しました:",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": "(彼らの人生のうち)"
|
||||
"message": "(彼らの人生のうち)",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "サーバーの状態についてはstatus.sponsor.ajay.appを確認してください。"
|
||||
@@ -359,6 +387,9 @@
|
||||
"changeUserID": {
|
||||
"message": "ユーザーIDのインポート/エクスポート"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "これは厳重に保管してください。これはパスワードのようなもので、誰とも共有すべきではありません。 他の誰かがこれを使って、あなたになりすますことができてしまいます。なおパブリックユーザーIDを探している場合は、ポップアップ内のクリップボードアイコンをクリックしてください。"
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "ユーザーIDを設定"
|
||||
},
|
||||
@@ -368,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "作成者:"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": "。現在の設定は:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "第三者製のYouTube関連サイトに対応"
|
||||
},
|
||||
@@ -382,7 +410,7 @@
|
||||
"message": "対応サイト: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Invidious対応を有効にし,自動飛越を無効にし,GUIを非表示にします。"
|
||||
"message": "Invidious対応を有効にし、自動スキップを無効、GUIを非表示にします。"
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "サードパーティーのクライアントインスタンスを追加"
|
||||
@@ -412,7 +440,7 @@
|
||||
"message": "設定値より短いセグメントはスキップされず、プレーヤーにも表示されません。"
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "飛び越し通知の表示時間(秒):"
|
||||
"message": "スキップ通知の表示時間(秒):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "飛び越し通知が画面上に表示され続ける時間です。手動で飛び越した場合は,より長く表示される可能性があります。"
|
||||
@@ -420,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "提出しようとしている区間の長さが個人設定における最短時間よりも短かいです。これは,既に当区間は提出されており,個人設定によって無視されていることを意味します。本当に提出しますか?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "ライブ配信中の動画やプレミア公開中の動画ではセグメントの提出はできません。配信が終了するまで待つか、ページを再読み込みしてセグメントがまだ有効かご確認ください。"
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "アップロードボタンを表示"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "このボタンはタイムスタンプを選択して投稿の準備ができた後にYouTubeプレーヤーに表示されます。"
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock サーバーアドレス"
|
||||
},
|
||||
@@ -450,8 +478,17 @@
|
||||
"exportOptions": {
|
||||
"message": "全ての設定をインポート/エクスポート"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "編集/コピー"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "ファイルに保存"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "ファイルから読み込み"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "JSON形式の個人設定全体です。利用者IDが含まれているので,共有するときは注意してください。"
|
||||
"message": "JSON形式のすべての個人設定です。これにはあなたのユーザーIDが含まれているので、共有するときは注意してください。"
|
||||
},
|
||||
"setOptions": {
|
||||
"message": "オプション設定"
|
||||
@@ -466,7 +503,7 @@
|
||||
"message": "セグメントを送信"
|
||||
},
|
||||
"submit": {
|
||||
"message": "送信"
|
||||
"message": "提出"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "キャンセル"
|
||||
@@ -498,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "診断用情報がクリップボードに複製されました。共有したくない情報があればそこから削除できます。これをファイルに保存したり,不具合報告に貼り付けてください。"
|
||||
},
|
||||
"theKey": {
|
||||
"message": "キー"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "は他の動作に割り当てられています。異なったキーを選択してください。"
|
||||
"message": "このショートカットは他のアクションに割り当てられています。別のショートカットを選択してください。"
|
||||
},
|
||||
"to": {
|
||||
"message": "~",
|
||||
@@ -518,7 +552,17 @@
|
||||
"message": "無報酬 / セルフプロモーション"
|
||||
},
|
||||
"category_selfpromo_description": {
|
||||
"message": "無報酬での宣伝あるいは自己販促を除いて「提供者」と同様です。商品・寄付・合作情報にかんする節を含みます。"
|
||||
"message": "無報酬での宣伝あるいは自己販促であるという点を除いては「スポンサー」と同様です。商品、寄付、コラボ情報に関する内容を含みます。"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "限定アクセス"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "動画全体に対してのみ付与できます。無償または補助金を受けて、製品、サービス、場所を紹介する動画に使用。"
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "この動画は無償または補助金を受けて利用した製品、サービス、または場所を紹介するものです",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "行動を促すメッセージ(チャンネル登録)"
|
||||
@@ -550,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "前回の粗筋,または動画の後半内容の予告。音声による要約ではなく,編集された映像を指します。"
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "無駄な脱線/冗談"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "動画の本編を理解するのに必要のない、繋ぎの話やユーモアによって脱線したシーン。これには、文脈や背景の詳細を提供しているセグメントを含めないでください。"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "繋ぎの話"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "音楽: 音楽以外のセクション"
|
||||
},
|
||||
@@ -560,10 +613,10 @@
|
||||
"message": "音楽以外の部分"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "強調表示"
|
||||
"message": "ハイライト"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "ほとんどの人が必要としている動画の箇所。「xx:xx 開始」というようなコメントと類似。"
|
||||
"message": "多くの人が求めている動画の部分。「本編はXから開始」といったコメントのような機能です。"
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "ライブ配信: 寄付/メッセージの読み上げ"
|
||||
@@ -584,7 +637,7 @@
|
||||
"message": "無効"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "動画の開始時刻まで飛び越し"
|
||||
"message": "冒頭へ自動スキップ"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "動画を読み込んだ際に確認する"
|
||||
@@ -592,11 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "シークバーに表示"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "ラベルを表示"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "非音楽区域がある場合,全区域を自動的に飛び越す"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "カラーコードの書式が間違っています。 #から始まる3桁または6桁の16進数コードでなければなりません。"
|
||||
"muteSegments": {
|
||||
"message": "スキップする代わりに音声をミュートしてセグメントを許可"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "動画全体が広告の場合にアイコンを表示",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "未確定の色",
|
||||
@@ -616,10 +676,10 @@
|
||||
"message": "ベータテストサーバーを有効にする"
|
||||
},
|
||||
"whatEnableTestingServer": {
|
||||
"message": "提出した区域と区域への投票が主サーバーで**取り扱われなく**なります。試験目的にのみ利用してください。"
|
||||
"message": "提出したセグメントと投票がメインサーバーで**取り扱われなく**なります。試験目的にのみ利用してください。"
|
||||
},
|
||||
"testingServerWarning": {
|
||||
"message": "試サーバーに接続している間,全ての提出・投票は主サーバーで取り扱われなくなります。実際の提出・投票を行う際は,この設定を無効にしてください。"
|
||||
"message": "テストサーバーに接続している間、全ての提出・投票はメインサーバーでは取り扱われなくなります。実際の提出・投票を行う際は、この設定を無効にしてください。"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(今)"
|
||||
@@ -634,6 +694,9 @@
|
||||
"message": "\"{0}\" のカテゴリでセグメントを送信するには、オプションでセグメントを有効にする必要があります。オプション画面にリダイレクトします。",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "警告: このタイプのセグメントは一度に最大一つだけ有効にすることができます。複数送信するとランダムなものが表示されます。"
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "送信するすべてのセグメントにカテゴリを選択する必要があります!"
|
||||
},
|
||||
@@ -646,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "あまりに短かい区間を無視する"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "手動で非表示"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "番組IDがまだ読み込まれていません。埋め込み動画でご覧になっている場合は,代わりにYouTubeの公式サイトで再生してみてください。この問題はYouTubeの画面構成を変えた際にも発生する可能性があります。その場合は,こちらに意見をお書きください:"
|
||||
@@ -681,10 +747,10 @@
|
||||
"message": "不正確あるいは間違った時刻です"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "カテゴリが違います"
|
||||
"message": "カテゴリーを変更"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "この動画は音楽として分類されています。本当にこの動画にスポンサー部分がありますか? 本セグメントが本当に「音楽以外の区域」だった場合は、設定画面からこの分類を有効にしてください。その後、「スポンサー部分」の代わりに「音楽以外のセグメント」としてセグメントを提出できます。よく分からない場合は、ガイドラインを参照してください。"
|
||||
"message": "この動画は音楽として分類されています。本当にこの動画にスポンサー部分がありますか? このセグメントが実際には「音楽以外のセグメント」である場合、設定画面からこのカテゴリーを有効にしてください。「スポンサー」の代わりに「音楽以外」としてセグメントを提出できます。お困りの場合は、ガイドラインを参照してください。"
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "複数のセグメント"
|
||||
@@ -709,6 +775,12 @@
|
||||
"message": "了解",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "このセグメントは大きすぎます。動画全体が一つのトピックに当てはまる場合は「スキップ」を「動画全体」に変更してください。詳細はガイドラインを参照してください。"
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "この動画は全体がこのカテゴリーとして指定されており、密に結合されているため分割することができません"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "実験的機能をすべて無効にする",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -717,7 +789,7 @@
|
||||
"message": "二度と表示しない"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "警告のため,区域の送信が一時的に禁止されています。これは利用者さまが間違いを犯されているというこちらどもの判断ではありますが,この間違いが悪意あるものとは思っておりません。単に,利用者さまに区域送信における規則を知っていただきたいだけです。連絡先: discord.gg/SponsorBlock,matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "警告によりあなたは一時的にセグメントを提出することができません。これはあなたが悪意からではなく、単に誤った行為をしていることを私たちが認識したためです。ルールを理解していることを確認していただければこの警告は解除します。discord.gg/SponsorBlock または matrix.to/#/#sponsor:ajay.app よりチャットに参加することもできます。"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "警告により投票が拒否されました。クリックして運営に連絡するか,少し時間を置いてからやりなおしてください。",
|
||||
@@ -726,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "寄付"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "開発を支援する"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "寄付のお願いを表示しない"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "オプション画面でダークモードを使用"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "SponsorBlockを導入いただきありがとうございます。"
|
||||
},
|
||||
@@ -736,10 +814,10 @@
|
||||
"message": "以下の設定を確認してください"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "多くの機能は既定では無効となっています。動画の導入部や最後の余計な部分を飛び越したい場合は「非本質的な内容」を飛び越すようにしてください。また,UI要素の表示・非表示を切り替えることもできます。"
|
||||
"message": "多くの機能がデフォルトでは無効となっています。イントロ・アウトロをスキップしたり、Invidiousで使用したりするにはこの下で有効にしてください。また画面の表示設定を切り替えることもできます。"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "飛び越しの仕組み"
|
||||
"message": "スキップの仕組み"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "データベースにある動画区域が自動的に飛び越されます。この拡張機能のアイコンをクリックすると,区域の位置や範囲を確かめることができます。"
|
||||
@@ -748,10 +826,31 @@
|
||||
"message": "区域を飛び越すたびに通知されます。区域の範囲がおかしいと思ったら,その区域を低評価してください。ポップアップ画面でも同様に投票ができます。"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "提出中"
|
||||
"message": "提出する"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "提出するにはポップアップの「セグメント開始を記録」ボタン、またはビデオプレーヤー内にあるボタンを押してください。"
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "再生ボタンをクリックするとセグメントの開始、停止アイコンをクリックすると終了となります。 複数のスポンサーを用意してから送信ボタンを押すことができます。アップロードボタンをクリックすると提出されます。ゴミ箱をクリックすると削除されます。"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "編集中"
|
||||
"message": "編集する"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "もし間違えてしまっても、上矢印ボタンをクリックでセグメントを編集・削除することができます。"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "こんな操作は面倒?"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "ショートカットキーが利用可能です。セミコロンキーでスポンサーセグメントを開始/終了し、アポストロフィキーで送信できます。またこれらはオプションで変更できます。QWERTYキーを使わない場合は、キー割り当てを変更したほうがいいでしょう。"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "データベースのコピーを利用できますか? 作者が失踪した場合はどうなりますか?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "データベースは公開されており、こちらから利用できます:"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "ソースコードは自由に利用できます。運営になにがあろうとも,あなたの貢献(提出された区域)が失われることはありません。"
|
||||
@@ -767,5 +866,86 @@
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "さらに詳しく"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "低評価を押し、再提出するためのローカルコピーを作成"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "このカテゴリーのWikiページを開きます。"
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "コピーして低評価"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "投票を続ける"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "この変更はすぐにあなたのセグメントに適用されます"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "低評価"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "高評価"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "セグメントを表示しない"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "編集ボックスにカーソルを合わせながらマウスホイールを使用すると、時間をすばやく調整できます。 CtrlキーまたはShiftキーの組み合わせを使用して変更を微調整できます。"
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "新機能!動画全体がスポンサー付きもしくはセルフプロモーションかがわかります"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "日",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "時間",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "動作",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "表示設定",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "キーボードショートカット",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "バックアップ/復元",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "その他",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "スキップ通知の形式",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "解除",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "未設定"
|
||||
},
|
||||
"change": {
|
||||
"message": "変更"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "これはYouTubeにデフォルトで使用されているショートカットです。本当にこれを使用しますか?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "ベータサーバーが有効です!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "オプションページを開く"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "공개 사용자 ID 복사"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "구간 ID 복사"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "공식 디스코드 서버에 들어와서 기능 제안을 해주시거나 피드백을 남겨주세요!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "스킵할 구간을 제출하기 위해 YouTube 플레이어에 나타나는 버튼을 숨깁니다"
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "플레이어에 하이라이트로 건너뛰기 버튼 표시"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "YouTube 플레이어에서 정보 버튼 표시하기"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "YouTube 플레이어에서 정보 버튼 숨기기"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "YouTube 페이지에 팝업으로 표시되는 버튼입니다"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "정보 버튼 자동 숨김"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "YouTube 플레이어에서 삭제 버튼 표시하기"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "현재 영상에 제출되지 않은 구간을 YouTube 플레이어 내에서 지우는 버튼입니다"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "스킵 개수 추적 활성화"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "시크릿/사생활 보호 탭에서 스킵 개수 추적 활성화"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "구간 비추천 저장"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "비추천한 구간을 새로고침 이후에도 계속 숨깁니다"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "경고: 비활성화하는 경우 이전에 저장한 모든 비추천이 삭제됩니다"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Hash Prefix가 쿼리를 제공함"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "구간 건너뛰기 키 설정"
|
||||
"message": "구간 건너뛰기",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "시작/끝 부분 키 할당 설정"
|
||||
"message": "구간 시작/중지",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "제출 키 할당 설정"
|
||||
"message": "구간 제출",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "입력해서 키를 선택하세요"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "키가 다음에 할당되었습니다: "
|
||||
"message": "키를 눌러서 선택하고 함께 사용하고 싶은 조합 키를 선택하십시오."
|
||||
},
|
||||
"0": {
|
||||
"message": "연결 타임아웃 오류입니다. 인터넷이 연결되어 있는지 확인해주세요. 인터넷이 연결되어 있는 경우, 서버가 과부하되어 있거나 다운되어 있어서 오류가 발생하는 것일 수도 있습니다."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "음소거"
|
||||
},
|
||||
"full": {
|
||||
"message": "전체 동영상",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} 을(를) 건너뛰겠어요?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "건너뛴 구간: "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "지금까지 절약한 시간: "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "분"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "시간"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "사람들의"
|
||||
"message": "사람들의",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " 의 시간을 아꼈습니다."
|
||||
"message": " 의 시간을 아꼈습니다.",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Status.sponsor.ajay.app 사이트를 확인하여 서버 상태를 확인하세요."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "개발자: "
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". 현재 다음으로 설정되어 있습니다:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "제3자 YouTube 사이트 지원"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "다음 제출은 최소 기간 옵션보다 짧습니다. 이 말은 이미 제출되었으며, 이 옵션으로 인해 무시될 수 있습니다. 제출하시겠습니까?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "진행 중인 실시간 스트림 및 최초 공개 동영상에는 제출할 수 없습니다. 끝날 때까지 대기한 후, 페이지를 새로고침하고 구간이 여전히 유효한지 확인해주십시오."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "업로드 버튼 표시"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "이 버튼은 타임 스탬프를 설정 후 제출 준비가 되었을 때 YouTube 플레이어에 나타납니다."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock 서버 주소"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "모든 설정 가져오기/내보내기"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "수정/복사"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "파일로 저장"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "파일에서 불러오기"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "JSON의 전체 구성입니다. 사용자ID가 포함되므로 주의하세요."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "디버그 정보가 복사되었습니다. 공유하고 싶지 않은 내용이 있는 경우 자유롭게 수정하신 후, 텍스트 파일로 저장하시거나 버그 신고 페이지에 붙여넣으시면 됩니다."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "키"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "이 키는 다른 행동과 연동되었습니다. 다른 키를 선택하세요."
|
||||
"message": "이 단축키는 다른 동작에 할당되어 있습니다. 다른 키를 선택하세요."
|
||||
},
|
||||
"to": {
|
||||
"message": "-",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "'스폰서 광고'와 비슷하지만 협찬 없이 자기 채널을 홍보하는 구간입니다. 여기에는 채널 굿즈 광고, 기부 광고와 영상에 참여한 사람들을 홍보하는 광고가 해당됩니다."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "협찬"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "전체 동영상 전용 카테고리입니다. 동영상이 유/무료 협찬을 받은 제품, 서비스, 장소를 소개하는 경우 사용합니다."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "본 동영상은 무료/유료 협찬을 받은 제품, 서비스, 장소를 소개합니다",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "상호 작용 알림 (구독)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "이전 에피소드를 간략히 요약하거나 현재 동영상에서 나중에 나올 내용을 예고해줍니다. 음성 요약이 아니라 편집된 동영상을 통한 요약입니다."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "쓸데없는 잡담/농담"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "쓸데없는 잡담은 동영상의 주요 콘텐츠를 이해하는 데 필요없는 시간 떼우기 장면이나 농담만을 말합니다. 맥락이나 상세한 배경지식을 설명하는 부분은 해당하지 않습니다."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "잡담"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "음악이 아닌 구간"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "재생 시간 바에 표시"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "라벨 표시"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "음악이 아닌 구간이 있을 때는 모든 구간 자동 건너뛰기"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "구간을 건너뛰지 않고 음소거 처리하도록 합니다"
|
||||
"message": "구간을 건너뛰지 않고 음소거 처리"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "올바르지 않은 색상 코드입니다. 색상 코드는 샵 (#) 기호로 시작하여 3자리 또는 6자리의 16진수로 구성되어야 합니다."
|
||||
"fullVideoSegments": {
|
||||
"message": "동영상 전체가 광고인 경우 아이콘 표시",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "미제출한 색상",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "\"{0}\" 카테고리의 세그먼트를 제출하려면 설정에서 활성화 해주셔야 합니다. 지금 설정으로 이동합니다.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "경고: 이 유형의 구간은 한 번에 최대 하나씩만 활성화될 수 있습니다. 여러 개를 제출하면 무작위 하나가 표시됩니다."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "제출 해야하는 모든 구간의 카테고리를 설정해야합니다!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "숨겨짐: 너무 짧음"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "수동으로 숨김"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "채널 ID를 아직 불러오지 못했습니다. 임베디드 동영상에서 시도한 경우 YouTube 페이지에서 시도해주십시오. 이 오류는 YouTube의 레이아웃 변경으로 인해서도 발생할 수 있습니다. 레이아웃 변경에 의해 오류가 발생했다고 생각하면 여기에 의견을 남겨주십시오."
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "잘못된 타이밍입니다"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "잘못된 카테고리입니다"
|
||||
"message": "카테고리 변경"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "이 영상은 음악 영상으로 분류됩니다. 정말로 스폰서가 있는 것이 확실한가요? 만약 음악 이외의 구간인 경우, 확장 옵션을 열어 이 카테고리를 활성화 하세요. 그리고, 이 구간을 스폰서 대신 음악이 아닌 구간으로 제출하세요. 헷갈릴 경우 가이드라인을 읽으세요."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "확인",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "구간이 큽니다. 전체 동영상이 주제 하나에 대한 것이라면 \"건너뛰기\"를 \"전체 동영상\"으로 변경하십시오. 자세한 정보는 가이드라인을 참고하십시오."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "동영상 전체가 해당 카테고리로 지정되었으며 나누기에는 너무 밀접하게 통합되어 있습니다"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "향후 모든 실험 기능 비활성화",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "다시 보지 않음"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "현재 귀하가 악의적이지 않은 일반적인 실수를 저지르고 있음을 발견했습니다. 이에 따라 경고 조치가 내려져 일시적으로 구간을 제출할 수 없게 되었습니다. 저희는 단지 규칙을 명확히 전달하고자 합니다. discord.gg/SponsorBlock 또는 matrix.to/#/#sponsor:ajay.app 링크를 통해 대화에 참여할 수도 있습니다."
|
||||
"message": "현재 귀하가 악의적이지 않은 일반적인 실수를 저지르고 있음을 발견했습니다. 이에 따라 경고 조치가 내려져 일시적으로 구간을 제출할 수 없게 되었습니다. 규정을 잘 숙지했음을 확인해주십시오. 그러면 경고를 삭제하겠습니다. discord.gg/SponsorBlock 또는 matrix.to/#/#sponsor:ajay.app 링크를 통해 대화에 참여할 수도 있습니다."
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "경고로 인해 투표가 거부되었습니다. 클릭하여 대화로 해결하거나, 나중에 시간이 나면 다시 오세요.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "후원"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "개발 자금 지원"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "후원 링크 숨기기"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "설정 페이지 내 다크 모드"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "SponsorBlock을 설치해 주셔서 감사드립니다."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "크레딧"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "새 기능! 새로운 하이라이트 카테고리를 통해 동영상의 중요 지점으로 이동하세요"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "더보기"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "비추천에 투표한 뒤 다시 제출할 수 있도록 미제출 사본을 생성합니다"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "해당 카테고리의 위키 페이지를 엽니다."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "복사 및 비추천"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "계속 투표"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "당신의 구간에 즉시 적용될 것입니다"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "비추천"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "추천"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "구간 숨기기"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "편집 상자 위에 커서를 올린 채 스크롤하면 시간을 빠르게 조정할 수 있습니다. Ctrl이나 Shift 키를 누른 채로 스크롤하면 세밀한 조정이 가능합니다."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "새로운 기능! 동영상 전체가 광고이거나 자체 홍보인 경우 표시"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "일",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "시간",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "동작",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "인터페이스",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "키보드 단축키",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "백업/복원",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "기타",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "건너뛰기 알림 표시",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "할당 해제",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "설정되지 않음"
|
||||
},
|
||||
"change": {
|
||||
"message": "변경"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "기본 YouTube 단축키와 겹칩니다. 그래도 사용하시겠습니까?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "베타 서버가 활성화되었습니다!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "설정 페이지 열기"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,18 +176,12 @@
|
||||
"hideInfoButton": {
|
||||
"message": "YouTube പ്ലെയറിൽ വിവര ബട്ടൺ മറയ്ക്കുക"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "YouTube പേജിൽ ഒരു പോപ്പ്അപ്പ് തുറക്കുന്ന ബട്ടണാണിത്."
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "YouTube പ്ലെയറിൽ ഇല്ലാതാക്കുക ബട്ടൺ മറയ്ക്കുക"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "YouTube പ്ലെയറിൽ ഇല്ലാതാക്കുക ബട്ടൺ കാണിക്കുക"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "നിലവിലെ വീഡിയോയ്ക്കായി നിങ്ങൾ സമർപ്പിക്കാത്ത എല്ലാ സെഗ്മെന്റുകളും മായ്ക്കുന്ന YouTube പ്ലെയറിലെ ബട്ടൺ ഇതാണ്."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "ക Count ണ്ട് ട്രാക്കിംഗ് ഒഴിവാക്കുക പ്രാപ്തമാക്കുക"
|
||||
},
|
||||
@@ -232,18 +226,6 @@
|
||||
"message": "നിങ്ങൾക്ക് ഇപ്പോഴും ഇഷ്ടമായില്ലെങ്കിൽ, ഒരിക്കലും കാണിക്കരുത് ബട്ടൺ അമർത്തുക.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "ഒരു സെഗ്മെന്റ് ഒഴിവാക്കുന്നതിനായി കീ സജ്ജമാക്കുക"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "സമർപ്പിക്കൽ കീബൈൻഡിനായി കീ സജ്ജമാക്കുക"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "ഒരു കീ ടൈപ്പുചെയ്ത് തിരഞ്ഞെടുക്കുക"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "കീബൈൻഡ് ഇനിപ്പറയുന്നതായി സജ്ജമാക്കി: "
|
||||
},
|
||||
"0": {
|
||||
"message": "കണക്ഷൻ കാലഹരണപ്പെട്ടു. നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിക്കുക. നിങ്ങളുടെ ഇൻറർനെറ്റ് പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, സെർവർ ഓവർലോഡ് അല്ലെങ്കിൽ ഡ. ൺ ആയിരിക്കാം."
|
||||
},
|
||||
@@ -290,9 +272,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "നിങ്ങൾ ഒഴിവാക്കി "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "നിങ്ങൾ സ്വയം രക്ഷിച്ചു "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "മിനിറ്റ്"
|
||||
},
|
||||
@@ -306,10 +285,12 @@
|
||||
"message": "മണിക്കൂറുകൾ"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "നിങ്ങൾ ആളുകളെ സംരക്ഷിച്ചു"
|
||||
"message": "നിങ്ങൾ ആളുകളെ സംരക്ഷിച്ചു",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " അവരുടെ ജീവിതത്തിന്റെ"
|
||||
"message": " അവരുടെ ജീവിതത്തിന്റെ",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "സെർവർ നിലയ്ക്കായി status.sponsor.ajay.app പരിശോധിക്കുക."
|
||||
@@ -326,9 +307,6 @@
|
||||
"createdBy": {
|
||||
"message": "ഉണ്ടാക്കിയത്"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". ഇത് നിലവിൽ ഇതായി സജ്ജീകരിച്ചിരിക്കുന്നു:"
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "ആക്രമണാത്മക പിന്തുണ പ്രാപ്തമാക്കുക, ഓട്ടോസ്കിപ്പ് അപ്രാപ്തമാക്കുക, ബട്ടണുകൾ മറയ്ക്കുക എന്നിവയും അതിലേറെയും."
|
||||
},
|
||||
@@ -359,9 +337,6 @@
|
||||
"showUploadButton": {
|
||||
"message": "അപ്ലോഡ് ബട്ടൺ കാണിക്കുക"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "നിങ്ങൾ ഒരു ടൈംസ്റ്റാമ്പ് തിരഞ്ഞെടുത്ത് സമർപ്പിക്കാൻ തയ്യാറായ ശേഷം ഈ ബട്ടൺ YouTube പ്ലെയറിൽ ദൃശ്യമാകും."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "സ്പോൺസർബ്ലോക്ക് സെർവർ വിലാസം"
|
||||
},
|
||||
@@ -431,12 +406,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "ഡീബഗ് വിവരങ്ങൾ ക്ലിപ്പ് ബോർഡിലേക്ക് പകർത്തി. നിങ്ങൾ പങ്കിടാൻ ആഗ്രഹിക്കാത്ത ഏതെങ്കിലും വിവരങ്ങൾ നീക്കംചെയ്യാൻ മടിക്കേണ്ട. ഇത് ഒരു ടെക്സ്റ്റ് ഫയലിൽ സംരക്ഷിക്കുക അല്ലെങ്കിൽ ബഗ് റിപ്പോർട്ടിൽ ഒട്ടിക്കുക."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "താക്കോല്"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "മറ്റൊരു പ്രവർത്തനവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. മറ്റൊരു കീ തിരഞ്ഞെടുക്കുക."
|
||||
},
|
||||
"to": {
|
||||
"message": "ടു",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -504,9 +473,6 @@
|
||||
"disable": {
|
||||
"message": "പ്രവർത്തനരഹിതമാക്കുക"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "നിങ്ങളുടെ നിറം തെറ്റായി ഫോർമാറ്റുചെയ്തു. ഇത് തുടക്കത്തിൽ ഒരു നമ്പർ ചിഹ്നമുള്ള 3 അല്ലെങ്കിൽ 6 അക്ക ഹെക്സ് കോഡായിരിക്കണം."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "ബാർ കളർ തേടുക"
|
||||
},
|
||||
@@ -563,9 +529,6 @@
|
||||
"downvoteDescription": {
|
||||
"message": "തെറ്റായ / തെറ്റായ സമയം"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "തെറ്റായ വിഭാഗം"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "ഈ വീഡിയോയെ സംഗീതമായി വർഗ്ഗീകരിച്ചിരിക്കുന്നു. ഇതിന് ഒരു സ്പോൺസർ ഉണ്ടെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ? ഇത് യഥാർത്ഥത്തിൽ \"സംഗീതേതര വിഭാഗമാണ്\" എങ്കിൽ, വിപുലീകരണ ഓപ്ഷനുകൾ തുറന്ന് ഈ വിഭാഗം പ്രാപ്തമാക്കുക. തുടർന്ന്, സ്പോൺസറിന് പകരം \"നോൺ-മ്യൂസിക്\" എന്ന് നിങ്ങൾക്ക് ഈ സെഗ്മെന്റ് സമർപ്പിക്കാൻ കഴിയും. നിങ്ങൾ ആശയക്കുഴപ്പത്തിലാണെങ്കിൽ ദയവായി മാർഗ്ഗനിർദ്ദേശങ്ങൾ വായിക്കുക."
|
||||
},
|
||||
|
||||
@@ -176,18 +176,12 @@
|
||||
"hideInfoButton": {
|
||||
"message": "Sembunyikan Butang Maklumat Pada Pemain YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Ini adalah butang yang membuka pop timbul di halaman YouTube."
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Sembunyikan Butang Padam Pada Pemain YouTube"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Tunjukkan Butang Padam Pada Pemain YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Ini adalah butang pada pemain YouTube yang akan membersihkan semua segmen anda yang belum dihantar untuk video semasa."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Dayakan Skip Count Tracking"
|
||||
},
|
||||
@@ -232,18 +226,6 @@
|
||||
"message": "Sekiranya anda masih tidak menyukainya, tekan butang jangan tunjukkan.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Tetapkan kunci untuk melangkau segmen"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Tetapkan kunci untuk pengikat kunci penyerahan"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Pilih kekunci dengan menaipnya"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Ikatan kunci telah ditetapkan ke: "
|
||||
},
|
||||
"0": {
|
||||
"message": "Masa sambungan telah tamat. Periksa sambungan internet anda. Sekiranya internet anda berfungsi, pelayan mungkin berlebihan atau tidak berfungsi."
|
||||
},
|
||||
@@ -290,9 +272,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Anda telah melangkau "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Anda telah menyelamatkan diri "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minit"
|
||||
},
|
||||
@@ -306,10 +285,12 @@
|
||||
"message": "jam"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Anda telah menyelamatkan orang"
|
||||
"message": "Anda telah menyelamatkan orang",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " kehidupan mereka"
|
||||
"message": " kehidupan mereka",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Periksa status.sponsor.ajay.app untuk status pelayan."
|
||||
@@ -326,9 +307,6 @@
|
||||
"createdBy": {
|
||||
"message": "Dicipta oleh"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Pada masa ini ditetapkan untuk:"
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Dayakan sokongan Invidious, lumpuhkan autoskip, sembunyikan butang dan banyak lagi."
|
||||
},
|
||||
@@ -359,9 +337,6 @@
|
||||
"showUploadButton": {
|
||||
"message": "Tunjukkan Butang Muat Naik"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Butang ini muncul di pemain YouTube setelah anda memilih cap waktu dan siap untuk dihantar."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Alamat Pelayan Sponsorblock"
|
||||
},
|
||||
@@ -431,12 +406,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Maklumat debug telah disalin ke papan klip. Jangan ragu untuk membuang maklumat yang anda tidak mahu kongsi Simpan ini dalam fail teks atau tampal ke laporan pepijat."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Kunci"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "terikat dengan tindakan lain. Sila pilih kunci lain."
|
||||
},
|
||||
"to": {
|
||||
"message": "ke",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -504,9 +473,6 @@
|
||||
"disable": {
|
||||
"message": "Nyahaktifkan"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Warna anda tidak diformat dengan betul. Ia mestilah kod hex 3 atau 6 digit dengan tanda nombor pada awalnya."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "Cari Warna Bar"
|
||||
},
|
||||
@@ -563,9 +529,6 @@
|
||||
"downvoteDescription": {
|
||||
"message": "Pemasaan Tidak Betul / Salah"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Kategori Salah"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Video ini dikategorikan sebagai muzik. Adakah anda pasti ini mempunyai penaja? Sekiranya ini sebenarnya adalah \"Segmen Bukan Muzik\", buka pilihan peluasan dan aktifkan kategori ini. Kemudian, anda boleh menghantar segmen ini sebagai \"Bukan Muzik\" dan bukannya penaja. Sila baca panduan sekiranya anda keliru."
|
||||
},
|
||||
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Publieke gebruikers-ID kopiëren"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Segment-ID kopiëren"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Word lid van de officiële Discord-server om suggesties en feedback te geven!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Dit verbergt de knoppen die verschijnen op de YouTube-speler om segmenten over te slaan."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Knop voor \"overslaan naar hoogtepunt\" op speler houden"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Info-knop op YouTube-speler weergeven"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Info-knop op YouTube-speler verbergen"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Dit is de knop die een pop-up opent op de YouTube-pagina."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Infoknop automatisch verbergen"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Verwijderen-knop op YouTube-speler weergeven"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Dit is de knop op de YouTube-speler die al uw niet-ingediende segmenten van de huidige video zal wissen."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Bijhouden van het aantal keren overslaan inschakelen"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Bijhouden van het aantal keren overslaan inschakelen in privé-/incognito-tabbladen"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Segment-tegenstemmen opslaan"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Segmenten waarop u een tegenstem doet, blijven verborgen, zelfs na vernieuwen"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Waarschuwing: als u dit uitschakelt, worden alle eerder opgeslagen tegenstemmen verwijderd"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Opvragen via hash-voorvoegsel"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Sleutel instellen voor het overslaan van een segment"
|
||||
"message": "Segment overslaan",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Sneltoets instellen voor begin/einde van segment"
|
||||
"message": "Segment starten/stoppen",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Sneltoets instellen voor inzending"
|
||||
"message": "Segmenten indienen",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Selecteer een toets door hem in te drukken"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Deze sneltoets is ingesteld op: "
|
||||
"message": "Selecteer een toets door hem in te typen en kies de modificatietoetsen die u wilt gebruiken."
|
||||
},
|
||||
"0": {
|
||||
"message": "Time-out van de verbinding. Controleer uw internetverbinding. Als uw internet werkt, is de server waarschijnlijk overbelast of offline."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Dempen"
|
||||
},
|
||||
"full": {
|
||||
"message": "Volledige video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} overslaan?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "U heeft overgeslagen: "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "U heeft zichzelf bespaard: "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minuut"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "uren"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "U heeft mensen bespaard:"
|
||||
"message": "U heeft mensen bespaard:",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " van hun leven"
|
||||
"message": " van hun leven",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Controleer status.sponsor.ajay.app voor de serverstatus."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Gemaakt door"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Hij is momenteel ingesteld op:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Ondersteuning voor YouTube-sites van derden"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "De volgende inzending is korter dan uw \"minimale tijdsduur\"-instelling. Dit kan betekenen dat dit al is ingediend en genegeerd wordt door deze optie. Weet u zeker dat u dit wilt indienen?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Indienen op een actieve livesteam of première is niet toegestaan. Wacht tot hij geëindigd is, vernieuw dan de pagina en controleer of de segmenten nog geldig zijn."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Uploaden-knop weergeven"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Deze knop verschijnt op de YouTube-speler nadat u een tijdstempel heeft geselecteerd en klaar bent om in te dienen."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock-serveradres"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Alle opties importeren/exporteren"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Bewerken/kopiëren"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Opslaan naar bestand"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Laden uit bestand"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Dit is uw volledige configuratie in JSON. Dit is inclusief uw gebruikers-ID, dus zorg ervoor dat u dit verstandig deelt."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "De foutopsporingsinformatie is gekopieerd naar het klembord. Voel u vrij om alle informatie die u liever niet wilt delen, te verwijderen. Sla dit op in een tekstbestand of plak het in het foutenrapport."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "De toets"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "is gekoppeld aan een andere actie. Selecteer een andere toets."
|
||||
"message": "Deze snelkoppeling is gebonden aan een andere actie. Kies een andere."
|
||||
},
|
||||
"to": {
|
||||
"message": "tot",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Vergelijkbaar met \"sponsor\", behalve voor onbetaalde of zelfpromotie. Dit is inclusief secties over koopwaar, donaties of informatie over met wie ze hebben samengewerkt."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exclusieve toegang"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Alleen voor het labelen van volledige video's. Wordt gebruikt wanneer een video een product, dienst of locatie laat zien waartoe men gratis of gesubsidieerd toegang heeft gekregen."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Deze video toont een product, dienst of locatie waartoe men gratis of gesubsidieerd toegang heeft gekregen",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Interactieherinnering (abonneren)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Snelle samenvatting van vorige afleveringen of een voorbeeld van wat er later komt in de huidige video. Bedoeld voor samengevoegde clips, niet voor gesproken samenvattingen."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Opvulling zijspoor/humor"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Zijspoor-scènes die alleen ter opvulling of als humor worden toegevoegd en niet noodzakelijk zijn om de hoofdinhoud van de video te begrijpen. Segmenten die context of achtergrondinformatie verschaffen, mogen hier niet onder vallen."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Opvulling"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Muziek: sectie niet-muziek"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Weergeven in tijdbalk"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Label weergeven"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Automatisch alle segmenten overslaan wanneer er een niet-muziek-segment is"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Segmenten toestaan die audio dempen in plaats van overslaan"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Uw kleur is verkeerd geformatteerd. Het moet een hexadecimale code van 3 of 6 cijfers zijn met een hekje aan het begin."
|
||||
"fullVideoSegments": {
|
||||
"message": "Een pictogram weergeven wanneer de volledige video een advertentie is",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Niet ingediend kleur",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Om segmenten met de categorie \"{0}\" in te dienen, moet u deze in de opties inschakelen. U wordt nu doorgestuurd naar de opties.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Waarschuwing: dit type segment kan maximaal één keer tegelijk actief zijn. Meerdere segmenten indienen zal weergave van een willekeurig segment veroorzaken."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "U moet een categorie selecteren voor alle segmenten die u indient!"
|
||||
},
|
||||
@@ -663,11 +704,14 @@
|
||||
"message": "(einde)"
|
||||
},
|
||||
"hiddenDueToDownvote": {
|
||||
"message": "verborgen: downvote"
|
||||
"message": "verborgen: tegenstem"
|
||||
},
|
||||
"hiddenDueToDuration": {
|
||||
"message": "verborgen: te kort"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "handmatig verborgen"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanaal-ID is nog niet geladen. Als u een ingesloten video gebruikt, probeer dan in plaats daarvan de YouTube-homepagina. Dit kan ook worden veroorzaakt door wijzigingen in de YouTube-lay-out. Als u denkt dat dit het geval is, maak dan hier een opmerking:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Verkeerde timing"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Verkeerde categorie"
|
||||
"message": "Categorie wijzigen"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Deze video is gecategoriseerd als muziek. Weet u zeker dat dit een sponsor heeft? Als dit eigenlijk een \"niet-muzieksegment\" is, open dan de extensie-opties en schakel deze categorie in. Vervolgens kunt u dit segment indienen als \"niet-muziek\" in plaats van als sponsor. Lees de richtlijnen als u in de war bent."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Begrepen",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Dit segment is groot. Als de hele video over één onderwerp gaat, verander dan van \"overslaan\" naar \"volledige video\". Zie de richtlijnen voor meer informatie."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "De hele video is gelabeld als deze categorie en is te strak geïntegreerd om te kunnen scheiden"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Uitschrijven van alle toekomstige experimenten",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Voor altijd verbergen"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "U heeft een waarschuwing gekregen en kunt tijdelijk geen segmenten indienen. Dit betekent dat we gemerkt hebben dat u een aantal veelvoorkomende fouten maakt die niet kwaadaardig zijn, en we willen gewoon de regels verduidelijken. U kunt ook deelnemen aan deze chat via discord.gg/SponsorBlock of matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "U heeft een waarschuwing gekregen en kunt tijdelijk geen segmenten indienen. Dit betekent dat we gemerkt hebben dat u een aantal veelvoorkomende fouten maakt die niet kwaadaardig zijn. Bevestig dat u de regels begrijpt en we zullen de waarschuwing verwijderen. U kunt ook deelnemen aan deze chat via discord.gg/SponsorBlock of matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Stem geweigerd vanwege een waarschuwing. Klik om een chat te openen om het op te lossen, of kom later terug als u tijd hebt.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Doneren"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Ontwikkeling steunen"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Donatiekoppeling verbergen"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Donkere modus op opties-pagina"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Bedankt voor het installeren van SponsorBlock."
|
||||
},
|
||||
@@ -767,7 +823,7 @@
|
||||
"message": "Videosegmenten zullen automatisch worden overgeslagen als ze in de database worden gevonden. U kunt de popup openen door op het pictogram van de extensie te klikken om een voorbeeld te krijgen van wat ze zijn."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Als u een segment overslaat, krijgt u een bericht. Als de timing verkeerd lijkt, stem dan door op downvote te klikken! U kunt ook stemmen in de popup."
|
||||
"message": "Als u een segment overslaat, krijgt u een bericht. Als de timing verkeerd lijkt, stem dan door op tegenstemmen te klikken! U kunt ook stemmen in de popup."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Indienen"
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Dank aan"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Nieuw! Ga met één klik naar de kern van de video met de nieuwe hoogtepunt-categorie"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Meer informatie"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Doet een tegenstem en maakt een lokale kopie aan die u opnieuw kunt indienen"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Wikipagina van deze categorie openen."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopiëren en tegenstemmen"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Doorgaan met stemmen"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Dit is direct van toepassing op uw segmenten"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Tegenstemmen"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Stemmen"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Segment verbergen"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Gebruik het muiswiel terwijl u over het invoerveld beweegt om de tijd snel aan te passen. Combinaties van de ctrl- of shift-toets kunnen worden gebruikt om de wijzigingen te verfijnen."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Nieuw! Zie wanneer een video volledig gesponsord of zelfpromotie is"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": " d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": " h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Gedrag",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interface",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Sneltoetsen",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Back-up maken/herstellen",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Overige",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Uiterlijk van overslaan-meldingen",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Ontkoppelen",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Niet ingesteld"
|
||||
},
|
||||
"change": {
|
||||
"message": "Wijzigen"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Dit is een ingebouwde YouTube-snelkoppeling. Weet u zeker dat u deze wilt gebruiken?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETAserver is ingeschakeld!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Pagina met opties openen"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Hopp igjen"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Lyd"
|
||||
},
|
||||
"paused": {
|
||||
"message": "På pause"
|
||||
},
|
||||
@@ -79,9 +82,15 @@
|
||||
"sponsorEnd": {
|
||||
"message": "Segmentet slutter nå"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Avbryt opprettelse av segment"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Ingen YouTube-video ble funnet.\nHvis dette er feil, oppfrisk fanen."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Oppdater segmenter"
|
||||
},
|
||||
"success": {
|
||||
"message": "Suksess!"
|
||||
},
|
||||
@@ -152,6 +161,9 @@
|
||||
"setUsername": {
|
||||
"message": "Angi brukernavn"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Kopiér offentlig bruker-ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Bli med i den offisielle Discord-tjeneren for å gi forslag og tilbakemeldinger!"
|
||||
},
|
||||
@@ -170,14 +182,17 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Dette skjuler knappene som dukker opp på YouTube-avspilleren for å sende inn hoppesegmenter."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Behold Hopp til høydepunkt-knappen på avspilleren"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Vis infoknappen på YouTube-avspilleren"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Skjul infoknappen på YouTube-avspilleren"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Dette er knappen som åpner et oppsprett på YouTube-siden."
|
||||
"autoHideInfoButton": {
|
||||
"message": "Skjul infoknappen automatisk"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Skjul Slett-knappen på YouTube-avspilleren"
|
||||
@@ -185,15 +200,15 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Vis Slett-knappen på YouTube-avspilleren"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Dette er knappen på YouTube-avspilleren som tømmer alle dine uinnsendte segmenter for den nåværende videoen."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Skru på telling av hopp"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Denne funksjonen sporer hvilke segmenter du har hoppet over, sånn at brukere vet hvor mye bidragene deres har hjulpet andre, og brukes som et målesystem sammen med plusstemmer for å sikre at spam ikke kommer inn i databasen. Utvidelsen sender en melding til tjeneren hver gang du hopper over et segment. Forhåpentligvis endrer ikke de fleste folk på denne innstillingene, sånn at visningstallene er nøyaktige. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Aktiver telling av antall hopp i privat/inkognito-faner"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Forespør ut i fra saltings-prefiks"
|
||||
},
|
||||
@@ -212,6 +227,21 @@
|
||||
"showSkipNotice": {
|
||||
"message": "Vis varsel etter at et segment har blitt hoppet over"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Hopp over-varsel i full størrelse"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Små hopp over-varsler for autohopp"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Alle små hopp over-varsler"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Tonet hopp over-varsel for autohopp"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Alle tonede hopp over-varsler"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock lar deg hoppe over sponsorer, introer, outro-er, abonnementspåminnelser, og andre irriterende deler av YouTube-videoer. SponsorBlock er en fellesskapsdrevet nettleserutvidelser som lar alle sende inn start- og sluttidspunktene til sponsede segmenter og andre segmenter i YouTube-videoer. Når en person sender inn denne informasjonen, vil alle andre med denne utvidelsen hoppe rett over det sponsede segmentet. Du kan også hoppe over ikke-musikk-seksjoner i musikkvideoer.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -233,16 +263,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Angi tast for å hoppe over et segment"
|
||||
"message": "Hopp over segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Start/stopp segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Angi tast for innsending"
|
||||
"message": "Send inn segmenter",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Velg en tast ved å trykke på den"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Hurtigtasten har blitt satt til: "
|
||||
"message": "Velg en tast ved å trykke på den, velg deretter hvilke modifikasjonstaster du ønsker å bruke."
|
||||
},
|
||||
"0": {
|
||||
"message": "Tidsavbrudd for tilkobling. Sjekk internettilkoblingen din. Hvis internettet ditt virker, er tjeneren sannsynligvis overbelastet eller nede."
|
||||
@@ -266,9 +299,35 @@
|
||||
"skip": {
|
||||
"message": "Hopp over"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Lydløs"
|
||||
},
|
||||
"full": {
|
||||
"message": "Full video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Vil du hoppe over {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Gjør {0} lydløs?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Hopp til {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} hoppet over",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} lydløs",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Hoppet til {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "Skru av autohopping"
|
||||
},
|
||||
@@ -290,9 +349,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Du har hoppet over "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Du har spart deg selv for "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minutt"
|
||||
},
|
||||
@@ -306,10 +362,12 @@
|
||||
"message": "timer"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Du har spart folk for"
|
||||
"message": "Du har spart folk for",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": "av sine liv"
|
||||
"message": "av sine liv",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Sjekk status.sponsor.ajay.app for tjenerstatus."
|
||||
@@ -317,6 +375,9 @@
|
||||
"changeUserID": {
|
||||
"message": "Importer/Eksporter din bruker-ID"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "Dette bør holdes privat. Det er som et passord og bør ikke deles med noen. Hvis noen har dette kan de utgi seg som deg. Hvis du leter etter din offentlige bruker-ID, klikker du på utklippstavlen i oppsprettsvinduet."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Angi bruker-ID"
|
||||
},
|
||||
@@ -326,12 +387,25 @@
|
||||
"createdBy": {
|
||||
"message": "Opprettet av"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Den er før øyeblikket satt til:"
|
||||
"supportOtherSites": {
|
||||
"message": "Støtt tredjeparts YouTube-nettsteder"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "Støtt tredjeparts YouTube-klienter. For å aktivere støtte må du akseptere ytterlige vilkår. Dette fungerer IKKE i inkognitomodus i Chrome og andre Chromium-varianter.",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "Støttede nettsteder: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Skru på Invidious-støtte, skru av autohopp, skjul knapper, og mer."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Legg til tredjeparts klientinstans"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "Legg til en egendefinert instans. Den må formatteres med KUN domenet. Eksempel: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "Legg til"
|
||||
},
|
||||
@@ -353,15 +427,21 @@
|
||||
"minDurationDescription": {
|
||||
"message": "Segmenter som er kortere enn den valgte verdien, vil ikke bli hoppet over eller vises i avspilleren."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Varighet for hopp over-varsel (sekunder):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Hopp over-varselet vil bli værende på skjermen i minst så mange sekunder. For manuell hopping kan det være synlig lenger."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "Den følgende innsendingen er kortere enn din valgte minimumsvarighetsinnstilling. Dette kan bety at den allerede er sendt inn, og at den simpelthen blir ignorert på grunn av denne innstillingen. Er du sikker på at du vil sende den inn?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Innsendelse på en aktiv direktesending eller premiere er ikke tillatt. Vennligst vent til den er ferdig, last så siden på nytt og kontroller at segmentene fortsatt er gyldige."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Vis opplastingsknapp"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Denne knappen dukker opp på YouTube-avspilleren etter at du har valgt et tidsstempel og er klar til å sende inn."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock-tjeneradresse"
|
||||
},
|
||||
@@ -386,6 +466,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importer/Eksporter alle innstillinger"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Rediger/kopiér"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Lagre til fil"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Last fra fil"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Dette er hele oppsettet ditt i JSON. Det inkluderer bruker-ID-en din, så sørg for å være beskjeden med å dele det."
|
||||
},
|
||||
@@ -413,6 +502,9 @@
|
||||
"preview": {
|
||||
"message": "Forhåndsvisning"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "Ikke innsendt"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "Inspiser"
|
||||
},
|
||||
@@ -431,11 +523,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Avlusingsinformasjonen har blitt kopiert til utklippstavlen. Du er velkommen til å fjerne det av informasjon som du helst ikke vil dele. Lagre dette i en tekstfil, eller lim det inn i feilrapporten."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Nøkkelen"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "er bundet til en annen handling. Vennligst velg en annen tast."
|
||||
"message": "Denne hurtigtasten er knyttet til en annen handling. Vennligst velg en annen kombinasjon."
|
||||
},
|
||||
"to": {
|
||||
"message": "til",
|
||||
@@ -453,6 +542,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Minner om «Sponsor», men er ubetalt eller selvpromotering. Dette inkluderer segmenter om merchandise, donasjoner, eller info om hvem de samarbeidet med."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Ekslusiv tilgang"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Kun for merking av hele videoer. Brukes når en video demonstrerer et produkt, tjeneste eller sted de har fått gratis eller subsidiert tilgang til."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Denne videoen demonstrerer et produkt, tjeneste eller sted som de har fått gratis eller subsidiert tilgang til",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Samhandlingspåminnelse (Abonner)"
|
||||
},
|
||||
@@ -477,6 +576,18 @@
|
||||
"category_outro_description": {
|
||||
"message": "Rulletekster eller når YouTube-sluttkortene dukker opp. Ikke for avslutninger med informasjon."
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "Forhåndsvisning/Oppsummering"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "Hurtig oppsummering av tidligere episoder, eller forhåndsvisning av hva som kommer senere i denne videoen. Ment for redigerte klipp, ikke muntlige sammendrag."
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Intetsigende segmenter kun lagt til som fyllstoff eller humor som ikke er nødvendig for å forstå hovedinnholdet i videoen. Dette bør ikke inkludere segmenter som gir kontekst eller bakgrunnsdetaljer."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Fyllstoff"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musikk: Seksjon uten musikk"
|
||||
},
|
||||
@@ -486,6 +597,12 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Ikke-musikk"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Høydepunkt"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Den del av videoen som de fleste er interessert i. Tilsvarende kommentarer som \"Videoen begynner på x\"."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Direktesending: Donasjons-/Meldingshøytlesninger"
|
||||
},
|
||||
@@ -504,8 +621,31 @@
|
||||
"disable": {
|
||||
"message": "Deaktiver"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Fargen din er formattert feil. Det burde være en 3- eller 6-sifret heksadesimal kode med et nummertegn foran."
|
||||
"autoSkip_POI": {
|
||||
"message": "Autohopp til starten"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Spør når videoen laster"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Vis i tidsstripen"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Vis merke"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Autohopp over alle segmenter når det er et segment uten musikk"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Tillat segmenter som slår av lyden i stedet for å hoppe over"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Vis et ikon når en video utelukkende er reklame",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Ikke innsendt-farge",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "Tidsstripefarge"
|
||||
@@ -539,6 +679,9 @@
|
||||
"message": "For å sende inn segmenter i «{0}»-kategorien, må du skru det på i innstillingene. Du vil nå bli omdirigert til innstillingene.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Advarsel: Denne type segment kan ha maksimalt én aktiv om gangen. Å legge inn flere vil forårsake en tilfeldig framvisning."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Du må velge en kategori for alle segmentene du sender inn!"
|
||||
},
|
||||
@@ -551,6 +694,13 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "skjult: for kort"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanal-ID er ikke lastet enda. Hvis du bruker en innebygd video, prøv å bruke YouTube-hjemmesiden i stedet. Dette kan også forårsakes av endringer i YouTube-oppsett, hvis du mistenker det, kommenter her:"
|
||||
},
|
||||
"videoInfoFetchFailed": {
|
||||
"message": "Det virker som om noe blokkerer SponsorBlock's mulighet til å få videodata. Vennligst se https://github.com/ajayyy/SponsorBlock/issues/741 for mer info."
|
||||
},
|
||||
"youtubePermissionRequest": {
|
||||
"message": "Det ser ut til at SponsorBlock ikke klarer å nå YouTube-API-en. For å fikse dette, godta tillatelsesspørringen som dukker opp etter dette, vent noen sekunder, og så last inn siden på nytt."
|
||||
},
|
||||
@@ -563,6 +713,9 @@
|
||||
"permissionRequestFailed": {
|
||||
"message": "Tillatelsesforespørselen mislyktes, klikket du på Avvis?"
|
||||
},
|
||||
"adblockerIssueWhitelist": {
|
||||
"message": "Om du ikke er i stand til å løse dette, forsøk å deaktiver innstillingen 'Fremtving kanalsjekk før hopp', siden SponsorBlock ikke kan hente kanalinformasjon for denne videoen"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "Fremtving kanalsjekk før hopp"
|
||||
},
|
||||
@@ -576,7 +729,7 @@
|
||||
"message": "Feil tidtaking"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Feil kategori"
|
||||
"message": "Endre kategori"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Denne videoen er kategorisert som musikk. Er du sikker på at dette har en sponsor? Hvis det egentlig er et \"Ikke-musikk-segment\", åpne opp innstillingene til utvidelsen og skru på denne kategorien. Deretter kan du sende dette segmentet som \"Ikke-musikk\" i stedet for som sponsing. Vennligst les retningslinjene hvis du er forvirret."
|
||||
@@ -596,5 +749,167 @@
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Åpne innstillingene for å hoppe over introer, outro-er, merchandise, osv."
|
||||
},
|
||||
"help": {
|
||||
"message": "Hjelp"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "Jeg forstår",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Dette segmentet er stort. Dersom hele videoen er omtrent ett emne, så endre fra \"Hopp Over\" til \"Full Video\". Se retningslinjene for mer informasjon."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Hele denne videoen er merket som denne kategorien og er for tett knyttet til å kunne separeres"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Reservér deg mot alle fremtidige eksperimenter",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "Skjul for alltid"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Du fikk en advarsel og vil midlertidig ikke kunne sende inn segmenter. Dette betyr at vi la merke til at du gjorde noen vanlige feil som ikke var vondt ment, vennligst bare bekreft at du er inneforstått med reglene og vi vil fjerne advarslen. Du kan også bli med i denne chatten på discord.gg/SponsorBlock eller matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Stemme avvist på grunn av en advarsel. Klikk for å åpne chatten for å løse dette, eller kom tilbake senere når du har tid.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Donér"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Skjul donasjonslenke"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Mørk modus på instillingssiden"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Takk for at du installerte SponsorBlock."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Vennligst se gjennom innstillingene nedenfor"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Mange funksjoner er deaktivert som standard. Om du vil hoppe over introer, outro-er, benytte Invidious osv., aktiver dem nedenfor. Du kan også vise eller skjule UI-elementer."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Hvordan hopping fungerer"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Videosegmenter vil automatisk bli hoppet over hvis de finnes i databasen. Du kan åpne oppsprettsvinduet ved å klikke på utvidelsesikonet for å få en forhåndsvisning av hva de er."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Hver gang du hopper over et segment vil du få et varsel. Hvis tidtakingen ser feil ut stem ned ved å klikke på nedstemme! Du kan også stemme i oppsprettsvinduet."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Innsending"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Innsending kan enten gjøres i oppsprettsvinduet ved å klikke på \"Segmentet starter nå\"-knappen eller i videoavspilleren ved å klikke på knappene på avspilleren."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Klikk på avspillingsknappen angir starten av et segment og klikk på stopp-ikonet angir slutten. Du kan gjøre klar flere sponsorer før du sender inn. Klikk på opplastningsknappen for å sende inn. Klikk på papirkurven for å slette."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Redigering"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Hvis du rotet det til kan du redigere eller slette segmentene dine etter at du har klikket på pil opp-knappen."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Dette er for tidkrevende"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Om du vil kan du bruke hurtigtaster. Trykk på semikolon-tasten for å angi start/stopp av et sponsorsegment og klikk på apostrof for å sende inn. Disse kan endres i innstillinger. Om du ikke bruker QWERTY bør du sannsynligvis endre hurtigtastene."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Kan jeg få en kopi av databasen? Hva hender hvis du forsvinner?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Databasen er offentlig og tilgjengelig på"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Kildekoden er fritt tilgjengelig. Så selv om noe skulle skje med meg vil ikke dine bidrag gå tapt."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Nyheter og hvordan det er laget"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Hvor kan jeg finne kildekoden?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Anerkjennelser"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Les mer"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Stemmer ned og oppretter en lokal kopi som du kan sende inn på nytt"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Åpne denne kategoriens wiki-side."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopiér og stem ned"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Fortsett å stemme"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Dette vil umiddelbart gjelde for dine segmenter"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Bruk musehjulet mens du peker over redigeringsboksen for å raskt justere tiden. Kombinasjoner av ctrl- eller shift-tasten kan brukes til å finjustere endringene."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Nyhet! Se om en video er fullstendig sponset eller selvpromotert"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "t",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Oppførsel",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Grensesnitt",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Hurtigtaster",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Sikkerhetskopiér/gjenskap",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Diverse",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Hopp over-varselutseende",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Fjern",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Ikke angitt"
|
||||
},
|
||||
"change": {
|
||||
"message": "Endre"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Dette er en innebygget YouTube-hurtigtast. Er du sikker på at du vil bruke den?"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,7 +162,10 @@
|
||||
"message": "Ustaw nazwę użytkownika"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Kopiuj Publiczne ID Użytkownika"
|
||||
"message": "Kopiuj publiczny identyfikator użytkownika"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Kopiuj ID segmentu"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Dołącz do oficjalnego serwera na discordzie i podziel się wrażeniami i sugestiami!"
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Ta opcja ukrywa przyciski do zamieszczania segmentów pojawiające się na odtwarzaczu YouTube."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Wyświetlaj przycisk \"Przejść do wyróżnione?\" na odtwarzaczu"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Pokaż przycisk informacyjny na odtwarzaczu YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Ukryj przycisk informacyjny na odtwarzaczu YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Jest to przycisk otwierający okienko pop-up na stronie YouTube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Autoukrywanie przycisku informacji"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Pokaż przycisk usuwania na odtwarzaczu YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Ten przycisk na odtwarzaczu YouTube wyczyści wszystkie twoje niewysłane segmenty dla bieżącego filmu."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Włącz monitorowanie liczby pominięć"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Włącz licznik śledzenia pominięć w zakładkach Prywatnych/Incognito"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Zapamiętaj segmenty z łapkami w dół"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Wszystkie segmenty, którym dasz łapkę w dół, pozostaną ukryte nawet po odświeżeniu"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Uwaga: Wyłączenie tego usunie wszystkie poprzednio zapisane łapki w dół"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Zapytanie według prefiksu Hash"
|
||||
},
|
||||
@@ -230,9 +239,21 @@
|
||||
"showSkipNotice": {
|
||||
"message": "Pokaż informację po pominięciu segmentu"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Pełnowymiarowe powiadomienia o przewinięciu"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Małe powiadomienia o automatycznym przewijaniu"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Małe powiadomienia o przewinięciu"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Znikające powiadomienia o automatycznym przewijaniu"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Znikające powiadomienia o przewijaniu"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock pozwala pomijać sponsorów, intra, outra, przypomnienia o subskrypcjach i inne irytujące fragmenty filmów na YouTube. SponsorBlock jest opartym na crowdsourcingu rozszerzeniem do przeglądarki, które pozwala każdemu zgłosić początek i koniec segmentów sponsorowanych oraz innych segmentów w filmach na YouTube. Kiedy ktoś już zamieści te informacje, wszyscy pozostali z tym rozszerzeniem będą pomijać segment sponsorowany. Możesz również pomijać fragmenty teledysków bez muzyki.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -254,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Ustaw klawisz do pomijania segmentów"
|
||||
"message": "Pomiń segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Ustaw klawisz do oznaczania początku/końca segmentu"
|
||||
"message": "Rozpocznij/zatrzymaj segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Ustaw klawisz do wysyłania czasów"
|
||||
"message": "Prześlij segmenty",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Wybierz klawisz, wciskając go na klawiaturze"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Ustawiony klawisz to: "
|
||||
"message": "Wybierz przycisk, wpisując go i wybierz dowolne klucze modyfikujące, których chcesz użyć."
|
||||
},
|
||||
"0": {
|
||||
"message": "Połączenie przerwane z powodu braku odpowiedzi. Sprawdź swoje połączenie z internetem. Jeśli wszystko z nim w porządku oznacza to, że serwer jest prawdopodobnie przeciążony lub nie działa."
|
||||
@@ -293,8 +314,15 @@
|
||||
"mute": {
|
||||
"message": "Wycisz"
|
||||
},
|
||||
"full": {
|
||||
"message": "Cały film",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Pominąć {0}?"
|
||||
"message": "{0} — pominąć?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Wyciszyć {0}?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Przejść do {0}?",
|
||||
@@ -304,6 +332,10 @@
|
||||
"message": "Pominięto {0}",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "Wyciszono {0}",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Przewinięto do {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
@@ -329,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Przewinięto "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Oszczędzono sobie "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "min"
|
||||
},
|
||||
@@ -345,10 +374,12 @@
|
||||
"message": "godz."
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Oszczędzono innym"
|
||||
"message": "Oszczędzono innym",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " życia"
|
||||
"message": " życia",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Sprawdź status serwera na status.sponsor.ajay.app"
|
||||
@@ -356,6 +387,9 @@
|
||||
"changeUserID": {
|
||||
"message": "Importuj/Eksportuj swój identyfikator użytkownika"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "To powinno pozostać prywatne. Jest to niczym hasło i nie powinno zostać nikomu udostępnione. Przy jego użyciu ktoś może się pod ciebie podszywać. Jeśli szukasz publicznego ID użytkownika, kliknij ikonę schowka w wyskakującym oknie."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Ustaw identyfikator użytkownika"
|
||||
},
|
||||
@@ -365,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Stworzony przez"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Obecnie ustawiony:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Obsługa stron YouTube firm trzecich"
|
||||
},
|
||||
@@ -417,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Ten segment jest krótszy od ustawionego przez Ciebie minimalnego czasu trwania. Może to oznaczać, że ktoś już to zamieścił, ale nie widzisz tego przez to ustawienie. Czy na pewno chcesz to zamieścić?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Przesyłanie na aktywnej transmisji na żywo lub premierze jest niedozwolone. Poczekaj aż ona się zakończy, a następnie odśwież stronę i sprawdź, czy te segmenty są nadal prawidłowe."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Pokaż przycisk wysyłania"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Ten przycisk pojawia się na odtwarzaczu YouTube po wybraniu przedziału czasowego, gdy segment jest gotowy do wysłania."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Adres serwera SponsorBlock"
|
||||
},
|
||||
@@ -447,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importuj/Eksportuj wszystkie ustawienia"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Edytuj/kopiuj"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Zapisz do pliku"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Wczytaj z pliku"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Jest to cała twoja konfiguracja w formacie JSON. Zawarty jest w niej twój identyfikator użytkownika, więc uważaj, komu ją udostępniasz."
|
||||
},
|
||||
@@ -495,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Informacje do debugowania zostały skopiowane do schowka. Możesz usunąć dane, których nie chcesz udostępniać. Zapisz je w pliku tekstowym albo wklej do raportu podczas zgłaszania błędu."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Klucz"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "jest przypisane do innej akcji. Wybierz proszę inny klawisz."
|
||||
"message": "Ten skrót jest przypisany do innej akcji. Proszę wybrać inny."
|
||||
},
|
||||
"to": {
|
||||
"message": "do",
|
||||
@@ -517,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Podobnie jak \"sponsor\", ale nieodpłatnie bądź w ramach promocji własnej. Obejmuje to sekcje o własnych produktach, donacjach czy informacje o tym, z kim współpracowali."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Ekskluzywny dostęp"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Tylko do oznaczania całych filmów. Używane, gdy wideo wyświetla produkt, usługę lub lokalizację, do których otrzymali darmowy lub subsydiowany dostęp."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Ten film pokazuje produkt, usługę lub lokalizację, do których otrzymali darmowy lub subsydiowany dostęp",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Przypomnienie o interakcji (Subskrybuj)"
|
||||
},
|
||||
@@ -547,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Szybkie podsumowanie poprzednich odcinków lub podgląd tego, co pojawia się później w bieżącym filmie. Dotyczy zmontowanych klipów, a nie ustnych podsumowań."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Wypełniacz Nietematyczny/Żart"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Sceny nietematyczne dodawane tylko jako wypełniacz lub dla humoru, które nie są wymagane do zrozumienia głównej treści filmu. Nie powinno to obejmować segmentów zawierających informacje kontekstowe lub szczegółowe."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Wypełniacz"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Muzyka: Sekcja niemuzyczna"
|
||||
},
|
||||
@@ -557,7 +613,10 @@
|
||||
"message": "Bez muzyki"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Podświetlone"
|
||||
"message": "Wyróżnione"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Część filmu, która interesuje większość osób. Podobne do komentarzy typu „Filmik zaczyna się od x”."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Transmisja live: Dotacja/Czytanie wiadomości"
|
||||
@@ -581,13 +640,23 @@
|
||||
"message": "Automatycznie przewiń do początku"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Zapytaj, gdy wideo się załaduje"
|
||||
"message": "Zapytaj, gdy film się załaduje"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Pokaż na pasku"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Wyświetl etykietę"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Automatycznie pomiń wszystkie segmenty, gdy istnieje segment niemuzyczny"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Nieprawidłowy format koloru. Powinien to być zapis szesnastkowy (heksadecymalny) składający się z 3 lub 6 znaków poprzedzonych kratką (#)."
|
||||
"muteSegments": {
|
||||
"message": "Zezwalaj na segmenty, które wyciszą dźwięk zamiast pomijać"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Pokaż ikonę, gdy film jest w całości reklamą",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Nieprzesłany kolor",
|
||||
@@ -625,6 +694,9 @@
|
||||
"message": "Aby przesyłać segmenty o kategorii „{0}”, musisz ją włączyć w opcjach. Za chwilę nastąpi przekierowanie do ustawień.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Ostrzeżenie: Ten typ segmentu, może być maksymalnie jeden. Przesyłanie kilku na raz spowoduje, że pojawi się losowy."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Musisz wybrać kategorię dla każdego segmentu, który zamieszczasz!"
|
||||
},
|
||||
@@ -672,7 +744,7 @@
|
||||
"message": "Niepoprawne/Zły czas"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Zła kategoria"
|
||||
"message": "Zmień kategorię"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Ten film jest skategoryzowany jako muzyka. Czy masz pewność, że jest tutaj sponsor? Jeśli w rzeczywistości jest to „Sekcja Niemuzyczna”, otwórz opcje rozszerzenia i włącz tę kategorię. Wtedy będziesz w stanie zamieścić ten segment jako „Bez Muzyki” zamiast sponsora. Przeczytaj proszę wytyczne, jeśli masz wątpliwości."
|
||||
@@ -700,6 +772,12 @@
|
||||
"message": "Rozumiem",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Ten segment jest duży. Jeśli cały film dotyczy jednego tematu, zmień z \"Pomiń\" na \"Cały film\". Zobacz wytyczne, po więcej informacji."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Cały film jest oznaczony jako ta kategoria i jest za bardzo zintegrowany, aby można było go podzielić"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Wyłączenie wszystkich przyszłych eksperymentów",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -708,33 +786,75 @@
|
||||
"message": "Schowaj na zawsze"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Otrzymałeś ostrzeżenie i nie możesz tymczasowo przesłać segmentów. Oznacza to, że zauważyliśmy, że popełniałeś pewne pospolite błędy, które nie są złośliwe i po prostu chcemy wyjaśnić zasady. Możesz również dołączyć do tego czatu używając discord.gg/SponsorBlock lub matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Otrzymałeś ostrzeżenie i tymczasowo nie możesz przesyłać segmentów. Oznacza to, że zauważyliśmy, że popełniłeś/aś pewne powszechne błędy, które nie są złośliwe, proszę tylko potwierdzić, że rozumiesz zasady i usuniemy ostrzeżenie. Możesz również dołączyć do tego czatu używając discord.gg/SponsorBlock lub matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Głosowanie odrzucone z powodu ostrzeżenia. Kliknij, aby otworzyć czat w celu rozwiązania problemu lub wróć później, gdy będziesz miał czas.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Dotacje"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Wesprzyj"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Ukryj Link Do Dotacji"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Tryb ciemny na stronie opcji"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Dziękujemy za zainstalowanie SponsorBlock."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Przejrzyj poniższe opcje"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Wiele funkcji jest domyślnie wyłączonych. Jeśli chcesz pomijać intra, outra, używać Invidious, itp., włącz je poniżej. Możesz również ukryć/pokazać elementy interfejsu użytkownika."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Jak działa pomijanie"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Segmenty filmu zostaną automatycznie pominięte, jeśli znajdują się w bazie danych. Możesz kliknąć na ikonę rozszerzenia, aby podejrzeć, czym one są."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Za każdym razem, gdy pominiesz segment, otrzymasz powiadomienie. Jeśli moment nie wydaje się być poprawny, kliknij łapkę w dół! Możesz również głosować w okienku pop-up."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Wysyłanie"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Wysyłanie może być wykonane w wyskakującym okienku, poprzez kliknięcie przycisku \"Początek segmentu\" lub za pomocą przycisków na odtwarzaczu wideo."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Kliknięcie przycisku odtwarzania wskazuje początek segmentu a kliknięcie ikony stop wskazuje koniec segmentu. Możesz przygotować wielu segmentów przed wysłaniem. Aby wysłać kliknij przycisk potwierdzający, a aby usunąć - na śmietnik."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Edytowanie"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Jeśli się pomyliłeś, możesz edytować i usuwać swoje segmenty poprzez kliknięcie przycisku ze strzałką w górę."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Zbyt wolno"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Istnieją skróty klawiszowe, jeśli chcesz ich używać. Naciśnij klawisz średnika, aby wskazać początek/koniec segmentu sponsora i kliknij w apostrof, aby przesłać. Można je zmienić w opcjach. Jeśli nie używasz QWERTY, prawdopodobnie powinieneś zmienić skrót klawiszowy."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Czy mogę otrzymać kopię bazy danych? Co się stanie, jeśli przestaniecie istnieć?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Baza danych jest publiczna i dostępna na stronie"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Kod źródłowy jest dostępny. Tak więc, nawet jeśli coś się ze mną stanie, wasze zgłoszenia nie zostaną utracone."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Wiadomości i jak to jest zrobione"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Gdzie mogę otrzymać kod źródłowy?"
|
||||
},
|
||||
@@ -743,5 +863,77 @@
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Dowiedz się więcej"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Daje łapkę w dół i tworzy lokalną kopię, abyś mógł przesłać poprawioną wersję"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Otwórz stronę wiki dla tej kategorii."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Skopiuj i daj łapkę w dół"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Kontynuuj głosowanie"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "To natychmiastowo zostanie zastosowane do twoich segmentów"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Ukryj segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Użyj scroll'a myszy po najechaniu nad pole edycji, aby szybko dostosować czas. Kombinacje z ctrl'em i shift'em mogą być użyte, aby doszlifować zmiany."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Nowość! Zobacz, kiedy film jest w całości sponsorowany lub jest autopromocją"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Zachowanie",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interfejs",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Skróty klawiszowe",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Kopia/przywracanie",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Różne",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Pomiń wygląd wpisu",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Usuń przypisanie",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Nie ustawiono"
|
||||
},
|
||||
"change": {
|
||||
"message": "Zmień"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "To jest wbudowany skrót YouTube. Czy na pewno chcesz go użyć?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Serwer BETA jest włączony!"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"message": "Pular novamente"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Desmutar"
|
||||
"message": "Ativar som"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pausado"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Copiar ID Pública de Usuário"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Copiar ID do segmento"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Junte-se ao servidor do discord oficial para dar dicas e sugestões!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Esta opção esconde os botões que aparecem para enviar segmentos no player do YouTube."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Manter botão Pular para os Destaques no player"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Mostrar botão de Informações no player do Youtube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Esconder botão de Informações no player do Youtube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Este é o botão que abre o popup na pagina do Youtube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Esconder Automaticamente o Botão de Informação"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Mostrar botão de Apagar no player do Youtube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Este é o botão que lhe permite saltar todos os patrocínios do player do Youtube."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Ativar Contador de Segmentos Pulados"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Ativar Pular Contagem de Rastreamento em Abas Privadas/Incógnito"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Armazenar votos negativos de segmentos"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Qualquer segmento que você der voto negative permanecerá oculto mesmo após recarregar"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Aviso: Desativar isto excluirá todos os votos negativos armazenados anteriormente"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Consulta Por Prefixo Hash"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Defina a tecla para ignorar um segmento"
|
||||
"message": "Pular segmento",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Defina a tecla para iniciar/interromper o segmento"
|
||||
"message": "Iniciar/parar segmento",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Defina a tecla para enviar o segmento de patrocínio"
|
||||
"message": "Enviar Segmentos",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Selecione uma tecla apertando-a"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "A tecla foi definida para: "
|
||||
"message": "Pressione a tecla desejada e escolha quaisquer teclas modificadoras deseja utilizar."
|
||||
},
|
||||
"0": {
|
||||
"message": "Tempo limite de conexão excedida. Cheque a sua conexão de internet. Se a sua internet estiver funcionando, o servidor está sobrecarregado ou fora do ar."
|
||||
@@ -303,13 +312,17 @@
|
||||
"message": "Pular"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Mutar"
|
||||
"message": "Silenciar"
|
||||
},
|
||||
"full": {
|
||||
"message": "Vídeo completo",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Pular {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Mutar {0}?"
|
||||
"message": "Silenciar {0}?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Pular para {0}?",
|
||||
@@ -320,7 +333,7 @@
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} Mutado",
|
||||
"message": "{0} Silenciado",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Você pulou "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Você poupou "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minuto"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "horas"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Você poupou das pessoas"
|
||||
"message": "Você poupou das pessoas",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " das vidas dos outros"
|
||||
"message": " das vidas dos outros",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Verifique status.sponsor.ajay.app para o status do servidor."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Criado por"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Atualmente, está definido para:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Suporte a Sites do YouTube de Terceiros"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "A seguinte submissão é mais curta do que sua opção de duração mínima. Isto significa que já foi enviada e que está sendo ignorada devido a esta opção. Tem certeza que deseja enviar mesmo assim?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Não é permitido o envio de segmentos em livestreams ou premieres ainda em andamento. Por favor, aguarde até que terminem, e em seguida, atualize a página e verifique se os segmentos ainda são válidos."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Mostrar botão de envio"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Este botão aparece no reprodutor do YouTube depois de ter selecionado um carimbo de data/hora e está pronto para ser enviado."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Endereço do servidor do SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importar/Exportar Todas as Opções"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Editar/copiar"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Exportar para arquivo"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Importar de um arquivo"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Essas são suas preferências no formato JSON. Isso inclui seu ID de usuário, então lembre-se de compartilhar com cuidado."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "A informação de depuração foi copiada para a área de transferência. Sinta-se à vontade para remover qualquer informação que prefira não compartilhar. Salve em um arquivo de texto ou cole-a no relatório de bug."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "A tecla"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "está vinculado a outra ação. Por favor, selecione outra tecla."
|
||||
"message": "Este atalho está vinculado a outra ação. Por favor, selecione um atalho diferente."
|
||||
},
|
||||
"to": {
|
||||
"message": "até",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Similar a \"patrocinador\", mas para auto promoções e segmentos não-pagos. Isso inclui seções sobre vendas, doações ou informações sobre com quem colaboraram."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Acesso Exclusivo"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Apenas para rotular vídeos inteiros. Usado quando um vídeo apresenta um produto, serviço ou local ao qual eles receberam acesso gratuito ou subsidiado."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Este vídeo apresenta um produto, serviço ou local ao qual eles receberam acesso gratuito ou subsidiado",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Lembrete de interação (inscrever-se)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Recapitulação rápida de episódios anteriores, ou uma prévia do que está chegando mais tarde no vídeo atual. Destinado a clipes editados juntos, não para resumos falados."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Enrolação/Piadas"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Cenas tangenciais inseridas apenas por enrolação ou humor que não são necessárias para compreender o tópico principal do vídeo. Isto não deve incluir segmentos que fornecem contexto ou detalhes de segundo plano."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Enrolação"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Música: Seção sem música"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Mostrar na barra de progresso"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Mostrar Rótulo"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Pular automaticamente todos os segmentos quando há um segmento que não é música"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Permitir segmentos que mutam áudio ao invés de pular"
|
||||
"message": "Permitir segmentos que silenciem o áudio ao invés de pular"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Sua cor está formatada incorretamente. Deve ser um código hexadecimal de 3 ou 6 dígitos com uma cerquilha (hashtag) no início."
|
||||
"fullVideoSegments": {
|
||||
"message": "Mostrar um ícone quando um vídeo é inteiramente um anúncio",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Cor Não Enviada",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Para enviar os segmentos com a categoria de \"{0}\", você deve ativá-la nas opções. Você será redirecionado para as opções agora.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Aviso: Este tipo de segmento pode ter no máximo um ativo por vez. Enviar múltiplos fará com que um aleatório seja mostrado."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Você deve selecionar uma categoria para todos os segmentos que você está enviando!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "oculto: muito curto"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "oculto manualmente"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "O ID do canal ainda não foi carregado. Se você estiver usando um vídeo embutido, tente usar a página inicial do YouTube. Isso também pode ser causado por mudanças no layout do YouTube, se você achar que este é o caso, faça um comentário aqui:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Tempo errado ou incorreto"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Categoria errada"
|
||||
"message": "Mudar Categoria"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Este vídeo é categorizado como música. Tem certeza de que isto tem um patrocinador? Se este é realmente um \"Segmento Não Musical\", abra as opções da extensão e habilite esta categoria. Assim você pode enviar este segmento como \"Não-Musical\" ao invés de patrocinador. Por favor leia as diretrizes se estiver confuso."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Entendi",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Este segmento é grande. Se o vídeo inteiro for sobre um tópico, altere de \"Pular\" para \"Vídeo completo\". Consulte as diretrizes para obter mais informações."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Este vídeo inteiro está rotulado como esta categoria e está muito integrado para poder ser separado"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Optar por sair de todos os experimentos futuros",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Ocultar para sempre"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Você recebeu um aviso e temporariamente não poderá enviar segmentos. Isso significa que notamos que você cometeu alguns erros comuns que não são maliciosos, e queremos apenas clarificar as regras. Você também pode participar desse chat usando discord.gg/SponsorBlock ou matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Você recebeu um aviso e não pode enviar segmentos temporariamente. Isso significa que notamos que você estava cometendo erros comuns não maliciosos, por favor confirme que você entende as regras e removeremos o aviso. Você também pode participar do chat usando discord.gg/SponsorBlock ou matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Voto rejeitado devido a um aviso. Clique para abrir um chat para resolvê-lo, ou volte mais tarde quando tiver tempo.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Doar"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Ajude a financiar o desenvolvimento"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Ocultar o Link de Doação"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Modo Escuro na página de Opções"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Obrigado por instalar o SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Créditos"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Novo! Vá direto ao ponto do vídeo com um clique com a nova categoria de Destaque"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Saiba mais"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Dá voto negativo e cria uma cópia local para você reenviar"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Abrir a wiki dessa categoria."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Copiar e dar voto negativo"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Continuar Votando"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Isto irá aplicar instantaneamente seus segmentos"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Voto negativo"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Voto positivo"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Ocultar segmento"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Use a roda do mouse enquanto mantêm o cursor sobre a caixa de edição para ajustar o tempo rapidamente. Combinações das teclas ctrl e shift podem ser usadas para refinar as mudanças."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Novo! Veja quando um vídeo é inteiramente patrocinado ou de autopromoção"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Comportamento",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Interface",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Atalhos de teclado",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Backup/Restauração",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Miscelânea",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Aparência da notificação de pulo",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Desvincular",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Não configurado"
|
||||
},
|
||||
"change": {
|
||||
"message": "Alterar"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Este já é um atalho padrão do YouTube. Tem certeza que deseja utilizá-lo?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Os Servidores BETA estão ativos!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Abrir página de opções"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
"message": "SponsorBlock para o YouTube - Salte patrocínios",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "Salte patrocinios, pedidos de subscrição e mais em videos do YouTube. Submeta anúncios nos videos que visualiza para poupar tempo a outros.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "O servidor disse que este pedido foi inválido"
|
||||
},
|
||||
@@ -15,9 +19,21 @@
|
||||
"channelWhitelisted": {
|
||||
"message": "Canal adicionado à whitelist!"
|
||||
},
|
||||
"Segment": {
|
||||
"message": "segmento"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "segmentos"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Votar positivamente esta submissão"
|
||||
},
|
||||
"reportButtonTitle": {
|
||||
"message": "Reportar"
|
||||
},
|
||||
"reportButtonInfo": {
|
||||
"message": "Reportar esta submissão como incorrecta."
|
||||
},
|
||||
"Dismiss": {
|
||||
"message": "Ignorar"
|
||||
},
|
||||
@@ -36,9 +52,15 @@
|
||||
"reskip": {
|
||||
"message": "Saltar novamente"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Ativar som"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pausado"
|
||||
},
|
||||
"manualPaused": {
|
||||
"message": "Temporizador parado"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "\n\nPara editar ou remover linhas individuais, carregue com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
|
||||
},
|
||||
@@ -48,21 +70,82 @@
|
||||
"Unknown": {
|
||||
"message": "Erro ao enviar os seus segmentos, tente novamente mais tarde."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Este vídeo tem segmentos na base de dados!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Nenhum segmento encontrado"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "O Segmento Começa Agora"
|
||||
},
|
||||
"sponsorEnd": {
|
||||
"message": "O Segmento Acaba Agora"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Cancelar Criação de Segmento"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Nenhum vídeo do YouTube encontrado.\nSe isto não estiver correto, atualize o separador."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Atualizar segmentos"
|
||||
},
|
||||
"success": {
|
||||
"message": "Sucesso!"
|
||||
},
|
||||
"voted": {
|
||||
"message": "Votado!"
|
||||
},
|
||||
"serverDown": {
|
||||
"message": "Parece que o servidor está em baixo. Contacte o desenvolvedor imediatamente."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Deu-se um erro de conecção: Código: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Limpar Segmentos"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "Abrir o Popup SponsorBlock"
|
||||
},
|
||||
"closePopup": {
|
||||
"message": "Fechar Popup"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Submeter Segmentos"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Tem a certeza que pretende submeter?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Meter canal na Lista Branca"
|
||||
},
|
||||
"removeFromWhitelist": {
|
||||
"message": "Remover canal da Lista Branca"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Votar em um segmento"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Submissões"
|
||||
},
|
||||
"savedPeopleFrom": {
|
||||
"message": "Salvaste pessoas de "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "Tabela de Classificação"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "Enviar"
|
||||
},
|
||||
"submissionEditHint": {
|
||||
"message": "A edição da seção aparecerá depois que você clicar em enviar",
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Dica: Você pode configurar atalhos de teclado para enviar nas opções"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Limpar Intervalos"
|
||||
},
|
||||
@@ -72,9 +155,15 @@
|
||||
"publicStats": {
|
||||
"message": "Isto é usado na página pública de estatísticas que mostra o quanto já contríbuíu. Veje-a"
|
||||
},
|
||||
"Username": {
|
||||
"message": "Nome de Utilizador"
|
||||
},
|
||||
"setUsername": {
|
||||
"message": "Criar nomde de utilizador"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Copiar UserID Publico"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Junte-se ao discord oficial para sugerir dicas e sugestões!"
|
||||
},
|
||||
@@ -93,14 +182,17 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Isto esconde os botões que aparecem no player do Youtube para submeter patrocínios. Entendemos que possa ser\n incómodo a algumas pessoas. Em vez de usar esses botões pode usar os do popup. Para esconder a mensagem que aparece, \n ususe o botão na mesma que diz \"Don't show this again\". Pode sempre reactivar estas definições novamente."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Mantenha o Botão Saltar para Destaque no Player"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Mostrar botão de Informações no player do Youtube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Esconder botão de Informações no player do Youtube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Este é o botão que abre o popup na pagina do Youtube."
|
||||
"autoHideInfoButton": {
|
||||
"message": "Ocultar automaticamente o Botão de Informação"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Esconder botão de Apagar no player do Youtube"
|
||||
@@ -108,8 +200,29 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Mostrar botão de Apagar no player do Youtube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Este é o botão que lhe permite saltar todos os patrocínios do player do Youtube."
|
||||
"enableViewTracking": {
|
||||
"message": "Ativar Rastreamento de Contagem de Saltos"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "Esse recurso rastreia quais segmentos você pulou para permitir que os usuários saibam o quanto seu envio ajudou outras pessoas e é usado como métrica junto com votos positivos para garantir que o spam não entre no banco de dados. A extensão envia uma mensagem ao servidor cada vez que você pular um segmento. Espero que a maioria das pessoas não altere essa configuração para que os números de visualização sejam precisos. :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Ativar o Rastreamento de Contagem de Saltos nas Guias Privadas/Anônimas"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Guardar segmentos de votos negativos"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Quaisquer segmentos que você votar negativo permanecerão ocultos mesmo após a atualização"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Aviso: Ao desabilitar isso excluirá todos os votos negativos armazenados anteriormente"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Consulta por Prefixo de Hash"
|
||||
},
|
||||
"whatQueryByHashPrefix": {
|
||||
"message": "Em vez de solicitar segmentos do servidor usando o ID do Vídeo, são enviados os primeiros 4 caracteres do hash do ID do Vídeo. Este servidor enviará de volta dados para todos os vídeos com hashes semelhantes."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Mostrar notificação outra vez"
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Sari peste"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Activare sunet"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Pauză"
|
||||
},
|
||||
@@ -79,9 +82,15 @@
|
||||
"sponsorEnd": {
|
||||
"message": "Segmentul se termină acum"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "Anulare creare segment"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "Nu s-a găsit niciun videoclip YouTube.\nDacă acest lucru este incorect, actualizați fila."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "Reîmprospătare segmente"
|
||||
},
|
||||
"success": {
|
||||
"message": "Succes!"
|
||||
},
|
||||
@@ -152,6 +161,9 @@
|
||||
"setUsername": {
|
||||
"message": "Setează Numele De Utilizator"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "Copiază ID-Utilizator Public"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Vino și alătură-te serverului oficial de discord pentru a oferi sugestii și feedback!"
|
||||
},
|
||||
@@ -176,18 +188,12 @@
|
||||
"hideInfoButton": {
|
||||
"message": "Ascunde Butoanele De Informații Pe Playerul De YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Acesta este butonul care deschide popup-ul pe pagina de YouTube."
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "Ascunde Butonul De Ștergere Pe Playerul De YouTube"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "Arată Butonul De Ștergere Pe Playerul De YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Acest buton de pe playerul de YouTube va șterge toate segmentele netrimise pentru videoclipul curent."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Activează Urmărirea Săriturilor"
|
||||
},
|
||||
@@ -232,18 +238,6 @@
|
||||
"message": "Dacă nu îți place, apasă butonul nu mai arăta niciodată.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Setați cheia pentru omiterea unui segment"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Setează tasta pentru trimiterea sponsorizării"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Selectează o tastă apasând-o"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Tasta a fost setată la: "
|
||||
},
|
||||
"0": {
|
||||
"message": "Eroare de Conexiune. Verifică-ți conexiunea la internet. Daca internetul functionează, serverul este probabil supraîncărcat sau a căzut."
|
||||
},
|
||||
@@ -290,9 +284,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Ai omis "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "V-ați salvat "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minut"
|
||||
},
|
||||
@@ -306,10 +297,12 @@
|
||||
"message": "ore"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Tu ai salvat alte persoane"
|
||||
"message": "Tu ai salvat alte persoane",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " din viața lor"
|
||||
"message": " din viața lor",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Verificați status.sponsor.ajay.app pentru starea serverului."
|
||||
@@ -326,9 +319,6 @@
|
||||
"createdBy": {
|
||||
"message": "Creat De"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". În prezent este setat:"
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Activează suportul Invidious, dezactivează autoskip-ul, ascunde butoanele și altele."
|
||||
},
|
||||
@@ -359,9 +349,6 @@
|
||||
"showUploadButton": {
|
||||
"message": "Arată Butonul De Încărcare"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Acest buton apare pe playerul YouTube după ce ați selectat un marcaj de timp și sunteți gata să îl trimiteți."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Adresa Serverului SponsorBlock"
|
||||
},
|
||||
@@ -431,12 +418,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Informația de depanare a fost copiată în clipboard. Puteți elimina orice informație pe care nu doriți să o partajați. Salvați într-un fișier sau lipiți-o în raportul de erori."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Tasta"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "este deja setată la o altă acțiune. Vă rugăm să selectați o altă tastă."
|
||||
},
|
||||
"to": {
|
||||
"message": "până la",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -501,9 +482,6 @@
|
||||
"disable": {
|
||||
"message": "Dezactivare"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Culoarea ta este formatată incorect. Ar trebui să fie un cod hexadecimal de 3 sau 6 cifre cu un hash la început."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "Culoarea Barei de Derulare"
|
||||
},
|
||||
@@ -560,9 +538,6 @@
|
||||
"downvoteDescription": {
|
||||
"message": "Timpi Incorecți/Greșiți"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Categorie Greșită"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Acest videoclip este categorisit ca muzică. Ești sigur ca există un sponsor? Dacă acesta este defapt un segment non-muzical, deschideți opțiunile extensiei și activați această categorie. Apoi, puteți trimite acest segment ca non-muzical în loc de sponsol. Vă rugăm să citiți ghidul dacă sunteți confuz."
|
||||
},
|
||||
|
||||
@@ -62,10 +62,10 @@
|
||||
"message": "Таймер остановлен"
|
||||
},
|
||||
"confirmMSG": {
|
||||
"message": "Чтобы изменить или удалить отдельные значения, нажмите кнопку «Информация» или откройте всплывающее окно расширения, щелкнув значок расширения в правом верхнем углу."
|
||||
"message": "Чтобы изменить или удалить отдельные значения, нажмите кнопку «Информация» или откройте всплывающее окно расширения, щелкнув на значок расширения в правом верхнем углу."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "Вы уверены, что хотите удалить эту информацию?\n\n"
|
||||
"message": "Вы уверены, что хотите это удалить?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "При отправке сегмента произошла ошибка. Попытайтесь отправить его позже."
|
||||
@@ -116,7 +116,7 @@
|
||||
"message": "Отправить сегменты"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Вы уверены, что хотите отправить эту информацию?"
|
||||
"message": "Вы уверены, что хотите это отправить?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Добавить канал в белый список"
|
||||
@@ -144,7 +144,7 @@
|
||||
"description": "Appears in the popup to inform them that editing has been moved to the video player."
|
||||
},
|
||||
"popupHint": {
|
||||
"message": "Подсказка: Вы можете настроить сочетания клавиш для отправки в опциях"
|
||||
"message": "Подсказка: Вы можете настроить сочетания клавиш для отправки в настройках"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "Очистить время"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Копировать публичный UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Копировать ID сегмента"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Присоединяйтесь к официальному серверу Discord, чтобы оставить предложения и обратную связь!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Эта настройка скрывает кнопки для отправки сегментов, расположенные в плеере YouTube."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Не скрывать кнопку \"Пропустить до важного\" в плеере YouTube"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Показывать кнопку информации в плеере YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Скрыть кнопку информации в плеере YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Эта кнопка открывает всплывающее окно на странице YouTube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Автоматически скрывать кнопку Информация"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Показывать кнопку удаления в плеере YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Эта кнопка позволяет Вам очистить все неотправленные сегменты в плеере YouTube для текущего видео."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Включить отслеживание количества пропусков сегментов"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Включить отслеживание пропусков во вкладках инкогнито"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Хранить отрицательные оценки сегментов"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Все сегменты, которым вы поставите отрицательную оценку, будут скрыты даже после обновления страницы"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Предупреждение: Отключение этой настройки удалит все ранее сохранённые оценки"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Запрос по префиксу хэша"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Назначить горячую клавишу для пропуска сегмента"
|
||||
"message": "Пропустить сегмент",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Назначить горячую клавишу для начала/остановки сегмента"
|
||||
"message": "Начало/конец сегмента",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Назначить горячую клавишу для отправки"
|
||||
"message": "Отправить сегменты",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Нажмите клавишу, чтобы выбрать её"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Клавиша назначена на: "
|
||||
"message": "Нажмите на любую кнопку, чтобы выбрать её, а так же выберите модификаторы, если нужно."
|
||||
},
|
||||
"0": {
|
||||
"message": "Таймаут подключения. Проверьте ваше соединение с интернетом. Если ваш интернет работает, сервер, скорее всего, перегружен или лежит."
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Заглушить"
|
||||
},
|
||||
"full": {
|
||||
"message": "Всё видео",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Пропустить {0}?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Вы пропустили "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Вы сэкономили "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "минуту"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "часов"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Вы сэкономили людям"
|
||||
"message": "Вы сэкономили людям",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " их жизней"
|
||||
"message": " их жизней",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Смотрите состояние сервера на status.sponsor.ajay.app."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Создано"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Он сейчас назначен на:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Поддерживать сторонние YouTube-сайты"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Следующий диапазон времени короче, чем Ваша настройка минимальной длительности. Это может означать, что он уже был отправлен, и просто игнорируется из-за этой настройки. Вы действительно хотите отправить?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Отправка сегментов на стримах или премьерах не допускается. Пожалуйста, дождитесь окончания видео, затем обновите страницу и убедитесь, что сегменты всё ещё верные."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Показывать кнопку отправки"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Эта кнопка появляется в плеере YouTube после того, как Вы выбрали отметку времени и готовы к отправке."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Адрес сервера SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Импорт/Экспорт всех настроек"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Редактировать/скопировать"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Сохранить в файл"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Загрузить из файла"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Все настройки в формате JSON. Этот файл содержит Ваш идентификатор пользователя, будьте осторожны когда делитесь этими данными."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Отладочная информация скопирована в буфер обмена. Вы можете удалить любую информацию, которой не хотите делиться. Сохраните ее в текстовом файле или вставьте в отчет об ошибке."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Клавиша"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "привязана к другому действию. Пожалуйста, выберите другую клавишу."
|
||||
"message": "Это сочетание клавиш привязано к другому действию. Пожалуйста, выберите другое сочетание."
|
||||
},
|
||||
"to": {
|
||||
"message": "до",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Похоже на \"Спонсора\", но для бесплатной рекламы и саморекламы. Включает себя вставки про мерчендайз, пожертвования или информацию о тех, вместе с кем было сделано видео."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Эксклюзивный доступ"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Категория для всего видео. Используется, когда видео демонстрирует продукт, сервис или местоположение, к которому автор получил бесплатный или проспонсированный доступ."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Это видео демонстрирует продукт, сервис или местоположение, к которому автор получил бесплатный или проспонсированный доступ",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Напоминание о взаимодействии (подписка)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Краткое содержание предыдущих эпизодов или предварительный просмотр того, что будет в данном видео. Предназначено для сегментов, смонтированных из кусков видео, а не для устных пересказов."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Заполнение отвлечёнными темами/шутками"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Сегменты, которые увеличивают длительность видео за счёт отвлечённых тем или шуток, но не требуются для понимания основного содержания. Не должно иметь сегментов, объясняющие контекст или предысторию."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Заполнитель"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Музыка: Сегмент без музыки"
|
||||
},
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Показывать в полосе прокрутки"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Показывать категорию"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Пропускать все сегменты автоматически при наличии сегмента без музыки"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Разрешить сегменты, которые отключают звук вместо пропуска"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Вы ввели цвет в неправильном формате. Это должно быть 3-х или 6-ти значное шестнадцатеричное число с символом # в начале."
|
||||
"fullVideoSegments": {
|
||||
"message": "Показывать иконку, когда всё видео является рекламой",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Цвет неотправленного сегмента",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Чтобы отправить сегменты категории \"{0}\", вы должны включить её в настройках. Сейчас вы будете туда перенаправлены.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Предупреждение: Только один сегмент данного типа может быть активным. Отправка нескольких приведёт к отображению только одного случайно выбранного."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Вы должны выбрать категорию для всех сегментов, которые вы отправляете!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "скрыто: слишком коротко"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "скрыто вручную"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "ID канала еще не загружен. Если вы используете встроенное видео, попробуйте вместо этого воспользоваться домашней страницей YouTube. Это также может быть вызвано изменениями в дизайне YouTube, если вы считаете, что это так, оставьте комментарий здесь:"
|
||||
@@ -694,7 +738,7 @@
|
||||
"message": "Принудительная проверка каналов перед пропуском"
|
||||
},
|
||||
"whatForceChannelCheck": {
|
||||
"message": "По умолчанию расширение пропускает сегменты сразу же, не проверяя то, какой это канал. По умолчанию некоторые сегменты в начале видео могут быть пропущены на каналах из белого списка. Включение этой опции предотвратит это, но все пропуски будут иметь небольшую задержку, так как получение ID канала может занять некоторое время. Эта задержка может быть незаметной, если у вас быстрый интернет."
|
||||
"message": "По умолчанию расширение пропускает сегменты сразу же, не проверяя то, какой это канал. По умолчанию некоторые сегменты в начале видео могут быть пропущены на каналах из белого списка. Включение этой настройки предотвратит это, но все пропуски будут иметь небольшую задержку, так как получение ID канала может занять некоторое время. Эта задержка может быть незаметной, если у вас быстрый интернет."
|
||||
},
|
||||
"forceChannelCheckPopup": {
|
||||
"message": "Рекомендуем включить \"Принудительная проверка каналов перед пропуском\""
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Не нужен/неверно указано время"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Неверная категория"
|
||||
"message": "Изменить категорию"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Это видео классифицировано как музыкальное. Вы уверены, что в нём есть спонсоры? Если на самом деле это \"Сегмент без музыки\", откройте параметры расширения и включите эту категорию. Затем вы можете отправить этот сегмент как \"Без музыки\", а не как спонсора. Пожалуйста, прочтите руководство, если вы запутались."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Ясно",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Этот сегмент большой. Если в видео только одна тема, то измените значение с «Пропустить» на «Всё видео». Дополнительную информацию смотрите в руководстве."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Данная категория применена для всего видео, так как она тесно интегрирована в видео"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Отказаться от всех будущих экспериментов",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Скрыть навсегда"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Вы получили предупреждение и временно не можете отправлять сегменты. Мы заметили, что вы совершали распространенные ошибки, которые не являются злонамеренными, и просто хотим уточнить для вас правила. Вы также можете присоединиться к нашему чату, используя discord.gg/SponsorBlock или matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Вы получили предупреждение и временно не можете отправлять сегменты. Мы заметили, что вы совершали распространенные ошибки, которые не были злонамеренными. Пожалуйста, подтвердите, что вы прочитали правила и предупреждение будет удалено. Вы также можете присоединиться к нашему чату, используя discord.gg/SponsorBlock или matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Голосование отклонено из-за предупреждения. Нажмите, чтобы открыть чат, где вы можете решить проблему, или вернитесь, когда у вас будет время.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Пожертвовать"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Помогите финансировать разработку"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Скрыть ссылку на пожертвование"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Тёмный режим на странице настроек"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Спасибо за установку SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Авторы"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Новинка! Переходите сразу к главному моменту видео с помощью новой категории \"Важное\""
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Узнать больше"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Голосует против и создаёт локальную копию сегмента для повторной отправки"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Открыть вики-страницу этой категории."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Скопировать и проголосовать против"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Продолжить голосование"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Это мгновенно применится к вашим сегментам"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Голос «против»"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Голос «за»"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Скрыть сегмент"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Наведите курсор на поле редактирования и используйте колесо мыши для быстрой настройки времени. Клавиши Ctrl или Shift могут быть использованы для точной настройки."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Новинка! Расширение покажет, когда видео полностью является спонсорским или саморекламой"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "д",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "ч",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Поведение",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Интерфейс",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Сочетания клавиш",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Бэкап/Восстановление",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Разное",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Внешний вид уведомления о пропуске",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Отвязать",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Не задано"
|
||||
},
|
||||
"change": {
|
||||
"message": "Изменить"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Это сочетание используется на сайте YouTube. Вы уверены, что хотите его использовать?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Используется BETA сервер!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Открыть страницу настроек"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Skopírovať verejné ID používateľa"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Skopírovať ID segmentu"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Pripojte sa k oficiálnemu Discord serveru a zanechajte nám pripomienky!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Skryje tlačidlá pre preskočenie segmentov, ktoré sa zobrazujú v YouTube prehrávači."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Zobrazovať tlačidlo preskočiť na hlavný obsah videa"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Zobraziť info tlačidlo v YouTube prehrávači"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Skryť info tlačidlo v YouTube prehrávači"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Toto tlačidlo zobrazí vyskakovacie okno na YouTube stránke."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Automaticky skryť tlačidlo Info"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Zobraziť tlačidlo Zmazať v YouTube prehrávači"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Toto tlačidlo v YouTube prehrávači zmaže všetky ešte neodoslané segmenty v aktuálnom videu."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Zapnúť počítanie preskočení"
|
||||
},
|
||||
@@ -230,6 +230,21 @@
|
||||
"showSkipNotice": {
|
||||
"message": "Zobraziť upozornenie pri preskočení segmentu"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Veľké upozornenia o preskočení"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "Malé upozornenia o automatickom preskočení"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Malé upozornenia o všetkých preskočeniach"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Priehľadné upozornenia o automatickom preskočení"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Priehľadné upozornenia o všetkých preskočeniach"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock umožňuje preskočiť sponzorov, úvodné časti, záverečné časti, pripomienky na odber, nehudobné časti videoklipov alebo iné otravné časti YouTube videí. SponsorBlock je crowdsourceové rozšírenie prehliadača, pomocou ktorého môže ktokoľvek označiť začiatok a koniec takéhoto segmentu. Po odoslaní potom všetci ostatní s týmto rozšírením tieto segmenty automaticky preskočia.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -250,21 +265,6 @@
|
||||
"message": "Ak sa vám to stále nepáčí, stlačte tlačidlo Nikdy nezobrazovať.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Nastaviť kláves pre preskočenie segmentu"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Nastaviť kláves pre začiatok/ukončenie segmentu"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Nastaviť kláves pre odoslanie segmentu"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Stlačte požadovaný kláves"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Kláves bol nastavený na: "
|
||||
},
|
||||
"0": {
|
||||
"message": "Spojenie vypršalo. Skontrolujte svoje internetové pripojenie. Ak vám internet funguje, server je pravdepodobne preťažený alebo nefunkčný."
|
||||
},
|
||||
@@ -290,6 +290,10 @@
|
||||
"mute": {
|
||||
"message": "Stíšiť"
|
||||
},
|
||||
"full": {
|
||||
"message": "Celé video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Preskočiť {0}?"
|
||||
},
|
||||
@@ -333,9 +337,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Preskočili ste "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Ušetrili ste "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minúta"
|
||||
},
|
||||
@@ -349,10 +350,12 @@
|
||||
"message": "hodiny"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Ostatným ste ušetrili"
|
||||
"message": "Ostatným ste ušetrili",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " z ich života"
|
||||
"message": " z ich života",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Stav servera skontrolujete na status.sponsor.ajay.app."
|
||||
@@ -372,9 +375,6 @@
|
||||
"createdBy": {
|
||||
"message": "Vytvoril"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Aktuálne je nastavené na:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Podpora alternatívnych Youtube webov"
|
||||
},
|
||||
@@ -424,12 +424,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Segment je kratší ako vami nastavená minimálna dĺžka. Možno už bol niekým odoslaný a kvôli tomuto nastaveniu je teraz ignorovaný. Naozaj ho chcete odoslať?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Vytváranie segmentov v aktívnom živom prenose alebo premiére nie je dovolené. Počkajte prosím na jeho ukončenie, potom obnovte stránku a skontrolujte, či sú segmenty správne vytvorené."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Ukázať Nahrávacie Tlačidlo"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Toto tlačidlo sa zobrazí v YouTube prehrávači po tom ako označíte začiatok a koniec segmentu na odoslanie."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Adresa serveru SponsorBlock"
|
||||
},
|
||||
@@ -502,12 +502,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Debug informácie boli skopírované do schránky. Ak chcete, môžete odstrániť akékoľvek informácie, ktoré nechcete zdieľať. Uložte si ich do textového súboru alebo ich vložte do nahlásenia chyby."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Kľúč"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "je pridelený pre inú akciu. Prosím zvoľte inú klávesu."
|
||||
},
|
||||
"to": {
|
||||
"message": "do",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -524,6 +518,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Podobné ako sponzor, okrem neplatenej alebo vlastnej propagácie. Patria sem sekcie týkajúce sa merchu, donatov alebo informácií o tom, s kým spolupracovali."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exkluzívny Prístup"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Iba pre označovanie celých videí. Používa sa, keď video predstavuje produkt, službu alebo miesto, ku ktorým získali bezplatný alebo dotovaný prístup."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Toto video predstavuje produkt, službu alebo miesto, ku ktorým získali bezplatný alebo dotovaný prístup",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Pripomienka interakcie (Prihlásiť sa na odber)"
|
||||
},
|
||||
@@ -554,6 +558,12 @@
|
||||
"category_preview_description": {
|
||||
"message": "Rýchla rekapitulácia predošlej epizódy alebo ukážka toho, čo bude nasledovať neskôr v aktuálnom videu. Myslené pre zostrihané videá, nie pre hovorený súhrn."
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Odbočky mimo tému pridané len pre zábavu, nepotrebné pre pochopenie hlavného obsahu videa. Nemalo by zahŕňať segmenty, ktoré vysvetľujú kontext alebo vedľajšie detaily."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Odbočka"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Hudba: časť bez hudby"
|
||||
},
|
||||
@@ -596,14 +606,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Zobraziť v časovej lište"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Ukázať Označenie"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Automaticky preskočiť všetky segmenty ak neexistuje segment bez hudby"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Povoliť segmenty, ktoré namiesto preskočenia stíšía zvuk"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Vaša farba je nesprávne naformátovaná. Mal by to byť 3 alebo 6-miestny hexadecimálny kód so znakom čísla na začiatku."
|
||||
"fullVideoSegments": {
|
||||
"message": "Zobraziť ikonu, ak je celé video reklama",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Neodoslaná farba",
|
||||
@@ -641,6 +655,9 @@
|
||||
"message": "Pre odoslanie segmentov z kategórie \"{0}\" ju musíte zapnúť v nastaveniach. Teraz tam budete presmerovaní.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Varovanie: Tento typ segmentu môže byť aktívny len jeden. Odoslanie viacerých spôsobí zobrazenie náhodného z nich."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Musíte zvoliť kategóriu pre každý segment!"
|
||||
},
|
||||
@@ -688,7 +705,7 @@
|
||||
"message": "Nesprávne/Zlé načasovanie"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Nesprávna kategória"
|
||||
"message": "Zmeniť kategóriu"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Toto video je kategorizované ako hudobné. Ste si istý, že obsahuje sponzora? Ak sa skutočne jedná o časť bez hudby, otvorte možnosti rozšírenia a povoľte túto kategóriu. Potom môžete tento segment uložiť ako kategóriu \"Bez hudby\" namiesto sponzora. Ak si neviete rady, tak si prosím prečítajte pravidlá."
|
||||
@@ -716,6 +733,12 @@
|
||||
"message": "Rozumiem",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Tento segment je dlhý. Ak je celé video o jednej téme, zmeňte \"Preskočiť\" na \"Celé video\". Pre ďalšie informácie si pozrite pravidlá."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Celé video je označené touto kategóriou a je príliš previazané, aby sa to dalo rozlíšiť"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Odmietnuť všetky budúce experimenty",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -724,7 +747,7 @@
|
||||
"message": "Navždy skryť"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Dostali ste varovanie a nemôžete tak dočasne odosielať segmenty. To znamená, že sme si všimli, že ste spravili nejaké chyby, ktoré nie sú myslené zle, a chceme Vám len objasniť pravidlá. Môžete sa pripojiť do konverzácie pomocou discord.gg/SponsorBlock alebo matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Dostali ste varovanie a nemôžete tak dočasne odosielať segmenty. To znamená, že sme si všimli, že ste spravili nejaké chyby, ktoré nie sú myslené zle, a chceme Vám len objasniť pravidlá a potom Vám to varovanie odoberieme. Môžete sa pripojiť do konverzácie pomocou discord.gg/SponsorBlock alebo matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Hlasovanie bolo zamietnuté kvôli varovaniu. Kliknite pre otvorenie chatu, aby ste ho vyriešili, alebo sa vráťte až budete mať čas.",
|
||||
@@ -793,10 +816,51 @@
|
||||
"Credits": {
|
||||
"message": "Autori"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Novinka! Pomocou novej kategórie \"Hlavný obsah videa\" môžete jedným klikom preskočiť \"k veci\""
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Zistiť viac"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Dá palec dole a vytvorí kópiu, aby ste mohli segment znova odoslať"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Otvoriť wiki stránku tejto kategórie."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Skopírovať a dať palec dole"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Pokračovať v hlasovaní"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Týmto ihneď vykonáte zmeny v segmentoch"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Hlasovať proti"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Hlasovať za"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Skryť segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Čas môžete rýchlo zmeniť kolieskom myši, ak je kurzor nad zadávacím políčkom. Pre jemné zmeny pritom držte kláves ctrl alebo shift."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Nové! Zistite, kedy je video kompletne sponzorované alebo vlastná propagácia"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Je zapnutý BETA server!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Otvoriť stránku s nastaveniami"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1,30 @@
|
||||
{}
|
||||
{
|
||||
"Options": {
|
||||
"message": "Подешавања"
|
||||
},
|
||||
"sourceCode": {
|
||||
"message": "Изворни код",
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"errorCode": {
|
||||
"message": "Код грешке: "
|
||||
},
|
||||
"skip": {
|
||||
"message": "Прескочи"
|
||||
},
|
||||
"add": {
|
||||
"message": "Додај"
|
||||
},
|
||||
"save": {
|
||||
"message": "Сачувај"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "Откажи"
|
||||
},
|
||||
"edit": {
|
||||
"message": "Измени"
|
||||
},
|
||||
"help": {
|
||||
"message": "Помоћ"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"fullName": {
|
||||
"message": "SponsorBlock for YouTube - Skip Sponsorships",
|
||||
"message": "SponsorBlock för YouTube - Hoppa över sponsringar",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "Hoppa över sponsring, prenumerationstiggande och mer på YouTube-videor. Rapportera sponsorer på videor du tittar på för att spara andras tid.",
|
||||
"message": "Hoppa över sponsringar, prenumerationstiggande och mer på YouTube-videor. Rapportera sponsorer på videor du tittar på för att spara andras tid.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "Servern sa att denna begäran var ogiltig"
|
||||
},
|
||||
"429": {
|
||||
"message": "Du har rapporterat för många sponsormeddelanden för den här videon, är du säker att det finns så många?"
|
||||
"message": "Du har skickat in för många sponsormeddelanden för den här videon. Är du säker på att det finns så många?"
|
||||
},
|
||||
"409": {
|
||||
"message": "Den här har redan blivit rapporterad"
|
||||
"message": "Den här har redan skickats in"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "Kanalen är vitlistad!"
|
||||
@@ -44,7 +44,7 @@
|
||||
"message": "Visa aldrig"
|
||||
},
|
||||
"hitGoBack": {
|
||||
"message": "Tryck på Tillbaka för att ångra åtgärden."
|
||||
"message": "Tryck på Hoppa inte över för att återgå till där du kom i från."
|
||||
},
|
||||
"unskip": {
|
||||
"message": "Hoppa inte över"
|
||||
@@ -116,7 +116,7 @@
|
||||
"message": "Skicka in segment"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Är du säker på att du vill rapportera detta?"
|
||||
"message": "Är du säker på att du vill skicka in detta?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Vitlistkanal"
|
||||
@@ -150,7 +150,7 @@
|
||||
"message": "Rensa tider"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Skicka tider"
|
||||
"message": "Skicka in tider"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Detta kommer att användas på den publika statistiksidan för att visa hur mycket du har bidragit. Spana in den"
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Kopiera publikt Användar-ID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Kopiera Segment-ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Gå med i den officiella discordservern för att ge förslag och feedback!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Detta döljer knapparna på YouTube-spelaren som du kan skicka in segment med som ska hoppas över."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Behåll knappen hoppa till höjdpunkt på spelaren"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Visa Infoknapp På YouTube-spelaren"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Dölj Infoknapp På YouTube-spelaren"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Detta är knappen som öppnar popup-rutan på YouTube-sidan."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Dölj informationsknappen automatiskt"
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Visa knappen ta bort på YouTube-spelaren"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Den här knappen på YouTube-spelaren rensar bort alla segment som ej har skickats in på aktuell video."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Aktivera spåra antalet hoppa över"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Aktivera spåra antalet hoppa över i privata/inkognitoflikar"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Lagra segmentnerröstningar"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Alla segment du röstat ner kommer att förbli dolda även efter uppdatering"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Varning: Om detta inaktiveras kommer alla tidigare lagrade nerröstningar att tas bort"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Fråga efter hash-prefix"
|
||||
},
|
||||
@@ -225,7 +234,7 @@
|
||||
"message": "Om videon är ny och inga segment hittades då kommer den att uppdateras med några minuters mellanrum medan du tittar på videon."
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Visa Notisen Igen"
|
||||
"message": "Visa meddelandet igen"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Visa ett meddelande efter att ett segment har hoppats över"
|
||||
@@ -258,27 +267,27 @@
|
||||
"description": "Used on Firefox Store Page"
|
||||
},
|
||||
"noticeUpdate": {
|
||||
"message": "Den här notisen har förbättrats!",
|
||||
"message": "Det här meddelandet har förbättrats!",
|
||||
"description": "The first line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"noticeUpdate2": {
|
||||
"message": "Om du ändå inte gillar det, tryck på \"Visa aldrig\"-knappen.",
|
||||
"message": "Om du ändå inte gillar det, tryck på knappen visa aldrig.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Ställ in knapp för att hoppa över ett segment"
|
||||
"message": "Hoppa över segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Ange den genväg som ska fungera som start-/stopptangent för ett segment"
|
||||
"message": "Starta/stoppa segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Ange den tangent som ska fungera som inskickningstangent"
|
||||
"message": "Skicka segment",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Ange tangent genom att trycka på den"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Kopplad till: "
|
||||
"message": "Välj en tangent genom att trycka på den och välj sedan en av modifieringstangenterna som du vill använda."
|
||||
},
|
||||
"0": {
|
||||
"message": "Anslutningsfel. Se över din internetanslutning. Om du kan komma åt internet så är servern förmodligen överbelastad eller nere."
|
||||
@@ -290,7 +299,7 @@
|
||||
"message": "Hoppa över är inaktiverat"
|
||||
},
|
||||
"yourWork": {
|
||||
"message": "Ditt Bidrag",
|
||||
"message": "Ditt bidrag",
|
||||
"description": "Used to describe the section that will show you the statistics from your submissions."
|
||||
},
|
||||
"502": {
|
||||
@@ -305,6 +314,10 @@
|
||||
"mute": {
|
||||
"message": "Ljudlös"
|
||||
},
|
||||
"full": {
|
||||
"message": "Hela videon",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Hoppa över {0}?"
|
||||
},
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Du har hoppat över "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Du har sparat "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "minuter"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "timmar"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Du har sparat andra"
|
||||
"message": "Du har sparat andra",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " av deras liv"
|
||||
"message": " av deras liv",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Gå till status.sponsor.ajay.app för serverstatus."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Skapad av"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Nuvarande snabbtangent är:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Stöd för tredjeparts YouTube-webbplatser"
|
||||
},
|
||||
@@ -431,7 +440,7 @@
|
||||
"message": "Segment som är kortare än det angivna värdet kommer inte att hoppas över eller visas i spelaren."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "Hoppa över varaktighet (sekunder):"
|
||||
"message": "Varaktighet på hoppa över-meddelande (sekunder):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "Meddelandet om att hoppa över kommer att visas på skärmen åtminstone så här länge. För manuell överhoppning kan det visas längre."
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Följande rapport är kortare än ditt minstavärde i inställningarna. Det skulle kunna betyda att det redan är rapporterat och bara ignorerat på grund av denna inställning. Är du säker på att du vill rapportera?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Att skicka in på en aktiv liveström eller premiär är inte tillåtet. Vänta tills den är färdig, uppdatera sedan sidan och kontrollera att segmenten fortfarande är giltiga."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Visa uppladdningsknapp"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Denna knapp visas på YouTube-spelaren efter att du har valt en tidpunkt och är redo att rapportera."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Serveradress för SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Importera/Exportera alla alternativen"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Redigera/kopiera"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Spara till fil"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Ladda från fil"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Detta är alla dina alternativ i JSON-format. Det inkluderar ditt användar-ID, så var noga med hur du hanterar informationen."
|
||||
},
|
||||
@@ -482,7 +500,7 @@
|
||||
"message": "Denna JSON är inte korrekt formaterad. Dina alternativ har inte ändrats."
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Rapportera Segment"
|
||||
"message": "Skicka segment"
|
||||
},
|
||||
"submit": {
|
||||
"message": "Skicka"
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Debuginformationen har kopierats till urklipp. Ta bort eventuell information du inte vill dela med dig av. Spara informationen i en textfil eller klistra in den i en buggrapport."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Nyckeln"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "är kopplad till en annan funktion. Välj en annan knapp."
|
||||
"message": "Denna genväg är bunden till en annan åtgärd. Du måste välja en annan."
|
||||
},
|
||||
"to": {
|
||||
"message": "till",
|
||||
@@ -531,7 +546,7 @@
|
||||
"message": "Sponsormeddelande"
|
||||
},
|
||||
"category_sponsor_description": {
|
||||
"message": "Betald marknadsföring, betalda hänvisningar och direktannonser, men inte till egen marknadsföring eller gratis shoutouts till skapare/webbplatser/produkter de gillar."
|
||||
"message": "Betald marknadsföring, betalda hänvisningar och direktannonser, men inte till självbefodran eller gratis shoutouts till skapare/webbplatser/produkter de gillar."
|
||||
},
|
||||
"category_selfpromo": {
|
||||
"message": "Obetald/självbefodran"
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Som \"sponsormeddelande\" men med undantag för obetald eller självkampanj. Detta inkluderar avsnitt om varor, donationer eller information om vem de samarbetade med."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exklusiv tillgång"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Endast för att märka hela videor. Används när en video visar upp en produkt, tjänst eller plats som de har fått fri eller subventionerad tillgång till."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Denna video visar en produkt, tjänst eller plats som de har fått gratis eller subventionerad tillgång till",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Interaktionspåminnelse (Prenumerera)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Snabb sammanfattning av tidigare avsnitt eller en förhandsvisning av vad som kommer upp senare i den aktuella videon. Avsett för redigerade klipp, inte för sammanfattningar."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Ämnesavvikelse/Skämt"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Tangentiella scener endast tillagda för utfyllnad eller humor som inte krävs för att förstå det huvudsakliga innehållet i videon. Detta bör inte omfatta segment som tillhandahåller innehåll eller bakgrundsdetaljer."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Utfyllnad"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Musik: Icke-musikavsnitt"
|
||||
},
|
||||
@@ -579,7 +613,7 @@
|
||||
"message": "Icke-musik"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Markera"
|
||||
"message": "Höjdpunkt"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Den del av videon som de flesta letar efter. Liknande kommentarer \"Video börjar på x\"."
|
||||
@@ -611,14 +645,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Visa i sökfältet"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Visa etikett"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Hoppa över alla segment automatiskt när det finns ett icke-musiksegment"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Tillåt segment som tystar ljudet i stället för att hoppa över"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Din färg är felaktigt formaterad. Det ska vara en 3- eller 6-siffrig hex-kod med en siffra i början."
|
||||
"fullVideoSegments": {
|
||||
"message": "Visa en ikon när hela videon är en annons",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Färg på ej inskickade",
|
||||
@@ -653,9 +691,12 @@
|
||||
"message": "Välj en kategori"
|
||||
},
|
||||
"enableThisCategoryFirst": {
|
||||
"message": "För att skicka segment med kategorin \"{0}\" måste du först aktivera det i alternativen. Du kommer nu att bli omdirigerad till alternativen.",
|
||||
"message": "För att skicka in segment med kategorin \"{0}\" måste du först aktivera det i alternativen. Du kommer nu att bli omdirigerad till alternativen.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Varning: Denna typ av segment kan endast ha ett segment aktivt åt gången. Skickas flera segment kommer en av dem att visas slumpmässigt."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Du måste välja en kategori för alla segment du skickar in!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "dold: för kort"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "manuellt dold"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanal-ID:t är inte laddat ännu. Om du använder en inbäddad video, prova att använda YouTube-hemsidan istället. Detta kan också bero på förändringar i layouten hos YouTube och om du tror så är fallet kommentera det här:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Fel/Fel tidsintervall"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Fel kategori"
|
||||
"message": "Ändra kategori"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Den här videon kategoriseras som musik. Är du säker på att denna har en sponsor? Om detta faktiskt är ett \"icke-musiksegment\", öppna tilläggsalternativen och aktivera denna kategori. Då kan du skicka in detta segment som \"icke-musik\" i stället för sponsor. Läs riktlinjerna om något är oklart."
|
||||
@@ -722,7 +766,7 @@
|
||||
"message": "Kategorier finns här!"
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "Öppna alternativen för att hoppa över intros, outros, merch, osv."
|
||||
"message": "Öppna alternativen för att hoppa över intros, outros, varor, osv."
|
||||
},
|
||||
"help": {
|
||||
"message": "Hjälp"
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Jag förstår",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Detta segment är stort. Om hela videon handlar om ett ämne, ändra sedan från \"Hoppa över\" till \"Hela videon\". Se riktlinjerna för mer information."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Hela den här videon är märkt som denna kategori och är alltför tätt integrerad för att kunna separeras"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Hoppa av alla framtida experiment",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Dölj för alltid"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Du har fått en tillfällig varning och kan inte skicka in segment. Detta innebär att vi har upptäckt att några vanliga misstag är gjorda som inte är uppsåtliga och vi vill bara klargöra reglerna. Du kan också gå med i den här chatten genom att använda discord.gg/SponsorBlock eller matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Du har fått en tillfällig varning och kan inte längre skicka in segment. Vi har upptäckt att du har gjort några vanliga misstag som inte är uppsåtliga. Bekräfta därför att du förstår reglerna, så tar vi bort varningen. Du kan också gå med i den här chatten genom att använda discord.gg/SponsorBlock eller matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Rösten avvisades på grund av en varning. Klicka för att öppna ett chattfönster för att lösa problemet eller kom tillbaka senare när du har tid.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Donera"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Hjälp till att finansiera utvecklingen"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Dölj donationslänk"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Mörkt läge på Alternativsidan"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Tack för att du installerade SponsorBlock."
|
||||
},
|
||||
@@ -797,7 +853,7 @@
|
||||
"message": "Databasen är offentlig och finns på"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Källkoden är fritt tillgänglig. Så, även om något händer mig, är dina bidrag inte förlorade."
|
||||
"message": "Källkoden är fritt tillgänglig. Så, även om något händer mig, är dina inskickningar inte förlorade."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Nyheter och hur är det gjort"
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Medverkande"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Nytt! Ta dig till stället i videon med ett klick med den nya markeringskategorin"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Läs mer"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Rösta ner och skapar en lokal kopia för dig att skicka in igen"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Öppna denna kategoris wiki-sida."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopiera och rösta ner"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Fortsätt rösta"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Detta kommer omedelbart att verkställas till dina segment"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Rösta ner"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Rösta upp"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Dölj segment"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Använd mushjulet medan du håller muspekaren över redigeringsrutan för att snabbt justera tiden. Kombinationer av CTRL- eller SKIFT-tangenten kan användas för att finjustera tiden."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Nytt! Se när en video är helt sponsrad eller självbefodran"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Beteende",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Gränssnitt",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Tangentbordsgenvägar",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Säkerhetskopiera/Återställ",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Diverse",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Utseende på hoppa över-meddelandet",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Ta bort genväg",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Inte inställd"
|
||||
},
|
||||
"change": {
|
||||
"message": "Ändra"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Detta är en inbyggd YouTube-genväg. Är du säker på att du vill använda den?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA-servern är aktiverad!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Öppna alternativsidan"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "ரெஸ்கிப்"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "ஒலியடக்கு"
|
||||
},
|
||||
"paused": {
|
||||
"message": "இடைநிறுத்தப்பட்டது"
|
||||
},
|
||||
@@ -79,9 +82,15 @@
|
||||
"sponsorEnd": {
|
||||
"message": "பிரிவு இப்போது முடிகிறது"
|
||||
},
|
||||
"sponsorCancel": {
|
||||
"message": "உருவாக்கும் பகுதியை ரத்து செய்"
|
||||
},
|
||||
"noVideoID": {
|
||||
"message": "YouTube வீடியோ எதுவும் கிடைக்கவில்லை.\nஇது தவறாக இருந்தால், தாவலைப் புதுப்பிக்கவும்."
|
||||
},
|
||||
"refreshSegments": {
|
||||
"message": "பிரிவுகளைப் புதுப்பிக்கவும்"
|
||||
},
|
||||
"success": {
|
||||
"message": "வெற்றி!"
|
||||
},
|
||||
@@ -152,6 +161,12 @@
|
||||
"setUsername": {
|
||||
"message": "பயனர்பெயரை அமைக்கவும்"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "பொது பயனர் IDயை நகலெடுக்கவும்"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "துண்டத்தின் IDஐ நகலெடு"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "பரிந்துரைகள் மற்றும் கருத்துக்களை வழங்க அதிகாரப்பூர்வ டிஸ்கார்ட் சேவையகத்தில் சேர வாருங்கள்!"
|
||||
},
|
||||
@@ -170,14 +185,17 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "ஸ்கிப் பிரிவுகளைச் சமர்ப்பிக்க YouTube பிளேயரில் தோன்றும் பொத்தான்களை இது மறைக்கிறது."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "பிளேயரில் Skip To Highlight பொத்தானை வைக்கவும்"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "YouTube பிளேயரில் தகவல் பொத்தானைக் காட்டு"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "YouTube பிளேயரில் தகவல் பொத்தானை மறைக்கவும்"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "YouTube பக்கத்தில் ஒரு பாப்அப்பைத் திறக்கும் பொத்தான் இது."
|
||||
"autoHideInfoButton": {
|
||||
"message": "தகவல் பொத்தானை தானாக மறைக்கவும்"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "YouTube பிளேயரில் நீக்கு பொத்தானை மறைக்க"
|
||||
@@ -185,15 +203,24 @@
|
||||
"showDeleteButton": {
|
||||
"message": "YouTube பிளேயரில் நீக்கு பொத்தானைக் காட்டு"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "இது YouTube பிளேயரில் உள்ள பொத்தானாகும், இது தற்போதைய வீடியோவிற்கு நீங்கள் சமர்ப்பிக்காத அனைத்து பகுதிகளையும் அழிக்கும்."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "ஸ்கிப் கவுண்ட் டிராக்கிங்கை இயக்கு"
|
||||
},
|
||||
"whatViewTracking": {
|
||||
"message": "இந்த அம்சம் பயனர்கள் தங்கள் சமர்ப்பிப்பு மற்றவர்களுக்கு எவ்வளவு உதவியது மற்றும் ஸ்பேம் தரவுத்தளத்தில் வரவில்லை என்பதை உறுதிப்படுத்த அப்வோட்களுடன் ஒரு மெட்ரிக்காகப் பயன்படுத்தப்படுவதை பயனர்களுக்குத் தெரியப்படுத்த நீங்கள் எந்த பகுதிகளைத் தவிர்த்துவிட்டீர்கள் என்பதைக் கண்காணிக்கிறது. ஒவ்வொரு முறையும் நீங்கள் ஒரு பகுதியைத் தவிர்க்கும்போது நீட்டிப்பு சேவையகத்திற்கு ஒரு செய்தியை அனுப்புகிறது. பார்வை எண்கள் துல்லியமாக இருக்க பெரும்பாலான மக்கள் இந்த அமைப்பை மாற்ற மாட்டார்கள் என்று நம்புகிறோம். :)"
|
||||
},
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "தனிப்பட்ட/மறைநிலை தாவல்களில் ஸ்கிப் கவுண்ட் டிராக்கிங்கை இயக்கவும்"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "துண்டத்தின் வாக்கிறக்கங்களைச் சேமி"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "புதுப்பித்தப் பின் நீங்கள் வாக்கிறக்கிய துண்டங்கள் மறைந்தே இருக்கும்"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "எச்சரிக்கை: இதை முடக்குதல் முன்னர் சேமித்த எல்லா வாக்கிறக்கங்களையும் அழிக்கும்"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "ஹாஷ் முன்னொட்டு மூலம் வினவல்"
|
||||
},
|
||||
@@ -212,6 +239,21 @@
|
||||
"showSkipNotice": {
|
||||
"message": "ஒரு பிரிவு தவிர்க்கப்பட்ட பிறகு அறிவிப்பைக் காட்டு"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "முழு அளவு தவிர்க்கும் அறிவிப்புகள்"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "ஆட்டோ ஸ்கிப்பிற்கான சிறிய ஸ்கிப் அறிவிப்புகள்"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "அனைத்து சிறிய தவிர்க்கும் அறிவிப்புகள்"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "ஆட்டோ ஸ்கிப்பிற்கான மங்கலான தவிர்க்கும் அறிவிப்புகள்"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "அனைத்து மங்கலான தவிர்க்கும் அறிவிப்புகள்"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "ஸ்பான்சர்கள், அறிமுகங்கள், அவுட்ரோஸ், சந்தா நினைவூட்டல்கள் மற்றும் YouTube வீடியோக்களின் பிற எரிச்சலூட்டும் பகுதிகளைத் தவிர்க்க ஸ்பான்சர் பிளாக் உங்களை அனுமதிக்கிறது. ஸ்பான்சர் பிளாக் என்பது ஒரு கூட்ட நெரிசலான உலாவி நீட்டிப்பாகும், இது ஸ்பான்சர் செய்யப்பட்ட பிரிவுகளின் தொடக்க மற்றும் இறுதி நேரங்களையும் YouTube வீடியோக்களின் பிற பிரிவுகளையும் எவரும் சமர்ப்பிக்கலாம். ஒரு நபர் இந்த தகவலைச் சமர்ப்பித்தவுடன், இந்த நீட்டிப்பு உள்ள மற்றவர்கள் ஸ்பான்சர் செய்யப்பட்ட பிரிவைத் தவிர்த்து விடுவார்கள். இசை வீடியோக்களின் இசை அல்லாத பிரிவுகளையும் நீங்கள் தவிர்க்கலாம்.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -233,16 +275,16 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "ஒரு பகுதியைத் தவிர்ப்பதற்கான விசையை அமைக்கவும்"
|
||||
"message": "துண்டத்தைக் கெந்து",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "துண்டத்தை ஆரம்பி/நிறுத்து",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "சமர்ப்பிக்கும் விசைப்பலகைக்கு விசையை அமைக்கவும்"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "ஒரு விசையைத் தட்டச்சு செய்வதன் மூலம் அதைத் தேர்ந்தெடுக்கவும்"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "விசைப்பலகை இதற்கு அமைக்கப்பட்டுள்ளது: "
|
||||
"message": "துண்டங்களைச் சமர்ப்பி",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"0": {
|
||||
"message": "இணைப்பு நேரம் முடிந்தது. உங்கள் இணைய இணைப்பைச் சரிபார்க்கவும். உங்கள் இணையம் இயங்கினால், சேவையகம் அதிக சுமை அல்லது கீழே இருக்கும்."
|
||||
@@ -266,9 +308,35 @@
|
||||
"skip": {
|
||||
"message": "தவிர்"
|
||||
},
|
||||
"mute": {
|
||||
"message": "ஒலியடக்கு"
|
||||
},
|
||||
"full": {
|
||||
"message": "முழு காணொளி",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} ஐ தவிர்?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} ஐ ஒலியடக்கவா?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "{0} க்குச் செல்லவா?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} தவிர்க்கப்பட்டது",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} ஒலியடக்கப்பட்டது",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "{0} தவிர்க்கப்பட்டது",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "ஆட்டோ ஸ்கிப்பை முடக்கு"
|
||||
},
|
||||
@@ -290,9 +358,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "நீங்கள் தவிர்த்துவிட்டீர்கள் "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "உங்களை நீங்களே காப்பாற்றிக் கொண்டீர்கள் "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "நிமிடம்"
|
||||
},
|
||||
@@ -306,10 +371,12 @@
|
||||
"message": "மணி"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "நீங்கள் மக்களைக் காப்பாற்றியுள்ளீர்கள்"
|
||||
"message": "நீங்கள் மக்களைக் காப்பாற்றியுள்ளீர்கள்",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " அவர்களின் வாழ்க்கையில்"
|
||||
"message": " அவர்களின் வாழ்க்கையில்",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "சேவையக நிலைக்கு status.sponsor.ajay.app ஐச் சரிபார்க்கவும்."
|
||||
@@ -317,6 +384,9 @@
|
||||
"changeUserID": {
|
||||
"message": "உங்கள் பயனர் ஐடியை இறக்குமதி / ஏற்றுமதி செய்யுங்கள்"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "இதை தனிப்பட்டதாக வைத்திருக்க வேண்டும். இது கடவுச்சொல் போன்றது, அதை யாருடனும் பகிரக்கூடாது. யாரிடமாவது இது இருந்தால், அவர் உங்களைப் போல் ஆள்மாறாட்டம் செய்யலாம். உங்கள் பொது பயனர் IDயை நீங்கள் தேடுகிறீர்களானால், பாப்அப்பில் உள்ள கிளிப்போர்டு ஐகானைக் கிளிக் செய்யவும்."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "UserID ஐ அமைக்கவும்"
|
||||
},
|
||||
@@ -326,12 +396,25 @@
|
||||
"createdBy": {
|
||||
"message": "உருவாக்கியது"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". இது தற்போது அமைக்கப்பட்டுள்ளது:"
|
||||
"supportOtherSites": {
|
||||
"message": "3 வது தரப்பு YouTube-தளங்களை ஆதரிக்கவும்"
|
||||
},
|
||||
"supportOtherSitesDescription": {
|
||||
"message": "மூன்றாம் தரப்பு YouTube தளங்களை ஆதரிக்கவும். ஆதரவை இயக்க, நீங்கள் கூடுதல் அனுமதிகளை ஏற்க வேண்டும். இது Chrome மற்றும் பிற Chromium வகைகளில் தனிப்பட்ட தாவல்களில் வேலை செய்யாது.",
|
||||
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "ஆதரிக்கப்படும் தளங்கள்: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "ஆக்கிரமிப்பு ஆதரவை இயக்கு, ஆட்டோஸ்கிப்பை முடக்கு, பொத்தான்களை மறை மற்றும் பலவற்றை."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "3 வது தரப்பு தளங்களை சேர்க்கவும்"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "தனிப்பட்ட தளங்களை சேர்க்கவும். இது Domain வடிவமைப்பில் இருக்க வேண்டும். உதாரணம்: invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "சேர்"
|
||||
},
|
||||
@@ -353,15 +436,18 @@
|
||||
"minDurationDescription": {
|
||||
"message": "தொகுப்பு மதிப்பை விடக் குறைவான பகுதிகள் தவிர்க்கப்படாது அல்லது பிளேயரில் காண்பிக்கப்படாது."
|
||||
},
|
||||
"skipNoticeDuration": {
|
||||
"message": "அறிவிப்பு காலத்தை தவிர்க்கவும் (வினாடிகள்):"
|
||||
},
|
||||
"skipNoticeDurationDescription": {
|
||||
"message": "தவிர்க்கும் அறிவிப்பு குறைந்தபட்சம் இவ்வளவு நேரம் திரையில் இருக்கும். மேனுவல் ஸ்கிப்பிங்கிற்கு, இது நீண்ட நேரம் தெரியும்."
|
||||
},
|
||||
"shortCheck": {
|
||||
"message": "பின்வரும் சமர்ப்பிப்பு உங்கள் குறைந்தபட்ச கால விருப்பத்தை விட குறைவாக உள்ளது. இது ஏற்கனவே சமர்ப்பிக்கப்பட்டுள்ளது என்பதையும், இந்த விருப்பத்தின் காரணமாக புறக்கணிக்கப்படுவதையும் இது குறிக்கலாம். நீங்கள் சமர்ப்பிக்க விரும்புகிறீர்களா?"
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "பதிவேற்ற பொத்தானைக் காட்டு"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "நீங்கள் நேர முத்திரையைத் தேர்ந்தெடுத்து சமர்ப்பிக்கத் தயாரான பிறகு இந்த பொத்தான் YouTube பிளேயரில் தோன்றும்."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "ஸ்பான்சர் பிளாக் சேவையக முகவரி"
|
||||
},
|
||||
@@ -386,6 +472,15 @@
|
||||
"exportOptions": {
|
||||
"message": "அனைத்து விருப்பங்களையும் இறக்குமதி / ஏற்றுமதி"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "திருத்து/நகலெடு"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "கோப்பிற்கு சேமி"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "கோப்பிலிருந்து ஏற்று"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "இது JSON இல் உங்கள் முழு உள்ளமைவு. இது உங்கள் பயனர் ஐடியை உள்ளடக்கியது, எனவே இதை புத்திசாலித்தனமாக பகிர்ந்து கொள்ளுங்கள்."
|
||||
},
|
||||
@@ -413,6 +508,9 @@
|
||||
"preview": {
|
||||
"message": "முன்னோட்ட"
|
||||
},
|
||||
"unsubmitted": {
|
||||
"message": "சமர்ப்பிக்கப்படவில்லை"
|
||||
},
|
||||
"inspect": {
|
||||
"message": "ஆய்வு செய்யுங்கள்"
|
||||
},
|
||||
@@ -431,12 +529,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "பிழைத்திருத்த தகவல்கள் கிளிப் போர்டில் நகலெடுக்கப்பட்டுள்ளன. நீங்கள் பகிர விரும்பாத எந்த தகவலையும் அகற்ற தயங்க. இதை உரை கோப்பில் சேமிக்கவும் அல்லது பிழை அறிக்கையில் ஒட்டவும்."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "சாவி"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "மற்றொரு செயலுடன் பிணைக்கப்பட்டுள்ளது. மற்றொரு விசையைத் தேர்ந்தெடுக்கவும்."
|
||||
},
|
||||
"to": {
|
||||
"message": "க்கு",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -453,6 +545,9 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "செலுத்தப்படாத அல்லது சுய விளம்பரத்தைத் தவிர \"ஸ்பான்சர்\" போன்றது. பொருட்கள், நன்கொடைகள் அல்லது அவர்கள் யாருடன் ஒத்துழைத்தார்கள் என்பது பற்றிய தகவல்கள் இதில் அடங்கும்."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "பிரத்யேக அணுகல்"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "தொடர்பு நினைவூட்டல் (குழுசேர்)"
|
||||
},
|
||||
@@ -477,6 +572,15 @@
|
||||
"category_outro_description": {
|
||||
"message": "வரவுகளை அல்லது YouTube எண்ட்கார்டுகள் தோன்றும் போது. தகவலுடன் முடிவுகளுக்கு அல்ல."
|
||||
},
|
||||
"category_preview": {
|
||||
"message": "முன்னோட்டம்/மறுபரிசீலனை"
|
||||
},
|
||||
"category_preview_description": {
|
||||
"message": "முந்தைய எபிசோடுகளின் விரைவான மறுபரிசீலனை அல்லது தற்போதைய வீடியோவில் பின்னர் என்ன வரப்போகிறது என்பதற்கான முன்னோட்டம். ஒன்றாக தொகுக்கப்பட்ட கிளிப்புகள், பேசப்பட்ட சுருக்கங்களுக்கு அல்ல."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "நிரப்பி"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "இசை: இசை அல்லாத பிரிவு"
|
||||
},
|
||||
@@ -486,6 +590,12 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "இசை அல்லாதது"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "முன்னிலைப்படுத்த"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "பெரும்பாலான மக்கள் தேடும் வீடியோவின் பகுதி. \"வீடியோ x இல் தொடங்குகிறது\" போன்றது."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "லைவ்ஸ்ட்ரீம்: நன்கொடை / செய்தி அளவீடுகள்"
|
||||
},
|
||||
@@ -504,8 +614,15 @@
|
||||
"disable": {
|
||||
"message": "முடக்கு"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "உங்கள் நிறம் தவறாக வடிவமைக்கப்பட்டுள்ளது. இது ஆரம்பத்தில் எண் அடையாளத்துடன் 3 அல்லது 6 இலக்க ஹெக்ஸ் குறியீடாக இருக்க வேண்டும்."
|
||||
"autoSkip_POI": {
|
||||
"message": "துவக்கத்திற்கு தானாகக் கெந்து"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "காணொளி ஏறுகையில் கேள்"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "சமர்ப்பிக்கப்படாதவை நிறம்",
|
||||
"description": "Referring to submissions that have not been sent to the server yet."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "பார் வண்ணத்தைத் தேடுங்கள்"
|
||||
@@ -551,6 +668,15 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "மறைக்கப்பட்ட: மிகக் குறுகிய"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "கைமுறையாக மறைக்கப்பட்டது"
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "அனுமதியை ஏற்றுக்கொள்"
|
||||
},
|
||||
"permissionRequestSuccess": {
|
||||
"message": "அனுமதி கோரிக்கை வெற்றி!"
|
||||
},
|
||||
"forceChannelCheck": {
|
||||
"message": "தவிர்ப்பதற்கு முன் சேனல் சோதனை கட்டாயப்படுத்தவும்"
|
||||
},
|
||||
@@ -564,7 +690,7 @@
|
||||
"message": "தவறான / தவறான நேரம்"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "தவறான வகை"
|
||||
"message": "வகையை மாற்று"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "இந்த வீடியோ இசை என வகைப்படுத்தப்பட்டுள்ளது. இதற்கு ஒரு ஸ்பான்சர் இருப்பதை நீங்கள் உறுதியாக நம்புகிறீர்களா? இது உண்மையில் \"இசை அல்லாத பிரிவு\" என்றால், நீட்டிப்பு விருப்பங்களைத் திறந்து இந்த வகையை இயக்கவும். பின்னர், நீங்கள் இந்த பகுதியை ஸ்பான்சருக்கு பதிலாக \"இசை அல்லாதது\" என்று சமர்ப்பிக்கலாம். நீங்கள் குழப்பமாக இருந்தால் வழிகாட்டுதல்களைப் படிக்கவும்."
|
||||
@@ -584,5 +710,82 @@
|
||||
},
|
||||
"categoryUpdate2": {
|
||||
"message": "அறிமுகங்கள், அவுட்ரோஸ், மெர்ச் போன்றவற்றைத் தவிர்க்க விருப்பங்களைத் திறக்கவும்."
|
||||
},
|
||||
"help": {
|
||||
"message": "உதவி"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "புரிந்தது",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "என்றென்றும் மறை"
|
||||
},
|
||||
"Donate": {
|
||||
"message": "கொடையளி"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "நன்கொடை இணைப்பை மறை"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "தெரிவுகள் பக்கத்தில் இருண்ட பயன்முறை"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "ஸ்பான்சர்ப்ளாக் நிறுவியதற்கு நன்றி."
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "தொடர்ந்து வாக்களி"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "இது உம் துண்டங்களை உடனடியாகச் செயல்படுத்தும்"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "வாக்கிறக்கு"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "வாக்கேற்று"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "துண்டத்தை மறை"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "நா",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "ம",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "நடத்தை",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "இடைமுகம்",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "விசைப்பலகை குறுக்குவழிகள்",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "காப்புநகல்/மீட்டெடுப்பு",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "இதர",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"notSet": {
|
||||
"message": "அமைக்கவில்லை"
|
||||
},
|
||||
"change": {
|
||||
"message": "மாற்று"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "பீட்டா சேவையகம் இயக்கப்பட்டுள்ளது!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "தெரிவுகள் பக்கத்தைத் திற"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,18 +176,12 @@
|
||||
"hideInfoButton": {
|
||||
"message": "YouTube ప్లేయర్లో సమాచారం బటన్ను దాచండి"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "ఇది YouTube పేజీలో పాపప్ను తెరిచే బటన్."
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "YouTube ప్లేయర్లో తొలగించు బటన్ను దాచండి"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "YouTube ప్లేయర్లో తొలగించు బటన్ను చూపించు"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "ఇది YouTube ప్లేయర్లోని బటన్, ఇది ప్రస్తుత వీడియో కోసం మీరు సమర్పించని అన్ని విభాగాలను క్లియర్ చేస్తుంది."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "స్కిప్ కౌంట్ ట్రాకింగ్ను ప్రారంభించండి"
|
||||
},
|
||||
@@ -232,18 +226,6 @@
|
||||
"message": "మీకు ఇంకా నచ్చకపోతే, ఎప్పుడూ చూపించు బటన్ నొక్కండి.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "విభాగాన్ని దాటవేయడానికి కీని సెట్ చేయండి"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "సమర్పణ కీబైండ్ కోసం కీని సెట్ చేయండి"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "కీని టైప్ చేయడం ద్వారా దాన్ని ఎంచుకోండి"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "కీబైండ్ దీనికి సెట్ చేయబడింది: "
|
||||
},
|
||||
"0": {
|
||||
"message": "అనుసంధాన సమయం సమాప్తం. మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేయండి. మీ ఇంటర్నెట్ పనిచేస్తుంటే, సర్వర్ ఓవర్లోడ్ లేదా డౌన్ అయి ఉండవచ్చు."
|
||||
},
|
||||
@@ -290,9 +272,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "మీరు దాటవేశారు "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "మీరు మీరే రక్షించుకున్నారు "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "నిమిషం"
|
||||
},
|
||||
@@ -306,10 +285,12 @@
|
||||
"message": "గంటలు"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "మీరు ప్రజలను రక్షించారు"
|
||||
"message": "మీరు ప్రజలను రక్షించారు",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " వారి జీవితాల"
|
||||
"message": " వారి జీవితాల",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "సర్వర్ స్థితి కోసం status.sponsor.ajay.app ని తనిఖీ చేయండి."
|
||||
@@ -326,9 +307,6 @@
|
||||
"createdBy": {
|
||||
"message": "సృష్టికర్త"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". ఇది ప్రస్తుతం దీనికి సెట్ చేయబడింది:"
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "ఇన్విడియస్ మద్దతును ప్రారంభించండి, ఆటోస్కిప్ను డిసేబుల్ చేయండి, బటన్లను దాచు మరియు మరిన్ని చేయండి."
|
||||
},
|
||||
@@ -359,9 +337,6 @@
|
||||
"showUploadButton": {
|
||||
"message": "అప్లోడ్ బటన్ చూపించు"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "మీరు టైమ్స్టాంప్ను ఎంచుకుని సమర్పించడానికి సిద్ధంగా ఉన్న తర్వాత ఈ బటన్ YouTube ప్లేయర్లో కనిపిస్తుంది."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "స్పాన్సర్బ్లాక్ సర్వర్ చిరునామా"
|
||||
},
|
||||
@@ -431,12 +406,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "డీబగ్ సమాచారం క్లిప్ బోర్డ్కు కాపీ చేయబడింది. మీరు భాగస్వామ్యం చేయని సమాచారాన్ని తొలగించడానికి సంకోచించకండి. దీన్ని టెక్స్ట్ ఫైల్లో సేవ్ చేయండి లేదా బగ్ రిపోర్ట్లో అతికించండి."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "కీ"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "మరొక చర్యకు కట్టుబడి ఉంటుంది. దయచేసి మరొక కీని ఎంచుకోండి."
|
||||
},
|
||||
"to": {
|
||||
"message": "కు",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -504,9 +473,6 @@
|
||||
"disable": {
|
||||
"message": "డిసేబుల్"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "మీ రంగు తప్పుగా ఆకృతీకరించబడింది. ఇది ప్రారంభంలో సంఖ్య గుర్తుతో 3 లేదా 6 అంకెల హెక్స్ కోడ్ అయి ఉండాలి."
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "బార్ కలర్ కోరుకుంటారు"
|
||||
},
|
||||
@@ -563,9 +529,6 @@
|
||||
"downvoteDescription": {
|
||||
"message": "తప్పు / తప్పు సమయం"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "తప్పు వర్గం"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "ఈ వీడియోను సంగీతంగా వర్గీకరించారు. దీనికి స్పాన్సర్ ఉందని మీరు ఖచ్చితంగా అనుకుంటున్నారా? ఇది వాస్తవానికి \"నాన్-మ్యూజిక్ సెగ్మెంట్\" అయితే, పొడిగింపు ఎంపికలను తెరిచి ఈ వర్గాన్ని ప్రారంభించండి. అప్పుడు, మీరు ఈ విభాగాన్ని స్పాన్సర్కు బదులుగా \"నాన్-మ్యూజిక్\" గా సమర్పించవచ్చు. మీరు గందరగోళంలో ఉంటే దయచేసి మార్గదర్శకాలను చదవండి."
|
||||
},
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"message": "Sponsor sürelerini yollarken bir sorun oluştur, lütfen tekrar deneyin."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Bu videonun kısımları veri tabanımızda mevut"
|
||||
"message": "Bu videonun kısımları veri tabanımızda mevcut"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Kısım bulunamadı"
|
||||
@@ -182,15 +182,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Bu YouTube oynatıcısındaki bölüm geçişlerini yolladığınız butonları saklayacaktır."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "“Asıl Kısma Atla” Düğmesi Oynatıcıda Kalsın"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "YouTube Oynatıcısındaki Bilgi Butonunu Göster"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "YouTube Oynatıcısındaki Bilgi Butonunu Gizle"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Bu, YouTube sayfasında açılan pencereyi açan butondur."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Bilgi düğmesini otomatik gizle"
|
||||
},
|
||||
@@ -200,9 +200,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "YouTube Oynatıcısında Silme Tuşunu Göster"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Bu, YouTube oynatıcısındaki mevcut video için gönderilmemiş bölümleri temizleyen butondur."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Kısım Atlama Sayaç Takibine İzin Ver"
|
||||
},
|
||||
@@ -212,6 +209,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Özel/Gizli sekmelerde atlama sayısı takibini etkinleştir"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Kısımların olumsuz oylarını depola"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Olumsuz oy verdiğiniz kısımlar, sayfayı tazeledikten sonra da gizli kalacaktır"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Uyarı: Bu ayarı devre dışı bırakırsanız, halihazırda saklanan olumsuz oylar silinecek"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Karma Ön eki ile Sorgula"
|
||||
},
|
||||
@@ -239,6 +245,12 @@
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "Tüm Küçük Atlama Bildirimleri"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "Otomatik Atlama için Soluk Atlama Bildirimleri"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "Tüm Soluk Atlama Bildirimleri"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock, sponsorları, giriş ve bitiş kısımlarını, abonelik hatırlatıcılarını ve YouTube videolarının diğer can sıkıcı kısımlarını atlamanıza olanak tanır. SponsorBlock, herkesin sponsorlu kısımları ve YouTube videolarının diğer kısımlarının başlangıç ve bitiş zamanlarını göndermesine izin veren kitle kaynaklı bir tarayıcı uzantısıdır. Bir kişi bu bilgiyi gönderdikten sonra, bu uzantıya sahip diğer herkes sponsorlu kısımları hemen atlayacaktır. Müzik videolarının müzik dışı bölümlerini de atlayabilirsiniz.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -260,19 +272,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Kısım atlamak için bir tuş ata"
|
||||
"message": "Kısmı atla",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Kısım başlatmak/durdurmak için kısayol ayarla"
|
||||
"message": "Kısmı başlat/durdur",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Gönderim için bir tuş belirleyin"
|
||||
"message": "Kısımları gönder",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Yazarak bir tuş seçin"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Tuş seçimi şu tuşa ayarlandı: "
|
||||
"message": "Kullanmak istediğiniz tuşu yazın ve kombine etmek istediğiniz tuşları seçin."
|
||||
},
|
||||
"0": {
|
||||
"message": "Bağlantı zaman aşımına uğradı. İnternet bağlantınızı kontrol ediniz. Eğer internetiniz çalışıyor ise, büyük ihtimalle sunucuya erişilemiyor veya sunucuya aşırı yüklenilmiş olabilir."
|
||||
@@ -299,9 +311,16 @@
|
||||
"mute": {
|
||||
"message": "Sustur"
|
||||
},
|
||||
"full": {
|
||||
"message": "Bütün Video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} atla?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} susturulsun mu?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "{0} kısmına atlansın mı?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
@@ -310,6 +329,10 @@
|
||||
"message": "{0} Atlandı",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} susturuldu",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "{0} kısmına atlandı",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
@@ -335,9 +358,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Şu kadar kısım atladınız: "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Şu kadar süre kazandınız "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "dakika"
|
||||
},
|
||||
@@ -351,10 +371,12 @@
|
||||
"message": "saat"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "İnsanların şu kadar vaktini kurtardınız:"
|
||||
"message": "İnsanların şu kadar vaktini kurtardınız:",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " yaşam süresi"
|
||||
"message": " yaşam süresi",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Sunucu durumu için status.sponsor.ajay.app kontrol edin."
|
||||
@@ -374,9 +396,6 @@
|
||||
"createdBy": {
|
||||
"message": "Oluşturan"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Şu an buna ayarlı:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "3. Taraf Youtube Sitelerini Destekle"
|
||||
},
|
||||
@@ -426,12 +445,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Sıradaki öneri belirlediğiniz minimum süre ayarından daha kısa. Bu zaten yollandığı ve bu ayardan dolayı yok sayıldığı anlamına gelebilir. Göndermek istediğinizden emin misiniz?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Bir canlı yayın veya ön gösterim sırasında kısım gönderilemez. Yayının bitmesini bekleyin, sonra sayfayı tazeleyip kısımların geçerli olduğunu kontrol edin."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Karşıya Yükleme Butonunu Göster"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Bu buton, YouTube oynatıcısında bir zaman seçtiğiniz ve göndermeye hazır olduğunuzda gözükür."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock Sunucu Adresi"
|
||||
},
|
||||
@@ -456,6 +475,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Bütün Ayarlarını İçe/Dışa Aktar"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Düzenle/kopyala"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Dosyaya kaydet"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Dosyadan yükle"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Bu, JSON formatında bütün kurulumunuzu gösterir. Kullanıcı kimliğinizi içerir, bu sebeple paylaşırken dikkatli olun."
|
||||
},
|
||||
@@ -504,11 +532,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Bu çözüm bilgisi panoya kopyalandı. Paylaşmak istemediğiniz herhangi bir bilgiyi silmekte özgürsünüz. Bir yazı dosyası olarak kaydedin veya hata raporuna kopyalayın."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Anahtar"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "başka bir eyleme bağlı. Lütfen başka bir anahtar seçin."
|
||||
"message": "Bu kısayol başka bir eyleme atanmış. Lütfen başka kısayol seçin."
|
||||
},
|
||||
"to": {
|
||||
"message": "'e",
|
||||
@@ -526,6 +551,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "\"Sponsor\" seçeneğinden farkı para karşılığı olmaması veya kendi reklamını yapmasıdır. Buna kendi markalı ürünlerini satmak, bağış toplamak ve videoda işbirliği yaptığı kimselerden bahsetmek dahildir."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Özel Erişim"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Yalnızca bütün videoyu etiketlemek için kullanın. Video; ücretli veya ücretsiz elde edilen bir ürünün, hizmetin veya bir yerin reklamını yapıyorsa kullanılır."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Bu video; yayıncıya özel ücretle veya ücretsiz sunulan bir ürünün, hizmetin veya bir yerin reklamını yapıyor",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Etkileşim Hatırlatıcısı (Abonelik)"
|
||||
},
|
||||
@@ -556,6 +591,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Önceki bölümlerin bir özeti veya geçerli videonun içeriğine yönelik bir ön izleme. Bu özellik birleştirilmiş klipler içindir, konuşarak anlatılan özetleri kapsamaz."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Konuyla Alakasız / Şaka"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Videonun ana içeriğini anlamak için gerekli olmayan, yalnızca alakasız konu veya mizah için eklenen sahneler. Bu, alakalı veya arka plan ayrıntısı veren kısımları içermemelidir."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Alakasız Konu"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Müzik: Müzik Olmayan Bölüm"
|
||||
},
|
||||
@@ -598,14 +642,18 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Arama Çubuğunda Göster"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Etiketi Göster"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Müzik olmayan kısım varsa tüm kısımları otomatik atla"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Atlamak yerine sesi kapatan bölümlere izin ver"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Renginiz yanlış biçimlendirilmiştir. Başında bir kare işareti bulunan 3 veya 6 basamaklı bir onaltılık kod olmalıdır."
|
||||
"fullVideoSegments": {
|
||||
"message": "Video bütünüyle bir reklamsa simge göster",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Gönderilmemiş Renk",
|
||||
@@ -643,6 +691,9 @@
|
||||
"message": "\"{0}\" kategorisinde bir kısım göndermek için onu ayarlardan açmalısınız. Ayarlara yönlendiriliyorsunuz.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Uyarı: Bu tür kısımlardan sadece bir adet etkin olabilir. Birden fazla gönderdiğinizde onlardan rastgele biri gösterilir."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Göndereceğin tüm kısımlar için bir kategori seçmelisin!"
|
||||
},
|
||||
@@ -655,6 +706,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "gizlendi: çok kısa"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "elle gizlendi"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Kanal kimliği henüz yüklenmedi. Gömülü bir video kullanıyorsanız, bunun yerine YouTube ana sayfasından izlemeyi deneyin. Bu, YouTube düzenindeki değişikliklerden de kaynaklanabilir, eğer öyleyse, buraya bir yorum yazın:"
|
||||
@@ -690,7 +744,7 @@
|
||||
"message": "Hatalı/Yanlış Zaman"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Yanlış Kategori"
|
||||
"message": "Kategoriyi değiştir"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Bu video müzik olarak sınıflandırılmıştır. Bunun bir sponsor olduğundan emin misin? Bu aslında bir \"Müzik Dışı bölüm\" ise, uzantı seçeneklerini açın ve bu kategoriyi etkinleştirin. Ardından, bu kısmı sponsor yerine \"Müzik Olmayan\" olarak gönderebilirsiniz. Kafanız karıştıysa lütfen yönergeleri okuyun."
|
||||
@@ -718,6 +772,12 @@
|
||||
"message": "Anladım",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Bu kısım büyük. Bütün video tek bir konu hakkındaysa \"Atla\" yerine \"Bütün Video\"yu seçin. Daha çok bilgi için kılavuzlara bakın."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Bu videonun bütünü bu şekilde sınıflandırılmış ve kısımları birbirinden ayrılamayacak kadar sıkı bütünleştirilmiş"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Gelecekteki deneylerin hiçbirine katılma",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -726,7 +786,7 @@
|
||||
"message": "Asla gösterme"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Bir uyarı aldınız ve geçici bir süreliğine kısım gönderemeyeceksiniz. Sizin kısım göndermede zararlı olmayan bazı hatalar yaptığınızı belirledik ve size kuralları açıklamak istiyoruz. Bu sohbete discord.gg/SponsorBlock veya matrix.to/#/#sponsor:ajay.app üzerinden de katılabilirsiniz"
|
||||
"message": "Bir uyarı aldınız ve geçici olarak gönderim yapamazsınız. Bu, kötü niyetli olmayan bazı yaygın hatalar yaptığınızı fark ettiğimiz anlamına gelir, lütfen kuralları anladığınızı onaylayın, uyarıyı sonra kaldıracağız. Bu konuşmaya discord.gg/SponsorBlock ya da matrix.to/#/#sponsor:ajay.app kullanarak katılabilirsiniz."
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Bir uyarı nedeniyle oy reddedildi. Çözüm bulmak için buraya tıklayarak bir sohbet açın veya daha sonra vaktiniz olduğunda uğrayın.",
|
||||
@@ -735,9 +795,15 @@
|
||||
"Donate": {
|
||||
"message": "Bağış Yap"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Geliştirme sürecinin fonlanmasına yardım et"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Bağış Bağlantısını Gizle"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Ayarlar Sayfasında Karanlık Modu"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "SponsorBlock'u yüklediğiniz için teşekkürler."
|
||||
},
|
||||
@@ -749,5 +815,122 @@
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Atlama nasıl çalışıyor"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Segmen video akan otomatis dilewati jika ditemukan di databasis. Kamu bisa buka munculan dengan klik ikon ekstensi untuk mendapatkan pratinjau apa adanya."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Når du springer et segment over, får du besked, når du springer et segment over. Hvis timingen virker forkert, kan du stemme ned ved at klikke på downvote! Du kan også stemme i popup-vinduet."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Submitting"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Indsendelse kan enten ske i popup-vinduet ved at trykke på \"Segment Begynder Nu\"-knappen eller i videoafspilleren med knapperne på afspilleren."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Clicking the play button indicated the start of a segment and clicking the stop icon indicates the end. You can prepare multiple sponsors before hitting submit. Clicking the upload button will submit. Clicking the garbage can will delete."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Düzenleme"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Eğer kısımlarda hata yaptıysanız, yukarı ok işareti olan düğmeye tıkladıktan sonra kısımları silebilir veya düzeltebilirsiniz."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Bu fazla yavaş"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Kullanmak isterseniz kısayol tuşları var. Sponsorlu kısmın başlangıcını/sonunu belirtmek için noktalı virgül tuşuna basın ve göndermek için kesme işaretine tıklayın. Bu tuşlar ayarlarda değiştirilebilir. QWERTY klavye kullanmıyorsanız, tuş ayarlarını değiştirmelisiniz."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Veri tabanının bir kopyasını alabilir miyim? Bir gün ortadan kaybolursanız ne olacak?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Veri tabanı herkese açıktır ve şuradan erişilebilir: "
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Kaynak koduna serbestçe erişilebilir. Ben bir gün bu dünyada yalan olsam dahi, sizin gönderdiğiniz kısımlar kaybolmayacak."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Haberler ve nasıl yapılır"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Kaynak koduna nereden ulaşabilirim?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Emeği Geçenler"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Dahasını Öğren"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Olumsuz oy verir ve yeni bir kısım seçmeniz için bir kopya oluşturur"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Bu kategorinin wiki sayfasını açın."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Kopyala ve olumsuz"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Oylamaya devam et"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Bu, kısımlarınız için anında geçerli olur"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Zaman aralığını hızlı bir şekilde ayarlamak için düzenleme kutusunun üzerinde fare tekerini kullanın. Değişikliklere ince ayar yapmak için ctrl veya shift tuşunun kombinasyonları kullanılabilir."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Yeni! Videonun bütünü sponsor veya kendi reklamıysa bu uyarıyı görün"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Davranış",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Arayüz",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Klavye kısayolları",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Yedekle/Geri Yükle",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Çeşitli",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Atlama uyarısı görünümü",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Klavye kısayolunu kaldır",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Ayarlanmadı"
|
||||
},
|
||||
"change": {
|
||||
"message": "Değiştir"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Bu kısayol YouTube tarafından kullanılıyor. Bunu kullanmak istediğinize emin misiniz?"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Seçenekler sayfasını aç"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,6 +164,9 @@
|
||||
"copyPublicID": {
|
||||
"message": "Копіювати публічний UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Копіювати ID сегменту"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Приєднуйтесь до офіційного сервера Discord, щоб залишити пропозиції і зворотний зв'язок!"
|
||||
},
|
||||
@@ -182,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Це налаштування приховує кнопки для надсилання спонсорських вставок, які з'являються в плеєрі YouTube."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Залишати кнопку \"Перейти до Основне\" на плеєрі"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Показувати кнопку інформації в плеєрі YouTube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Приховати кнопку інформації в плеєрі YouTube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Ця кнопка відкриває спливаюче вікно на сторінці YouTube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Кнопка \"Автоматично сховати інформацію\""
|
||||
},
|
||||
@@ -200,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Показувати кнопку видалення в плеєрі YouTube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Ця кнопка дозволяє очистити всі спонсорські вставки в плеєрі YouTube."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Увімкнути відстеження кількості пропусків сегментів"
|
||||
},
|
||||
@@ -212,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Увімкнути відстеження пропусків у вкладках інкогніто"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Зберігати голоси \"проти\" сегментів"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Усі сегменти, за які ви проголосуєте \"проти\", залишаться прихованими навіть після оновлення"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Попередження: вимкнення цієї опції призведе до видалення всіх раніше збережених голосів \"проти\""
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Пошук по частині хеша"
|
||||
},
|
||||
@@ -266,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Призначити гарячу клавішу для пропуску сегмента"
|
||||
"message": "Пропустити сегмент",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Призначити гарячу клавішу для початку/зупинки сегмента"
|
||||
"message": "Почати/зупинити сегмент",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Призначити гарячу клавішу для надсилання"
|
||||
"message": "Надіслати сегменти",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Натисніть, щоб вибрати її"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Кнопка призначена на: "
|
||||
"message": "Виберіть клавішу, набравши її та виберіть бажану клавішу-модифікатор."
|
||||
},
|
||||
"0": {
|
||||
"message": "Таймаут підключення. Перевірте ваше з'єднання з інтернетом. Якщо ваш інтернет працює, сервер, швидше за все, перевантажений або лежить."
|
||||
@@ -305,14 +314,18 @@
|
||||
"mute": {
|
||||
"message": "Вимкнути звук"
|
||||
},
|
||||
"full": {
|
||||
"message": "Повне відео",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Пропустити {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Заглушити {0}?"
|
||||
"message": "Вимкнути звук {0}?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Пропустить до {0}?",
|
||||
"message": "Пропустити до {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
@@ -320,7 +333,7 @@
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} Заглушений",
|
||||
"message": "{0} Вимкнений звук",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
@@ -348,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Ви пропустили "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Ви заощадили "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "хвилину"
|
||||
},
|
||||
@@ -364,10 +374,12 @@
|
||||
"message": "годин"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Ви заощадили людям"
|
||||
"message": "Ви заощадили людям",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " їх життів"
|
||||
"message": " їх життів",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Дивіться стан сервера на status.sponsor.ajay.app."
|
||||
@@ -387,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Створено"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Він зараз призначений на:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Підтримувати сторонні YouTube-сайти"
|
||||
},
|
||||
@@ -439,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Наступний діапазон часу коротше, ніж Ваше налаштування мінімальної тривалості. Це може означати, що він вже був надісланий, і просто ігнорується через це налаштування. Ви дійсно хочете надіслати?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Надсилання під час прямого ефіру чи прем'єри не дозволено. Будь ласка, зачекайте до завершення, потім оновіть сторінку і переконайтеся, що сегменти все ще дійсні."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Показувати кнопку надсилання"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Ця кнопка з'являється в плеєрі YouTube після того, як Ви вибрали позначку часу і готові до надсилання."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Адреса сервера SponsorBlock"
|
||||
},
|
||||
@@ -469,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Імпорт/Експорт всіх налаштувань"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Змінити/копіювати"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Зберегти до файлу"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Завантажити з файлу"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Це вся конфігурація в форматі JSON. Цей файл містить Ваш ідентифікатор користувача, тому не забудьте ділитися з цим розумно."
|
||||
},
|
||||
@@ -517,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Інформація про налагодження скопійована в буфер обміну. Ви можете видалити будь-яку інформацію, якої не хочете ділитися. Збережіть її в текстовий файл, вставте в звіт про помилку."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Ключ"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "прив'язана до іншого дії. Будь ласка, оберіть іншу клавішу."
|
||||
"message": "Ця клавіша/комбінація клавіш прив'язана до іншої дії. Будь ласка виберіть іншу клавішу."
|
||||
},
|
||||
"to": {
|
||||
"message": "до",
|
||||
@@ -539,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Схоже на \"Спонсора\", але для безкоштовної реклами і самореклами. Включає себе вставки про мерчендайз, пожертвування або інформацію про тих, разом з ким було зроблено відео."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Ексклюзивний доступ"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Лише для позначення цілих відео. Використовується, коли відео демонструє продукт, послугу або місцеположення, до яких автори отримали безоплатний або субсидований доступ."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Це відео демонструє продукт, послугу або місцеположення, до яких автори отримали безоплатний або субсидований доступ",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Нагадування про взаємодію (підписка)"
|
||||
},
|
||||
@@ -569,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "Короткий зміст попередніх епізодів або попередній перегляд того, що буде в даному відео. Призначено для сегментів, змонтованих зі шматків відео, а не для усних переказів."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Дотичне наповнення/Жарти"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Дотичні сцени додані лише для наповнення або гумору, які не потрібні для розуміння основного вмісту відео. Це не повинно включати сегменти, що надають контекст або передісторію."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Наповнення"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Музика: Сегмент без музики"
|
||||
},
|
||||
@@ -579,10 +613,10 @@
|
||||
"message": "Без музики"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Основные"
|
||||
"message": "Основне"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Часть видео, которую ищут большинство людей. Аналогично комментарию «Видео начинается с X:XX»."
|
||||
"message": "Частина відео яку шукає більшість людей (Аналогічно коментарю \"Відео починається з Х:ХХ\")."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Прямі трансляції: пожертвування/читання повідомлення"
|
||||
@@ -597,19 +631,22 @@
|
||||
"message": "Пропуск вручну"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "Показувати в смузі прокрутки"
|
||||
"message": "Показувати в смузі перемотування"
|
||||
},
|
||||
"disable": {
|
||||
"message": "Вимкнути"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "Автоматический переход к началу"
|
||||
"message": "Автоматично перейти до початку"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Спросите, когда видео загружается"
|
||||
"message": "Спитати поки відео завантажується"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Показать на панели поиска"
|
||||
"message": "Показати в смузі перемотування"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Показати мітку"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Автоматично пропустити усі сегменти, якщо присутній сегмент без музики"
|
||||
@@ -617,8 +654,9 @@
|
||||
"muteSegments": {
|
||||
"message": "Дозволити сегменти, які відключають звук замість пропуску"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Ви ввели колір в неправильному форматі. Це повинно бути 3-х або 6-ти значне шістнадцяткове число з символом # на початку."
|
||||
"fullVideoSegments": {
|
||||
"message": "Показувати значок, коли все відео є рекламою",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Колір не надісланого сегмента",
|
||||
@@ -656,6 +694,9 @@
|
||||
"message": "Щоб надіслати сегменти категорії \"{0}\", ви повинні включити її в налаштуваннях. Зараз ви будете туди перенаправлені.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Увага: Сегменти даного типу можуть бути активними лише по одному. Надсилання декількох призведе до відображення випадкового сегмента."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Ви повинні обрати категорію для всіх сегментів, які ви відправляєте!"
|
||||
},
|
||||
@@ -668,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "приховано: занадто коротко"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "приховано вручну"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "ID каналу ще не завантажений. Якщо ви використовуєте вбудоване відео, спробуйте замість цього скористатися домашньою сторінкою YouTube. Це також може бути викликано змінами в дизайні YouTube, якщо ви вважаєте, що це так, залиште коментар тут:"
|
||||
@@ -703,7 +747,7 @@
|
||||
"message": "Невірно вказано час"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Невірна категорія"
|
||||
"message": "Змінити категорію"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Це відео класифіковано як музичне. Ви впевнені, що в ньому є спонсори? Якщо насправді це \"Сегмент без музики\", відкрийте параметри розширення і увімкніть цю категорію. Потім ви можете надіслати цей сегмент як \"Без музики\", а не як спонсора. Будь ласка, прочитайте керівництво, якщо ви заплуталися."
|
||||
@@ -731,6 +775,12 @@
|
||||
"message": "Зрозуміло",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Цей сегмент великий. Якщо все відео на одну тему, тоді змініть значення з \"Пропустити\" на \"Повне відео\". Продивіться керівництво для додаткової інформації."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Все відео позначене цією категорією, воно є її уособленням, тож категорію неможливо виокремити."
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Відмова від усіх майбутніх експериментів",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -739,7 +789,7 @@
|
||||
"message": "Сховати назавжди"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Ви отримали попередження, тому тимчасово не можете обирати сегменти. Це означає, що ми помітили, що ви робили кілька поширених помилок, які не є злісними. Тому ми хочемо нагадати вам правила. Ви можете приєднатися до чату з правилами використовуючи discord.gg/SponsorBlock або matrix.to/#/#sponsor:ajay.app"
|
||||
"message": "Ви отримали попередження, тому тимчасово не можете надсилати сегменти. Це означає, що ми помітили, що ви робили кілька поширених помилок не маючи шкідливих намірів. Будь ласка просто підтвердьте, що ви розумієте правила, і ми приберемо попередження. Ви також можете приєднатися до чату з правилами використовуючи discord.gg/SponsorBlock or matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Голосування відхилено через попередження. Натисніть, щоб відкрити чат для вирішення цієї проблеми, або поверніться пізніше.",
|
||||
@@ -748,9 +798,15 @@
|
||||
"Donate": {
|
||||
"message": "Пожертвувати"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Допомогти з фінансуванням розробки"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Приховати посилання на пожертвування"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Темний режим на сторінці налаштувань"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Дякую за встановлення SponsorBlock."
|
||||
},
|
||||
@@ -808,10 +864,88 @@
|
||||
"Credits": {
|
||||
"message": "Автори"
|
||||
},
|
||||
"highlightNewFeature": {
|
||||
"message": "Новинка! Переходьте відразу до головного моменту відео за допомогою нової категорії \"Важливе\""
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Дізнатися більше"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Голосує проти та створює локальну копію для повторного надсилання"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Відкрити вікі-сторінку цієї категорії."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Скопіювати та проголосувати проти"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Продовжити голосування"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Це миттєво буде застосовано до ваших сегментів"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Голос \"проти\""
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Голос \"за\""
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Приховати сегмент"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Навівши курсор на поле редагування, користуйтеся колесом прокрутки, щоб швидко відрегулювати час. Комбінації клавіш ctrl або shift можуть бути використані для точнішої настройки змін."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Нове! Бачте, коли відео повністю спонсорське або є саморекламою"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "д",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "г",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Поведінка",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Інтерфейс",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Комбінації клавіш",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Резервування/Відновлення",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Різне",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Вигляд сповіщення про пропуск",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Відв'язати",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Не задано"
|
||||
},
|
||||
"change": {
|
||||
"message": "Змінити"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Це вбудована комбінація YouTube. Ви впевнені що хочете її використовувати?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "BETA сервер увімкнено!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Відкрити сторінку налаштувань"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"message": "đoạn quảng cáo"
|
||||
},
|
||||
"Segments": {
|
||||
"message": "đoạn quảng cáo"
|
||||
"message": "phân đoạn"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
"message": "Tán thành phân đoạn này"
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "Bỏ qua lại"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "Bật tiếng"
|
||||
},
|
||||
"paused": {
|
||||
"message": "Tạm dừng"
|
||||
},
|
||||
@@ -71,7 +74,7 @@
|
||||
"message": "Video này có đoạn quảng cáo trong kho dữ liệu rồi!"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Không tìm thấy đoạn nào"
|
||||
"message": "Không tìm thấy phân đoạn nào"
|
||||
},
|
||||
"sponsorStart": {
|
||||
"message": "Đoạn quảng cáo bắt đầu vào lúc này"
|
||||
@@ -98,10 +101,10 @@
|
||||
"message": "Có vẻ máy chủ đang không hoạt động. Hãy liên hệ nhà phát triển ngay lập tức."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "Đã xảy ra lỗi kết nối. Mã của lỗi: "
|
||||
"message": "Đã xảy ra lỗi kết nối. Mã lỗi: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Xóa đoạn quảng cáo"
|
||||
"message": "Xóa các phân đoạn"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "Mở bảng popup của SponsorBlock"
|
||||
@@ -110,10 +113,10 @@
|
||||
"message": "Đóng bảng popup"
|
||||
},
|
||||
"SubmitTimes": {
|
||||
"message": "Đăng đoạn quảng cáo"
|
||||
"message": "Gửi phân đoạn"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "Bạn có chắc là muốn đăng không?"
|
||||
"message": "Bạn có chắc chắn muốn gửi không?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "Đưa kênh vào danh sách không chặn"
|
||||
@@ -122,7 +125,7 @@
|
||||
"message": "Loại kênh khỏi danh sách không chặn"
|
||||
},
|
||||
"voteOnTime": {
|
||||
"message": "Bầu chọn một đoạn quảng cáo"
|
||||
"message": "Bầu chọn một phân đoạn"
|
||||
},
|
||||
"Submissions": {
|
||||
"message": "Các phân đoạn"
|
||||
@@ -147,7 +150,7 @@
|
||||
"message": "Xóa thời gian"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "Đăng thời gian"
|
||||
"message": "Gửi thời gian"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "Tên này được dùng tại trang thông tin công khai để thể hiện lượng đóng góp của bạn. Xem"
|
||||
@@ -161,8 +164,11 @@
|
||||
"copyPublicID": {
|
||||
"message": "Sao chép Public UserID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "Sao chép ID phân đoạn"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "Hãy tham gia server Discord chính thức để đăng gợi ý và phản hồi!"
|
||||
"message": "Hãy tham gia server Discord chính thức để đưa ra gợi ý và phản hồi!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "Đóng lại"
|
||||
@@ -179,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "Không hiển thị nút trên trình chạy video Youtube để đăng đoạn quảng cáo."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Giữ nút bỏ qua Highlight trên trình phát player"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Hiển thị nút thông tin trên trình chạy video Youtube"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "Không hiển thị nút thông tin trên trình chạy video Youtube"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "Đây là nút để mở bảng popup trên trang Youtube."
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "Tự động ẩn nút Info"
|
||||
},
|
||||
@@ -197,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "Hiển thị nút xóa trên trình chạy video Youtube"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "Đây là nút trên trình chạy video Youtube để xóa tất cả những đoạn quảng cáo chưa đăng của bạn trong video đang xem."
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "Bật tính năng theo dõi số quảng cáo được bỏ qua"
|
||||
},
|
||||
@@ -209,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "Bật việc theo dõi số lượng người bỏ qua phân đoạn trong tab Riêng tư/Ẩn danh"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "Lưu trữ phiếu phản đối phân đoạn"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "Bất kỳ phân đoạn nào bạn phản đối sẽ vẫn bị ẩn ngay cả sau khi làm mới"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "Cảnh báo: Tắt tính năng này sẽ xóa tất cả các phiếu phản đối đã lưu trữ trước đó"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "Truy vấn theo Hash Prefix"
|
||||
},
|
||||
@@ -225,7 +237,7 @@
|
||||
"message": "Hiện thông báo lại"
|
||||
},
|
||||
"showSkipNotice": {
|
||||
"message": "Hiển thị thông báo sau khi bỏ qua quảng cáo"
|
||||
"message": "Hiển thị thông báo sau khi bỏ qua phân đoạn"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "Thông báo bỏ qua với kích thước đầy đủ"
|
||||
@@ -263,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "Chọn phím tắt để bỏ qua phân đoạn"
|
||||
"message": "Bỏ qua phân đoạn",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "Đặt phím nóng đánh dấu một phân đoạn bắt đầu/kết thúc"
|
||||
"message": "Bắt đầu/dừng phân đoạn",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "Đặt phím tắt đăng đoạn quảng cáo"
|
||||
"message": "Gửi phân đoạn",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "Chọn phím bằng cách gõ phím"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "Phím tắt đã được đặt thành: "
|
||||
"message": "Chọn một phím bằng cách nhập nó và chọn bất kỳ phím bổ trợ nào bạn muốn sử dụng."
|
||||
},
|
||||
"0": {
|
||||
"message": "Kết nối quá hạn thời gian. Hãy kiểm tra đường truyền mạng của bạn. Nếu mạng của bạn vẫn hoạt động, có thể máy chủ đang bị quá tải hoặc không hoạt động."
|
||||
@@ -299,9 +311,35 @@
|
||||
"skip": {
|
||||
"message": "Bỏ qua"
|
||||
},
|
||||
"mute": {
|
||||
"message": "Ngắt tiếng"
|
||||
},
|
||||
"full": {
|
||||
"message": "Toàn bộ Video",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Bỏ qua {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "Ngắt tiếng {0} chứ?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "Bỏ qua đến {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} đã bỏ qua",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} đã ngắt tiếng (Muted)",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "Đã bỏ qua đến {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "Tắt tự động bỏ qua"
|
||||
},
|
||||
@@ -309,7 +347,7 @@
|
||||
"message": "Bật tự động bỏ qua quảng cáo"
|
||||
},
|
||||
"audioNotification": {
|
||||
"message": "Thông báo bằng âm thanh khi bỏ qua quảng cáo"
|
||||
"message": "Thông báo bằng âm thanh khi bỏ qua"
|
||||
},
|
||||
"audioNotificationDescription": {
|
||||
"message": "Thông báo bằng âm thanh sẽ được bật khi bỏ qua quảng cáo. Nếu tắt tính năng này (hoặc tính năng tự động bỏ qua quảng cáo bị tắt), sẽ không có âm thanh kêu."
|
||||
@@ -323,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "Bạn đã bỏ qua "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "Bạn đã tiết kiệm cho mình "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "phút"
|
||||
},
|
||||
@@ -339,10 +374,12 @@
|
||||
"message": "giờ"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "Bạn đã giúp người khác tiết kiệm được"
|
||||
"message": "Bạn đã giúp người khác tiết kiệm được",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " của cuộc đời họ"
|
||||
"message": " của cuộc đời họ",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "Truy cập trang status.sponsor.ajay.app để biết tình trạng máy chủ."
|
||||
@@ -350,6 +387,9 @@
|
||||
"changeUserID": {
|
||||
"message": "Nhập/Xuất mã người dùng của bạn"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "Đây là mã cần được giữ bí mật. Nó giống như mật khẩu và không nên được chia sẻ cho bất kì ai khác. Nếu có ai đó lấy được mã này, họ có thể mạo danh bạn. Còn nếu như bạn đang tìm khoá ID công khai, hãy nhấn vào nút \"Sao chép Public UserID\" trong popup của SponsorBlock."
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "Đặt mã người dùng"
|
||||
},
|
||||
@@ -359,9 +399,6 @@
|
||||
"createdBy": {
|
||||
"message": "Được tạo bởi"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". Phím đang được đặt:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "Hỗ trợ các trang web Youtube thuộc bên thứ 3"
|
||||
},
|
||||
@@ -411,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "Đoạn quảng cáo sau ngắn hơn tùy chọn độ dài ngắn nhất của bạn. Điều này có thể có nghĩa là nó đã được đăng rồi, và không được bỏ qua vì tùy chọn này. Bạn có chắc muốn đăng nó không?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Không được phép gửi trên một buổi phát trực tiếp hoặc buổi ra mắt đang hoạt động. Vui lòng đợi cho đến khi kết thúc, sau đó làm mới trang xác minh rằng các phân đoạn vẫn hợp lệ."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Hiển thị nút tải lên"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "Nút này xuất hiện trên trình chạy video Youtube sau khi bạn chọn mốc thời gian và sẵn sàng đăng đoạn quảng cáo."
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "Địa chỉ máy chủ SponsorBlock"
|
||||
},
|
||||
@@ -441,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "Nhập/xuất tất cả tùy chọn"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "Chỉnh sửa/sao chép"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "Lưu vào tệp"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "Tải từ tệp"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "Đây là toàn bộ cấu hình của bạn trong tệp JSON. Nó chứa cả mã người dùng của bạn, nên hãy chia sẻ cẩn thận."
|
||||
},
|
||||
@@ -454,10 +500,10 @@
|
||||
"message": "Tệp JSON này không được định dạng đúng cách. Tùy chọn của bạn chưa được thay đổi."
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Đăng đoạn quảng cáo"
|
||||
"message": "Gửi phân đoạn"
|
||||
},
|
||||
"submit": {
|
||||
"message": "Đăng"
|
||||
"message": "Gửi"
|
||||
},
|
||||
"cancel": {
|
||||
"message": "Huỷ"
|
||||
@@ -489,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "Thông tin gỡ lỗi đã được sao chép vào bộ nhớ tạm. Hãy thoải mái xóa thông tin mà bạn không muốn chia sẻ. Lưu thông tin này vào một tập tin văn bản hoặc dán nó vào bản báo cáo lỗi."
|
||||
},
|
||||
"theKey": {
|
||||
"message": "Phím"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "đang được đặt thực hiện hành động khác. Xin hãy chọn phím khác."
|
||||
"message": "Phím tắt này liên kết với một hành động khác. Vui lòng chọn một cái khác."
|
||||
},
|
||||
"to": {
|
||||
"message": "đến",
|
||||
@@ -511,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Tương tự như 'nhà tài trợ' ngoại trừ việc quảng cáo không được trả tiền hay tự quảng cáo. Điều này bao gồm các phần hàng hóa, đóng góp, hoặc thông tin về người mà họ hợp tác cùng."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Truy cập riêng"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Chỉ để dán nhãn cho toàn bộ video. Được sử dụng khi video giới thiệu một sản phẩm, dịch vụ hoặc vị trí mà họ đã nhận được quyền truy cập miễn phí hoặc được trợ cấp."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Video này giới thiệu sản phẩm, dịch vụ hoặc vị trí mà họ đã nhận được quyền truy cập miễn phí hoặc được trợ cấp",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Nhắc tương tác (Đăng ký)"
|
||||
},
|
||||
@@ -541,6 +594,12 @@
|
||||
"category_preview_description": {
|
||||
"message": "Tóm tắt nhanh về tập trước/tập sau trong 1 chuỗi video (series) dài (hoặc cũng có thể là tóm tắt trước về video sắp chiếu)."
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Tập hợp các cảnh không bắt buộc để xem trong video. Điều này không bao gồm các đoạn chứa nội dung hoặc nói về ngữ cảnh của video."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Cảnh phụ"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "Nhạc: Phần không nhạc"
|
||||
},
|
||||
@@ -550,6 +609,12 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "Không có nhạc"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Điểm/Khoảnh khắc quan trọng"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Phần của video mà hầu hết mọi người đang tìm kiếm. Tương tự với câu nói \"Video bắt đầu từ x\"."
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "Luồng phát trực tiếp: Đọc Quyên góp/Tin nhắn"
|
||||
},
|
||||
@@ -568,11 +633,27 @@
|
||||
"disable": {
|
||||
"message": "Tắt"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "Tự động bỏ qua"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "Hỏi khi video bắt đầu"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "Hiện ở thanh xem trước"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Hiển thị nhãn"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Tự động bỏ qua tất cả các phân đoạn nếu trong video có phân đoạn không phải nhạc"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Mã màu sai định dạng. Mã màu phải có 3 hoặc 6 ký tự hệ hex và có dấu thăng ở đầu."
|
||||
"muteSegments": {
|
||||
"message": "Cho phép các phân đoạn bị tắt tiếng hay vì bỏ qua"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Hiển thị biểu tượng khi video hoàn toàn là quảng cáo",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "Màu khi chưa được gửi đi",
|
||||
@@ -610,6 +691,9 @@
|
||||
"message": "Để gửi một phân đoạn với chủ đề \"{0}\", bạn cần phải kích hoạt nó trong phần tuỳ chọn. Bạn sẽ được đưa đến phần tuỳ chỉnh bây giờ.",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "Cảnh báo: Loại phân đoạn này nếu hiển thị CHỈ CÓ 1 PHÂN ĐOẠN được xuất hiện trong video. Nếu bạn gửi lên, khi đó, phân đoạn xuất hiện duy nhất sẽ được lựa chọn ngẫu nhiên."
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "Bạn phải lựa chọn một danh mục cho tất cả phân đoạn bạn đang muốn đăng tải!"
|
||||
},
|
||||
@@ -617,11 +701,14 @@
|
||||
"message": "(Kết thúc)"
|
||||
},
|
||||
"hiddenDueToDownvote": {
|
||||
"message": "đã bị ẩn: Không tán thành"
|
||||
"message": "đã ẩn: hạ bình chọn"
|
||||
},
|
||||
"hiddenDueToDuration": {
|
||||
"message": "đã bị ẩn: quá ngắn"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "ẩn thủ công"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "Không xác định được ID kênh. Nếu bạn đang xem video này trên 1 trang web thứ 3, hãy mở lại video này trên trang chủ Youtube rồi thử lại. Điều này cũng có thể do những thay đổi trong mã nguồn trang web YouTube, nếu bạn nghĩ vậy, hãy bình luận tại đây:"
|
||||
@@ -654,16 +741,16 @@
|
||||
"message": "Cân nhắc bật chế độ \"Bắt buộc kiểm tra kênh YouTube trước khi bỏ qua phân đoạn\""
|
||||
},
|
||||
"downvoteDescription": {
|
||||
"message": "Phân đoạn sai / không đúng"
|
||||
"message": "Chỉnh thời gian sai/không đúng"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "Sai thể loại"
|
||||
"message": "Đổi danh mục"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "Video này đã được phân loại là âm nhạc. Bạn có chắc đây là quảng cáo nhà tài trợ không? Nếu đây là phân đoạn \"Không phải nhạc\", hãy mở Cài đặt tiện ích và bật lựa chọn đó. Rồi bạn có thể đăng tải phân đoạn lên dưới danh mục \"Không phải nhạc\" thay vì \"Quảng cáo nhà tài trợ\". Hãy đọc Hướng dẫn nếu bạn vẫn còn vướng mắc"
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "Nhiều đoạn"
|
||||
"message": "Nhiều phân đoạn"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "Hướng dẫn"
|
||||
@@ -681,6 +768,16 @@
|
||||
"help": {
|
||||
"message": "Trợ giúp"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "Đã hiểu",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Phân đoạn này là lớn. Nếu toàn bộ video nói về một chủ đề, hãy chuyển từ \"Bỏ qua\" thành \"Toàn bộ video\". Xem hướng dẫn để biết thêm thông tin."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Toàn bộ video này được gắn thẻ vào thể loại này và được tích hợp quá chặt chẽ để có thể tách ra"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Từ chối tham gia thử nghiệm trong tương lai",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -689,25 +786,163 @@
|
||||
"message": "Ẩn vĩnh viễn"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "Bạn đã nhận được một cảnh báo (Warring) và tạm thời không thể gửi các phân đoạn. Bạn đã mắc lỗi trong việc tạo quá nhiều lần (có thể là chọn sai kiểu phân đoạn hoặc sai thời gian phân đoạn). Chúng tôi muốn bạn nhận ra điều đó để có thể giúp bạn khắc phục điều này trong tương lai, không mắc lỗi nữa. Bạn có thể gặp các VIP User tại đây: discord.gg/SponsorBlock hoặc matrix.to/#/#sponsor:ajay.app. Bọn họ sẽ giúp bạn gỡ cảnh báo sau khi bạn đã hiểu ra lỗi sai của bạn."
|
||||
"message": "Bạn đã nhận được một cảnh báo và tạm thời không thể gửi các phân đoạn. Bạn đã mắc lỗi trong việc tạo phân đoạn quá nhiều lần (có thể là chọn sai kiểu phân đoạn hoặc sai thời gian phân đoạn). Chúng tôi muốn bạn nhận ra điều đó để giúp bạn không mắc lỗi trong tương lai. Bạn có thể gặp các Vip User tại đây: discord.gg/SponsorBlock hoặc matrix.to/#/#sponsor:ajay.app. Bọn họ sẽ giúp bạn gỡ cảnh báo sau khi bạn đã hiểu ra lỗi sai của bạn"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "Bỏ phiếu bị từ chối do có cảnh báo. Nhấp để mở cuộc trò chuyện để giải quyết hoặc quay lại sau.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "Donate"
|
||||
"message": "Ủng hộ"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "Hỗ trợ phát triển cấp quỹ"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "Ẩn link donate"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "Chế độ tối trên trang tùy chọn"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "Cảm ơn bạn đã cài đặt SponsorBlock."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "Xin hãy xem xét các tuỳ chọn bên dưới"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "Nhiều tính năng sẽ bị tắt theo mặc định. Nếu bạn muốn bỏ qua phần intro, sử dụng trên các trang web bên thứ 3 như Invidious, v. v...., bạn có thể bật nó ở bên dưới. Bạn cũng có thể cho hiện/ẩn UI người dùng."
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "Việc bỏ qua 1 đoạn trong video được thực hiện thế nào?"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "Các phân đoạn trong video sẽ tự động bị bỏ qua nếu chúng được tìm thấy trong cơ sở dữ liệu của chúng tôi. Bạn có thể mở cửa sổ xem trước các phân đoạn ấy bằng cách nhấp vào biểu tượng tiện ích mở rộng."
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "Bất cứ khi nào bỏ qua một phân đoạn, bạn sẽ nhận được 1 cửa sổ thông báo bât. Nếu phân đoạn có vẻ sai, hãy bỏ phiếu bằng cách nhấp vào nút downvote! Bạn cũng có thể bỏ phiếu trong cửa sổ bật lên khi nhấn vào biểu tượng tiện ích mở rộng. Và bạn có thể tắt việc hiển thị bảng thông báo này trong phần cài đặt tiện ích."
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "Đang gửi lên"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "Việc gửi một phân đoạn mới có thể được thực hiện trong cửa sổ bật lên bằng cách nhấn vào nút \"Đoạn quảng cáo bắt đầu vào lúc này\" hoặc trong trình phát video bằng các nút trên thanh trình phát."
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "Bạn nhấp 1 lần vào nút \"Đoạn quảng cáo bắt đầu vào lúc này\" để bắt đầu 1 phân đoạn, nhấn 2 lần để đánh dấu kết thúc phân đoạn đó. Bạn có thể chuẩn bị nhiều phân đoạn trước khi nhấn gửi. Nhấp vào nút \"Đăng đoạn quảng cáo\" sẽ gửi. Nhấp vào nút \"Xoá đoạn quảng cáo\" để xóa."
|
||||
},
|
||||
"Editing": {
|
||||
"message": "Chỉnh sửa"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "Nếu bạn muốn chỉnh sửa thời gian phân đoạn hoặc kiểu của phân đoạn, bạn có thể chỉnh sửa hoặc xóa các phân đoạn của mình sau khi nhấp vào nút \"Đăng đoạn quảng cáo\"."
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "Quá chậm"
|
||||
"message": "Nếu như bạn cảm thấy thao tác ở trên quá chậm..."
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "Bạn có thể sử dụng các hotkeys - phím nóng. Nhấn phím dấu chấm phẩy (;) để chỉ ra điểm bắt đầu / kết thúc của phân đoạn nhà tài trợ và nhấp vào dấu nháy đơn (') để gửi. Nếu bạn không sử dụng QWERTY, có lẽ bạn nên thay đổi keybinding bằng cách vào phần cài đặt của tiện ích."
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "Tôi có thể lấy bản sao của database không? Điều gì xảy ra nếu có chuyện tệ (server chết, chủ nhân trang web mất, ...)?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "Database được công khai và luôn có sẵn tại "
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "Mã nguồn mở cũng luôn có sẵn. Vì vậy, ngay cả khi có điều gì đó tệ, các phân đoạn cũng sẽ không biến mất."
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "Tôi có thể cập nhật tin tức ở đâu?"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "Bạn có thể tìm thấy source code ở đâu?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "Lời cảm ơn đến"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "Tìm hiểu thêm"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Hạ bình chọn và tạo một bản sao cục bộ cho bạn gửi lại"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Mở trang wiki của danh mục này để tìm hiểu thêm."
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "Sao chép và hạ bình chọn"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "Tiếp tục bỏ phiếu"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "Điều này sẽ ngay lập tức áp dụng cho phân đoạn của bạn"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "Phản đối"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "Bình chọn"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "Ẩn phân đoạn"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Sử dụng con lăn chuột của bạn khi di chuột qua hộp chỉnh sửa để nhanh chóng điều chỉnh thời gian. Kết hợp phím ctrl hoặc shift có thể được sử dụng để tinh chỉnh các thay đổi."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Mới! Xem khi nào video được tài trợ hoàn toàn hoặc tự quảng bá"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "h",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "Hành vi",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "Giao diện",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "Phím tắt bàn phím",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "Sao lưu/Khôi phục",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "Điều khoản khác",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "Bỏ qua thông báo xuất hiện",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "Gỡ liên kết",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "Chưa thiết lập"
|
||||
},
|
||||
"change": {
|
||||
"message": "Thay đổi"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "Đây là lối tắt YouTube được tích hợp sẵn. Bạn có chắc chắn muốn sử dụng nó không?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "Máy chủ BETA đã được kích hoạt!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Mở trang tùy chọn"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,18 +179,12 @@
|
||||
"hideInfoButton": {
|
||||
"message": "在 Youtube 播放器上隐藏信息按钮"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "此按钮用于在 Youtube 页面中打开弹窗。"
|
||||
},
|
||||
"hideDeleteButton": {
|
||||
"message": "在 Youtube 播放器上隐藏删除按钮"
|
||||
},
|
||||
"showDeleteButton": {
|
||||
"message": "在 Youtube 播放器上显示删除按钮"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "此按钮用于在 Youtube 播放器中清除所有赞助商广告。"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "启用跳过次数统计跟踪"
|
||||
},
|
||||
@@ -235,18 +229,6 @@
|
||||
"message": "如果您依然不喜欢它,请按下不再显示按钮。",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "设置用于跳过片段的按键"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "设定提交的绑定按键"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "点击您想选择的按键"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "绑定按键已被设定为: "
|
||||
},
|
||||
"0": {
|
||||
"message": "连接超时。请检查您的网络连接。如果您的网络运行正常,则可能是服务器过载或宕机。"
|
||||
},
|
||||
@@ -293,9 +275,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "您已跳过 "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "您为自己节省了 "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "分钟"
|
||||
},
|
||||
@@ -309,10 +288,12 @@
|
||||
"message": "小时"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "您为大家节省了"
|
||||
"message": "您为大家节省了",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " 的生命"
|
||||
"message": " 的生命",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "在 status.sponsor.ajay.app 检查服务器状态。"
|
||||
@@ -329,9 +310,6 @@
|
||||
"createdBy": {
|
||||
"message": "创建者"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": "。目前被设定为:"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "支持第三方 YouTube 网站"
|
||||
},
|
||||
@@ -365,9 +343,6 @@
|
||||
"showUploadButton": {
|
||||
"message": "显示上传按钮"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "在您选择了时间并准备提交后,此按钮会出现在 Youtube 播放器中。"
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock 服务器地址"
|
||||
},
|
||||
@@ -437,12 +412,6 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "调试信息已复制到剪切板中。 您可以随意移除任何您不想分享的信息。请将其另存为 .txt 文件或粘贴到错误报告中。"
|
||||
},
|
||||
"theKey": {
|
||||
"message": "按键"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "已绑定其他操作。请选择其他按键。"
|
||||
},
|
||||
"to": {
|
||||
"message": "到",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -510,9 +479,6 @@
|
||||
"disable": {
|
||||
"message": "禁用"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "颜色格式错误。应为以“#”开头的 3 位或 6 位十六进制数字。"
|
||||
},
|
||||
"seekBarColor": {
|
||||
"message": "拖动条颜色"
|
||||
},
|
||||
@@ -575,9 +541,6 @@
|
||||
"downvoteDescription": {
|
||||
"message": "不正确/错误的时间"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "错误的类别"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "此视频的分类为音乐。 您确定其中包含赞助商广告吗?如果这是“非音乐片段”,请打开扩展选项并启用此类别。 之后,您可以以“非音乐”而不是赞助商广告类别提交此片段。如果您不太明白,请阅读指南。"
|
||||
},
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
"reskip": {
|
||||
"message": "繼續跳過"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "解除靜音"
|
||||
},
|
||||
"paused": {
|
||||
"message": "已暫停"
|
||||
},
|
||||
@@ -158,6 +161,12 @@
|
||||
"setUsername": {
|
||||
"message": "設定使用者名稱"
|
||||
},
|
||||
"copyPublicID": {
|
||||
"message": "複製公開使用者ID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "複製片段ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "快加入官方 Discord 伺服器來給予建議和反應!"
|
||||
},
|
||||
@@ -176,15 +185,15 @@
|
||||
"hideButtonsDescription": {
|
||||
"message": "這會隱藏 YouTube 播放器上提交片段的按鈕"
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "在播放器保留跳至精華按鈕"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "在 YouTube 播放器上顯示資訊按鈕"
|
||||
},
|
||||
"hideInfoButton": {
|
||||
"message": "在 YouTube 播放器上隱藏資訊按鈕"
|
||||
},
|
||||
"whatInfoButton": {
|
||||
"message": "這個按鈕可用來在 YouTube 頁面打開彈出視窗"
|
||||
},
|
||||
"autoHideInfoButton": {
|
||||
"message": "自動隱藏資訊按鈕"
|
||||
},
|
||||
@@ -194,9 +203,6 @@
|
||||
"showDeleteButton": {
|
||||
"message": "在 YouTube 播放器上顯示刪除按鈕"
|
||||
},
|
||||
"whatDeleteButton": {
|
||||
"message": "這個按鈕可用來在 YouTube 播放器清除所有未提交的片段"
|
||||
},
|
||||
"enableViewTracking": {
|
||||
"message": "啟用跳過次數追蹤"
|
||||
},
|
||||
@@ -206,6 +212,15 @@
|
||||
"enableViewTrackingInPrivate": {
|
||||
"message": "在私人/無痕分頁啟用跳過次數追蹤"
|
||||
},
|
||||
"enableTrackDownvotes": {
|
||||
"message": "儲存片段倒讚"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "所有你按倒讚的片段在重新整理後仍會保留"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "警告:停用此將刪除所有之前儲存的倒讚"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "使用雜湊前綴查詢"
|
||||
},
|
||||
@@ -224,6 +239,21 @@
|
||||
"showSkipNotice": {
|
||||
"message": "在跳過片段後顯示通知"
|
||||
},
|
||||
"noticeVisibilityMode0": {
|
||||
"message": "完整大小的略過提醒"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "小的自動略過提醒"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "所有小的略過提醒"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "消逝的自動跳過提醒"
|
||||
},
|
||||
"noticeVisibilityMode4": {
|
||||
"message": "所有消逝的略過提醒"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "SponsorBlock 讓您可以跳過贊助工商,開場動畫,結束動畫,訂閱提醒等煩人的 YouTube 影片片段。SponsorBlock 是個大眾外包的網頁瀏覽器擴充功能,能讓任何人提交贊助片段的始與末。當一個人提交這個片段後,所有使用這個擴充功能的人都可以跳過該片段。您也可以跳過在音樂中的非音樂片段",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -245,19 +275,19 @@
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"setSkipShortcut": {
|
||||
"message": "設定跳過段落的快捷鍵"
|
||||
"message": "略過片段",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "設定開始/結束片段快捷鍵"
|
||||
"message": "開始/停止片段",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
"message": "設定提交快捷鍵"
|
||||
"message": "提交片段",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "按下您想選擇的按鍵"
|
||||
},
|
||||
"keybindDescriptionComplete": {
|
||||
"message": "快捷鍵已設定為: "
|
||||
"message": "按下按鍵以選擇並選擇想要使用的修飾鍵"
|
||||
},
|
||||
"0": {
|
||||
"message": "連線超時。請檢查您的網路連線。若您的網路運作正常,則可能是伺服器超載或離線"
|
||||
@@ -281,9 +311,35 @@
|
||||
"skip": {
|
||||
"message": "略過"
|
||||
},
|
||||
"mute": {
|
||||
"message": "靜音"
|
||||
},
|
||||
"full": {
|
||||
"message": "整部影片",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "跳過 {0}?"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "要靜音 {0} 嗎?"
|
||||
},
|
||||
"skip_to_category": {
|
||||
"message": "跳到 {0}?",
|
||||
"description": "Used for skipping to things (Skip to Highlight)"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} 已略過",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} 已靜音",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"skipped_to_category": {
|
||||
"message": "已跳到 {0}",
|
||||
"description": "Used for skipping to things (Skipped to Highlight)"
|
||||
},
|
||||
"disableAutoSkip": {
|
||||
"message": "停用自動跳過"
|
||||
},
|
||||
@@ -305,9 +361,6 @@
|
||||
"youHaveSkipped": {
|
||||
"message": "您已跳過 "
|
||||
},
|
||||
"youHaveSaved": {
|
||||
"message": "您為自己節省了 "
|
||||
},
|
||||
"minLower": {
|
||||
"message": "分鐘"
|
||||
},
|
||||
@@ -321,10 +374,12 @@
|
||||
"message": "小時"
|
||||
},
|
||||
"youHaveSavedTime": {
|
||||
"message": "您已為大家節省"
|
||||
"message": "您已為大家節省",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"youHaveSavedTimeEnd": {
|
||||
"message": " 的生命。"
|
||||
"message": " 的生命。",
|
||||
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
|
||||
},
|
||||
"statusReminder": {
|
||||
"message": "在 status.sponsor.ajay.app 檢查伺服器狀態"
|
||||
@@ -332,6 +387,9 @@
|
||||
"changeUserID": {
|
||||
"message": "匯入/匯出您的使用者 ID"
|
||||
},
|
||||
"whatChangeUserID": {
|
||||
"message": "密鑰應被保密。它就像是密碼,不應與他人分享。若密鑰落入他人手中,他人將可以冒充你。若你在尋找你的公開使用者ID,點擊彈出視窗上的剪貼簿圖示"
|
||||
},
|
||||
"setUserID": {
|
||||
"message": "設定使用者 ID"
|
||||
},
|
||||
@@ -339,10 +397,7 @@
|
||||
"message": "警告:更改用戶 ID 是永久性的。您確定要這麼做嗎?請務必備份您的舊用戶 ID 來以防萬一。"
|
||||
},
|
||||
"createdBy": {
|
||||
"message": "創建者"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": "。它目前被設定為:"
|
||||
"message": "作者"
|
||||
},
|
||||
"supportOtherSites": {
|
||||
"message": "支援第三方的 YouTube 網站"
|
||||
@@ -360,6 +415,9 @@
|
||||
"addInvidiousInstance": {
|
||||
"message": "新增第三方的客戶端實例"
|
||||
},
|
||||
"addInvidiousInstanceDescription": {
|
||||
"message": "添加一個自定進程。它必須只有域名。例如:invidious.ajay.app"
|
||||
},
|
||||
"add": {
|
||||
"message": "新增"
|
||||
},
|
||||
@@ -390,12 +448,12 @@
|
||||
"shortCheck": {
|
||||
"message": "以下的提交小於您的最小時間設定。這表是它們可能已經被提交,只是被該設定忽略了。您確定要提交嗎?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "在進行中的直播或首播提交片段是不被允許的。請等到該直播完成後,重新整理頁面再重新確認片段並提交。"
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "顯示上傳按鈕"
|
||||
},
|
||||
"whatUploadButton": {
|
||||
"message": "在您選擇了時間範圍並準備提交後,此按鈕會出現在 YouTube 播放器中。"
|
||||
},
|
||||
"customServerAddress": {
|
||||
"message": "SponsorBlock 伺服器地址"
|
||||
},
|
||||
@@ -420,6 +478,15 @@
|
||||
"exportOptions": {
|
||||
"message": "匯入/匯出所有設定"
|
||||
},
|
||||
"exportOptionsCopy": {
|
||||
"message": "編輯/複製"
|
||||
},
|
||||
"exportOptionsDownload": {
|
||||
"message": "儲存到檔案"
|
||||
},
|
||||
"exportOptionsUpload": {
|
||||
"message": "從檔案載入"
|
||||
},
|
||||
"whatExportOptions": {
|
||||
"message": "這是您全部設定的 JSON 格式。它包含了您的用戶 ID ,所以您一定要謹慎的保管它。"
|
||||
},
|
||||
@@ -468,11 +535,8 @@
|
||||
"copyDebugInformationComplete": {
|
||||
"message": "除錯資訊已複製到剪貼板中。您可以任意移除任何您不想分享的資訊。請將其另存為文字文件或貼到錯誤報告中。"
|
||||
},
|
||||
"theKey": {
|
||||
"message": "按鍵"
|
||||
},
|
||||
"keyAlreadyUsed": {
|
||||
"message": "已經綁定其它動作。請選擇其他按鍵"
|
||||
"message": "這個快捷鍵已被綁定到另一個動作,請另擇快捷鍵。"
|
||||
},
|
||||
"to": {
|
||||
"message": "到",
|
||||
@@ -490,6 +554,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "類似 “贊助商廣告” ,但是非付費或自我推廣。這包括有關商品、捐贈或與他人合作的信息。"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "獨家限定"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "只限於標記整部影片,用於影片在獲得特殊或免費存取後,展示產品、服務或位置時使用。"
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "此影片展示了獲得特殊或免費存取的產品、服務或位置",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "互動提醒 (訂閱)"
|
||||
},
|
||||
@@ -520,6 +594,15 @@
|
||||
"category_preview_description": {
|
||||
"message": "係指影片的前情提要或內容預告等刻意編輯過的內容"
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "離題閒聊/玩笑"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "與影片主要內容無關的填充詞或笑話,但不應包含與前後或背景有關者"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "填充詞"
|
||||
},
|
||||
"category_music_offtopic": {
|
||||
"message": "音樂:非音樂部分"
|
||||
},
|
||||
@@ -529,6 +612,12 @@
|
||||
"category_music_offtopic_short": {
|
||||
"message": "非音樂"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "重點"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "大部分的人在影片尋找的部分。類似「影片在幾分幾秒開始」的留言"
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "直播:捐贈/訊息閱讀"
|
||||
},
|
||||
@@ -547,11 +636,27 @@
|
||||
"disable": {
|
||||
"message": "停用"
|
||||
},
|
||||
"autoSkip_POI": {
|
||||
"message": "自動略過至開頭"
|
||||
},
|
||||
"manualSkip_POI": {
|
||||
"message": "在影片載入時詢問"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "在時間條顯示"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "顯示標籤"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "自動跳過非音樂片段(如果有的話)"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "您設定的顏色無效。它應該是三或六位數的 hex 碼,且以井字號開頭。"
|
||||
"muteSegments": {
|
||||
"message": "允許靜音式片段"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "在整個影片都是廣告時顯示圖示",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"previewColor": {
|
||||
"message": "未提交的顏色",
|
||||
@@ -589,6 +694,9 @@
|
||||
"message": "若想要提交{0} 類的分段,您必須要在選項內將其啟用。您現在將被重新導向至選項頁面。",
|
||||
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
|
||||
},
|
||||
"poiOnlyOneSegment": {
|
||||
"message": "注意:這種片段同時只能有一個啟用,提交多個片段將顯示隨機一個"
|
||||
},
|
||||
"youMustSelectACategory": {
|
||||
"message": "您必須為所有您要提交的片段選擇類別!"
|
||||
},
|
||||
@@ -601,6 +709,9 @@
|
||||
"hiddenDueToDuration": {
|
||||
"message": "隱藏:太短"
|
||||
},
|
||||
"manuallyHidden": {
|
||||
"message": "手動隱藏"
|
||||
},
|
||||
"channelDataNotFound": {
|
||||
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
|
||||
"message": "未偵測到頻道ID,如果您正在使用嵌入式YouTube播放器,請移至YouTube網站上觀看本影片。此問題亦有可能是由於YouTube改變了系統架構,如果你認為這是造成此問題的原因,請留言告訴我們:"
|
||||
@@ -636,7 +747,7 @@
|
||||
"message": "不正確/錯誤的時間"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "錯誤的類別"
|
||||
"message": "變更類別"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "這個影片被分類為音樂。您確定這有贊助內容嗎?如果這其實是\"非音樂片段\"的話,開啟擴充功能設定並啟用這個類別。接下來您即可提交這個片段為\"非音樂片段\"。如果您感到困惑,請閱讀方針"
|
||||
@@ -660,11 +771,181 @@
|
||||
"help": {
|
||||
"message": "說明"
|
||||
},
|
||||
"GotIt": {
|
||||
"message": "知道了",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "這個片段有點長,如果整部影片都跟一個主題有關,請將「跳過」改為「整部影片」。請參照方針以獲得更多資訊"
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "這整部影片都被標示為此類別且過於相關而不可分開"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "關閉所有未來的實驗性功能",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "永久隱藏"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "你被記了警告所以暫時不能提交片段。這意味著我們注意到你在犯下常見的但不是可疑的錯誤,請確認你真的瞭解方針之內容後我們就會移除警告。你也可以加入 discord.gg/SponsorBlock 或 matrix.to/#/#sponsor:ajay.app"
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "投票因警告而被駁回。點擊以打開聊天室並解決之",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "贊助"
|
||||
},
|
||||
"considerDonating": {
|
||||
"message": "資助開發"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "隱藏贊助選項"
|
||||
},
|
||||
"darkModeOptionsPage": {
|
||||
"message": "選項頁面深色模式"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "感謝你安裝 SponsorBlock。"
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "請確認以下選項"
|
||||
},
|
||||
"helpPageFeatureDisclaimer": {
|
||||
"message": "許多功能預設為停用,若欲跳過開頭、結尾或使用Invidious等,在下方啟用它們。你也可以隱藏/顯示介面內容"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "略過如何運作"
|
||||
},
|
||||
"helpPageHowSkippingWorks1": {
|
||||
"message": "影片片段如果出現於資料庫將自動被略過,你可以點擊擴充功能圖示以打開浮窗以便預覽"
|
||||
},
|
||||
"helpPageHowSkippingWorks2": {
|
||||
"message": "當你略過片段時,你會被提醒。若你認為跳過時間有誤,請按下倒讚以反對之。你也可以用浮窗投票。"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "正在提交"
|
||||
},
|
||||
"helpPageSubmitting1": {
|
||||
"message": "提交可以透過在浮窗內點擊「片段由此開始」按鈕或在影片播放器中的按鈕執行"
|
||||
},
|
||||
"helpPageSubmitting2": {
|
||||
"message": "點擊播放按鈕表示片段的開始,停止按鈕表示結束。你可以在提交前設定多個片段。點擊上傳按鈕將會提交片段,點擊垃圾桶按鈕將會刪除片段"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "編輯中"
|
||||
},
|
||||
"helpPageEditing1": {
|
||||
"message": "若你失誤了,你可以按下箭頭向上按鍵以編輯或刪除你的片段"
|
||||
},
|
||||
"helpPageTooSlow": {
|
||||
"message": "這太慢了"
|
||||
},
|
||||
"helpPageTooSlow1": {
|
||||
"message": "快捷鍵是被支援的,按下分號以標示片段的開始或結束,並按下逗號以提交。你可以在選項裡更改快捷鍵設定。若你不是用QWERTY鍵盤的話,你應該更改設定。"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "我可以下載資料庫嗎?作者消失怎麼辦?"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "資料庫是公開的且可以在這取用:"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "原始碼是公開的,若作者發生狀況,你的提交將不會化為烏有"
|
||||
},
|
||||
"helpPageNews": {
|
||||
"message": "消息和製作過程"
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "我在哪裡可以找到原始碼?"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "致謝"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "了解更多"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "按倒讚和建立本機副本以便你重新提交"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "打開此類別之維基頁面"
|
||||
},
|
||||
"CopyAndDownvote": {
|
||||
"message": "複製並按倒讚"
|
||||
},
|
||||
"ContinueVoting": {
|
||||
"message": "繼續投票"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "這將會立即套用至你的片段"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "按倒讚"
|
||||
},
|
||||
"upvote": {
|
||||
"message": "按讚"
|
||||
},
|
||||
"hideSegment": {
|
||||
"message": "隱藏片段"
|
||||
},
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "在滑鼠鼠標放在編輯框上時使用滾輪以快速調製時間。Ctrl和Shift可以用於精密調整"
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "新功能》知道整部影片是不是贊助或自我推廣"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "天",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "小時",
|
||||
"description": "100h"
|
||||
},
|
||||
"optionsTabBehavior": {
|
||||
"message": "行為",
|
||||
"description": "Appears in Options as a tab header for options related to categories and skipping behavior. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabInterface": {
|
||||
"message": "介面",
|
||||
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabKeyBinds": {
|
||||
"message": "鍵盤快捷鍵",
|
||||
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabBackup": {
|
||||
"message": "備份/還原",
|
||||
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"optionsTabAdvanced": {
|
||||
"message": "其他",
|
||||
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
|
||||
},
|
||||
"noticeVisibilityLabel": {
|
||||
"message": "略過通知外觀",
|
||||
"description": "Option label"
|
||||
},
|
||||
"unbind": {
|
||||
"message": "取消綁定",
|
||||
"description": "Unbind keyboard shortcut"
|
||||
},
|
||||
"notSet": {
|
||||
"message": "未設定"
|
||||
},
|
||||
"change": {
|
||||
"message": "更改"
|
||||
},
|
||||
"youtubeKeybindWarning": {
|
||||
"message": "這是YouTube內建捷徑,你真的要取代它嗎?"
|
||||
},
|
||||
"betaServerWarning": {
|
||||
"message": "測試版伺服器已啟用!"
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "打開選項頁面"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#previewbar {
|
||||
overflow: visible;
|
||||
padding: 0;
|
||||
@@ -5,7 +9,7 @@
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
pointer-events: none;
|
||||
|
||||
|
||||
height: 100%;
|
||||
transform: scaleY(0.6) translateY(-30%) translateY(1.5px);
|
||||
z-index: 40;
|
||||
@@ -13,6 +17,10 @@
|
||||
transition: transform .1s cubic-bezier(0,0,0.2,1);
|
||||
}
|
||||
|
||||
.ytm-progress-bar > #previewbar {
|
||||
height: 3px;
|
||||
}
|
||||
|
||||
#previewbar.hovered {
|
||||
transform: scaleY(1)
|
||||
}
|
||||
@@ -22,6 +30,11 @@
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* Make sure settings are upfront */
|
||||
.ytp-settings-menu {
|
||||
z-index: 6000 !important;
|
||||
}
|
||||
|
||||
/* Preview Bar page hacks */
|
||||
|
||||
.ytp-tooltip:not(.sponsorCategoryTooltipVisible) .sponsorCategoryTooltip {
|
||||
@@ -75,25 +88,31 @@
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#infoButton.playerButton:not(.hidden) {
|
||||
.autoHiding {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.autoHiding:not(.hidden) {
|
||||
transform: translateX(0%) scale(1);
|
||||
/* opacity is from YouTube page */
|
||||
transition: transform 0.2s, opacity .1s cubic-bezier(0.4,0.0,1,1) !important;
|
||||
transition: transform 0.2s, width 0.2s, opacity .1s cubic-bezier(0.4,0.0,1,1) !important;
|
||||
}
|
||||
|
||||
#infoButton.playerButton.hidden {
|
||||
.autoHiding.hidden {
|
||||
transform: translateX(100%) scale(0);
|
||||
/* opacity is from YouTube page */
|
||||
transition: transform 0.2s, opacity .1s cubic-bezier(0.4,0.0,1,1) !important;
|
||||
transition: transform 0.2s, width 0.2s, opacity .1s cubic-bezier(0.4,0.0,1,1) !important;
|
||||
|
||||
width: 0px !important;
|
||||
}
|
||||
|
||||
.playerButton.hidden {
|
||||
display: none;
|
||||
.autoHiding.hidden.autoHideLeft {
|
||||
transform: translateX(-100%) scale(0);
|
||||
}
|
||||
|
||||
.sponsorSkipObject {
|
||||
font-family: Roboto, Arial, Helvetica, sans-serif;
|
||||
|
||||
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
@@ -137,9 +156,6 @@
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeParent, .sponsorSkipNotice {
|
||||
min-width: 350px;
|
||||
max-width: 50%;
|
||||
|
||||
border-spacing: 5px 10px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
@@ -147,6 +163,15 @@
|
||||
border-collapse: unset;
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeParent {
|
||||
min-width: 350px;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.sponsorSkipNotice {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeTableContainer {
|
||||
background-color: rgba(28, 28, 28, 0.9);
|
||||
border-radius: 5px;
|
||||
@@ -158,7 +183,7 @@
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeLimitWidth {
|
||||
min-width: calc(100% - 50px);
|
||||
max-width: calc(100% - 50px);
|
||||
}
|
||||
|
||||
.sponsorSkipNotice .hidden {
|
||||
@@ -207,7 +232,7 @@
|
||||
|
||||
/* if two are very close to eachother */
|
||||
.secondSkipNotice {
|
||||
bottom: 250px;
|
||||
bottom: 290px;
|
||||
}
|
||||
|
||||
.noticeLeftIcon {
|
||||
@@ -238,18 +263,22 @@
|
||||
.sponsorSkipNoticeButton:hover {
|
||||
background-color: rgba(235, 235, 235,0.2);
|
||||
border-radius: 4px;
|
||||
|
||||
|
||||
transition: background-color 0.4s;
|
||||
}
|
||||
|
||||
.sponsorTimesVoteButtonsContainer {
|
||||
float: left;
|
||||
|
||||
vertical-align:middle;
|
||||
padding: 2px 5px;
|
||||
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.sponsorTimesVoteButtonsContainer div{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeRightSection {
|
||||
right: 0;
|
||||
position: absolute;
|
||||
@@ -269,21 +298,26 @@
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
box-sizing: unset;
|
||||
|
||||
|
||||
padding: 2px 5px;
|
||||
|
||||
margin-left: 2px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeCloseButton.biggerCloseButton {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.sponsorSkipMessage {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
color: rgb(235, 235, 235);
|
||||
|
||||
|
||||
margin-top: auto;
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
margin-bottom: auto;
|
||||
}
|
||||
|
||||
.sponsorSkipInfo {
|
||||
@@ -319,12 +353,24 @@
|
||||
color: rgb(235, 235, 235);
|
||||
}
|
||||
|
||||
.voteButton {
|
||||
height: 17px;
|
||||
cursor: pointer;
|
||||
.sb-guidelines-notice .sponsorTimesInfoMessage td {
|
||||
padding-left: 5px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
font-size: 15px;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.voteButton:hover {
|
||||
filter: brightness(80%);
|
||||
|
||||
.sponsorTimesInfoIcon {
|
||||
width: 30px;
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.segmentSummary {
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
.submitButton {
|
||||
@@ -340,7 +386,7 @@
|
||||
padding:4px 15px;
|
||||
text-decoration:none;
|
||||
text-shadow:0px 0px 0px #662727;
|
||||
|
||||
|
||||
margin-top: 5px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
@@ -376,7 +422,7 @@
|
||||
padding:4px 15px;
|
||||
text-decoration:none;
|
||||
text-shadow:0px 0px 0px #662727;
|
||||
|
||||
|
||||
margin-top: 5px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
@@ -438,7 +484,7 @@
|
||||
margin-right: 20px;
|
||||
|
||||
font-size: 13px;
|
||||
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -487,14 +533,14 @@ input::-webkit-inner-spin-button {
|
||||
height: 25px;
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
|
||||
|
||||
margin: auto;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
}
|
||||
.helpButton:hover {
|
||||
filter: brightness(80%);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.sbChatNotice iframe {
|
||||
@@ -511,12 +557,35 @@ input::-webkit-inner-spin-button {
|
||||
.skipButtonControlBarContainer {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.skipButtonControlBarContainer.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.skipButtonControlBarContainer.mobile {
|
||||
bottom: 30%;
|
||||
margin-left: 5px;
|
||||
position: absolute;
|
||||
height: 20px;
|
||||
|
||||
background-color: #00000030;
|
||||
opacity: 0.5;
|
||||
border-radius: 10px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.skipButtonControlBarContainer.mobile.textDisabled {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.skipButtonControlBarContainer.mobile > div {
|
||||
margin: auto;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#sbSkipIconControlBarImage {
|
||||
height: 60%;
|
||||
top: 0px;
|
||||
@@ -525,6 +594,11 @@ input::-webkit-inner-spin-button {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.mobile #sbSkipIconControlBarImage {
|
||||
height: 100%;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
.sponsorBlockTooltip {
|
||||
position: absolute;
|
||||
background-color: rgba(28, 28, 28, 0.7);
|
||||
@@ -533,9 +607,16 @@ input::-webkit-inner-spin-button {
|
||||
max-width: 300px;
|
||||
white-space: normal;
|
||||
line-height: 1.5em;
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.sponsorBlockTooltip::after {
|
||||
.sponsorBlockTooltip a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.sponsorBlockTooltip.sbTriangle::after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
@@ -544,4 +625,56 @@ input::-webkit-inner-spin-button {
|
||||
border-width: 15px;
|
||||
border-style: solid;
|
||||
border-color: rgba(28, 28, 28, 0.7) transparent transparent transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.sponsorBlockLockedColor {
|
||||
color: #ffc83d;
|
||||
}
|
||||
|
||||
.sponsorBlockRectangleTooltip {
|
||||
position: absolute;
|
||||
border-radius: 5px;
|
||||
padding: 10px;
|
||||
min-width: 250px;
|
||||
min-height: 75px;
|
||||
white-space: normal;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.sponsorBlockCategoryPill {
|
||||
border-radius: 25px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
margin-right: 3px;
|
||||
cursor: pointer;
|
||||
font-size: 75%;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
inline-size: max-content;
|
||||
}
|
||||
|
||||
.sponsorBlockCategoryPillTitleSection {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.categoryPillClose {
|
||||
display: none;
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
box-sizing: unset;
|
||||
|
||||
margin: 0px 0px 0px 5px;
|
||||
}
|
||||
|
||||
.sponsorBlockCategoryPill:hover .categoryPillClose {
|
||||
display: inherit;
|
||||
}
|
||||
|
||||
/* tweak for mobile duration */
|
||||
#sponsorBlockDurationAfterSkips.ytm-time-display {
|
||||
padding-left: 4px;
|
||||
margin: 0px;
|
||||
color: #fff;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
<head>
|
||||
<title> SponsorBlock </title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" href="../icons/IconSponsorBlocker32px.png" type="image/png">
|
||||
|
||||
<link href="styles.css" rel="stylesheet"/>
|
||||
|
||||
@@ -39,7 +41,7 @@
|
||||
__MSG_helpPageFeatureDisclaimer__
|
||||
</p>
|
||||
|
||||
<iframe src="../options/options.html#embed" width="100%" height="500px" style="border: none"></iframe>
|
||||
<iframe class="optionsFrame" src="../options/options.html#embed" style="border: none"></iframe>
|
||||
|
||||
<h1>__MSG_helpPageHowSkippingWorks__</h1>
|
||||
|
||||
@@ -56,14 +58,12 @@
|
||||
__MSG_helpPageHowSkippingWorks2__
|
||||
</p>
|
||||
|
||||
<div class="center"><img height="120px" src="images/voting on notice.gif"></div>
|
||||
<div class="center"><img src="images/voting on notice.gif"></div>
|
||||
|
||||
<h1>__MSG_Submitting__</h1>
|
||||
|
||||
<p class="projectPreview">
|
||||
<span class="projectPreviewImageLargeRight">
|
||||
<img src="https://i.imgur.com/A1ilk6x.gif">
|
||||
</span>
|
||||
<img class="projectPreviewImageLarge" src="https://i.imgur.com/A1ilk6x.gif">
|
||||
|
||||
__MSG_helpPageSubmitting1__
|
||||
|
||||
|
||||
@@ -1,5 +1,31 @@
|
||||
:root {
|
||||
--color-scheme: dark;
|
||||
--background: #333333;
|
||||
--header-color: #212121;
|
||||
--dialog-background: #181818;
|
||||
--dialog-border: white;
|
||||
--text: #c4c4c4;
|
||||
--title: #dad8d8;
|
||||
--disabled: #520000;
|
||||
--black: black;
|
||||
--white: white;
|
||||
}
|
||||
|
||||
[data-theme="light"] {
|
||||
--color-scheme: light;
|
||||
--background: #f9f9f9;
|
||||
--header-color: white;
|
||||
--dialog-background: #f9f9f9;
|
||||
--dialog-border: #282828;
|
||||
--text: #262626;
|
||||
--title: #707070;
|
||||
--disabled: #ffcaca;
|
||||
--black: white;
|
||||
--white: black;
|
||||
}
|
||||
|
||||
html {
|
||||
color-scheme: dark;
|
||||
color-scheme: var(--color-scheme);
|
||||
}
|
||||
|
||||
.bigText {
|
||||
@@ -7,7 +33,7 @@ html {
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #333333;
|
||||
background-color: var(--background);
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
@@ -15,6 +41,10 @@ body {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.inline {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 60%;
|
||||
margin: auto;
|
||||
@@ -40,14 +70,6 @@ body {
|
||||
transform: translateY(-20%);
|
||||
}
|
||||
|
||||
.projectPreviewImageLargeRight {
|
||||
position: absolute;
|
||||
right: -210px;
|
||||
width: 200px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.createdBy {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
@@ -62,12 +84,14 @@ body {
|
||||
vertical-align: middle;
|
||||
|
||||
font-size: 50px;
|
||||
color: #212121;
|
||||
color: var(--header-color);
|
||||
|
||||
padding: 20px;
|
||||
|
||||
text-decoration: none;
|
||||
|
||||
border-radius: 15px;
|
||||
|
||||
transition: font-size 1s;
|
||||
}
|
||||
|
||||
@@ -133,8 +157,8 @@ p,li {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p,li,a {
|
||||
color: #c4c4c4;
|
||||
p,li,a,span,div {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
p,li,code,a {
|
||||
@@ -142,18 +166,9 @@ p,li,code,a {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
@media screen and (orientation:portrait) {
|
||||
p,li,code,a {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.projectPreviewImage {
|
||||
position: unset;
|
||||
width: 130px;
|
||||
display: block;
|
||||
margin: auto;
|
||||
transform: none;
|
||||
}
|
||||
.optionsFrame {
|
||||
width: 100%;
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
.previewImage {
|
||||
@@ -177,7 +192,7 @@ img {
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #dad8d8;
|
||||
color: var(--title);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -187,4 +202,124 @@ svg {
|
||||
|
||||
#sbDonate {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
@media screen and (orientation:portrait) {
|
||||
.projectPreviewImage {
|
||||
position: unset;
|
||||
width: 50%;
|
||||
display: block;
|
||||
margin: auto;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.projectPreviewImageLarge {
|
||||
position: unset;
|
||||
left: 0;
|
||||
width: 50%;
|
||||
display: block;
|
||||
margin: auto;
|
||||
transform: unset;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 100%;
|
||||
margin: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p,li,code,a {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
/* keybind dialog */
|
||||
.key {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
display: inline-block;
|
||||
min-width: 33px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
border-color: var(--white);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.unbound, .key {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#keybind-dialog .dialog {
|
||||
position: fixed;
|
||||
border-width: 3px;
|
||||
border-style: solid;
|
||||
border-radius: 15px;
|
||||
max-height: 100vh;
|
||||
width: 400px;
|
||||
overflow-x: auto;
|
||||
z-index: 100;
|
||||
padding: 15px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 14px;
|
||||
background-color: var(--dialog-background);
|
||||
border-color: var(--dialog-border);
|
||||
}
|
||||
|
||||
#change-keybind-buttons {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#change-keybind-buttons > .option-button {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#change-keybind-settings {
|
||||
margin: 15px 15px 30px;
|
||||
}
|
||||
|
||||
#change-keybind-settings .key {
|
||||
vertical-align: top;
|
||||
margin: 15px 0 0 40px;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
#change-keybind-error {
|
||||
margin-bottom: 15px;
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.blocker {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: 90;
|
||||
background-color: #00000080;
|
||||
}
|
||||
|
||||
.option-button {
|
||||
cursor: pointer;
|
||||
|
||||
background-color: #c00000;
|
||||
padding: 10px;
|
||||
color: white;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
|
||||
width: max-content;
|
||||
}
|
||||
|
||||
.option-button:hover:not(.disabled) {
|
||||
background-color: #fc0303;
|
||||
}
|
||||
|
||||
.option-button.disabled {
|
||||
cursor: default;
|
||||
background-color: var(--disabled);
|
||||
color: grey;
|
||||
}
|
||||
37
public/icons/bolt.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="bolt.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M19.95 42 22 27.9H14.7Q14.15 27.9 13.9 27.4Q13.65 26.9 13.9 26.45L26.15 6H28.2L26.15 20.05H33.35Q33.9 20.05 34.175 20.55Q34.45 21.05 34.2 21.5L22 42Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
37
public/icons/campaign.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="campaign.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M36.5 25.5V22.5H44V25.5ZM39 40 32.95 35.5 34.75 33.1 40.8 37.6ZM34.9 14.85 33.1 12.45 39 8 40.8 10.4ZM10.5 38V30H7Q5.75 30 4.875 29.125Q4 28.25 4 27V21Q4 19.75 4.875 18.875Q5.75 18 7 18H16L26 12V36L16 30H13.5V38ZM28 30.7V17.3Q29.35 18.5 30.175 20.225Q31 21.95 31 24Q31 26.05 30.175 27.775Q29.35 29.5 28 30.7Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
38
public/icons/check-smaller.svg
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="check-smaller.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="26.25"
|
||||
inkscape:cx="12.038095"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
fill="#ffffff"
|
||||
d="M 17.69347,4.9833775 9.9421192,12.940517 6.3065298,9.5107153 3.7684768,12.048769 9.9421192,18.016623 20.231523,7.5214304 Z"
|
||||
id="path2"
|
||||
style="stroke-width:0.68596" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
37
public/icons/close-smaller.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="close-smaller.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="731"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M12.45 37.65 10.35 35.55 21.9 24 10.35 12.45 12.45 10.35 24 21.9 35.55 10.35 37.65 12.45 26.1 24 37.65 35.55 35.55 37.65 24 26.1Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
43
public/icons/heart.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="24px"
|
||||
viewBox="0 0 24 24"
|
||||
width="24px"
|
||||
fill="#000000"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="heart.svg"
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs10" />
|
||||
<sodipodi:namedview
|
||||
id="namedview8"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="32.916667"
|
||||
inkscape:cx="11.98481"
|
||||
inkscape:cy="12.01519"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="731"
|
||||
inkscape:window-x="1366"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M0 0h24v24H0V0z"
|
||||
fill="none"
|
||||
id="path2" />
|
||||
<path
|
||||
d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"
|
||||
id="path4"
|
||||
style="fill:#800000" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
37
public/icons/lightbulb.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="lightbulb.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M24 44Q22.3 44 21.125 42.825Q19.95 41.65 19.95 39.95H28.05Q28.05 41.65 26.875 42.825Q25.7 44 24 44ZM15.9 36.85V33.85H32.1V36.85ZM16.15 30.8Q12.85 28.65 10.925 25.425Q9 22.2 9 18.15Q9 12.05 13.45 7.6Q17.9 3.15 24 3.15Q30.1 3.15 34.55 7.6Q39 12.05 39 18.15Q39 22.2 37.1 25.425Q35.2 28.65 31.85 30.8Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
37
public/icons/money.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="money.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="6.5625"
|
||||
inkscape:cx="37.942857"
|
||||
inkscape:cy="29.714286"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="731"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 22.070204,47.757552 V 42.214123 Q 18.308592,41.554191 15.89984,39.343419 13.491088,37.132647 12.435197,33.766994 l 3.695619,-1.517844 q 1.121884,3.167674 3.233667,4.718514 2.111782,1.55084 5.081476,1.55084 3.167674,0 5.213463,-1.583837 2.045789,-1.583837 2.045789,-4.355551 0,-2.903701 -1.814813,-4.487538 -1.814813,-1.583836 -6.830296,-3.233666 -4.75151,-1.517844 -7.094269,-4.025586 -2.342759,-2.507741 -2.342759,-6.269354 0,-3.629626 2.342759,-6.0713741 2.342759,-2.4417484 6.104371,-2.7717144 V 0.24244792 h 3.959592 V 5.7198835 q 2.969694,0.329966 5.114473,1.9467994 2.144779,1.6168335 3.266663,4.1245751 l -3.695619,1.583837 q -0.923905,-2.111783 -2.474745,-3.068684 -1.55084,-0.9569014 -4.058582,-0.9569014 -3.035687,0 -4.817503,1.3858574 -1.781817,1.385857 -1.781817,3.761612 0,2.507742 1.979796,4.058582 1.979796,1.55084 7.325246,3.20067 4.487537,1.385857 6.632316,3.992589 2.144779,2.606731 2.144779,6.566323 0,4.157572 -2.441748,6.69831 -2.441749,2.540738 -7.193259,3.266663 v 5.477436 z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;stroke-width:1.31986" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
37
public/icons/music-note.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="music-note.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M19.65 42Q16.5 42 14.325 39.825Q12.15 37.65 12.15 34.5Q12.15 31.35 14.325 29.175Q16.5 27 19.65 27Q21.05 27 22.175 27.4Q23.3 27.8 24.15 28.5V6H35.85V12.75H27.15V34.5Q27.15 37.65 24.975 39.825Q22.8 42 19.65 42Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
39
public/icons/not_visible.svg
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="24px"
|
||||
viewBox="0 0 24 24"
|
||||
width="24px"
|
||||
fill="#000000"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="not_visible.svg"
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs10" />
|
||||
<sodipodi:namedview
|
||||
id="namedview8"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="16.458334"
|
||||
inkscape:cx="3.8582278"
|
||||
inkscape:cy="9.1443037"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="426"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"
|
||||
id="path4"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
37
public/icons/right-arrow.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="right-arrow.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24.07619"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 17.039265,39.62264 14.838095,37.382164 28.320259,23.9 14.838095,10.417836 17.039265,8.1773601 32.761905,23.9 Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;stroke-width:0.786132" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/icons/segway.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
37
public/icons/star.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="star.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M11.65 44 16.3 28.8 4 20H19.2L24 4L28.8 20H44L31.7 28.8L36.35 44L24 34.6Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
37
public/icons/stopwatch.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="stopwatch.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.125"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M14.45 34Q16.3 35.95 18.8 36.975Q21.3 38 24 38Q29.85 38 33.925 33.925Q38 29.85 38 24Q38 18.15 33.925 14.075Q29.85 10 24 10V24ZM24 44Q19.75 44 16.1 42.475Q12.45 40.95 9.75 38.25Q7.05 35.55 5.525 31.9Q4 28.25 4 24Q4 19.8 5.525 16.15Q7.05 12.5 9.75 9.8Q12.45 7.1 16.1 5.55Q19.75 4 24 4Q28.2 4 31.85 5.55Q35.5 7.1 38.2 9.8Q40.9 12.5 42.45 16.15Q44 19.8 44 24Q44 28.25 42.45 31.9Q40.9 35.55 38.2 38.25Q35.5 40.95 31.85 42.475Q28.2 44 24 44Z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
58
public/icons/thumbs_down_locked.svg
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="thumbs_down.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="730"
|
||||
inkscape:window-height="480"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.8333333"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path2" />
|
||||
<path
|
||||
d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z"
|
||||
id="path4"
|
||||
style="fill:#ffc83d" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
1
public/icons/visible.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
|
||||
|
After Width: | Height: | Size: 366 B |
@@ -1,10 +1,232 @@
|
||||
/* Options page CSS */
|
||||
html {
|
||||
color-scheme: dark;
|
||||
|
||||
:root {
|
||||
--color-scheme: dark;
|
||||
--background: #333333;
|
||||
--menu-background: #181818;
|
||||
--menu-foreground: white;
|
||||
--dialog-background: #181818;
|
||||
--dialog-border: white;
|
||||
--tab-color: #242424;
|
||||
--tab-button-hover: #4d0000;
|
||||
--tab-hover: white;
|
||||
--description: #dfdfdf;
|
||||
--disabled: #520000;
|
||||
--slider: #707070;
|
||||
--title: #dad8d8;
|
||||
--border-color: #484848;
|
||||
--black: black;
|
||||
--white: white;
|
||||
}
|
||||
|
||||
body {
|
||||
[data-theme="light"] {
|
||||
--color-scheme: light;
|
||||
--background: #f9f9f9;
|
||||
--menu-background: #dbdbdb;
|
||||
--menu-foreground: #212121;
|
||||
--dialog-background: #f9f9f9;
|
||||
--dialog-border: #282828;
|
||||
--tab-color: #ababab;
|
||||
--tab-button-hover: #750000;
|
||||
--tab-hover: #2e2e2e;
|
||||
--description: #262626;
|
||||
--disabled: #ffcaca;
|
||||
--slider: #bfbebe;
|
||||
--title: #707070;
|
||||
--border-color: #d9d9d9;
|
||||
--black: white;
|
||||
--white: black;
|
||||
}
|
||||
|
||||
.medium-description, .switch-container, .optionLabel, .categoryTableElement {
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.small-description, p, li, span, div {
|
||||
color: var(--description);
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: var(--title);
|
||||
}
|
||||
|
||||
html, body {
|
||||
color-scheme: var(--color-scheme);
|
||||
font-family: sans-serif;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
background-color: var(--background);
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
#options-container {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#menubar {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
flex-basis: 20%;
|
||||
min-width: 300px;
|
||||
max-width: 600px;
|
||||
border-radius: 15px;
|
||||
margin: 15px;
|
||||
z-index: 10;
|
||||
background-color: var(--menu-background);
|
||||
color: var(--menu-foreground);
|
||||
}
|
||||
|
||||
#navigation {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.tab-heading {
|
||||
font-size: 18px;
|
||||
height: 55px;
|
||||
line-height: 55px;
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
border-radius: 15px;
|
||||
cursor: pointer;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
background-color: var(--tab-color);
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.tab-heading:hover {
|
||||
background-color: var(--tab-button-hover);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.tab-heading.selected {
|
||||
background-color: #c00000;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.tab-heading:active {
|
||||
background-color: #950000;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.option-group > div {
|
||||
min-height: 50px;
|
||||
padding: 20px 0;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
border-image: linear-gradient(to right, var(--border-color), #00000000 80%) 1;
|
||||
}
|
||||
|
||||
.option-group > div:last-child, .option-group > #keybind-dialog {
|
||||
border-bottom: inherit;
|
||||
}
|
||||
|
||||
.optionLabel, #version {
|
||||
font-size: 14px;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
div[data-type="keybind-change"] .optionLabel {
|
||||
display: inline-block;
|
||||
min-width: 150px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
input[type='number'] {
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.key {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
display: inline-block;
|
||||
min-width: 33px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
border-color: var(--white);
|
||||
}
|
||||
|
||||
.unbound, .key {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.keybind-buttons {
|
||||
border-radius: 5px;
|
||||
padding: 5px 3px;
|
||||
cursor: pointer;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.keybind-buttons:hover {
|
||||
background-color: #00000030;
|
||||
}
|
||||
|
||||
.keybind-buttons > div, .keybind-buttons > span {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#keybind-dialog .dialog {
|
||||
position: fixed;
|
||||
border-width: 3px;
|
||||
border-style: solid;
|
||||
border-radius: 15px;
|
||||
max-height: 100vh;
|
||||
width: 400px;
|
||||
overflow-x: auto;
|
||||
z-index: 100;
|
||||
padding: 15px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background-color: var(--dialog-background);
|
||||
border-color: var(--dialog-border);
|
||||
}
|
||||
|
||||
#change-keybind-buttons {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#change-keybind-buttons > .option-button {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#change-keybind-settings {
|
||||
margin: 15px 15px 30px;
|
||||
}
|
||||
|
||||
#change-keybind-settings .key {
|
||||
vertical-align: top;
|
||||
margin: 15px 0 0 40px;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
#change-keybind-error {
|
||||
margin-bottom: 15px;
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.blocker {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: 90;
|
||||
background-color: #00000080;
|
||||
}
|
||||
|
||||
.low-profile {
|
||||
height: 23px;
|
||||
line-height: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.center {
|
||||
@@ -15,25 +237,49 @@ body {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.next-line {
|
||||
padding: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hiding {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.spacing {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.keybind-status {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.small-description {
|
||||
color: white;
|
||||
font-size: 13px;
|
||||
padding: 15px 0 0 20px;
|
||||
}
|
||||
|
||||
.small-description td {
|
||||
padding: 10px 0 20px 20px;
|
||||
}
|
||||
|
||||
.indent {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.categoryTableElement td {
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.medium-description {
|
||||
color: white;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
@@ -53,36 +299,42 @@ body {
|
||||
width: max-content;
|
||||
}
|
||||
|
||||
.option-button:hover {
|
||||
.option-button:hover:not(.disabled) {
|
||||
background-color: #fc0303;
|
||||
}
|
||||
|
||||
.option-button.disabled {
|
||||
cursor: default;
|
||||
|
||||
background-color: #520000;
|
||||
background-color: var(--disabled);
|
||||
color: grey;
|
||||
}
|
||||
|
||||
#options {
|
||||
max-width: 60%;
|
||||
height: 100vh;
|
||||
flex-basis: 80%;
|
||||
overflow: auto;
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
padding: 80px 15% 0 3%;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
transition: padding 0.3s;
|
||||
}
|
||||
|
||||
#options.embed {
|
||||
#options.embed > div {
|
||||
max-width: 100%;
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#title .profilepic {
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.switch-container {
|
||||
content: attr(label-name);
|
||||
position: absolute;
|
||||
width: max-content;
|
||||
|
||||
font-size: 14px;
|
||||
color: white;
|
||||
|
||||
display: table;
|
||||
}
|
||||
@@ -94,11 +346,6 @@ body {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.text-label-container {
|
||||
font-size: 14px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -119,7 +366,7 @@ body {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #707070;
|
||||
background-color: var(--slider);
|
||||
}
|
||||
|
||||
.animated * {
|
||||
@@ -162,11 +409,8 @@ input:checked + .slider:before {
|
||||
}
|
||||
|
||||
|
||||
/* Boilerplate CSS from https://ajay.app */
|
||||
|
||||
body {
|
||||
background-color: #333333;
|
||||
}
|
||||
/* Boilerplate CSS from https://ajay.app (edited) */
|
||||
|
||||
.projectPreview {
|
||||
position: relative;
|
||||
@@ -196,29 +440,25 @@ body {
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.createdBy {
|
||||
font-size: 14px;
|
||||
#createdBy {
|
||||
text-align: center;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
margin: auto 0 10px 0;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
display: inline-block;
|
||||
#createdBy > * {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#title {
|
||||
background-color: #636363;
|
||||
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
|
||||
font-size: 50px;
|
||||
color: #212121;
|
||||
font-size: 40px;
|
||||
|
||||
padding: 20px;
|
||||
padding: 40px 20px;
|
||||
|
||||
text-decoration: none;
|
||||
|
||||
transition: font-size 1s;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
@@ -237,7 +477,6 @@ body {
|
||||
}
|
||||
|
||||
.profilepic {
|
||||
background-color: #636363 !important;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@@ -281,21 +520,9 @@ a {
|
||||
|
||||
p,li {
|
||||
font-size: 20px;
|
||||
color: #c4c4c4;
|
||||
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
@media screen and (orientation:portrait) {
|
||||
#options {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.previewColorOption {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.previewImage {
|
||||
max-height: 200px;
|
||||
}
|
||||
@@ -316,10 +543,6 @@ img {
|
||||
color: #dad8d8;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #dad8d8;
|
||||
}
|
||||
|
||||
svg {
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -337,8 +560,6 @@ svg {
|
||||
|
||||
.categoryTableElement {
|
||||
font-size: 16px;
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
.categoryTableElement > * {
|
||||
@@ -368,4 +589,85 @@ svg {
|
||||
|
||||
#sbDonate {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* Top bar navigation for smaller screens */
|
||||
@media only screen and (max-height: 725px), only screen and (max-width: 1200px) {
|
||||
#options-container {
|
||||
flex-direction: column;
|
||||
}
|
||||
#menubar {
|
||||
gap: 8px;
|
||||
min-width: unset;
|
||||
max-width: unset;
|
||||
padding: 8px;
|
||||
}
|
||||
#navigation {
|
||||
gap: 8px;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
#options {
|
||||
padding: 0 50px;
|
||||
}
|
||||
|
||||
#options > div {
|
||||
max-width: 70%;
|
||||
}
|
||||
|
||||
.tab-heading {
|
||||
width: unset;
|
||||
min-width: unset;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
font-size: 16px;
|
||||
padding: 0 10px;
|
||||
margin: 0;
|
||||
}
|
||||
#title {
|
||||
width: 100%;
|
||||
font-size: 30px;
|
||||
padding: 10px;
|
||||
}
|
||||
#title .profilepic {
|
||||
height: 40px;
|
||||
}
|
||||
#createdBy {
|
||||
margin: 10px 0 0 0;
|
||||
height: unset;
|
||||
width: 100%;
|
||||
}
|
||||
#createdBy > div {
|
||||
display: inline-block;
|
||||
}
|
||||
#sbDonate {
|
||||
position: absolute;
|
||||
right: 30px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
#version {
|
||||
font-size: 10px;
|
||||
height: 10px;
|
||||
transform: translate(-50px, -5px);
|
||||
}
|
||||
.sticky #menubar {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 15px;
|
||||
}
|
||||
.sticky #title, .sticky #createdBy {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
#options {
|
||||
padding: 0 15px;
|
||||
}
|
||||
#options > div {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
730
public/popup.css
@@ -1,404 +1,574 @@
|
||||
:root {
|
||||
--sb-main-font-family: "Source Sans Pro", sans-serif;
|
||||
--sb-main-bg-color: #222626;
|
||||
--sb-main-fg-color: white;
|
||||
--sb-gray-fg-color: #444848;
|
||||
--sb-on-white-bg: black;
|
||||
--sb-green-bg: #077B27;
|
||||
--sb-main-fg-color: #fff;
|
||||
--sb-grey-bg-color: #333;
|
||||
--sb-red-bg-color: #cc1717;
|
||||
}
|
||||
|
||||
/*
|
||||
* Container when popup displayed in-page
|
||||
*/
|
||||
|
||||
#sponsorBlockPopupContainer {
|
||||
position: relative;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disable popup max height when displayed in-page
|
||||
*/
|
||||
|
||||
#sponsorBlockPopupContainer #sponsorBlockPopupHTML {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disable fixed popup width when displayed in-page
|
||||
*/
|
||||
|
||||
#sponsorBlockPopupContainer #sponsorBlockPopupBody {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* Main containers
|
||||
*/
|
||||
|
||||
#sponsorBlockPopupHTML {
|
||||
color-scheme: dark;
|
||||
max-height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#sponsorBlockPopupBody .hidden {
|
||||
display: none !important;
|
||||
#sponsorBlockPopupBody {
|
||||
margin: 0;
|
||||
width: 374px;
|
||||
max-width: 100%; /* NOTE: Ensures content doesn't exceed restricted popup widths in Firefox */
|
||||
font-family: var(--sb-main-font-family);
|
||||
font-size: 14px;
|
||||
background-color: var(--sb-main-bg-color);
|
||||
color: var(--sb-main-fg-color);
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
#sponsorblockPopup {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#sponsorblockPopup a,
|
||||
#sponsorblockPopup button {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disable transition on all elements until the extension has loaded
|
||||
*/
|
||||
|
||||
.sb-preload * {
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* Close popup button when displayed in-page
|
||||
*/
|
||||
|
||||
.sbCloseButton {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
padding: 8px;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.sbCloseButton:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Alert indicating that Beta server is enabled
|
||||
*/
|
||||
|
||||
#sbBetaServerWarning {
|
||||
padding: 8px;
|
||||
font-size: 1em;
|
||||
font-weight: 700;
|
||||
color: var(--sb-main-fg-color);
|
||||
background-color: var(--sb-red-bg-color);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*
|
||||
* Header logo
|
||||
*/
|
||||
|
||||
.sbPopupLogo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 32px;
|
||||
font-weight: bold;
|
||||
justify-content: center;
|
||||
user-select: none;
|
||||
padding: 20px 0 10px;
|
||||
}
|
||||
|
||||
.sbPopupLogo img {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Refresh segments button
|
||||
*/
|
||||
|
||||
#refreshSegmentsButton {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
margin: 5px auto;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#refreshSegmentsButton:hover {
|
||||
background-color: var(--sb-grey-bg-color);
|
||||
}
|
||||
|
||||
/*
|
||||
* <details> wrapper around each segment
|
||||
*/
|
||||
|
||||
.votingButtons {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.votingButtons[open] {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.votingButtons:hover {
|
||||
background-color: var(--sb-grey-bg-color);
|
||||
}
|
||||
|
||||
/*
|
||||
* Individual segments summaries (clickable <summary>)
|
||||
*/
|
||||
|
||||
.segmentSummary {
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
padding: 7px;
|
||||
list-style: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/*
|
||||
* Category dot in segment
|
||||
*/
|
||||
|
||||
.sponsorTimesCategoryColorCircle {
|
||||
margin: 0 8px;
|
||||
}
|
||||
|
||||
.voteButtonsContainer--hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
#sponsorBlockPopupBody {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#sponsorBlockPopupBody {
|
||||
margin: auto;
|
||||
width: 374px;
|
||||
background: var(--sb-main-bg-color);
|
||||
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
#sponsorblockPopup {
|
||||
color: var(--sb-main-fg-color);
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
width: 330px;
|
||||
padding: 22px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#issueReporterTimeButtons > .votingButtons > .segmentTimeButton {
|
||||
font-weight: bold;
|
||||
color: var(--sb-main-fg-color);
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 7px;
|
||||
outline: none;
|
||||
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.dot {
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/*
|
||||
* Buttons that appear under a segment on click
|
||||
*/
|
||||
|
||||
.voteButton {
|
||||
height: 20px;
|
||||
padding: 0 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.voteButton:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/*
|
||||
* "Voted!" text that appears after voting on a segment
|
||||
*/
|
||||
|
||||
.sponsorTimesThanksForVotingText {
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.voteButton {
|
||||
height: 20px;
|
||||
padding: 0 5px;
|
||||
/*
|
||||
* Main controls menu
|
||||
*/
|
||||
|
||||
.sbControlsMenu {
|
||||
background-color: var(--sb-grey-bg-color);
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.sbControlsMenu-item {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#videoInfo>p, #videoInfo>div>p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.logoText {
|
||||
user-select: none;
|
||||
padding: 10px 15px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
color: var(--sb-main-fg-color);
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
div.logoText>p, .sbHeader {
|
||||
font-size: 32px;
|
||||
margin: -4px 0 -2px;
|
||||
font-weight: bold;
|
||||
.sbControlsMenu-item:hover {
|
||||
background-color: #444;
|
||||
}
|
||||
|
||||
.sbHeader.sbSubHeader {
|
||||
font-size: 20px;
|
||||
.sbControlsMenu-itemIcon {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.largeButton{
|
||||
background: white;
|
||||
/*font-weight: bold;*/
|
||||
padding: 6px 24px;
|
||||
font-size: 20px;
|
||||
border-radius: 25px;
|
||||
border: none;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
min-height: 26px;
|
||||
min-width: 152px;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
}
|
||||
|
||||
.sponsorBlockPageBody .mediumButton {
|
||||
background-color:#cc1717;
|
||||
-moz-border-radius:28px;
|
||||
-webkit-border-radius:28px;
|
||||
border-radius:28px;
|
||||
border: none;
|
||||
display:inline-block;
|
||||
cursor:pointer;
|
||||
color:#ffffff;
|
||||
font-size:16px;
|
||||
padding:8px 37px;
|
||||
text-decoration:none;
|
||||
text-shadow:0px 0px 0px #662727;
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
|
||||
transition: 0.01s background-color;
|
||||
}
|
||||
.sponsorBlockPageBody .mediumButton:hover {
|
||||
background-color:#ec1c1c;
|
||||
}
|
||||
.sponsorBlockPageBody .mediumButton:focus {
|
||||
outline: none;
|
||||
background-color:#ec1c1c;
|
||||
}
|
||||
.sponsorBlockPageBody .mediumButton:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
|
||||
/* disable extension */
|
||||
|
||||
#disableExtension {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* switch button */
|
||||
/*
|
||||
* "Skipping is enabled" toggle
|
||||
*/
|
||||
|
||||
.toggleSwitchContainer {
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.toggleSwitchContainer-switch {
|
||||
display: flex;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.switchBg {
|
||||
display: block;
|
||||
height: 37px;
|
||||
width: 78px;
|
||||
width: 50px;
|
||||
height: 23px;
|
||||
border-radius: 18.5px;
|
||||
}
|
||||
|
||||
.switchBg.shadow {
|
||||
background: none;
|
||||
box-shadow: 0.75px 0.75px 10px 0px rgba(50, 50, 50, 0.5);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.switchBg.white {
|
||||
position: absolute;
|
||||
background: white;
|
||||
background-color: #ccc;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.switchBg.green {
|
||||
position: absolute;
|
||||
background: #00a205;
|
||||
background-color: #00a205;
|
||||
opacity: 0;
|
||||
transition: opacity .2s ease-out;
|
||||
transition: opacity 0.2s ease-out;
|
||||
}
|
||||
|
||||
.switchDot {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
margin: 6px;
|
||||
background: white;
|
||||
background-color: var(--sb-main-fg-color);
|
||||
border-radius: 50%;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
margin: 4px;
|
||||
position: absolute;
|
||||
border-radius: 12.5px;
|
||||
box-shadow: .75px .75px 3.8px 0px rgba(50, 50, 50, 0.45);
|
||||
transition: transform .2s ease-out;
|
||||
box-shadow: 0.75px 0.75px 3.8px 0px rgba(50, 50, 50, 0.45);
|
||||
transition: transform 0.2s ease-out;
|
||||
}
|
||||
|
||||
.preload * {
|
||||
transition: none !important;
|
||||
#toggleSwitch:checked ~ .switchDot {
|
||||
transform: translateX(27px);
|
||||
}
|
||||
|
||||
#toggleSwitch:checked~.switchDot {
|
||||
transform: translateX(40px);
|
||||
#toggleSwitch:checked ~ .switchBg.green {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#toggleSwitch:checked~.switchBg.green {
|
||||
opacity: 1 !important;
|
||||
#toggleSwitch:checked ~ .switchBg.white {
|
||||
opacity: 0;
|
||||
transition: opacity 0.2s step-end;
|
||||
}
|
||||
|
||||
#toggleSwitch:checked~.switchBg.white {
|
||||
opacity: 0 !important;
|
||||
transition: opacity .2s step-end;
|
||||
}
|
||||
/*
|
||||
* Whitelist add/remove icon
|
||||
*/
|
||||
|
||||
.sidebyside {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
width: 88%;
|
||||
margin: 0 6% 0 6%;
|
||||
}
|
||||
|
||||
.sidebyside>div {
|
||||
width: 50%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#whitelistButton, #sponsorTimesSkipsDoneContainer, .toggleSwitchContainer {
|
||||
margin-bottom: 2px !important;
|
||||
}
|
||||
|
||||
#whitelistForceCheck {
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
font-size: large;
|
||||
cursor: pointer;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.sbHeader {
|
||||
margin-bottom: 5px !important;
|
||||
}
|
||||
|
||||
.logoText {
|
||||
margin-bottom: 6px !important;
|
||||
}
|
||||
|
||||
#videoInfo, #mainControls, .sidebyside, #sponsorTimesSkipsDoneContainer, .largeButton {
|
||||
margin-bottom: 12px !important;
|
||||
}
|
||||
#mainControls{
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
}
|
||||
#submitTimesContainer{
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
}
|
||||
/* additional buttons */
|
||||
|
||||
#additionalButtons {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.sbSlimButton, #additionalButtons>button, button#setUsernameButton, #submitUsername, #copyUserID {
|
||||
background: none;
|
||||
border: none;
|
||||
color: white;
|
||||
width: fit-content;
|
||||
padding-left: 0;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#submitUsername {
|
||||
padding-left: 5pt;
|
||||
}
|
||||
|
||||
#additionalButtons, #additionalButtons>button {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
#usernameValue, #usernameInput, #sponsorTimesContributionsDisplay{
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.SBWhitelistIcon {
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
}
|
||||
|
||||
.SBWhitelistIcon>path {
|
||||
.SBWhitelistIcon > path {
|
||||
fill: var(--sb-main-fg-color);
|
||||
}
|
||||
|
||||
label>p, #disableExtension>p, #usernameValue, #usernameElement > div > p,#sponsorTimesContributionsContainer > div > p, #usernameElement > div > #setUsername > #setUsernameStatusContainer > p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#usernameElement > div > p, #sponsorTimesContributionsContainer {
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
.grayedOut>.SBWhitelistIcon>path {
|
||||
fill: var(--sb-gray-fg-color);
|
||||
}
|
||||
|
||||
.grayedOut>label {
|
||||
color: var(--sb-gray-fg-color);
|
||||
}
|
||||
|
||||
.SBWhitelistIcon.rotated {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
from { transform: rotate(0deg); }
|
||||
to { transform: rotate(360deg); }
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.SBWhitelistIconContainer, button#optionsButton {
|
||||
/*
|
||||
* Notice that appears when whitelisting a channel, that recommends
|
||||
* enabling the "Force Channel Check Before Skipping" option
|
||||
*/
|
||||
|
||||
#whitelistForceCheck {
|
||||
background-color: #fff3cd;
|
||||
color: #664d03;
|
||||
display: block;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
#whitelistForceCheck:hover {
|
||||
background-color: #f2e4b7;
|
||||
}
|
||||
|
||||
/*
|
||||
* Container around the "Segment Starts Now" and "Submit Times" buttons
|
||||
*/
|
||||
|
||||
#mainControls {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.sponsorStartHint {
|
||||
display: block;
|
||||
padding: 0 10px 12px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Generic buttons used for "Segment Starts Now" and "Submit Times"
|
||||
*/
|
||||
|
||||
.sbMediumButton {
|
||||
background-color: var(--sb-red-bg-color);
|
||||
border: 0;
|
||||
-moz-border-radius: 28px;
|
||||
-webkit-border-radius: 28px;
|
||||
border-radius: 28px;
|
||||
display: inline-block;
|
||||
color: var(--sb-main-fg-color);
|
||||
font-size: 16px;
|
||||
padding: 8px 37px;
|
||||
font-family: var(--sb-main-font-family);
|
||||
transition: 0.01s background-color;
|
||||
}
|
||||
|
||||
.sbMediumButton:hover,
|
||||
.sbMediumButton:focus {
|
||||
outline: none;
|
||||
background-color: #ec1c1c;
|
||||
}
|
||||
|
||||
.sbMediumButton:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
/*
|
||||
* "Submit Times" button
|
||||
*/
|
||||
|
||||
#submitTimes {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Heading utility class
|
||||
*/
|
||||
|
||||
.sbHeader {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
margin: 10px 0 5px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Side-by-side section of "Your Work"
|
||||
*/
|
||||
|
||||
.sbYourWorkCols {
|
||||
display: flex;
|
||||
margin: 0 20px 12px;
|
||||
}
|
||||
|
||||
.sbYourWorkCols > div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-basis: 50%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.SBWhitelistIconContainer, button#optionsButton>img, .logoText>img, #usernameValue {
|
||||
margin-right: 8px;
|
||||
/*
|
||||
* <button> elements that have icons
|
||||
*/
|
||||
|
||||
#setUsernameButton,
|
||||
#copyUserID,
|
||||
#submitUsername {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
color: var(--sb-main-fg-color);
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#whitelistButton>label, #additionalButtons>button, div#setUsernameContainer>button {
|
||||
/*
|
||||
* Prevent username from wrapping
|
||||
*/
|
||||
|
||||
#setUsernameButton {
|
||||
flex: 0 1;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set username button
|
||||
*/
|
||||
|
||||
#submitUsername {
|
||||
padding-left: 7px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Increase font size of username input and display
|
||||
*/
|
||||
|
||||
#usernameValue,
|
||||
#usernameInput,
|
||||
#sponsorTimesContributionsDisplay {
|
||||
font-size: 16px;
|
||||
flex: 1 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Left align "Username" and "Submissions" labels
|
||||
*/
|
||||
|
||||
#usernameElement > div > p,
|
||||
#sponsorTimesContributionsContainer {
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable flexbox for buttons with SVG icon
|
||||
*/
|
||||
|
||||
#setUsernameContainer > button {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
}
|
||||
|
||||
.sbSlimButton, #whitelistButton>label, #additionalButtons>button, div#setUsernameContainer>button {
|
||||
cursor: pointer;
|
||||
}
|
||||
/*
|
||||
* Improve position of "Copy User ID" button
|
||||
*/
|
||||
|
||||
#copyUserID {
|
||||
width: 100%;
|
||||
flex: 0 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Container around username display and edit
|
||||
*/
|
||||
|
||||
#setUsernameContainer {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#usernameElement > div, #sponsorTimesContributionsContainer > div {
|
||||
/*
|
||||
* Improve alignment of username and submissions
|
||||
*/
|
||||
|
||||
#usernameElement > div,
|
||||
#sponsorTimesContributionsContainer > div {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.sidebyside > #usernameElement, .sidebyside > #sponsorTimesContributionsContainer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
/*
|
||||
* Truncate username display
|
||||
*/
|
||||
|
||||
#usernameValue{
|
||||
#usernameValue {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 130px;
|
||||
margin: 0 8px 0 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set username form container with "expanded" state
|
||||
*/
|
||||
|
||||
#setUsername {
|
||||
display:flex;
|
||||
}
|
||||
|
||||
#usernameInput {
|
||||
background: none;
|
||||
padding: 0;
|
||||
border: white 1px solid;
|
||||
color: var(--sb-main-fg-color);
|
||||
width: calc(100% - 24px);
|
||||
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#setUsername.SBExpanded {
|
||||
width: 200%;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
/*
|
||||
* Set username input
|
||||
*/
|
||||
|
||||
#sbFooter > a {
|
||||
#usernameInput {
|
||||
background: transparent;
|
||||
padding: 2px;
|
||||
border: var(--sb-main-fg-color) 1px solid;
|
||||
color: var(--sb-main-fg-color);
|
||||
width: calc(100% - 24px);
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/*
|
||||
* Footer
|
||||
*/
|
||||
|
||||
#sbFooter {
|
||||
margin-top: 10px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
#sbFooter a {
|
||||
color: var(--sb-main-fg-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*
|
||||
* "Show Notice Again" button
|
||||
*/
|
||||
|
||||
#showNoticeAgain {
|
||||
margin-top: 30px;
|
||||
|
||||
color: var(--sb-main-fg-color);
|
||||
background: none;
|
||||
border: 1px solid white;
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
|
||||
background: transparent;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 5px;
|
||||
color: var(--sb-main-fg-color);
|
||||
margin-bottom: 20px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Generic utilities
|
||||
*/
|
||||
|
||||
#sponsorBlockPopupBody .u-mZ {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
#sponsorBlockPopupBody .hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@@ -1,90 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html id="sponsorBlockPopupHTML">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>__MSG_openPopup__</title>
|
||||
<link id="sponsorBlockPopupFont" rel="stylesheet" type="text/css" href="/libs/Source+Sans+Pro.css">
|
||||
<link id="sponsorBlockStyleSheet" rel="stylesheet" type="text/css" href="popup.css">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link id="sponsorBlockPopupFont" href="/libs/Source+Sans+Pro.css" rel="stylesheet">
|
||||
<link id="sponsorBlockStyleSheet" href="popup.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body id="sponsorBlockPopupBody">
|
||||
<div id="sponsorblockPopup" class="sponsorBlockPageBody preload">
|
||||
<div class="logoText bottomSpace">
|
||||
<img src="icons/IconSponsorBlocker256px.png" height="40px" id="sponsorBlockPopupLogo">
|
||||
<p>SponsorBlock</p>
|
||||
<div id="sponsorblockPopup" class="sponsorBlockPageBody sb-preload">
|
||||
|
||||
<div id="sbBetaServerWarning" class="hidden" title="__MSG_openOptionsPage__">
|
||||
__MSG_betaServerWarning__
|
||||
</div>
|
||||
<div id="videoInfo" class="bottomSpace">
|
||||
<div class="bottomSpace">
|
||||
<!-- Loading text -->
|
||||
<p id="loadingIndicator">__MSG_noVideoID__</p>
|
||||
<!-- If the video was found in the database -->
|
||||
<p id="videoFound"></p>
|
||||
<button class="sbSlimButton" id="refreshSegmentsButton" title="__MSG_refreshSegments__">
|
||||
<img id="refreshSegments" src="/icons/refresh.svg"/>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<header class="sbPopupLogo">
|
||||
<img src="icons/IconSponsorBlocker256px.png" alt="SponsorBlock" width="40" height="40" id="sponsorBlockPopupLogo">
|
||||
<p class="u-mZ">SponsorBlock</p>
|
||||
</header>
|
||||
|
||||
<div id="videoInfo">
|
||||
<!-- Loading text -->
|
||||
<p id="loadingIndicator" class="u-mZ">__MSG_noVideoID__</p>
|
||||
<!-- If the video was found in the database -->
|
||||
<p id="videoFound" class="u-mZ"></p>
|
||||
<button id="refreshSegmentsButton" title="__MSG_refreshSegments__">
|
||||
<img src="/icons/refresh.svg" alt="Refresh icon" id="refreshSegments" />
|
||||
</button>
|
||||
<div id="issueReporterContainer">
|
||||
<div id="issueReporterTimeButtons"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebyside">
|
||||
<div id="disableExtension">
|
||||
<!--github: mbledkowski/toggle-switch-->
|
||||
<label for="toggleSwitch" class="toggleSwitchContainer">
|
||||
|
||||
<div class="sbControlsMenu">
|
||||
<label id="whitelistButton" for="whitelistToggle" class="hidden sbControlsMenu-item">
|
||||
<input type="checkbox" style="display:none;" id="whitelistToggle">
|
||||
<svg viewBox="0 0 24 24" width="23" height="23" class="SBWhitelistIcon sbControlsMenu-itemIcon">
|
||||
<path d="M24 10H14V0h-4v10H0v4h10v10h4V14h10z" />
|
||||
</svg>
|
||||
<span id="whitelistChannel">__MSG_whitelistChannel__</span>
|
||||
<span id="unwhitelistChannel" style="display: none">__MSG_removeFromWhitelist__</span>
|
||||
</label>
|
||||
<!--github: mbledkowski/toggle-switch-->
|
||||
<label id="disableExtension" for="toggleSwitch" class="toggleSwitchContainer sbControlsMenu-item">
|
||||
<span class="toggleSwitchContainer-switch">
|
||||
<input type="checkbox" style="display:none;" id="toggleSwitch" checked>
|
||||
<span class="switchBg shadow"></span>
|
||||
<span class="switchBg white"></span>
|
||||
<span class="switchBg green"></span>
|
||||
<span class="switchDot"></span>
|
||||
</label>
|
||||
<p id="disableSkipping">__MSG_disableSkipping__</p>
|
||||
<p id="enableSkipping" style="display: none">__MSG_enableSkipping__</p>
|
||||
</div>
|
||||
<div id="additionalButtons">
|
||||
<!-- grayedOut until loading complete -->
|
||||
<div id="whitelistButton" class="hidden bottomSpace" title="__MSG_forceChannelCheckPopup__">
|
||||
<input type="checkbox" style="display:none;" id="whitelistToggle">
|
||||
<label for="whitelistToggle" class="whitelistToggleText">
|
||||
<div class="SBWhitelistIconContainer">
|
||||
<svg viewBox="0 0 24 24" width="16" height="16" class="SBWhitelistIcon">
|
||||
<path d="M24 10H14V0h-4v10H0v4h10v10h4V14h10z" />
|
||||
</svg>
|
||||
</div>
|
||||
<p id="whitelistChannel">__MSG_whitelistChannel__</p>
|
||||
<p id="unwhitelistChannel" style="display: none">__MSG_removeFromWhitelist__</p>
|
||||
</label>
|
||||
</div>
|
||||
<button id="optionsButton" title="__MSG_optionsInfo__">
|
||||
<img src="/icons/settings.svg" alt="Settings icon" width="16" height="16" id="sbPopupIconSettings">
|
||||
__MSG_Options__
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
<span id="disableSkipping">__MSG_disableSkipping__</span>
|
||||
<span id="enableSkipping" style="display: none">__MSG_enableSkipping__</span>
|
||||
</label>
|
||||
<button id="optionsButton" class="sbControlsMenu-item" title="__MSG_optionsInfo__">
|
||||
<img src="/icons/settings.svg" alt="Settings icon" width="23" height="23" class="sbControlsMenu-itemIcon" id="sbPopupIconSettings" />
|
||||
__MSG_Options__
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="whitelistForceCheck" class="hidden">
|
||||
<a id="whitelistForceCheck" class="hidden">
|
||||
__MSG_forceChannelCheckPopup__
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div id="mainControls" style="display: none">
|
||||
<p class="sbHeader sbSubHeader">
|
||||
<p class="sbHeader">
|
||||
__MSG_recordTimesDescription__
|
||||
</p>
|
||||
<sub style="margin-bottom: 12px;">__MSG_popupHint__</sub>
|
||||
<sub class="sponsorStartHint">__MSG_popupHint__</sub>
|
||||
<div>
|
||||
<button id="sponsorStart" class="mediumButton">__MSG_sponsorStart__</button>
|
||||
<button id="sponsorStart" class="sbMediumButton">__MSG_sponsorStart__</button>
|
||||
</div>
|
||||
<div id="submissionSection" style="display: none">
|
||||
<b style="display: block; margin-top: 12px;">__MSG_submissionEditHint__</b>
|
||||
<div id="submitTimesContainer" style="margin-top: 12px;">
|
||||
<button id="submitTimes" class="mediumButton">__MSG_submitTimesButton__</button>
|
||||
</div>
|
||||
<button id="submitTimes" class="sbMediumButton">__MSG_submitTimesButton__</button>
|
||||
</div>
|
||||
</div>
|
||||
<h1 class="recordingSubtitle sbHeader sbSubHeader">__MSG_yourWork__</h1>
|
||||
<div class="sidebyside">
|
||||
|
||||
<h1 class="recordingSubtitle sbHeader">__MSG_yourWork__</h1>
|
||||
<div class="sbYourWorkCols">
|
||||
<div id="usernameElement">
|
||||
<div>
|
||||
<p>__MSG_Username__:</p>
|
||||
<p class="u-mZ">__MSG_Username__:</p>
|
||||
<div id="setUsernameContainer">
|
||||
<p id="usernameValue"></p>
|
||||
<button id="setUsernameButton" title="__MSG_setUsername__">
|
||||
@@ -96,9 +94,9 @@
|
||||
</div>
|
||||
<div id="setUsername" style="display: none">
|
||||
<div id="setUsernameStatusContainer" style="display: none">
|
||||
<p id="setUsernameStatus"></p>
|
||||
<p id="setUsernameStatus" class="u-mZ"></p>
|
||||
</div>
|
||||
<input id="usernameInput" hint="Username"></input>
|
||||
<input id="usernameInput" placeholder="Username">
|
||||
<button id="submitUsername">
|
||||
<img src="/icons/check.svg" alt="__MSG_setUsername__" width="16" height="16" id="sbPopupIconCheck">
|
||||
</button>
|
||||
@@ -107,7 +105,7 @@
|
||||
</div>
|
||||
<div id="sponsorTimesContributionsContainer" class="hidden">
|
||||
<div>
|
||||
<p>__MSG_Submissions__:</p>
|
||||
<p class="u-mZ">__MSG_Submissions__:</p>
|
||||
<span id="sponsorTimesContributionsDisplay">
|
||||
0
|
||||
</span>
|
||||
@@ -115,7 +113,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span id="sponsorTimesViewsContainer" style="display: none">
|
||||
<p id="sponsorTimesViewsContainer" style="display: none" class="u-mZ">
|
||||
__MSG_savedPeopleFrom__
|
||||
<b><span id="sponsorTimesViewsDisplay">
|
||||
0
|
||||
@@ -125,8 +123,8 @@
|
||||
(<b><span id="sponsorTimesOthersTimeSavedDisplay">0</span>
|
||||
<span id="sponsorTimesOthersTimeSavedEndWord">__MSG_minsLower__</span></b>
|
||||
<span>__MSG_youHaveSavedTimeEnd__</span>).
|
||||
</span>
|
||||
<div id="sponsorTimesSkipsDoneContainer" style="display: none">
|
||||
</p>
|
||||
<p id="sponsorTimesSkipsDoneContainer" style="display: none" class="u-mZ">
|
||||
__MSG_youHaveSkipped__
|
||||
<b><span id="sponsorTimesSkipsDoneDisplay">
|
||||
0
|
||||
@@ -136,22 +134,32 @@
|
||||
0
|
||||
</span>
|
||||
<span id="sponsorTimeSavedEndWord">__MSG_minsLower__</span></b>).
|
||||
</div>
|
||||
</p>
|
||||
|
||||
<footer id="sbFooter">
|
||||
<div id="sponsorTimesDonateContainer" style="display: none; align-items: center; justify-content: center;">
|
||||
<img class="sbHeart" src="/icons/heart.svg" alt="Heart icon" />
|
||||
<a id="sbConsiderDonateLink" href="https://sponsor.ajay.app/donate" target="_blank" rel="noopener">
|
||||
__MSG_considerDonating__
|
||||
</a>
|
||||
<img id="sbCloseDonate" src="/icons/close.png" alt="Close icon" height="8" style="padding-left: 5px; cursor: pointer;" />
|
||||
</div>
|
||||
|
||||
<a href="https://sponsor.ajay.app" target="_blank" rel="noopener">__MSG_website__</a> |
|
||||
<a href="https://sponsor.ajay.app/stats" target="_blank" rel="noopener">__MSG_viewLeaderboard__</a> |
|
||||
<a href="https://github.com/ajayyy/SponsorBlock" target="_blank" rel="noopener">GitHub</a>
|
||||
<br/>
|
||||
<a href="https://discord.gg/SponsorBlock" target="_blank" rel="noopener">Discord</a> |
|
||||
<a href="https://matrix.to/#/#sponsor:ajay.app?via=ajay.app&via=matrix.org&via=mozilla.org" target="_blank" rel="noopener">Matrix</a> |
|
||||
<a id="helpButton" style="cursor: pointer;">__MSG_help__</a> |
|
||||
<a id="helpButton">__MSG_help__</a> |
|
||||
<a href="https://sponsor.ajay.app/donate" target="_blank" rel="noopener" id="sbDonate">$</a>
|
||||
</footer>
|
||||
|
||||
<button id="showNoticeAgain" style="display: none" class="dangerButton popupElement">__MSG_showNotice__</button>
|
||||
<button id="showNoticeAgain" style="display: none">__MSG_showNotice__</button>
|
||||
|
||||
</div>
|
||||
<!-- Scripts that need to load after the html -->
|
||||
<script src="./js/vendor.js" async></script>
|
||||
<script src="./js/popup.js" async></script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -81,7 +81,8 @@ chrome.runtime.onInstalled.addListener(function () {
|
||||
//save this UUID
|
||||
Config.config.userID = newUserID;
|
||||
|
||||
Config.config.highlightCategoryUpdate = true;
|
||||
// Don't show update notification
|
||||
Config.config.categoryPillUpdate = true;
|
||||
}
|
||||
}, 1500);
|
||||
});
|
||||
|
||||
@@ -31,24 +31,24 @@ class CategoryChooserComponent extends React.Component<CategoryChooserProps, Cat
|
||||
{/* Headers */}
|
||||
<tr id={"CategoryOptionsRow"}
|
||||
className="categoryTableElement categoryTableHeader">
|
||||
<td id={"CategoryOptionName"}>
|
||||
<th id={"CategoryOptionName"}>
|
||||
{chrome.i18n.getMessage("category")}
|
||||
</td>
|
||||
</th>
|
||||
|
||||
<td id={"CategorySkipOption"}
|
||||
<th id={"CategorySkipOption"}
|
||||
className="skipOption">
|
||||
{chrome.i18n.getMessage("skipOption")}
|
||||
</td>
|
||||
</th>
|
||||
|
||||
<td id={"CategoryColorOption"}
|
||||
<th id={"CategoryColorOption"}
|
||||
className="colorOption">
|
||||
{chrome.i18n.getMessage("seekBarColor")}
|
||||
</td>
|
||||
</th>
|
||||
|
||||
<td id={"CategoryPreviewColorOption"}
|
||||
<th id={"CategoryPreviewColorOption"}
|
||||
className="previewColorOption">
|
||||
{chrome.i18n.getMessage("previewColor")}
|
||||
</td>
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
{this.getCategorySkipOptions()}
|
||||
|
||||
168
src/components/CategoryPillComponent.tsx
Normal file
@@ -0,0 +1,168 @@
|
||||
import * as React from "react";
|
||||
import Config from "../config";
|
||||
import { Category, SegmentUUID, SponsorTime } from "../types";
|
||||
|
||||
import ThumbsUpSvg from "../svg-icons/thumbs_up_svg";
|
||||
import ThumbsDownSvg from "../svg-icons/thumbs_down_svg";
|
||||
import { downvoteButtonColor, SkipNoticeAction } from "../utils/noticeUtils";
|
||||
import { VoteResponse } from "../messageTypes";
|
||||
import { AnimationUtils } from "../utils/animationUtils";
|
||||
import { GenericUtils } from "../utils/genericUtils";
|
||||
import { Tooltip } from "../render/Tooltip";
|
||||
|
||||
export interface CategoryPillProps {
|
||||
vote: (type: number, UUID: SegmentUUID, category?: Category) => Promise<VoteResponse>;
|
||||
}
|
||||
|
||||
export interface CategoryPillState {
|
||||
segment?: SponsorTime;
|
||||
show: boolean;
|
||||
open?: boolean;
|
||||
}
|
||||
|
||||
class CategoryPillComponent extends React.Component<CategoryPillProps, CategoryPillState> {
|
||||
|
||||
tooltip?: Tooltip;
|
||||
|
||||
constructor(props: CategoryPillProps) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
segment: null,
|
||||
show: false,
|
||||
open: false
|
||||
};
|
||||
}
|
||||
|
||||
render(): React.ReactElement {
|
||||
const style: React.CSSProperties = {
|
||||
backgroundColor: this.getColor(),
|
||||
display: this.state.show ? "flex" : "none",
|
||||
color: this.getTextColor(),
|
||||
}
|
||||
|
||||
return (
|
||||
<span style={style}
|
||||
className={"sponsorBlockCategoryPill"}
|
||||
aria-label={this.getTitleText()}
|
||||
onClick={(e) => this.toggleOpen(e)}
|
||||
onMouseEnter={() => this.openTooltip()}
|
||||
onMouseLeave={() => this.closeTooltip()}>
|
||||
<span className="sponsorBlockCategoryPillTitleSection">
|
||||
<img className="sponsorSkipLogo sponsorSkipObject"
|
||||
src={chrome.extension.getURL("icons/IconSponsorBlocker256px.png")}>
|
||||
</img>
|
||||
<span className="sponsorBlockCategoryPillTitle">
|
||||
{chrome.i18n.getMessage("category_" + this.state.segment?.category)}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
{this.state.open && (
|
||||
<>
|
||||
{/* Upvote Button */}
|
||||
<div id={"sponsorTimesDownvoteButtonsContainerUpvoteCategoryPill"}
|
||||
className="voteButton"
|
||||
style={{marginLeft: "5px"}}
|
||||
title={chrome.i18n.getMessage("upvoteButtonInfo")}
|
||||
onClick={(e) => this.vote(e, 1)}>
|
||||
<ThumbsUpSvg fill={Config.config.colorPalette.white} />
|
||||
</div>
|
||||
|
||||
{/* Downvote Button */}
|
||||
<div id={"sponsorTimesDownvoteButtonsContainerDownvoteCategoryPill"}
|
||||
className="voteButton"
|
||||
title={chrome.i18n.getMessage("reportButtonInfo")}
|
||||
onClick={(event) => this.vote(event, 0)}>
|
||||
<ThumbsDownSvg fill={downvoteButtonColor(null, null, SkipNoticeAction.Downvote)} />
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
{/* Close Button */}
|
||||
<img src={chrome.extension.getURL("icons/close.png")}
|
||||
className="categoryPillClose"
|
||||
onClick={() => this.setState({ show: false })}>
|
||||
</img>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
private toggleOpen(event: React.MouseEvent): void {
|
||||
event.stopPropagation();
|
||||
|
||||
if (this.state.show) {
|
||||
this.setState({ open: !this.state.open });
|
||||
}
|
||||
}
|
||||
|
||||
private async vote(event: React.MouseEvent, type: number): Promise<void> {
|
||||
event.stopPropagation();
|
||||
if (this.state.segment) {
|
||||
const stopAnimation = AnimationUtils.applyLoadingAnimation(event.currentTarget as HTMLElement, 0.3);
|
||||
|
||||
const response = await this.props.vote(type, this.state.segment.UUID);
|
||||
await stopAnimation();
|
||||
|
||||
if (response.successType == 1 || (response.successType == -1 && response.statusCode == 429)) {
|
||||
this.setState({
|
||||
open: false,
|
||||
show: type === 1
|
||||
});
|
||||
} else if (response.statusCode !== 403) {
|
||||
alert(GenericUtils.getErrorMessage(response.statusCode, response.responseText));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getColor(): string {
|
||||
const configObject = Config.config.barTypes["preview-" + this.state.segment?.category]
|
||||
|| Config.config.barTypes[this.state.segment?.category];
|
||||
return configObject?.color;
|
||||
}
|
||||
|
||||
private getTextColor(): string {
|
||||
const color = this.getColor();
|
||||
if (!color) return null;
|
||||
|
||||
const existingCalculatedColor = Config.config.categoryPillColors[this.state.segment?.category];
|
||||
if (existingCalculatedColor && existingCalculatedColor.lastColor === color) {
|
||||
return existingCalculatedColor.textColor;
|
||||
} else {
|
||||
const luminance = GenericUtils.getLuminance(color);
|
||||
const textColor = luminance > 128 ? "black" : "white";
|
||||
Config.config.categoryPillColors[this.state.segment?.category] = {
|
||||
lastColor: color,
|
||||
textColor
|
||||
};
|
||||
|
||||
return textColor;
|
||||
}
|
||||
}
|
||||
|
||||
private openTooltip(): void {
|
||||
const tooltipMount = document.querySelector("ytd-video-primary-info-renderer > #container") as HTMLElement;
|
||||
if (tooltipMount) {
|
||||
this.tooltip = new Tooltip({
|
||||
text: this.getTitleText(),
|
||||
referenceNode: tooltipMount,
|
||||
bottomOffset: "70px",
|
||||
opacity: 0.95,
|
||||
displayTriangle: false,
|
||||
showLogo: false,
|
||||
showGotIt: false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private closeTooltip(): void {
|
||||
this.tooltip?.close();
|
||||
this.tooltip = null;
|
||||
}
|
||||
|
||||
getTitleText(): string {
|
||||
const shortDescription = chrome.i18n.getMessage(`category_${this.state.segment?.category}_pill`);
|
||||
return (shortDescription ? shortDescription + ". ": "") + chrome.i18n.getMessage("categoryPillTitleText");
|
||||
}
|
||||
}
|
||||
|
||||
export default CategoryPillComponent;
|
||||
@@ -1,9 +1,10 @@
|
||||
import * as React from "react";
|
||||
|
||||
import Config from "../config"
|
||||
import * as CompileConfig from "../../config.json";
|
||||
import { Category, CategorySkipOption } from "../types";
|
||||
|
||||
import { getCategoryActionType } from "../utils/categoryUtils";
|
||||
import { getCategorySuffix } from "../utils/categoryUtils";
|
||||
|
||||
export interface CategorySkipOptionsProps {
|
||||
category: Category;
|
||||
@@ -77,14 +78,16 @@ class CategorySkipOptionsComponent extends React.Component<CategorySkipOptionsPr
|
||||
value={this.state.color} />
|
||||
</td>
|
||||
|
||||
<td id={this.props.category + "PreviewColorOption"}
|
||||
className="previewColorOption">
|
||||
<input
|
||||
className="categoryColorTextBox option-text-box"
|
||||
type="color"
|
||||
onChange={(event) => this.setColorState(event, true)}
|
||||
value={this.state.previewColor} />
|
||||
</td>
|
||||
{this.props.category !== "exclusive_access" &&
|
||||
<td id={this.props.category + "PreviewColorOption"}
|
||||
className="previewColorOption">
|
||||
<input
|
||||
className="categoryColorTextBox option-text-box"
|
||||
type="color"
|
||||
onChange={(event) => this.setColorState(event, true)}
|
||||
value={this.state.previewColor} />
|
||||
</td>
|
||||
}
|
||||
|
||||
</tr>
|
||||
|
||||
@@ -93,6 +96,10 @@ class CategorySkipOptionsComponent extends React.Component<CategorySkipOptionsPr
|
||||
<td
|
||||
colSpan={2}>
|
||||
{chrome.i18n.getMessage("category_" + this.props.category + "_description")}
|
||||
{' '}
|
||||
<a href={CompileConfig.wikiLinks[this.props.category]} target="_blank" rel="noreferrer">
|
||||
{`${chrome.i18n.getMessage("LearnMore")}`}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -149,12 +156,13 @@ class CategorySkipOptionsComponent extends React.Component<CategorySkipOptionsPr
|
||||
getCategorySkipOptions(): JSX.Element[] {
|
||||
const elements: JSX.Element[] = [];
|
||||
|
||||
const optionNames = ["disable", "showOverlay", "manualSkip", "autoSkip"];
|
||||
let optionNames = ["disable", "showOverlay", "manualSkip", "autoSkip"];
|
||||
if (this.props.category === "exclusive_access") optionNames = ["disable", "showOverlay"];
|
||||
|
||||
for (const optionName of optionNames) {
|
||||
elements.push(
|
||||
<option key={optionName} value={optionName}>
|
||||
{chrome.i18n.getMessage(optionName !== "disable" ? optionName + getCategoryActionType(this.props.category)
|
||||
{chrome.i18n.getMessage(optionName !== "disable" ? optionName + getCategorySuffix(this.props.category)
|
||||
: optionName)}
|
||||
</option>
|
||||
);
|
||||
|
||||
75
src/components/KeybindComponent.tsx
Normal file
@@ -0,0 +1,75 @@
|
||||
import * as React from "react";
|
||||
import * as ReactDOM from "react-dom";
|
||||
import Config from "../config";
|
||||
import { Keybind } from "../types";
|
||||
import KeybindDialogComponent from "./KeybindDialogComponent";
|
||||
import { keybindEquals, keybindToString, formatKey } from "../utils/configUtils";
|
||||
|
||||
export interface KeybindProps {
|
||||
option: string;
|
||||
}
|
||||
|
||||
export interface KeybindState {
|
||||
keybind: Keybind;
|
||||
}
|
||||
|
||||
let dialog;
|
||||
|
||||
class KeybindComponent extends React.Component<KeybindProps, KeybindState> {
|
||||
constructor(props: KeybindProps) {
|
||||
super(props);
|
||||
this.state = {keybind: Config.config[this.props.option]};
|
||||
}
|
||||
|
||||
render(): React.ReactElement {
|
||||
return(
|
||||
<>
|
||||
<div className="keybind-buttons inline" title={chrome.i18n.getMessage("change")} onClick={() => this.openEditDialog()}>
|
||||
{this.state.keybind?.ctrl && <div className="key keyControl">Ctrl</div>}
|
||||
{this.state.keybind?.ctrl && <span className="keyControl">+</span>}
|
||||
{this.state.keybind?.alt && <div className="key keyAlt">Alt</div>}
|
||||
{this.state.keybind?.alt && <span className="keyAlt">+</span>}
|
||||
{this.state.keybind?.shift && <div className="key keyShift">Shift</div>}
|
||||
{this.state.keybind?.shift && <span className="keyShift">+</span>}
|
||||
{this.state.keybind?.key != null && <div className="key keyBase">{formatKey(this.state.keybind.key)}</div>}
|
||||
{this.state.keybind == null && <span className="unbound">{chrome.i18n.getMessage("notSet")}</span>}
|
||||
</div>
|
||||
|
||||
{this.state.keybind != null &&
|
||||
<div className="option-button trigger-button inline" onClick={() => this.unbind()}>
|
||||
{chrome.i18n.getMessage("unbind")}
|
||||
</div>
|
||||
}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
equals(other: Keybind): boolean {
|
||||
return keybindEquals(this.state.keybind, other);
|
||||
}
|
||||
|
||||
toString(): string {
|
||||
return keybindToString(this.state.keybind);
|
||||
}
|
||||
|
||||
openEditDialog(): void {
|
||||
dialog = parent.document.createElement("div");
|
||||
dialog.id = "keybind-dialog";
|
||||
parent.document.body.prepend(dialog);
|
||||
ReactDOM.render(<KeybindDialogComponent option={this.props.option} closeListener={(updateWith) => this.closeEditDialog(updateWith)} />, dialog);
|
||||
}
|
||||
|
||||
closeEditDialog(updateWith: Keybind): void {
|
||||
ReactDOM.unmountComponentAtNode(dialog);
|
||||
dialog.remove();
|
||||
if (updateWith != null)
|
||||
this.setState({keybind: updateWith});
|
||||
}
|
||||
|
||||
unbind(): void {
|
||||
this.setState({keybind: null});
|
||||
Config.config[this.props.option] = null;
|
||||
}
|
||||
}
|
||||
|
||||
export default KeybindComponent;
|
||||
165
src/components/KeybindDialogComponent.tsx
Normal file
@@ -0,0 +1,165 @@
|
||||
import * as React from "react";
|
||||
import { ChangeEvent } from "react";
|
||||
import Config from "../config";
|
||||
import { Keybind } from "../types";
|
||||
import { keybindEquals, formatKey } from "../utils/configUtils";
|
||||
|
||||
export interface KeybindDialogProps {
|
||||
option: string;
|
||||
closeListener: (updateWith) => void;
|
||||
}
|
||||
|
||||
export interface KeybindDialogState {
|
||||
key: Keybind;
|
||||
error: ErrorMessage;
|
||||
}
|
||||
|
||||
interface ErrorMessage {
|
||||
message: string;
|
||||
blocking: boolean;
|
||||
}
|
||||
|
||||
class KeybindDialogComponent extends React.Component<KeybindDialogProps, KeybindDialogState> {
|
||||
|
||||
constructor(props: KeybindDialogProps) {
|
||||
super(props);
|
||||
this.state = {
|
||||
key: {
|
||||
key: null,
|
||||
code: null,
|
||||
ctrl: false,
|
||||
alt: false,
|
||||
shift: false
|
||||
},
|
||||
error: {
|
||||
message: null,
|
||||
blocking: false
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
render(): React.ReactElement {
|
||||
return(
|
||||
<>
|
||||
<div className="blocker"></div>
|
||||
<div className="dialog">
|
||||
<div id="change-keybind-description">{chrome.i18n.getMessage("keybindDescription")}</div>
|
||||
<div id="change-keybind-settings">
|
||||
<div id="change-keybind-modifiers" className="inline">
|
||||
<div>
|
||||
<input id="change-keybind-ctrl" type="checkbox" onChange={this.keybindModifierChecked} />
|
||||
<label htmlFor="change-keybind-ctrl">Ctrl</label>
|
||||
</div>
|
||||
<div>
|
||||
<input id="change-keybind-alt" type="checkbox" onChange={this.keybindModifierChecked} />
|
||||
<label htmlFor="change-keybind-alt">Alt</label>
|
||||
</div>
|
||||
<div>
|
||||
<input id="change-keybind-shift" type="checkbox" onChange={this.keybindModifierChecked} />
|
||||
<label htmlFor="change-keybind-shift">Shift</label>
|
||||
</div>
|
||||
</div>
|
||||
<div className="key inline">{formatKey(this.state.key.key)}</div>
|
||||
</div>
|
||||
<div id="change-keybind-error">{this.state.error?.message}</div>
|
||||
<div id="change-keybind-buttons">
|
||||
<div className={"option-button save-button inline" + ((this.state.error?.blocking || this.state.key.key == null) ? " disabled" : "")} onClick={() => this.save()}>
|
||||
{chrome.i18n.getMessage("save")}
|
||||
</div>
|
||||
<div className="option-button cancel-button inline" onClick={() => this.props.closeListener(null)}>
|
||||
{chrome.i18n.getMessage("cancel")}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
componentDidMount(): void {
|
||||
parent.document.addEventListener("keydown", this.keybindKeyPressed);
|
||||
document.addEventListener("keydown", this.keybindKeyPressed);
|
||||
}
|
||||
|
||||
componentWillUnmount(): void {
|
||||
parent.document.removeEventListener("keydown", this.keybindKeyPressed);
|
||||
document.removeEventListener("keydown", this.keybindKeyPressed);
|
||||
}
|
||||
|
||||
keybindKeyPressed = (e: KeyboardEvent): void => {
|
||||
if (!e.altKey && !e.shiftKey && !e.ctrlKey && !e.metaKey && !e.getModifierState("AltGraph")) {
|
||||
if (e.code == "Escape") {
|
||||
this.props.closeListener(null);
|
||||
return;
|
||||
}
|
||||
|
||||
this.setState({
|
||||
key: {
|
||||
key: e.key,
|
||||
code: e.code,
|
||||
ctrl: this.state.key.ctrl,
|
||||
alt: this.state.key.alt,
|
||||
shift: this.state.key.shift}
|
||||
}, () => this.setState({ error: this.isKeybindAvailable() }));
|
||||
}
|
||||
}
|
||||
|
||||
keybindModifierChecked = (e: ChangeEvent<HTMLInputElement>): void => {
|
||||
const id = e.target.id;
|
||||
const val = e.target.checked;
|
||||
|
||||
this.setState({
|
||||
key: {
|
||||
key: this.state.key.key,
|
||||
code: this.state.key.code,
|
||||
ctrl: id == "change-keybind-ctrl" ? val: this.state.key.ctrl,
|
||||
alt: id == "change-keybind-alt" ? val: this.state.key.alt,
|
||||
shift: id == "change-keybind-shift" ? val: this.state.key.shift}
|
||||
}, () => this.setState({ error: this.isKeybindAvailable() }));
|
||||
}
|
||||
|
||||
isKeybindAvailable(): ErrorMessage {
|
||||
if (this.state.key.key == null)
|
||||
return null;
|
||||
|
||||
let youtubeShortcuts: Keybind[];
|
||||
if (/[a-zA-Z0-9,.+\-\][:]/.test(this.state.key.key)) {
|
||||
youtubeShortcuts = [{key: "k"}, {key: "j"}, {key: "l"}, {key: "p", shift: true}, {key: "n", shift: true}, {key: ","}, {key: "."}, {key: ",", shift: true}, {key: ".", shift: true},
|
||||
{key: "ArrowRight"}, {key: "ArrowLeft"}, {key: "ArrowUp"}, {key: "ArrowDown"}, {key: "ArrowRight", ctrl: true}, {key: "ArrowLeft", ctrl: true}, {key: "c"}, {key: "o"},
|
||||
{key: "w"}, {key: "+"}, {key: "-"}, {key: "f"}, {key: "t"}, {key: "i"}, {key: "m"}, {key: "a"}, {key: "s"}, {key: "d"}, {key: "Home"}, {key: "End"},
|
||||
{key: "0"}, {key: "1"}, {key: "2"}, {key: "3"}, {key: "4"}, {key: "5"}, {key: "6"}, {key: "7"}, {key: "8"}, {key: "9"}, {key: "]"}, {key: "["}];
|
||||
} else {
|
||||
youtubeShortcuts = [{key: null, code: "KeyK"}, {key: null, code: "KeyJ"}, {key: null, code: "KeyL"}, {key: null, code: "KeyP", shift: true}, {key: null, code: "KeyN", shift: true},
|
||||
{key: null, code: "Comma"}, {key: null, code: "Period"}, {key: null, code: "Comma", shift: true}, {key: null, code: "Period", shift: true}, {key: null, code: "Space"},
|
||||
{key: null, code: "KeyC"}, {key: null, code: "KeyO"}, {key: null, code: "KeyW"}, {key: null, code: "Equal"}, {key: null, code: "Minus"}, {key: null, code: "KeyF"}, {key: null, code: "KeyT"},
|
||||
{key: null, code: "KeyI"}, {key: null, code: "KeyM"}, {key: null, code: "KeyA"}, {key: null, code: "KeyS"}, {key: null, code: "KeyD"}, {key: null, code: "BracketLeft"}, {key: null, code: "BracketRight"}];
|
||||
}
|
||||
|
||||
for (const shortcut of youtubeShortcuts) {
|
||||
const withShift = Object.assign({}, shortcut);
|
||||
if (!/[0-9]/.test(this.state.key.key)) //shift+numbers don't seem to do anything on youtube, all other keys do
|
||||
withShift.shift = true;
|
||||
if (this.equals(shortcut) || this.equals(withShift))
|
||||
return {message: chrome.i18n.getMessage("youtubeKeybindWarning"), blocking: false};
|
||||
}
|
||||
|
||||
if (this.props.option != "skipKeybind" && this.equals(Config.config['skipKeybind']) ||
|
||||
this.props.option != "submitKeybind" && this.equals(Config.config['submitKeybind']) ||
|
||||
this.props.option != "startSponsorKeybind" && this.equals(Config.config['startSponsorKeybind']))
|
||||
return {message: chrome.i18n.getMessage("keyAlreadyUsed"), blocking: true};
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
equals(other: Keybind): boolean {
|
||||
return keybindEquals(this.state.key, other);
|
||||
}
|
||||
|
||||
save(): void {
|
||||
if (this.state.key.key != null && !this.state.error?.blocking) {
|
||||
Config.config[this.props.option] = this.state.key;
|
||||
this.props.closeListener(this.state.key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default KeybindDialogComponent;
|
||||
@@ -16,8 +16,6 @@ export interface NoticeProps {
|
||||
timed?: boolean,
|
||||
idSuffix?: string,
|
||||
|
||||
videoSpeed?: () => number,
|
||||
|
||||
fadeIn?: boolean,
|
||||
startFaded?: boolean,
|
||||
firstColumn?: React.ReactElement,
|
||||
@@ -26,6 +24,7 @@ export interface NoticeProps {
|
||||
|
||||
smaller?: boolean,
|
||||
limitWidth?: boolean,
|
||||
extraClass?: string,
|
||||
|
||||
// Callback for when this is closed
|
||||
closeListener: () => void,
|
||||
@@ -33,11 +32,10 @@ export interface NoticeProps {
|
||||
|
||||
zIndex?: number,
|
||||
style?: React.CSSProperties
|
||||
biggerCloseButton?: boolean;
|
||||
}
|
||||
|
||||
export interface NoticeState {
|
||||
noticeTitle: string,
|
||||
|
||||
maxCountdownTime: () => number,
|
||||
|
||||
countdownTime: number,
|
||||
@@ -50,15 +48,18 @@ export interface NoticeState {
|
||||
|
||||
class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
countdownInterval: NodeJS.Timeout;
|
||||
intervalVideoSpeed: number;
|
||||
|
||||
idSuffix: string;
|
||||
|
||||
amountOfPreviousNotices: number;
|
||||
|
||||
parentRef: React.RefObject<HTMLDivElement>;
|
||||
|
||||
constructor(props: NoticeProps) {
|
||||
super(props);
|
||||
|
||||
this.parentRef = React.createRef();
|
||||
|
||||
const maxCountdownTime = () => {
|
||||
if (this.props.maxCountdownTime) return this.props.maxCountdownTime();
|
||||
else return Config.config.skipNoticeDuration;
|
||||
@@ -73,8 +74,6 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
|
||||
// Setup state
|
||||
this.state = {
|
||||
noticeTitle: props.noticeTitle,
|
||||
|
||||
maxCountdownTime,
|
||||
|
||||
//the countdown until this notice closes
|
||||
@@ -99,9 +98,11 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
return (
|
||||
<div id={"sponsorSkipNotice" + this.idSuffix}
|
||||
className={"sponsorSkipObject sponsorSkipNoticeParent"
|
||||
+ (this.props.showInSecondSlot ? " secondSkipNotice" : "")}
|
||||
+ (this.props.showInSecondSlot ? " secondSkipNotice" : "")
|
||||
+ (this.props.extraClass ? ` ${this.props.extraClass}` : "")}
|
||||
onMouseEnter={(e) => this.onMouseEnter(e) }
|
||||
onMouseLeave={() => this.timerMouseLeave()}
|
||||
ref={this.parentRef}
|
||||
style={noticeStyle} >
|
||||
<div className={"sponsorSkipNoticeTableContainer"
|
||||
+ (this.props.fadeIn ? " sponsorSkipNoticeFadeIn" : "")
|
||||
@@ -125,7 +126,7 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
style={{float: "left"}}
|
||||
className="sponsorSkipMessage sponsorSkipObject">
|
||||
|
||||
{this.state.noticeTitle}
|
||||
{this.props.noticeTitle}
|
||||
</span>
|
||||
|
||||
{this.props.firstColumn}
|
||||
@@ -151,7 +152,8 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
|
||||
{/* Close button */}
|
||||
<img src={chrome.extension.getURL("icons/close.png")}
|
||||
className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipNoticeCloseButton sponsorSkipNoticeRightButton"
|
||||
className={"sponsorSkipObject sponsorSkipNoticeButton sponsorSkipNoticeCloseButton sponsorSkipNoticeRightButton"
|
||||
+ (this.props.biggerCloseButton ? " biggerCloseButton" : "")}
|
||||
onClick={() => this.close()}>
|
||||
</img>
|
||||
</td>
|
||||
@@ -257,10 +259,6 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
|
||||
const countdownTime = Math.min(this.state.countdownTime - 1, this.state.maxCountdownTime());
|
||||
|
||||
if (this.props.videoSpeed && this.intervalVideoSpeed != this.props.videoSpeed()) {
|
||||
this.setupInterval();
|
||||
}
|
||||
|
||||
if (countdownTime <= 0) {
|
||||
//remove this from setInterval
|
||||
clearInterval(this.countdownInterval);
|
||||
@@ -274,8 +272,8 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
if (countdownTime == 3) {
|
||||
//start fade out animation
|
||||
const notice = document.getElementById("sponsorSkipNotice" + this.idSuffix);
|
||||
notice.style.removeProperty("animation");
|
||||
notice.classList.add("sponsorSkipNoticeFadeOut");
|
||||
notice?.style.removeProperty("animation");
|
||||
notice?.classList.add("sponsorSkipNoticeFadeOut");
|
||||
}
|
||||
|
||||
this.setState({
|
||||
@@ -323,10 +321,7 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
setupInterval(): void {
|
||||
if (this.countdownInterval) clearInterval(this.countdownInterval);
|
||||
|
||||
const intervalDuration = this.props.videoSpeed ? 1000 / this.props.videoSpeed() : 1000;
|
||||
this.countdownInterval = setInterval(this.countdown.bind(this), intervalDuration);
|
||||
|
||||
if (this.props.videoSpeed) this.intervalVideoSpeed = this.props.videoSpeed();
|
||||
this.countdownInterval = setInterval(this.countdown.bind(this), 1000);
|
||||
}
|
||||
|
||||
resetCountdown(): void {
|
||||
@@ -352,12 +347,6 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
if (!silent) this.props.closeListener();
|
||||
}
|
||||
|
||||
changeNoticeTitle(title: string): void {
|
||||
this.setState({
|
||||
noticeTitle: title
|
||||
});
|
||||
}
|
||||
|
||||
addNoticeInfoMessage(message: string, message2 = ""): void {
|
||||
//TODO: Replace
|
||||
|
||||
@@ -392,6 +381,10 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
|
||||
document.querySelector("#sponsorSkipNotice" + this.idSuffix + " > tbody").insertBefore(thanksForVotingText2, document.getElementById("sponsorSkipNoticeSpacer" + this.idSuffix));
|
||||
}
|
||||
}
|
||||
|
||||
getElement(): React.RefObject<HTMLDivElement> {
|
||||
return this.parentRef;
|
||||
}
|
||||
}
|
||||
|
||||
export default NoticeComponent;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import * as React from "react";
|
||||
|
||||
export interface NoticeTextSelectionProps {
|
||||
icon?: string,
|
||||
text: string,
|
||||
idSuffix: string,
|
||||
onClick?: (event: React.MouseEvent) => unknown
|
||||
@@ -24,12 +25,21 @@ class NoticeTextSelectionComponent extends React.Component<NoticeTextSelectionPr
|
||||
}
|
||||
|
||||
return (
|
||||
<p id={"sponsorTimesInfoMessage" + this.props.idSuffix}
|
||||
<tr id={"sponsorTimesInfoMessage" + this.props.idSuffix}
|
||||
onClick={this.props.onClick}
|
||||
style={style}
|
||||
className="sponsorTimesInfoMessage">
|
||||
{this.props.text}
|
||||
</p>
|
||||
|
||||
<td>
|
||||
{this.props.icon ?
|
||||
<img src={chrome.runtime.getURL(this.props.icon)} className="sponsorTimesInfoIcon" />
|
||||
: null}
|
||||
|
||||
<span>
|
||||
{this.props.text}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,30 @@
|
||||
import * as React from "react";
|
||||
import * as CompileConfig from "../../config.json";
|
||||
import Config from "../config"
|
||||
import { Category, ContentContainer, CategoryActionType, SponsorHideType, SponsorTime, NoticeVisbilityMode, ActionType } from "../types";
|
||||
import { Category, ContentContainer, SponsorTime, NoticeVisbilityMode, ActionType, SponsorSourceType, SegmentUUID } from "../types";
|
||||
import NoticeComponent from "./NoticeComponent";
|
||||
import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
|
||||
import Utils from "../utils";
|
||||
const utils = new Utils();
|
||||
import { getSkippingText } from "../utils/categoryUtils";
|
||||
import { keybindToString } from "../utils/configUtils";
|
||||
|
||||
import { getCategoryActionType, getSkippingText } from "../utils/categoryUtils";
|
||||
import ThumbsUpSvg from "../svg-icons/thumbs_up_svg";
|
||||
import ThumbsDownSvg from "../svg-icons/thumbs_down_svg";
|
||||
import PencilSvg from "../svg-icons/pencil_svg";
|
||||
import { downvoteButtonColor, SkipNoticeAction } from "../utils/noticeUtils";
|
||||
|
||||
export enum SkipNoticeAction {
|
||||
None,
|
||||
Upvote,
|
||||
Downvote,
|
||||
CategoryVote,
|
||||
Unskip
|
||||
enum SkipButtonState {
|
||||
Undo, // Unskip
|
||||
Redo, // Reskip
|
||||
Start // Skip
|
||||
}
|
||||
|
||||
export interface SkipNoticeProps {
|
||||
segments: SponsorTime[];
|
||||
|
||||
autoSkip: boolean;
|
||||
startReskip?: boolean;
|
||||
// Contains functions and variables from the content script needed by the skip notice
|
||||
contentContainer: ContentContainer;
|
||||
|
||||
@@ -39,11 +45,11 @@ export interface SkipNoticeState {
|
||||
maxCountdownTime?: () => number;
|
||||
countdownText?: string;
|
||||
|
||||
skipButtonText?: string;
|
||||
skipButtonCallback?: (index: number) => void;
|
||||
showSkipButton?: boolean;
|
||||
skipButtonStates?: SkipButtonState[];
|
||||
skipButtonCallbacks?: Array<(buttonIndex: number, index: number, forceSeek: boolean) => void>;
|
||||
showSkipButton?: boolean[];
|
||||
|
||||
downvoting?: boolean;
|
||||
editing?: boolean;
|
||||
choosingCategory?: boolean;
|
||||
thanksForVotingText?: string; //null until the voting buttons should be hidden
|
||||
|
||||
@@ -52,6 +58,10 @@ export interface SkipNoticeState {
|
||||
showKeybindHint?: boolean;
|
||||
|
||||
smaller?: boolean;
|
||||
|
||||
voted?: SkipNoticeAction[];
|
||||
copied?: SkipNoticeAction[];
|
||||
|
||||
}
|
||||
|
||||
class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeState> {
|
||||
@@ -62,13 +72,16 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
|
||||
amountOfPreviousNotices: number;
|
||||
showInSecondSlot: boolean;
|
||||
audio: HTMLAudioElement;
|
||||
|
||||
|
||||
idSuffix: string;
|
||||
|
||||
noticeRef: React.MutableRefObject<NoticeComponent>;
|
||||
categoryOptionRef: React.RefObject<HTMLSelectElement>;
|
||||
|
||||
selectedColor: string;
|
||||
unselectedColor: string;
|
||||
lockedColor: string;
|
||||
|
||||
// Used to update on config change
|
||||
configListener: () => void;
|
||||
|
||||
@@ -80,7 +93,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
this.segments = props.segments;
|
||||
this.autoSkip = props.autoSkip;
|
||||
this.contentContainer = props.contentContainer;
|
||||
this.audio = null;
|
||||
|
||||
const noticeTitle = getSkippingText(this.segments, this.props.autoSkip);
|
||||
|
||||
@@ -93,13 +105,26 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
if (this.segments.length > 1) {
|
||||
this.segments.sort((a, b) => a.segment[0] - b.segment[0]);
|
||||
}
|
||||
|
||||
//this is the suffix added at the end of every id
|
||||
|
||||
// This is the suffix added at the end of every id
|
||||
for (const segment of this.segments) {
|
||||
this.idSuffix += segment.UUID;
|
||||
}
|
||||
this.idSuffix += this.amountOfPreviousNotices;
|
||||
|
||||
this.selectedColor = Config.config.colorPalette.red;
|
||||
this.unselectedColor = Config.config.colorPalette.white;
|
||||
this.lockedColor = Config.config.colorPalette.locked;
|
||||
|
||||
const isMuteSegment = this.segments[0].actionType === ActionType.Mute;
|
||||
const maxCountdownTime = isMuteSegment ? this.getFullDurationCountdown(0) : () => Config.config.skipNoticeDuration;
|
||||
|
||||
const defaultSkipButtonState = this.props.startReskip ? SkipButtonState.Redo : SkipButtonState.Undo;
|
||||
const skipButtonStates = [defaultSkipButtonState, isMuteSegment ? SkipButtonState.Start : defaultSkipButtonState];
|
||||
|
||||
const defaultSkipButtonCallback = this.props.startReskip ? this.reskip.bind(this) : this.unskip.bind(this);
|
||||
const skipButtonCallbacks = [defaultSkipButtonCallback, isMuteSegment ? this.reskip.bind(this) : defaultSkipButtonCallback];
|
||||
|
||||
// Setup state
|
||||
this.state = {
|
||||
noticeTitle,
|
||||
@@ -107,15 +132,15 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
messageOnClick: null,
|
||||
|
||||
//the countdown until this notice closes
|
||||
maxCountdownTime: () => Config.config.skipNoticeDuration,
|
||||
countdownTime: Config.config.skipNoticeDuration,
|
||||
maxCountdownTime,
|
||||
countdownTime: maxCountdownTime(),
|
||||
countdownText: null,
|
||||
|
||||
skipButtonText: this.getUnskipText(),
|
||||
skipButtonCallback: (index) => this.unskip(index),
|
||||
showSkipButton: true,
|
||||
skipButtonStates,
|
||||
skipButtonCallbacks,
|
||||
showSkipButton: [true, true],
|
||||
|
||||
downvoting: false,
|
||||
editing: false,
|
||||
choosingCategory: false,
|
||||
thanksForVotingText: null,
|
||||
|
||||
@@ -123,19 +148,16 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
|
||||
showKeybindHint: this.props.showKeybindHint ?? true,
|
||||
|
||||
smaller: this.props.smaller ?? false
|
||||
smaller: this.props.smaller ?? false,
|
||||
|
||||
// Keep track of what segment the user interacted with.
|
||||
voted: new Array(this.props.segments.length).fill(SkipNoticeAction.None),
|
||||
copied: new Array(this.props.segments.length).fill(SkipNoticeAction.None),
|
||||
}
|
||||
|
||||
if (!this.autoSkip) {
|
||||
// Assume manual skip is only skipping 1 submission
|
||||
Object.assign(this.state, this.getUnskippedModeInfo(0, this.getSkipText()));
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount(): void {
|
||||
if (Config.config.audioNotificationOnSkip && this.audio) {
|
||||
this.audio.volume = this.contentContainer().v.volume * 0.1;
|
||||
if (this.autoSkip) this.audio.play();
|
||||
Object.assign(this.state, this.getUnskippedModeInfo(null, 0, SkipButtonState.Start));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,10 +168,11 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
noticeStyle.transform = "scale(0.8) translate(10%, 10%)";
|
||||
}
|
||||
|
||||
// If it started out as smaller, always keep the
|
||||
// If it started out as smaller, always keep the
|
||||
// skip button there
|
||||
const firstColumn = this.props.smaller ? (
|
||||
this.getSkipButton()
|
||||
const showFirstSkipButton = this.props.smaller || this.segments[0].actionType === ActionType.Mute;
|
||||
const firstColumn = showFirstSkipButton ? (
|
||||
this.getSkipButton(0)
|
||||
) : null;
|
||||
|
||||
return (
|
||||
@@ -158,12 +181,12 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
showInSecondSlot={this.showInSecondSlot}
|
||||
idSuffix={this.idSuffix}
|
||||
fadeIn={true}
|
||||
startFaded={Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAll
|
||||
startFaded={Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAll
|
||||
|| (Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAutoSkip && this.autoSkip)}
|
||||
timed={true}
|
||||
maxCountdownTime={this.state.maxCountdownTime}
|
||||
videoSpeed={() => this.contentContainer().v?.playbackRate}
|
||||
style={noticeStyle}
|
||||
biggerCloseButton={this.contentContainer().onMobileYouTube}
|
||||
ref={this.noticeRef}
|
||||
closeListener={() => this.closeListener()}
|
||||
smaller={this.state.smaller}
|
||||
@@ -171,10 +194,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
firstColumn={firstColumn}
|
||||
bottomRow={[...this.getMessageBoxes(), ...this.getBottomRow() ]}
|
||||
onMouseEnter={() => this.onMouseEnter() } >
|
||||
|
||||
{(Config.config.audioNotificationOnSkip) && <audio ref={(source) => { this.audio = source; }}>
|
||||
<source src={chrome.extension.getURL("icons/beep.ogg")} type="audio/ogg"></source>
|
||||
</audio>}
|
||||
</NoticeComponent>
|
||||
);
|
||||
}
|
||||
@@ -191,24 +210,33 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
className="sponsorTimesVoteButtonsContainer">
|
||||
|
||||
{/* Upvote Button */}
|
||||
<img id={"sponsorTimesDownvoteButtonsContainer" + this.idSuffix}
|
||||
className="sponsorSkipObject voteButton"
|
||||
style={{marginRight: "10px"}}
|
||||
src={chrome.extension.getURL("icons/thumbs_up.svg")}
|
||||
title={chrome.i18n.getMessage("upvoteButtonInfo")}
|
||||
onClick={() => this.prepAction(SkipNoticeAction.Upvote)}>
|
||||
|
||||
</img>
|
||||
<div id={"sponsorTimesDownvoteButtonsContainerUpvote" + this.idSuffix}
|
||||
className="voteButton"
|
||||
style={{marginRight: "5px"}}
|
||||
title={chrome.i18n.getMessage("upvoteButtonInfo")}
|
||||
onClick={() => this.prepAction(SkipNoticeAction.Upvote)}>
|
||||
<ThumbsUpSvg fill={(this.state.actionState === SkipNoticeAction.Upvote) ? this.selectedColor : this.unselectedColor} />
|
||||
</div>
|
||||
|
||||
{/* Report Button */}
|
||||
<img id={"sponsorTimesDownvoteButtonsContainer" + this.idSuffix}
|
||||
className="sponsorSkipObject voteButton"
|
||||
src={chrome.extension.getURL("icons/thumbs_down.svg")}
|
||||
title={chrome.i18n.getMessage("reportButtonInfo")}
|
||||
onClick={() => this.adjustDownvotingState(true)}>
|
||||
|
||||
</img>
|
||||
<div id={"sponsorTimesDownvoteButtonsContainerDownvote" + this.idSuffix}
|
||||
className="voteButton"
|
||||
style={{marginRight: "5px", marginLeft: "5px"}}
|
||||
title={chrome.i18n.getMessage("reportButtonInfo")}
|
||||
onClick={() => this.prepAction(SkipNoticeAction.Downvote)}>
|
||||
<ThumbsDownSvg fill={downvoteButtonColor(this.segments, this.state.actionState, SkipNoticeAction.Downvote)} />
|
||||
</div>
|
||||
|
||||
{/* Copy and Downvote Button */}
|
||||
<div id={"sponsorTimesDownvoteButtonsContainerCopyDownvote" + this.idSuffix}
|
||||
className="voteButton"
|
||||
style={{marginLeft: "5px"}}
|
||||
onClick={() => this.openEditingOptions()}>
|
||||
<PencilSvg fill={this.state.editing === true
|
||||
|| this.state.actionState === SkipNoticeAction.CopyDownvote
|
||||
|| this.state.choosingCategory === true
|
||||
? this.selectedColor : this.unselectedColor} />
|
||||
</div>
|
||||
</td>
|
||||
|
||||
:
|
||||
@@ -216,58 +244,75 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
<td id={"sponsorTimesVoteButtonInfoMessage" + this.idSuffix}
|
||||
className="sponsorTimesInfoMessage sponsorTimesVoteButtonMessage"
|
||||
style={{marginRight: "10px"}}>
|
||||
{this.state.thanksForVotingText}
|
||||
|
||||
{/* Submitted string */}
|
||||
<span style={{marginRight: "10px"}}>
|
||||
{this.state.thanksForVotingText}
|
||||
</span>
|
||||
|
||||
{/* Continue Voting Button */}
|
||||
<button id={"sponsorTimesContinueVotingContainer" + this.idSuffix}
|
||||
className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||
title={"Continue Voting"}
|
||||
onClick={() => this.setState({
|
||||
thanksForVotingText: null,
|
||||
messages: []
|
||||
})}>
|
||||
{chrome.i18n.getMessage("ContinueVoting")}
|
||||
</button>
|
||||
</td>
|
||||
}
|
||||
|
||||
{/* Unskip/Skip Button */}
|
||||
{!this.props.smaller ? this.getSkipButton() : null}
|
||||
{!this.props.smaller || this.segments[0].actionType === ActionType.Mute
|
||||
? this.getSkipButton(1) : null}
|
||||
|
||||
{/* Never show button if autoSkip is enabled */}
|
||||
{!this.autoSkip ? "" :
|
||||
{/* Never show button */}
|
||||
{!this.autoSkip || this.props.startReskip ? "" :
|
||||
<td className="sponsorSkipNoticeRightSection"
|
||||
key={1}>
|
||||
<button className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipNoticeRightButton"
|
||||
onClick={this.contentContainer().dontShowNoticeAgain}>
|
||||
|
||||
{chrome.i18n.getMessage("Hide")}
|
||||
</button>
|
||||
</td>
|
||||
}
|
||||
</tr>),
|
||||
|
||||
/* Downvote Options Row */
|
||||
(this.state.downvoting &&
|
||||
<tr id={"sponsorSkipNoticeDownvoteOptionsRow" + this.idSuffix}
|
||||
/* Edit Segments Row */
|
||||
(this.state.editing && !this.state.thanksForVotingText && !(this.state.choosingCategory || this.state.actionState === SkipNoticeAction.CopyDownvote) &&
|
||||
<tr id={"sponsorSkipNoticeEditSegmentsRow" + this.idSuffix}
|
||||
key={2}>
|
||||
<td id={"sponsorTimesDownvoteOptionsContainer" + this.idSuffix}>
|
||||
<td id={"sponsorTimesEditSegmentsContainer" + this.idSuffix}>
|
||||
|
||||
{/* Normal downvote */}
|
||||
{/* Copy Segment */}
|
||||
<button className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||
onClick={() => this.prepAction(SkipNoticeAction.Downvote)}>
|
||||
{chrome.i18n.getMessage("downvoteDescription")}
|
||||
title={chrome.i18n.getMessage("CopyDownvoteButtonInfo")}
|
||||
style={{color: downvoteButtonColor(this.segments, this.state.actionState, SkipNoticeAction.Downvote)}}
|
||||
onClick={() => this.prepAction(SkipNoticeAction.CopyDownvote)}>
|
||||
{chrome.i18n.getMessage("CopyAndDownvote")}
|
||||
</button>
|
||||
|
||||
{/* Category vote */}
|
||||
<button className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||
onClick={() => this.openCategoryChooser()}>
|
||||
|
||||
title={chrome.i18n.getMessage("ChangeCategoryTooltip")}
|
||||
style={{color: (this.state.actionState === SkipNoticeAction.CategoryVote && this.state.editing == true) ? this.selectedColor : this.unselectedColor}}
|
||||
onClick={() => this.resetStateToStart(SkipNoticeAction.CategoryVote, true, true)}>
|
||||
{chrome.i18n.getMessage("incorrectCategory")}
|
||||
</button>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
),
|
||||
|
||||
/* Category Chooser Row */
|
||||
(this.state.choosingCategory &&
|
||||
(this.state.choosingCategory && !this.state.thanksForVotingText &&
|
||||
<tr id={"sponsorSkipNoticeCategoryChooserRow" + this.idSuffix}
|
||||
key={3}>
|
||||
<td>
|
||||
{/* Category Selector */}
|
||||
<select id={"sponsorTimeCategories" + this.idSuffix}
|
||||
className="sponsorTimeCategories"
|
||||
defaultValue={this.segments[0].category} //Just default to the first segment, as we don't know which they'll choose
|
||||
className="sponsorTimeCategories sponsorTimeEditSelector"
|
||||
defaultValue={this.segments[0].category}
|
||||
ref={this.categoryOptionRef}>
|
||||
|
||||
{this.getCategoryOptions()}
|
||||
@@ -281,13 +326,12 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
{chrome.i18n.getMessage("submit")}
|
||||
</button>
|
||||
}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
),
|
||||
|
||||
/* Segment Chooser Row */
|
||||
(this.state.actionState !== SkipNoticeAction.None &&
|
||||
(this.state.actionState !== SkipNoticeAction.None && this.segments.length > 1 && !this.state.thanksForVotingText &&
|
||||
<tr id={"sponsorSkipNoticeSubmissionOptionsRow" + this.idSuffix}
|
||||
key={4}>
|
||||
<td id={"sponsorTimesSubmissionOptionsContainer" + this.idSuffix}>
|
||||
@@ -298,18 +342,32 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
];
|
||||
}
|
||||
|
||||
getSkipButton(): JSX.Element {
|
||||
if (this.state.showSkipButton && (this.segments.length > 1
|
||||
|| getCategoryActionType(this.segments[0].category) !== CategoryActionType.POI
|
||||
getSkipButton(buttonIndex: number): JSX.Element {
|
||||
if (this.state.showSkipButton[buttonIndex] && (this.segments.length > 1
|
||||
|| this.segments[0].actionType !== ActionType.Poi
|
||||
|| this.props.unskipTime)) {
|
||||
|
||||
const forceSeek = buttonIndex === 1 && this.segments[0].actionType === ActionType.Mute;
|
||||
|
||||
const style: React.CSSProperties = {
|
||||
marginLeft: "4px",
|
||||
color: ([SkipNoticeAction.Unskip0, SkipNoticeAction.Unskip1].includes(this.state.actionState))
|
||||
? this.selectedColor : this.unselectedColor
|
||||
};
|
||||
if (this.contentContainer().onMobileYouTube) {
|
||||
style.padding = "20px";
|
||||
style.minWidth = "100px";
|
||||
}
|
||||
|
||||
return (
|
||||
<span className="sponsorSkipNoticeUnskipSection">
|
||||
<button id={"sponsorSkipUnskipButton" + this.idSuffix}
|
||||
className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||
style={{marginLeft: "4px"}}
|
||||
onClick={() => this.prepAction(SkipNoticeAction.Unskip)}>
|
||||
|
||||
{this.state.skipButtonText + (this.state.showKeybindHint ? " (" + Config.config.skipKeybind + ")" : "")}
|
||||
className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||
style={style}
|
||||
onClick={() => this.prepAction(buttonIndex === 1 ? SkipNoticeAction.Unskip1 : SkipNoticeAction.Unskip0)}>
|
||||
{this.getSkipButtonText(buttonIndex, forceSeek ? ActionType.Skip : null)
|
||||
+ (!forceSeek && this.state.showKeybindHint
|
||||
? " (" + keybindToString(Config.config.skipKeybind) + ")" : "")}
|
||||
</button>
|
||||
</span>
|
||||
);
|
||||
@@ -318,20 +376,40 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
|
||||
getSubmissionChooser(): JSX.Element[] {
|
||||
const elements: JSX.Element[] = [];
|
||||
|
||||
for (let i = 0; i < this.segments.length; i++) {
|
||||
elements.push(
|
||||
<button className="sponsorSkipObject sponsorSkipNoticeButton"
|
||||
style={{opacity: this.getSubmissionChooserOpacity(i),
|
||||
color: this.getSubmissionChooserColor(i)}}
|
||||
onClick={() => this.performAction(i)}
|
||||
key={"submission" + i + this.segments[i].category + this.idSuffix}>
|
||||
{(i + 1) + ". " + chrome.i18n.getMessage("category_" + this.segments[i].category)}
|
||||
</button>
|
||||
);
|
||||
}
|
||||
|
||||
return elements;
|
||||
}
|
||||
|
||||
getSubmissionChooserOpacity(index: number): number {
|
||||
const isUpvote = this.state.actionState === SkipNoticeAction.Upvote;
|
||||
const isDownvote = this.state.actionState == SkipNoticeAction.Downvote;
|
||||
const isCopyDownvote = this.state.actionState == SkipNoticeAction.CopyDownvote;
|
||||
const shouldBeGray: boolean = (isUpvote && this.state.voted[index] == SkipNoticeAction.Upvote) ||
|
||||
(isDownvote && this.state.voted[index] == SkipNoticeAction.Downvote) ||
|
||||
(isCopyDownvote && this.state.copied[index] == SkipNoticeAction.CopyDownvote);
|
||||
|
||||
return shouldBeGray ? 0.35 : 1;
|
||||
}
|
||||
|
||||
getSubmissionChooserColor(index: number): string {
|
||||
const isDownvote = this.state.actionState == SkipNoticeAction.Downvote;
|
||||
const isCopyDownvote = this.state.actionState == SkipNoticeAction.CopyDownvote;
|
||||
const shouldWarnUser = Config.config.isVip && (isDownvote || isCopyDownvote)
|
||||
&& this.segments[index].locked === 1;
|
||||
|
||||
return shouldWarnUser ? this.lockedColor : this.unselectedColor;
|
||||
}
|
||||
|
||||
onMouseEnter(): void {
|
||||
if (this.state.smaller) {
|
||||
this.setState({
|
||||
@@ -340,16 +418,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
}
|
||||
}
|
||||
|
||||
prepAction(action: SkipNoticeAction): void {
|
||||
if (this.segments.length === 1) {
|
||||
this.performAction(0, action);
|
||||
} else {
|
||||
this.setState({
|
||||
actionState: action
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
getMessageBoxes(): JSX.Element[] {
|
||||
if (this.state.messages.length === 0) {
|
||||
// Add a spacer if there is no text
|
||||
@@ -365,8 +433,8 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
|
||||
for (let i = 0; i < this.state.messages.length; i++) {
|
||||
elements.push(
|
||||
<tr>
|
||||
<td>
|
||||
<tr key={i + "_messageBox"}>
|
||||
<td key={i + "_messageBox"}>
|
||||
<NoticeTextSelectionComponent idSuffix={this.idSuffix}
|
||||
text={this.state.messages[i]}
|
||||
onClick={this.state.messageOnClick}
|
||||
@@ -380,104 +448,175 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
return elements;
|
||||
}
|
||||
|
||||
prepAction(action: SkipNoticeAction): void {
|
||||
if (this.segments.length === 1) {
|
||||
this.performAction(0, action);
|
||||
} else {
|
||||
switch (action ?? this.state.actionState) {
|
||||
case SkipNoticeAction.None:
|
||||
this.resetStateToStart();
|
||||
break;
|
||||
case SkipNoticeAction.Upvote:
|
||||
this.resetStateToStart(SkipNoticeAction.Upvote);
|
||||
break;
|
||||
case SkipNoticeAction.Downvote:
|
||||
this.resetStateToStart(SkipNoticeAction.Downvote);
|
||||
break;
|
||||
case SkipNoticeAction.CategoryVote:
|
||||
this.resetStateToStart(SkipNoticeAction.CategoryVote, true, true);
|
||||
break;
|
||||
case SkipNoticeAction.CopyDownvote:
|
||||
this.resetStateToStart(SkipNoticeAction.CopyDownvote, true);
|
||||
break;
|
||||
case SkipNoticeAction.Unskip0:
|
||||
this.resetStateToStart(SkipNoticeAction.Unskip0);
|
||||
break;
|
||||
case SkipNoticeAction.Unskip1:
|
||||
this.resetStateToStart(SkipNoticeAction.Unskip1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the action from the current state
|
||||
*
|
||||
* @param index
|
||||
*
|
||||
* @param index
|
||||
*/
|
||||
performAction(index: number, action?: SkipNoticeAction): void {
|
||||
switch (action ?? this.state.actionState) {
|
||||
case SkipNoticeAction.None:
|
||||
this.noAction(index);
|
||||
break;
|
||||
case SkipNoticeAction.Upvote:
|
||||
this.contentContainer().vote(1, this.segments[index].UUID, undefined, this);
|
||||
this.upvote(index);
|
||||
break;
|
||||
case SkipNoticeAction.Downvote:
|
||||
this.contentContainer().vote(0, this.segments[index].UUID, undefined, this);
|
||||
this.downvote(index);
|
||||
break;
|
||||
case SkipNoticeAction.CategoryVote:
|
||||
this.contentContainer().vote(undefined, this.segments[index].UUID, this.categoryOptionRef.current.value as Category, this)
|
||||
this.categoryVote(index);
|
||||
break;
|
||||
case SkipNoticeAction.Unskip:
|
||||
this.state.skipButtonCallback(index);
|
||||
case SkipNoticeAction.CopyDownvote:
|
||||
this.copyDownvote(index);
|
||||
break;
|
||||
case SkipNoticeAction.Unskip0:
|
||||
this.unskipAction(0, index, false);
|
||||
break;
|
||||
case SkipNoticeAction.Unskip1:
|
||||
this.unskipAction(1, index, true);
|
||||
break;
|
||||
default:
|
||||
this.resetStateToStart();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
noAction(index: number): void {
|
||||
const voted = this.state.voted;
|
||||
voted[index] = SkipNoticeAction.None;
|
||||
|
||||
this.setState({
|
||||
actionState: SkipNoticeAction.None
|
||||
voted
|
||||
});
|
||||
}
|
||||
|
||||
adjustDownvotingState(value: boolean): void {
|
||||
if (!value) this.clearConfigListener();
|
||||
upvote(index: number): void {
|
||||
if (this.segments.length === 1) this.resetStateToStart();
|
||||
this.contentContainer().vote(1, this.segments[index].UUID, undefined, this);
|
||||
}
|
||||
|
||||
downvote(index: number): void {
|
||||
if (this.segments.length === 1) this.resetStateToStart();
|
||||
|
||||
this.contentContainer().vote(0, this.segments[index].UUID, undefined, this);
|
||||
}
|
||||
|
||||
categoryVote(index: number): void {
|
||||
this.contentContainer().vote(undefined, this.segments[index].UUID, this.categoryOptionRef.current.value as Category, this)
|
||||
}
|
||||
|
||||
copyDownvote(index: number): void {
|
||||
const sponsorVideoID = this.props.contentContainer().sponsorVideoID;
|
||||
const sponsorTimesSubmitting : SponsorTime = {
|
||||
segment: this.segments[index].segment,
|
||||
UUID: utils.generateUserID() as SegmentUUID,
|
||||
category: this.segments[index].category,
|
||||
actionType: this.segments[index].actionType,
|
||||
source: SponsorSourceType.Local
|
||||
};
|
||||
|
||||
const segmentTimes = Config.config.unsubmittedSegments[sponsorVideoID] || [];
|
||||
segmentTimes.push(sponsorTimesSubmitting);
|
||||
Config.config.unsubmittedSegments[sponsorVideoID] = segmentTimes;
|
||||
Config.forceSyncUpdate("unsubmittedSegments");
|
||||
|
||||
this.props.contentContainer().sponsorTimesSubmitting.push(sponsorTimesSubmitting);
|
||||
this.props.contentContainer().updatePreviewBar();
|
||||
this.props.contentContainer().resetSponsorSubmissionNotice();
|
||||
this.props.contentContainer().updateEditButtonsOnPlayer();
|
||||
|
||||
this.contentContainer().vote(0, this.segments[index].UUID, undefined, this);
|
||||
|
||||
const copied = this.state.copied;
|
||||
copied[index] = SkipNoticeAction.CopyDownvote;
|
||||
|
||||
this.setState({
|
||||
downvoting: value,
|
||||
choosingCategory: false
|
||||
copied
|
||||
});
|
||||
}
|
||||
|
||||
clearConfigListener(): void {
|
||||
if (this.configListener) {
|
||||
Config.configListeners.splice(Config.configListeners.indexOf(this.configListener), 1);
|
||||
this.configListener = null;
|
||||
}
|
||||
unskipAction(buttonIndex: number, index: number, forceSeek: boolean): void {
|
||||
this.state.skipButtonCallbacks[buttonIndex](buttonIndex, index, forceSeek);
|
||||
}
|
||||
|
||||
openCategoryChooser(): void {
|
||||
// Add as a config listener
|
||||
this.configListener = () => this.forceUpdate();
|
||||
Config.configListeners.push(this.configListener);
|
||||
|
||||
this.setState({
|
||||
choosingCategory: true,
|
||||
downvoting: false
|
||||
}, () => {
|
||||
if (this.segments.length > 1) {
|
||||
// Use the action selectors as a submit button
|
||||
this.prepAction(SkipNoticeAction.CategoryVote);
|
||||
}
|
||||
});
|
||||
openEditingOptions(): void {
|
||||
this.resetStateToStart(undefined, true);
|
||||
}
|
||||
|
||||
getCategoryOptions(): React.ReactElement[] {
|
||||
const elements = [];
|
||||
|
||||
const categories = CompileConfig.categoryList.filter((cat => getCategoryActionType(cat as Category) === CategoryActionType.Skippable));
|
||||
const categories = (CompileConfig.categoryList.filter((cat => CompileConfig.categorySupport[cat].includes(ActionType.Skip)))) as Category[];
|
||||
for (const category of categories) {
|
||||
elements.push(
|
||||
<option value={category}
|
||||
key={category}>
|
||||
key={category}
|
||||
className={this.getCategoryNameClass(category)}>
|
||||
{chrome.i18n.getMessage("category_" + category)}
|
||||
</option>
|
||||
);
|
||||
}
|
||||
|
||||
return elements;
|
||||
}
|
||||
|
||||
unskip(index: number): void {
|
||||
this.contentContainer().unskipSponsorTime(this.segments[index], this.props.unskipTime);
|
||||
|
||||
this.unskippedMode(index, this.getReskipText());
|
||||
getCategoryNameClass(category: string): string {
|
||||
return this.props.contentContainer().lockedCategories.includes(category) ? "sponsorBlockLockedColor" : ""
|
||||
}
|
||||
|
||||
reskip(index: number): void {
|
||||
this.contentContainer().reskipSponsorTime(this.segments[index]);
|
||||
unskip(buttonIndex: number, index: number, forceSeek: boolean): void {
|
||||
this.contentContainer().unskipSponsorTime(this.segments[index], this.props.unskipTime, forceSeek);
|
||||
|
||||
this.unskippedMode(buttonIndex, index, SkipButtonState.Redo);
|
||||
}
|
||||
|
||||
reskip(buttonIndex: number, index: number, forceSeek: boolean): void {
|
||||
this.contentContainer().reskipSponsorTime(this.segments[index], forceSeek);
|
||||
|
||||
const skipButtonStates = this.state.skipButtonStates;
|
||||
skipButtonStates[buttonIndex] = SkipButtonState.Undo;
|
||||
|
||||
const skipButtonCallbacks = this.state.skipButtonCallbacks;
|
||||
skipButtonCallbacks[buttonIndex] = this.unskip.bind(this);
|
||||
|
||||
const newState: SkipNoticeState = {
|
||||
skipButtonText: this.getUnskipText(),
|
||||
skipButtonCallback: this.unskip.bind(this),
|
||||
skipButtonStates,
|
||||
skipButtonCallbacks,
|
||||
|
||||
maxCountdownTime: () => Config.config.skipNoticeDuration,
|
||||
countdownTime: Config.config.skipNoticeDuration
|
||||
};
|
||||
|
||||
// See if the title should be changed
|
||||
if (!this.autoSkip) {
|
||||
newState.noticeTitle = chrome.i18n.getMessage("noticeTitle");
|
||||
}
|
||||
|
||||
//reset countdown
|
||||
this.setState(newState, () => {
|
||||
this.noticeRef.current.resetCountdown();
|
||||
@@ -485,49 +624,85 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
}
|
||||
|
||||
/** Sets up notice to be not skipped yet */
|
||||
unskippedMode(index: number, buttonText: string): void {
|
||||
unskippedMode(buttonIndex: number, index: number, skipButtonState: SkipButtonState): void {
|
||||
//setup new callback and reset countdown
|
||||
this.setState(this.getUnskippedModeInfo(index, buttonText), () => {
|
||||
this.setState(this.getUnskippedModeInfo(buttonIndex, index, skipButtonState), () => {
|
||||
this.noticeRef.current.resetCountdown();
|
||||
});
|
||||
}
|
||||
|
||||
getUnskippedModeInfo(index: number, buttonText: string): SkipNoticeState {
|
||||
const changeCountdown = getCategoryActionType(this.segments[index].category) === CategoryActionType.Skippable;
|
||||
getUnskippedModeInfo(buttonIndex: number, index: number, skipButtonState: SkipButtonState): SkipNoticeState {
|
||||
const changeCountdown = this.segments[index].actionType !== ActionType.Poi;
|
||||
|
||||
const maxCountdownTime = changeCountdown ? () => {
|
||||
const maxCountdownTime = changeCountdown ?
|
||||
this.getFullDurationCountdown(index) : this.state.maxCountdownTime;
|
||||
|
||||
const skipButtonStates = this.state.skipButtonStates;
|
||||
const skipButtonCallbacks = this.state.skipButtonCallbacks;
|
||||
if (buttonIndex === null) {
|
||||
for (let i = 0; i < this.segments.length; i++) {
|
||||
skipButtonStates[i] = skipButtonState;
|
||||
skipButtonCallbacks[i] = this.reskip.bind(this);
|
||||
}
|
||||
} else {
|
||||
skipButtonStates[buttonIndex] = skipButtonState;
|
||||
skipButtonCallbacks[buttonIndex] = this.reskip.bind(this);
|
||||
|
||||
if (buttonIndex === 1) {
|
||||
// Trigger both to move at once
|
||||
skipButtonStates[0] = SkipButtonState.Redo;
|
||||
skipButtonCallbacks[0] = this.reskip.bind(this);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
skipButtonStates,
|
||||
skipButtonCallbacks,
|
||||
// change max duration to however much of the sponsor is left
|
||||
maxCountdownTime,
|
||||
countdownTime: maxCountdownTime(),
|
||||
showSkipButton: buttonIndex === 1 ? [true, true] : this.state.showSkipButton
|
||||
} as SkipNoticeState;
|
||||
}
|
||||
|
||||
getFullDurationCountdown(index: number): () => number {
|
||||
return () => {
|
||||
const sponsorTime = this.segments[index];
|
||||
const duration = Math.round((sponsorTime.segment[1] - this.contentContainer().v.currentTime) * (1 / this.contentContainer().v.playbackRate));
|
||||
|
||||
return Math.max(duration, Config.config.skipNoticeDuration);
|
||||
} : this.state.maxCountdownTime;
|
||||
|
||||
return {
|
||||
skipButtonText: buttonText,
|
||||
skipButtonCallback: (index) => this.reskip(index),
|
||||
// change max duration to however much of the sponsor is left
|
||||
maxCountdownTime: maxCountdownTime,
|
||||
countdownTime: maxCountdownTime()
|
||||
} as SkipNoticeState;
|
||||
};
|
||||
}
|
||||
|
||||
afterVote(segment: SponsorTime, type: number, category: Category): void {
|
||||
const index = utils.getSponsorIndexFromUUID(this.segments, segment.UUID);
|
||||
const wikiLinkText = CompileConfig.wikiLinks[segment.category];
|
||||
|
||||
const voted = this.state.voted;
|
||||
switch (type) {
|
||||
case 0:
|
||||
this.clearConfigListener();
|
||||
this.setNoticeInfoMessageWithOnClick(() => window.open(wikiLinkText), chrome.i18n.getMessage("OpenCategoryWikiPage"));
|
||||
|
||||
voted[index] = SkipNoticeAction.Downvote;
|
||||
break;
|
||||
case 1:
|
||||
voted[index] = SkipNoticeAction.Upvote;
|
||||
break;
|
||||
case 20:
|
||||
voted[index] = SkipNoticeAction.None;
|
||||
break;
|
||||
}
|
||||
|
||||
this.setState({
|
||||
voted
|
||||
});
|
||||
|
||||
this.addVoteButtonInfo(chrome.i18n.getMessage("voted"));
|
||||
|
||||
if (type === 0) {
|
||||
this.setNoticeInfoMessage(chrome.i18n.getMessage("hitGoBack"));
|
||||
this.adjustDownvotingState(false);
|
||||
}
|
||||
|
||||
// Change the sponsor locally
|
||||
if (segment) {
|
||||
if (type === 0) {
|
||||
segment.hidden = SponsorHideType.Downvoted;
|
||||
} else if (category) {
|
||||
segment.category = category;
|
||||
}
|
||||
|
||||
this.contentContainer().updatePreviewBar();
|
||||
if (segment && category) {
|
||||
// This is the segment inside the skip notice
|
||||
this.segments[index].category = category;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -543,7 +718,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
messages
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
addVoteButtonInfo(message: string): void {
|
||||
this.setState({
|
||||
thanksForVotingText: message
|
||||
@@ -562,46 +737,77 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|
||||
this.props.closeListener();
|
||||
}
|
||||
|
||||
unmutedListener(): void {
|
||||
if (this.props.segments.length === 1
|
||||
&& this.props.segments[0].actionType === ActionType.Mute
|
||||
&& this.contentContainer().v.currentTime >= this.props.segments[0].segment[1]) {
|
||||
clearConfigListener(): void {
|
||||
if (this.configListener) {
|
||||
Config.configSyncListeners.splice(Config.configSyncListeners.indexOf(this.configListener), 1);
|
||||
this.configListener = null;
|
||||
}
|
||||
}
|
||||
|
||||
unmutedListener(time: number): void {
|
||||
if (this.props.segments.length === 1
|
||||
&& this.props.segments[0].actionType === ActionType.Mute
|
||||
&& time >= this.props.segments[0].segment[1]) {
|
||||
this.setState({
|
||||
showSkipButton: false
|
||||
showSkipButton: [false, true]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private getUnskipText(): string {
|
||||
switch (this.props.segments[0].actionType) {
|
||||
resetStateToStart(actionState: SkipNoticeAction = SkipNoticeAction.None, editing = false, choosingCategory = false): void {
|
||||
this.setState({
|
||||
actionState: actionState,
|
||||
editing: editing,
|
||||
choosingCategory: choosingCategory,
|
||||
thanksForVotingText: null,
|
||||
messages: []
|
||||
});
|
||||
}
|
||||
|
||||
private getSkipButtonText(buttonIndex: number, forceType?: ActionType): string {
|
||||
switch (this.state.skipButtonStates[buttonIndex]) {
|
||||
case SkipButtonState.Undo:
|
||||
return this.getUndoText(forceType);
|
||||
case SkipButtonState.Redo:
|
||||
return this.getRedoText(forceType);
|
||||
case SkipButtonState.Start:
|
||||
return this.getStartText(forceType);
|
||||
}
|
||||
}
|
||||
|
||||
private getUndoText(forceType?: ActionType): string {
|
||||
const actionType = forceType || this.segments[0].actionType;
|
||||
switch (actionType) {
|
||||
case ActionType.Mute: {
|
||||
return chrome.i18n.getMessage("unmute");
|
||||
}
|
||||
case ActionType.Skip:
|
||||
case ActionType.Skip:
|
||||
default: {
|
||||
return chrome.i18n.getMessage("unskip");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getReskipText(): string {
|
||||
switch (this.props.segments[0].actionType) {
|
||||
private getRedoText(forceType?: ActionType): string {
|
||||
const actionType = forceType || this.segments[0].actionType;
|
||||
switch (actionType) {
|
||||
case ActionType.Mute: {
|
||||
return chrome.i18n.getMessage("mute");
|
||||
}
|
||||
case ActionType.Skip:
|
||||
case ActionType.Skip:
|
||||
default: {
|
||||
return chrome.i18n.getMessage("reskip");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getSkipText(): string {
|
||||
switch (this.props.segments[0].actionType) {
|
||||
private getStartText(forceType?: ActionType): string {
|
||||
const actionType = forceType || this.segments[0].actionType;
|
||||
switch (actionType) {
|
||||
case ActionType.Mute: {
|
||||
return chrome.i18n.getMessage("mute");
|
||||
}
|
||||
case ActionType.Skip:
|
||||
case ActionType.Skip:
|
||||
default: {
|
||||
return chrome.i18n.getMessage("skip");
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import * as React from "react";
|
||||
import * as CompileConfig from "../../config.json";
|
||||
import Config from "../config";
|
||||
import { ActionType, ActionTypes, Category, CategoryActionType, ContentContainer, SponsorTime } from "../types";
|
||||
import { ActionType, Category, ContentContainer, SponsorTime } from "../types";
|
||||
import Utils from "../utils";
|
||||
import { getCategoryActionType } from "../utils/categoryUtils";
|
||||
import SubmissionNoticeComponent from "./SubmissionNoticeComponent";
|
||||
import { RectangleTooltip } from "../render/RectangleTooltip";
|
||||
|
||||
|
||||
const utils = new Utils();
|
||||
@@ -18,11 +18,13 @@ export interface SponsorTimeEditProps {
|
||||
|
||||
submissionNotice: SubmissionNoticeComponent;
|
||||
categoryList?: Category[];
|
||||
categoryChangeListener?: (index: number, category: Category) => void;
|
||||
}
|
||||
|
||||
export interface SponsorTimeEditState {
|
||||
editing: boolean;
|
||||
sponsorTimeEdits: [string, string];
|
||||
selectedCategory: Category;
|
||||
}
|
||||
|
||||
const DEFAULT_CATEGORY = "chooseACategory";
|
||||
@@ -36,6 +38,11 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
|
||||
configUpdateListener: () => void;
|
||||
|
||||
previousSkipType: ActionType;
|
||||
// Used when selecting POI or Full
|
||||
timesBeforeChanging: number[] = [];
|
||||
fullVideoWarningShown = false;
|
||||
|
||||
constructor(props: SponsorTimeEditProps) {
|
||||
super(props);
|
||||
|
||||
@@ -44,9 +51,11 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
|
||||
this.idSuffix = this.props.idSuffix;
|
||||
|
||||
this.previousSkipType = ActionType.Skip;
|
||||
this.state = {
|
||||
editing: false,
|
||||
sponsorTimeEdits: [null, null]
|
||||
sponsorTimeEdits: [null, null],
|
||||
selectedCategory: DEFAULT_CATEGORY as Category
|
||||
};
|
||||
}
|
||||
|
||||
@@ -56,20 +65,29 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
// Prevent scrolling while changing times
|
||||
document.getElementById("sponsorTimesContainer" + this.idSuffix).addEventListener('wheel', function (event) {
|
||||
event.preventDefault();
|
||||
}, {passive: false});
|
||||
|
||||
// Add as a config listener
|
||||
if (!this.configUpdateListener) {
|
||||
this.configUpdateListener = () => this.configUpdate();
|
||||
Config.configListeners.push(this.configUpdate.bind(this));
|
||||
Config.configSyncListeners.push(this.configUpdate.bind(this));
|
||||
}
|
||||
|
||||
this.checkToShowFullVideoWarning();
|
||||
}
|
||||
|
||||
componentWillUnmount(): void {
|
||||
if (this.configUpdateListener) {
|
||||
Config.configListeners.splice(Config.configListeners.indexOf(this.configUpdate.bind(this)), 1);
|
||||
Config.configSyncListeners.splice(Config.configSyncListeners.indexOf(this.configUpdate.bind(this)), 1);
|
||||
}
|
||||
}
|
||||
|
||||
render(): React.ReactElement {
|
||||
this.checkToShowFullVideoWarning();
|
||||
|
||||
const style: React.CSSProperties = {
|
||||
textAlign: "center"
|
||||
};
|
||||
@@ -86,14 +104,16 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
node.style.setProperty("text-shadow", "none", "important");
|
||||
}
|
||||
};
|
||||
|
||||
// Create time display
|
||||
let timeDisplay: JSX.Element;
|
||||
const timeDisplayStyle: React.CSSProperties = {};
|
||||
const sponsorTime = this.props.contentContainer().sponsorTimesSubmitting[this.props.index];
|
||||
const segment = sponsorTime.segment;
|
||||
if (sponsorTime?.actionType === ActionType.Full) timeDisplayStyle.display = "none";
|
||||
if (this.state.editing) {
|
||||
timeDisplay = (
|
||||
<div id={"sponsorTimesContainer" + this.idSuffix}
|
||||
style={timeDisplayStyle}
|
||||
className="sponsorTimeDisplay">
|
||||
|
||||
<span id={"nowButton0" + this.idSuffix}
|
||||
@@ -101,23 +121,16 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
onClick={() => this.setTimeToNow(0)}>
|
||||
{chrome.i18n.getMessage("bracketNow")}
|
||||
</span>
|
||||
|
||||
<input id={"submittingTime0" + this.idSuffix}
|
||||
className="sponsorTimeEdit sponsorTimeEditInput"
|
||||
ref={oldYouTubeDarkStyles}
|
||||
type="text"
|
||||
value={this.state.sponsorTimeEdits[0]}
|
||||
onChange={(e) => {
|
||||
const sponsorTimeEdits = this.state.sponsorTimeEdits;
|
||||
sponsorTimeEdits[0] = e.target.value;
|
||||
if (getCategoryActionType(sponsorTime.category) === CategoryActionType.POI) sponsorTimeEdits[1] = e.target.value;
|
||||
|
||||
this.setState({sponsorTimeEdits});
|
||||
this.saveEditTimes();
|
||||
}}>
|
||||
onChange={(e) => {this.handleOnChange(0, e, sponsorTime, e.target.value)}}
|
||||
onWheel={(e) => {this.changeTimesWhenScrolling(0, e, sponsorTime)}}>
|
||||
</input>
|
||||
|
||||
{getCategoryActionType(sponsorTime.category) === CategoryActionType.Skippable ? (
|
||||
{sponsorTime.actionType !== ActionType.Poi ? (
|
||||
<span>
|
||||
<span>
|
||||
{" " + chrome.i18n.getMessage("to") + " "}
|
||||
@@ -128,14 +141,8 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
ref={oldYouTubeDarkStyles}
|
||||
type="text"
|
||||
value={this.state.sponsorTimeEdits[1]}
|
||||
onChange={(e) => {
|
||||
const sponsorTimeEdits = this.state.sponsorTimeEdits;
|
||||
sponsorTimeEdits[1] = e.target.value;
|
||||
|
||||
this.setState({sponsorTimeEdits});
|
||||
|
||||
this.saveEditTimes();
|
||||
}}>
|
||||
onChange={(e) => {this.handleOnChange(1, e, sponsorTime, e.target.value)}}
|
||||
onWheel={(e) => {this.changeTimesWhenScrolling(1, e, sponsorTime)}}>
|
||||
</input>
|
||||
|
||||
<span id={"nowButton1" + this.idSuffix}
|
||||
@@ -155,12 +162,14 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
);
|
||||
} else {
|
||||
timeDisplay = (
|
||||
|
||||
<div id={"sponsorTimesContainer" + this.idSuffix}
|
||||
style={timeDisplayStyle}
|
||||
className="sponsorTimeDisplay"
|
||||
onClick={this.toggleEditTime.bind(this)}>
|
||||
{utils.getFormattedTime(segment[0], true) +
|
||||
((!isNaN(segment[1]) && getCategoryActionType(sponsorTime.category) === CategoryActionType.Skippable)
|
||||
? " " + chrome.i18n.getMessage("to") + " " + utils.getFormattedTime(segment[1], true) : "")}
|
||||
((!isNaN(segment[1]) && sponsorTime.actionType !== ActionType.Poi)
|
||||
? " " + chrome.i18n.getMessage("to") + " " + utils.getFormattedTime(segment[1], true) : "")}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -181,7 +190,8 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
</select>
|
||||
|
||||
{/* open in new tab */}
|
||||
<a href="https://wiki.sponsor.ajay.app/index.php/Segment_Categories"
|
||||
<a href={CompileConfig.wikiLinks[sponsorTime.category]
|
||||
|| "https://wiki.sponsor.ajay.app/index.php/Segment_Categories"}
|
||||
target="_blank" rel="noreferrer">
|
||||
<img id={"sponsorTimeCategoriesHelpButton" + this.idSuffix}
|
||||
className="helpButton"
|
||||
@@ -191,13 +201,15 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
</div>
|
||||
|
||||
{/* Action Type */}
|
||||
{CompileConfig.categorySupport[sponsorTime.category]?.length > 1 ? (
|
||||
{CompileConfig.categorySupport[sponsorTime.category] &&
|
||||
(CompileConfig.categorySupport[sponsorTime.category]?.length > 1
|
||||
|| CompileConfig.categorySupport[sponsorTime.category]?.[0] === ActionType.Full) ? (
|
||||
<div style={{position: "relative"}}>
|
||||
<select id={"sponsorTimeActionTypes" + this.idSuffix}
|
||||
className="sponsorTimeEditSelector sponsorTimeActionTypes"
|
||||
defaultValue={sponsorTime.actionType}
|
||||
ref={this.actionTypeOptionRef}
|
||||
onChange={() => this.saveEditTimes()}>
|
||||
onChange={(e) => this.actionTypeSelectionChange(e)}>
|
||||
{this.getActionTypeOptions(sponsorTime)}
|
||||
</select>
|
||||
</div>
|
||||
@@ -213,15 +225,15 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
{chrome.i18n.getMessage("delete")}
|
||||
</span>
|
||||
|
||||
{(!isNaN(segment[1]) && getCategoryActionType(sponsorTime.category) === CategoryActionType.Skippable) ? (
|
||||
{(!isNaN(segment[1]) && ![ActionType.Poi, ActionType.Full].includes(sponsorTime.actionType)) ? (
|
||||
<span id={"sponsorTimePreviewButton" + this.idSuffix}
|
||||
className="sponsorTimeEditButton"
|
||||
onClick={this.previewTime.bind(this)}>
|
||||
onClick={(e) => this.previewTime(e.ctrlKey, e.shiftKey)}>
|
||||
{chrome.i18n.getMessage("preview")}
|
||||
</span>
|
||||
): ""}
|
||||
|
||||
{(!isNaN(segment[1])) ? (
|
||||
{(!isNaN(segment[1]) && sponsorTime.actionType != ActionType.Full) ? (
|
||||
<span id={"sponsorTimeInspectButton" + this.idSuffix}
|
||||
className="sponsorTimeEditButton"
|
||||
onClick={this.inspectTime.bind(this)}>
|
||||
@@ -229,7 +241,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
</span>
|
||||
): ""}
|
||||
|
||||
{(!isNaN(segment[1])) ? (
|
||||
{(!isNaN(segment[1]) && sponsorTime.actionType != ActionType.Full) ? (
|
||||
<span id={"sponsorTimeEditButton" + this.idSuffix}
|
||||
className="sponsorTimeEditButton"
|
||||
onClick={this.toggleEditTime.bind(this)}>
|
||||
@@ -240,6 +252,94 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
);
|
||||
}
|
||||
|
||||
handleOnChange(index: number, e: React.ChangeEvent, sponsorTime: SponsorTime, targetValue: string): void {
|
||||
const sponsorTimeEdits = this.state.sponsorTimeEdits;
|
||||
|
||||
// check if change is small engough to show tooltip
|
||||
const before = utils.getFormattedTimeToSeconds(sponsorTimeEdits[index]);
|
||||
const after = utils.getFormattedTimeToSeconds(targetValue);
|
||||
const difference = Math.abs(before - after);
|
||||
if (0 < difference && difference< 0.5) this.showScrollToEditToolTip();
|
||||
|
||||
sponsorTimeEdits[index] = targetValue;
|
||||
if (index === 0 && sponsorTime.actionType === ActionType.Poi) sponsorTimeEdits[1] = targetValue;
|
||||
|
||||
this.setState({sponsorTimeEdits});
|
||||
this.saveEditTimes();
|
||||
}
|
||||
|
||||
changeTimesWhenScrolling(index: number, e: React.WheelEvent, sponsorTime: SponsorTime): void {
|
||||
let step = 0;
|
||||
// shift + ctrl = 1
|
||||
// ctrl = 0.1
|
||||
// default = 0.01
|
||||
// shift = 0.001
|
||||
if (e.shiftKey) {
|
||||
step = (e.ctrlKey) ? 1 : 0.001;
|
||||
} else {
|
||||
step = (e.ctrlKey) ? 0.1 : 0.01;
|
||||
}
|
||||
|
||||
const sponsorTimeEdits = this.state.sponsorTimeEdits;
|
||||
let timeAsNumber = utils.getFormattedTimeToSeconds(this.state.sponsorTimeEdits[index]);
|
||||
if (timeAsNumber !== null && e.deltaY != 0) {
|
||||
if (e.deltaY < 0) {
|
||||
timeAsNumber += step;
|
||||
} else if (timeAsNumber >= step) {
|
||||
timeAsNumber -= step;
|
||||
} else {
|
||||
timeAsNumber = 0;
|
||||
}
|
||||
sponsorTimeEdits[index] = utils.getFormattedTime(timeAsNumber, true);
|
||||
if (sponsorTime.actionType === ActionType.Poi) sponsorTimeEdits[1] = sponsorTimeEdits[0];
|
||||
|
||||
this.setState({sponsorTimeEdits});
|
||||
this.saveEditTimes();
|
||||
}
|
||||
}
|
||||
|
||||
showScrollToEditToolTip(): void {
|
||||
if (!Config.config.scrollToEditTimeUpdate && document.getElementById("sponsorRectangleTooltip" + "sponsorTimesContainer" + this.idSuffix) === null) {
|
||||
this.showToolTip(chrome.i18n.getMessage("SponsorTimeEditScrollNewFeature"), () => { Config.config.scrollToEditTimeUpdate = true });
|
||||
}
|
||||
}
|
||||
|
||||
showToolTip(text: string, buttonFunction?: () => void): boolean {
|
||||
const element = document.getElementById("sponsorTimesContainer" + this.idSuffix);
|
||||
if (element) {
|
||||
new RectangleTooltip({
|
||||
text,
|
||||
referenceNode: element.parentElement,
|
||||
prependElement: element,
|
||||
timeout: 15,
|
||||
bottomOffset: 0 + "px",
|
||||
leftOffset: -318 + "px",
|
||||
backgroundColor: "rgba(28, 28, 28, 1.0)",
|
||||
htmlId: "sponsorTimesContainer" + this.idSuffix,
|
||||
buttonFunction,
|
||||
fontSize: "14px",
|
||||
maxHeight: "200px"
|
||||
});
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
checkToShowFullVideoWarning(): void {
|
||||
const sponsorTime = this.props.contentContainer().sponsorTimesSubmitting[this.props.index];
|
||||
const segmentDuration = sponsorTime.segment[1] - sponsorTime.segment[0];
|
||||
const videoPercentage = segmentDuration / this.props.contentContainer().v.duration;
|
||||
|
||||
if (videoPercentage > 0.6 && !this.fullVideoWarningShown
|
||||
&& (sponsorTime.category === "sponsor" || sponsorTime.category === "selfpromo" || sponsorTime.category === "chooseACategory")) {
|
||||
if (this.showToolTip(chrome.i18n.getMessage("fullVideoTooltipWarning"))) {
|
||||
this.fullVideoWarningShown = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getCategoryOptions(): React.ReactElement[] {
|
||||
const elements = [(
|
||||
<option value={DEFAULT_CATEGORY}
|
||||
@@ -251,7 +351,8 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
for (const category of (this.props.categoryList ?? CompileConfig.categoryList)) {
|
||||
elements.push(
|
||||
<option value={category}
|
||||
key={category}>
|
||||
key={category}
|
||||
className={this.getCategoryLockedClass(category)}>
|
||||
{chrome.i18n.getMessage("category_" + category)}
|
||||
</option>
|
||||
);
|
||||
@@ -260,28 +361,77 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
return elements;
|
||||
}
|
||||
|
||||
getCategoryLockedClass(category: string): string {
|
||||
return this.props.contentContainer().lockedCategories.includes(category) ? "sponsorBlockLockedColor" : "";
|
||||
}
|
||||
|
||||
categorySelectionChange(event: React.ChangeEvent<HTMLSelectElement>): void {
|
||||
const chosenCategory = event.target.value as Category;
|
||||
|
||||
// See if show more categories was pressed
|
||||
if (event.target.value !== DEFAULT_CATEGORY && !Config.config.categorySelections.some((category) => category.name === event.target.value)) {
|
||||
const chosenCategory = event.target.value;
|
||||
event.target.value = DEFAULT_CATEGORY;
|
||||
|
||||
// Alert that they have to enable this category first
|
||||
if (confirm(chrome.i18n.getMessage("enableThisCategoryFirst")
|
||||
.replace("{0}", chrome.i18n.getMessage("category_" + chosenCategory)))) {
|
||||
// Open options page
|
||||
chrome.runtime.sendMessage({message: "openConfig", hash: chosenCategory + "OptionsName"});
|
||||
chrome.runtime.sendMessage({message: "openConfig", hash: "behavior"});
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (getCategoryActionType(event.target.value as Category) === CategoryActionType.POI) {
|
||||
const sponsorTime = this.props.contentContainer().sponsorTimesSubmitting[this.props.index];
|
||||
this.handleReplacingLostTimes(chosenCategory, sponsorTime.actionType, sponsorTime);
|
||||
this.saveEditTimes();
|
||||
|
||||
if (this.props.categoryChangeListener) {
|
||||
this.props.categoryChangeListener(this.props.index, chosenCategory);
|
||||
}
|
||||
}
|
||||
|
||||
actionTypeSelectionChange(event: React.ChangeEvent<HTMLSelectElement>): void {
|
||||
const sponsorTime = this.props.contentContainer().sponsorTimesSubmitting[this.props.index];
|
||||
|
||||
this.handleReplacingLostTimes(sponsorTime.category, event.target.value as ActionType, sponsorTime);
|
||||
this.saveEditTimes();
|
||||
}
|
||||
|
||||
private handleReplacingLostTimes(category: Category, actionType: ActionType, segment: SponsorTime): void {
|
||||
if (CompileConfig.categorySupport[category]?.includes(ActionType.Poi)) {
|
||||
if (this.previousSkipType !== ActionType.Poi) {
|
||||
this.timesBeforeChanging = [null, segment.segment[1]];
|
||||
}
|
||||
|
||||
this.setTimeTo(1, null);
|
||||
this.props.contentContainer().updateEditButtonsOnPlayer();
|
||||
|
||||
if (this.props.contentContainer().sponsorTimesSubmitting
|
||||
.some((segment, i) => segment.category === category && i !== this.props.index)) {
|
||||
alert(chrome.i18n.getMessage("poiOnlyOneSegment"));
|
||||
}
|
||||
|
||||
this.previousSkipType = ActionType.Poi;
|
||||
} else if (CompileConfig.categorySupport[category]?.length === 1
|
||||
&& CompileConfig.categorySupport[category]?.[0] === ActionType.Full) {
|
||||
if (this.previousSkipType !== ActionType.Full) {
|
||||
this.timesBeforeChanging = [...segment.segment];
|
||||
}
|
||||
|
||||
this.previousSkipType = ActionType.Full;
|
||||
} else if ((category === "chooseACategory" || (CompileConfig.categorySupport[category]?.includes(ActionType.Skip)
|
||||
&& ![ActionType.Poi, ActionType.Full].includes(this.getNextActionType(category, actionType))))
|
||||
&& this.previousSkipType !== ActionType.Skip) {
|
||||
if (this.timesBeforeChanging[0]) {
|
||||
this.setTimeTo(0, this.timesBeforeChanging[0]);
|
||||
}
|
||||
if (this.timesBeforeChanging[1]) {
|
||||
this.setTimeTo(1, this.timesBeforeChanging[1]);
|
||||
}
|
||||
|
||||
this.previousSkipType = ActionType.Skip;
|
||||
}
|
||||
|
||||
this.saveEditTimes();
|
||||
}
|
||||
|
||||
getActionTypeOptions(sponsorTime: SponsorTime): React.ReactElement[] {
|
||||
@@ -316,7 +466,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
if (time === null) time = sponsorTime.segment[0];
|
||||
|
||||
sponsorTime.segment[index] = time;
|
||||
if (getCategoryActionType(sponsorTime.category) === CategoryActionType.POI) sponsorTime.segment[1] = time;
|
||||
if (sponsorTime.actionType === ActionType.Poi) sponsorTime.segment[1] = time;
|
||||
|
||||
this.setState({
|
||||
sponsorTimeEdits: this.getFormattedSponsorTimesEdits(sponsorTime)
|
||||
@@ -360,22 +510,45 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
}
|
||||
}
|
||||
|
||||
sponsorTimesSubmitting[this.props.index].category = this.categoryOptionRef.current.value as Category;
|
||||
sponsorTimesSubmitting[this.props.index].actionType =
|
||||
this.actionTypeOptionRef?.current ? this.actionTypeOptionRef.current.value as ActionType : ActionType.Skip;
|
||||
const category = this.categoryOptionRef.current.value as Category
|
||||
sponsorTimesSubmitting[this.props.index].category = category;
|
||||
|
||||
Config.config.segmentTimes.set(this.props.contentContainer().sponsorVideoID, sponsorTimesSubmitting);
|
||||
const inputActionType = this.actionTypeOptionRef?.current?.value as ActionType;
|
||||
sponsorTimesSubmitting[this.props.index].actionType = this.getNextActionType(category, inputActionType);
|
||||
|
||||
Config.config.unsubmittedSegments[this.props.contentContainer().sponsorVideoID] = sponsorTimesSubmitting;
|
||||
Config.forceSyncUpdate("unsubmittedSegments");
|
||||
|
||||
this.props.contentContainer().updatePreviewBar();
|
||||
|
||||
if (sponsorTimesSubmitting[this.props.index].actionType === ActionType.Full
|
||||
&& (sponsorTimesSubmitting[this.props.index].segment[0] !== 0 || sponsorTimesSubmitting[this.props.index].segment[1] !== 0)) {
|
||||
this.setTimeTo(0, 0);
|
||||
this.setTimeTo(1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
previewTime(): void {
|
||||
private getNextActionType(category: Category, actionType: ActionType): ActionType {
|
||||
return actionType && CompileConfig.categorySupport[category]?.includes(actionType) ? actionType
|
||||
: CompileConfig.categorySupport[category]?.[0] ?? ActionType.Skip
|
||||
}
|
||||
|
||||
previewTime(ctrlPressed = false, shiftPressed = false): void {
|
||||
const sponsorTimes = this.props.contentContainer().sponsorTimesSubmitting;
|
||||
const index = this.props.index;
|
||||
|
||||
const skipTime = sponsorTimes[index].segment[0];
|
||||
// If segment starts at 0:00, start playback at the end of the segment
|
||||
if (skipTime === 0) {
|
||||
this.props.contentContainer().previewTime(sponsorTimes[index].segment[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
this.props.contentContainer().previewTime(skipTime - 2);
|
||||
let seekTime = 2;
|
||||
if (ctrlPressed) seekTime = 0.5;
|
||||
if (shiftPressed) seekTime = 0.25;
|
||||
|
||||
this.props.contentContainer().previewTime(skipTime - (seekTime * this.props.contentContainer().v.playbackRate));
|
||||
}
|
||||
|
||||
inspectTime(): void {
|
||||
@@ -395,7 +568,12 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
sponsorTimes.splice(index, 1);
|
||||
|
||||
//save this
|
||||
Config.config.segmentTimes.set(this.props.contentContainer().sponsorVideoID, sponsorTimes);
|
||||
if (sponsorTimes.length > 0) {
|
||||
Config.config.unsubmittedSegments[this.props.contentContainer().sponsorVideoID] = sponsorTimes;
|
||||
} else {
|
||||
delete Config.config.unsubmittedSegments[this.props.contentContainer().sponsorVideoID];
|
||||
}
|
||||
Config.forceSyncUpdate("unsubmittedSegments");
|
||||
|
||||
this.props.contentContainer().updatePreviewBar();
|
||||
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import * as React from "react";
|
||||
import Config from "../config"
|
||||
import { ContentContainer } from "../types";
|
||||
import GenericNotice from "../render/GenericNotice";
|
||||
import { Category, ContentContainer } from "../types";
|
||||
import * as CompileConfig from "../../config.json";
|
||||
|
||||
import NoticeComponent from "./NoticeComponent";
|
||||
import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
|
||||
import SponsorTimeEditComponent from "./SponsorTimeEditComponent";
|
||||
import { getGuidelineInfo } from "../utils/constants";
|
||||
|
||||
export interface SubmissionNoticeProps {
|
||||
// Contains functions and variables from the content script needed by the skip notice
|
||||
@@ -32,6 +35,8 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
|
||||
videoObserver: MutationObserver;
|
||||
|
||||
guidelinesReminder: GenericNotice;
|
||||
|
||||
constructor(props: SubmissionNoticeProps) {
|
||||
super(props);
|
||||
this.noticeRef = React.createRef();
|
||||
@@ -73,7 +78,7 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
idSuffix={this.state.idSuffix}
|
||||
ref={this.noticeRef}
|
||||
closeListener={this.cancel.bind(this)}
|
||||
zIndex={50000}>
|
||||
zIndex={5000}>
|
||||
|
||||
{/* Text Boxes */}
|
||||
{this.getMessageBoxes()}
|
||||
@@ -95,7 +100,7 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
|
||||
{/* Guidelines button */}
|
||||
<button className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipNoticeRightButton"
|
||||
onClick={() => window.open("https://wiki.sponsor.ajay.app/index.php/Guidelines")}>
|
||||
onClick={() => window.open("https://wiki.sponsor.ajay.app/w/Guidelines")}>
|
||||
|
||||
{chrome.i18n.getMessage(Config.config.submissionCountSinceCategories > 3 ? "guidelines" : "readTheGuidelines")}
|
||||
</button>
|
||||
@@ -123,11 +128,12 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
const timeRef = React.createRef<SponsorTimeEditComponent>();
|
||||
|
||||
elements.push(
|
||||
<SponsorTimeEditComponent key={i}
|
||||
<SponsorTimeEditComponent key={sponsorTimes[i].UUID}
|
||||
idSuffix={this.state.idSuffix + i}
|
||||
index={i}
|
||||
contentContainer={this.props.contentContainer}
|
||||
submissionNotice={this}
|
||||
categoryChangeListener={this.categoryChangeListener.bind(this)}
|
||||
ref={timeRef}>
|
||||
</SponsorTimeEditComponent>
|
||||
);
|
||||
@@ -154,6 +160,7 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
}
|
||||
|
||||
cancel(): void {
|
||||
this.guidelinesReminder?.close();
|
||||
this.noticeRef.current.close(true);
|
||||
|
||||
this.contentContainer().resetSponsorSubmissionNotice();
|
||||
@@ -190,6 +197,45 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
|
||||
this.cancel();
|
||||
}
|
||||
|
||||
categoryChangeListener(index: number, category: Category): void {
|
||||
const dialogWidth = this.noticeRef?.current?.getElement()?.current?.offsetWidth;
|
||||
if (category !== "chooseACategory" && Config.config.showCategoryGuidelines
|
||||
&& this.contentContainer().v.offsetWidth > dialogWidth * 2) {
|
||||
const options = {
|
||||
title: chrome.i18n.getMessage(`category_${category}`),
|
||||
textBoxes: getGuidelineInfo(category),
|
||||
buttons: [{
|
||||
name: chrome.i18n.getMessage("FullDetails"),
|
||||
listener: () => window.open(CompileConfig.wikiLinks[category])
|
||||
},
|
||||
{
|
||||
name: chrome.i18n.getMessage("Hide"),
|
||||
listener: () => {
|
||||
Config.config.showCategoryGuidelines = false;
|
||||
this.guidelinesReminder?.close();
|
||||
this.guidelinesReminder = null;
|
||||
}
|
||||
}],
|
||||
timed: false,
|
||||
style: {
|
||||
right: `${dialogWidth + 10}px`,
|
||||
},
|
||||
extraClass: "sb-guidelines-notice"
|
||||
};
|
||||
|
||||
if (options.textBoxes) {
|
||||
if (this.guidelinesReminder) {
|
||||
this.guidelinesReminder.update(options);
|
||||
} else {
|
||||
this.guidelinesReminder = new GenericNotice(null, "GuidelinesReminder", options);
|
||||
}
|
||||
} else {
|
||||
this.guidelinesReminder?.close();
|
||||
this.guidelinesReminder = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default SubmissionNoticeComponent;
|
||||
|
||||
35
src/components/TooltipComponent.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
import * as React from "react";
|
||||
|
||||
export interface TooltipProps {
|
||||
text: string;
|
||||
show: boolean;
|
||||
}
|
||||
|
||||
export interface TooltipState {
|
||||
|
||||
}
|
||||
|
||||
class TooltipComponent extends React.Component<TooltipProps, TooltipState> {
|
||||
|
||||
constructor(props: TooltipProps) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render(): React.ReactElement {
|
||||
const style: React.CSSProperties = {
|
||||
display: this.props.show ? "flex" : "none",
|
||||
position: "absolute",
|
||||
}
|
||||
|
||||
return (
|
||||
<span style={style}
|
||||
className={"sponsorBlockTooltip"} >
|
||||
<span className="sponsorBlockTooltipText">
|
||||
{this.props.text}
|
||||
</span>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default TooltipComponent;
|
||||
438
src/config.ts
@@ -1,16 +1,16 @@
|
||||
import * as CompileConfig from "../config.json";
|
||||
import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, StorageChangesObject, UnEncodedSegmentTimes as UnencodedSegmentTimes } from "./types";
|
||||
import * as invidiousList from "../ci/invidiouslist.json";
|
||||
import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, StorageChangesObject, Keybind, HashedValue, VideoID, SponsorHideType } from "./types";
|
||||
import { keybindEquals } from "./utils/configUtils";
|
||||
|
||||
interface SBConfig {
|
||||
userID: string,
|
||||
/** Contains unsubmitted segments that the user has created. */
|
||||
segmentTimes: SBMap<string, SponsorTime[]>,
|
||||
isVip: boolean,
|
||||
/* Contains unsubmitted segments that the user has created. */
|
||||
unsubmittedSegments: Record<string, SponsorTime[]>,
|
||||
defaultCategory: Category,
|
||||
whitelistedChannels: string[],
|
||||
forceChannelCheck: boolean,
|
||||
skipKeybind: string,
|
||||
startSponsorKeybind: string,
|
||||
submitKeybind: string,
|
||||
minutesSaved: number,
|
||||
skipCount: number,
|
||||
sponsorTimesContributed: number,
|
||||
@@ -18,14 +18,17 @@ interface SBConfig {
|
||||
showTimeWithSkips: boolean,
|
||||
disableSkipping: boolean,
|
||||
muteSegments: boolean,
|
||||
fullVideoSegments: boolean,
|
||||
trackViewCount: boolean,
|
||||
trackViewCountInPrivate: boolean,
|
||||
trackDownvotes: boolean,
|
||||
dontShowNotice: boolean,
|
||||
noticeVisibilityMode: NoticeVisbilityMode,
|
||||
hideVideoPlayerControls: boolean,
|
||||
hideInfoButtonPlayerControls: boolean,
|
||||
hideDeleteButtonPlayerControls: boolean,
|
||||
hideUploadButtonPlayerControls: boolean,
|
||||
hideSkipButtonPlayerControls: boolean,
|
||||
hideDiscordLaunches: number,
|
||||
hideDiscordLink: boolean,
|
||||
invidiousInstances: string[],
|
||||
@@ -33,16 +36,38 @@ interface SBConfig {
|
||||
serverAddress: string,
|
||||
minDuration: number,
|
||||
skipNoticeDuration: number,
|
||||
audioNotificationOnSkip,
|
||||
audioNotificationOnSkip: boolean,
|
||||
checkForUnlistedVideos: boolean,
|
||||
testingServer: boolean,
|
||||
refetchWhenNotFound: boolean,
|
||||
ytInfoPermissionGranted: boolean,
|
||||
allowExpirements: boolean,
|
||||
showDonationLink: boolean,
|
||||
showPopupDonationCount: number,
|
||||
donateClicked: number,
|
||||
autoHideInfoButton: boolean,
|
||||
autoSkipOnMusicVideos: boolean,
|
||||
highlightCategoryUpdate: boolean
|
||||
colorPalette: {
|
||||
red: string,
|
||||
white: string,
|
||||
locked: string
|
||||
},
|
||||
scrollToEditTimeUpdate: boolean,
|
||||
categoryPillUpdate: boolean,
|
||||
darkMode: boolean,
|
||||
showCategoryGuidelines: boolean,
|
||||
|
||||
// Used to cache calculated text color info
|
||||
categoryPillColors: {
|
||||
[key in Category]: {
|
||||
lastColor: string,
|
||||
textColor: string
|
||||
}
|
||||
}
|
||||
|
||||
skipKeybind: Keybind,
|
||||
startSponsorKeybind: Keybind,
|
||||
submitKeybind: Keybind,
|
||||
|
||||
// What categories should be skipped
|
||||
categorySelections: CategorySelection[],
|
||||
@@ -54,6 +79,7 @@ interface SBConfig {
|
||||
"preview-sponsor": PreviewBarOption,
|
||||
"selfpromo": PreviewBarOption,
|
||||
"preview-selfpromo": PreviewBarOption,
|
||||
"exclusive_access": PreviewBarOption,
|
||||
"interaction": PreviewBarOption,
|
||||
"preview-interaction": PreviewBarOption,
|
||||
"intro": PreviewBarOption,
|
||||
@@ -66,97 +92,43 @@ interface SBConfig {
|
||||
"preview-music_offtopic": PreviewBarOption,
|
||||
"poi_highlight": PreviewBarOption,
|
||||
"preview-poi_highlight": PreviewBarOption,
|
||||
"filler": PreviewBarOption,
|
||||
"preview-filler": PreviewBarOption,
|
||||
}
|
||||
}
|
||||
|
||||
export type VideoDownvotes = { segments: { uuid: HashedValue, hidden: SponsorHideType }[] , lastAccess: number };
|
||||
|
||||
interface SBStorage {
|
||||
/* VideoID prefixes to UUID prefixes */
|
||||
downvotedSegments: Record<VideoID & HashedValue, VideoDownvotes>,
|
||||
}
|
||||
|
||||
export interface SBObject {
|
||||
configListeners: Array<(changes: StorageChangesObject) => unknown>;
|
||||
defaults: SBConfig;
|
||||
localConfig: SBConfig;
|
||||
configSyncListeners: Array<(changes: StorageChangesObject) => unknown>;
|
||||
syncDefaults: SBConfig;
|
||||
localDefaults: SBStorage;
|
||||
cachedSyncConfig: SBConfig;
|
||||
cachedLocalStorage: SBStorage;
|
||||
config: SBConfig;
|
||||
|
||||
// Functions
|
||||
encodeStoredItem<T>(data: T): T | UnencodedSegmentTimes;
|
||||
convertJSON(): void;
|
||||
}
|
||||
|
||||
// Allows a SBMap to be conveted into json form
|
||||
// Currently used for local storage
|
||||
class SBMap<T, U> extends Map {
|
||||
id: string;
|
||||
|
||||
constructor(id: string, entries?: [T, U][]) {
|
||||
super();
|
||||
|
||||
this.id = id;
|
||||
|
||||
// Import all entries if they were given
|
||||
if (entries !== undefined) {
|
||||
for (const item of entries) {
|
||||
super.set(item[0], item[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
get(key): U {
|
||||
return super.get(key);
|
||||
}
|
||||
|
||||
rawSet(key, value) {
|
||||
return super.set(key, value);
|
||||
}
|
||||
|
||||
update() {
|
||||
// Store updated SBMap locally
|
||||
chrome.storage.sync.set({
|
||||
[this.id]: encodeStoredItem(this)
|
||||
});
|
||||
}
|
||||
|
||||
set(key: T, value: U) {
|
||||
const result = super.set(key, value);
|
||||
|
||||
this.update();
|
||||
return result;
|
||||
}
|
||||
|
||||
delete(key) {
|
||||
const result = super.delete(key);
|
||||
|
||||
// Make sure there are no empty elements
|
||||
for (const entry of this.entries()) {
|
||||
if (entry[1].length === 0) {
|
||||
super.delete(entry[0]);
|
||||
}
|
||||
}
|
||||
|
||||
this.update();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
clear() {
|
||||
const result = super.clear();
|
||||
|
||||
this.update();
|
||||
return result;
|
||||
}
|
||||
local: SBStorage;
|
||||
forceSyncUpdate(prop: string): void;
|
||||
forceLocalUpdate(prop: string): void;
|
||||
resetToDefault(): void;
|
||||
}
|
||||
|
||||
const Config: SBObject = {
|
||||
/**
|
||||
* Callback function when an option is updated
|
||||
*/
|
||||
configListeners: [],
|
||||
defaults: {
|
||||
configSyncListeners: [],
|
||||
syncDefaults: {
|
||||
userID: null,
|
||||
segmentTimes: new SBMap("segmentTimes"),
|
||||
isVip: false,
|
||||
unsubmittedSegments: {},
|
||||
defaultCategory: "chooseACategory" as Category,
|
||||
whitelistedChannels: [],
|
||||
forceChannelCheck: false,
|
||||
skipKeybind: "Enter",
|
||||
startSponsorKeybind: ";",
|
||||
submitKeybind: "'",
|
||||
minutesSaved: 0,
|
||||
skipCount: 0,
|
||||
sponsorTimesContributed: 0,
|
||||
@@ -164,17 +136,20 @@ const Config: SBObject = {
|
||||
showTimeWithSkips: true,
|
||||
disableSkipping: false,
|
||||
muteSegments: true,
|
||||
fullVideoSegments: true,
|
||||
trackViewCount: true,
|
||||
trackViewCountInPrivate: true,
|
||||
trackDownvotes: true,
|
||||
dontShowNotice: false,
|
||||
noticeVisibilityMode: NoticeVisbilityMode.FadedForAutoSkip,
|
||||
hideVideoPlayerControls: false,
|
||||
hideInfoButtonPlayerControls: false,
|
||||
hideDeleteButtonPlayerControls: false,
|
||||
hideUploadButtonPlayerControls: false,
|
||||
hideSkipButtonPlayerControls: false,
|
||||
hideDiscordLaunches: 0,
|
||||
hideDiscordLink: false,
|
||||
invidiousInstances: ["invidious.snopyta.org"],
|
||||
invidiousInstances: ["invidious.snopyta.org"], // leave as default
|
||||
supportInvidious: false,
|
||||
serverAddress: CompileConfig.serverAddress,
|
||||
minDuration: 0,
|
||||
@@ -186,15 +161,45 @@ const Config: SBObject = {
|
||||
ytInfoPermissionGranted: false,
|
||||
allowExpirements: true,
|
||||
showDonationLink: true,
|
||||
showPopupDonationCount: 0,
|
||||
donateClicked: 0,
|
||||
autoHideInfoButton: true,
|
||||
autoSkipOnMusicVideos: false,
|
||||
highlightCategoryUpdate: false, // TODO: Remove this once update is done
|
||||
scrollToEditTimeUpdate: false, // false means the tooltip will be shown
|
||||
categoryPillUpdate: false,
|
||||
darkMode: true,
|
||||
showCategoryGuidelines: true,
|
||||
|
||||
categoryPillColors: {},
|
||||
|
||||
/**
|
||||
* Default keybinds should not set "code" as that's gonna be different based on the user's locale. They should also only use EITHER ctrl OR alt modifiers (or none).
|
||||
* Using ctrl+alt, or shift may produce a different character that we will not be able to recognize in different locales.
|
||||
* The exception for shift is letters, where it only capitalizes. So shift+A is fine, but shift+1 isn't.
|
||||
* Don't forget to add the new keybind to the checks in "KeybindDialogComponent.isKeybindAvailable()" and in "migrateOldFormats()"!
|
||||
* TODO: Find a way to skip having to update these checks. Maybe storing keybinds in a Map?
|
||||
*/
|
||||
skipKeybind: {key: "Enter"},
|
||||
startSponsorKeybind: {key: ";"},
|
||||
submitKeybind: {key: "'"},
|
||||
|
||||
categorySelections: [{
|
||||
name: "sponsor" as Category,
|
||||
option: CategorySkipOption.AutoSkip
|
||||
}, {
|
||||
name: "poi_highlight" as Category,
|
||||
option: CategorySkipOption.ManualSkip
|
||||
}, {
|
||||
name: "exclusive_access" as Category,
|
||||
option: CategorySkipOption.ShowOverlay
|
||||
}],
|
||||
|
||||
colorPalette: {
|
||||
red: "#780303",
|
||||
white: "#ffffff",
|
||||
locked: "#ffc83d"
|
||||
},
|
||||
|
||||
// Preview bar
|
||||
barTypes: {
|
||||
"preview-chooseACategory": {
|
||||
@@ -217,6 +222,10 @@ const Config: SBObject = {
|
||||
color: "#bfbf35",
|
||||
opacity: "0.7"
|
||||
},
|
||||
"exclusive_access": {
|
||||
color: "#008a5c",
|
||||
opacity: "0.7"
|
||||
},
|
||||
"interaction": {
|
||||
color: "#cc00ff",
|
||||
opacity: "0.7"
|
||||
@@ -264,114 +273,161 @@ const Config: SBObject = {
|
||||
"preview-poi_highlight": {
|
||||
color: "#9b044c",
|
||||
opacity: "0.7"
|
||||
},
|
||||
"filler": {
|
||||
color: "#7300FF",
|
||||
opacity: "0.9"
|
||||
},
|
||||
"preview-filler": {
|
||||
color: "#2E0066",
|
||||
opacity: "0.7"
|
||||
}
|
||||
}
|
||||
},
|
||||
localConfig: null,
|
||||
localDefaults: {
|
||||
downvotedSegments: {}
|
||||
},
|
||||
cachedSyncConfig: null,
|
||||
cachedLocalStorage: null,
|
||||
config: null,
|
||||
|
||||
// Functions
|
||||
encodeStoredItem,
|
||||
convertJSON
|
||||
local: null,
|
||||
forceSyncUpdate,
|
||||
forceLocalUpdate,
|
||||
resetToDefault
|
||||
};
|
||||
|
||||
// Function setup
|
||||
|
||||
/**
|
||||
* A SBMap cannot be stored in the chrome storage.
|
||||
* This data will be encoded into an array instead
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
function encodeStoredItem<T>(data: T): T | UnencodedSegmentTimes {
|
||||
// if data is SBMap convert to json for storing
|
||||
if(!(data instanceof SBMap)) return data;
|
||||
return Array.from(data.entries()).filter((element) => element[1].length > 0); // Remove empty entries
|
||||
}
|
||||
function configProxy(): { sync: SBConfig, local: SBStorage } {
|
||||
chrome.storage.onChanged.addListener((changes: {[key: string]: chrome.storage.StorageChange}, areaName) => {
|
||||
if (areaName === "sync") {
|
||||
for (const key in changes) {
|
||||
Config.cachedSyncConfig[key] = changes[key].newValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* An SBMap cannot be stored in the chrome storage.
|
||||
* This data will be decoded from the array it is stored in
|
||||
*
|
||||
* @param {*} data
|
||||
*/
|
||||
function decodeStoredItem<T>(id: string, data: T): T | SBMap<string, SponsorTime[]> {
|
||||
if (!Config.defaults[id]) return data;
|
||||
|
||||
if (Config.defaults[id] instanceof SBMap) {
|
||||
try {
|
||||
if (!Array.isArray(data)) return data;
|
||||
return new SBMap(id, data as UnencodedSegmentTimes);
|
||||
} catch(e) {
|
||||
console.error("Failed to parse SBMap: " + id);
|
||||
}
|
||||
}
|
||||
|
||||
// If all else fails, return the data
|
||||
return data;
|
||||
}
|
||||
|
||||
function configProxy(): SBConfig {
|
||||
chrome.storage.onChanged.addListener((changes: {[key: string]: chrome.storage.StorageChange}) => {
|
||||
for (const key in changes) {
|
||||
Config.localConfig[key] = decodeStoredItem(key, changes[key].newValue);
|
||||
}
|
||||
|
||||
for (const callback of Config.configListeners) {
|
||||
callback(changes);
|
||||
for (const callback of Config.configSyncListeners) {
|
||||
callback(changes);
|
||||
}
|
||||
} else if (areaName === "local") {
|
||||
for (const key in changes) {
|
||||
Config.cachedLocalStorage[key] = changes[key].newValue;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const handler: ProxyHandler<SBConfig> = {
|
||||
|
||||
const syncHandler: ProxyHandler<SBConfig> = {
|
||||
set<K extends keyof SBConfig>(obj: SBConfig, prop: K, value: SBConfig[K]) {
|
||||
Config.localConfig[prop] = value;
|
||||
Config.cachedSyncConfig[prop] = value;
|
||||
|
||||
chrome.storage.sync.set({
|
||||
[prop]: encodeStoredItem(value)
|
||||
[prop]: value
|
||||
});
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
get<K extends keyof SBConfig>(obj: SBConfig, prop: K): SBConfig[K] {
|
||||
const data = Config.localConfig[prop];
|
||||
const data = Config.cachedSyncConfig[prop];
|
||||
|
||||
return obj[prop] || data;
|
||||
},
|
||||
|
||||
|
||||
deleteProperty(obj: SBConfig, prop: keyof SBConfig) {
|
||||
chrome.storage.sync.remove(<string> prop);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return new Proxy<SBConfig>({handler} as unknown as SBConfig, handler);
|
||||
const localHandler: ProxyHandler<SBStorage> = {
|
||||
set<K extends keyof SBStorage>(obj: SBStorage, prop: K, value: SBStorage[K]) {
|
||||
Config.cachedLocalStorage[prop] = value;
|
||||
|
||||
chrome.storage.local.set({
|
||||
[prop]: value
|
||||
});
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
get<K extends keyof SBStorage>(obj: SBStorage, prop: K): SBStorage[K] {
|
||||
const data = Config.cachedLocalStorage[prop];
|
||||
|
||||
return obj[prop] || data;
|
||||
},
|
||||
|
||||
deleteProperty(obj: SBStorage, prop: keyof SBStorage) {
|
||||
chrome.storage.local.remove(<string> prop);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return {
|
||||
sync: new Proxy<SBConfig>({ handler: syncHandler } as unknown as SBConfig, syncHandler),
|
||||
local: new Proxy<SBStorage>({ handler: localHandler } as unknown as SBStorage, localHandler)
|
||||
};
|
||||
}
|
||||
|
||||
function fetchConfig(): Promise<void> {
|
||||
return new Promise((resolve) => {
|
||||
chrome.storage.sync.get(null, function(items) {
|
||||
Config.localConfig = <SBConfig> <unknown> items; // Data is ready
|
||||
resolve();
|
||||
});
|
||||
function forceSyncUpdate(prop: string): void {
|
||||
chrome.storage.sync.set({
|
||||
[prop]: Config.cachedSyncConfig[prop]
|
||||
});
|
||||
}
|
||||
|
||||
function migrateOldFormats(config: SBConfig) {
|
||||
// Should eventually move into defaults
|
||||
if (!config["highlightCategoryAdded"] && !config.categorySelections.some((s) => s.name === "poi_highlight")) {
|
||||
config["highlightCategoryAdded"] = true;
|
||||
|
||||
function forceLocalUpdate(prop: string): void {
|
||||
chrome.storage.local.set({
|
||||
[prop]: Config.cachedLocalStorage[prop]
|
||||
});
|
||||
}
|
||||
|
||||
async function fetchConfig(): Promise<void> {
|
||||
await Promise.all([new Promise<void>((resolve) => {
|
||||
chrome.storage.sync.get(null, function(items) {
|
||||
Config.cachedSyncConfig = <SBConfig> <unknown> items;
|
||||
resolve();
|
||||
});
|
||||
}), new Promise<void>((resolve) => {
|
||||
chrome.storage.local.get(null, function(items) {
|
||||
Config.cachedLocalStorage = <SBStorage> <unknown> items;
|
||||
resolve();
|
||||
});
|
||||
})]);
|
||||
}
|
||||
|
||||
function migrateOldSyncFormats(config: SBConfig) {
|
||||
if (config["segmentTimes"]) {
|
||||
const unsubmittedSegments = {};
|
||||
for (const item of config["segmentTimes"]) {
|
||||
unsubmittedSegments[item[0]] = item[1];
|
||||
}
|
||||
|
||||
chrome.storage.sync.remove("segmentTimes", () => config.unsubmittedSegments = unsubmittedSegments);
|
||||
}
|
||||
|
||||
if (!config["exclusive_accessCategoryAdded"] && !config.categorySelections.some((s) => s.name === "exclusive_access")) {
|
||||
config["exclusive_accessCategoryAdded"] = true;
|
||||
|
||||
config.categorySelections.push({
|
||||
name: "poi_highlight" as Category,
|
||||
option: CategorySkipOption.ManualSkip
|
||||
name: "exclusive_access" as Category,
|
||||
option: CategorySkipOption.ShowOverlay
|
||||
});
|
||||
|
||||
config.categorySelections = config.categorySelections;
|
||||
}
|
||||
|
||||
if (config["fillerUpdate"] !== undefined) {
|
||||
chrome.storage.sync.remove("fillerUpdate");
|
||||
}
|
||||
if (config["highlightCategoryAdded"] !== undefined) {
|
||||
chrome.storage.sync.remove("highlightCategoryAdded");
|
||||
}
|
||||
if (config["highlightCategoryUpdate"] !== undefined) {
|
||||
chrome.storage.sync.remove("highlightCategoryUpdate");
|
||||
}
|
||||
|
||||
if (config["askAboutUnlistedVideos"]) {
|
||||
chrome.storage.sync.remove("askAboutUnlistedVideos");
|
||||
}
|
||||
@@ -379,9 +435,9 @@ function migrateOldFormats(config: SBConfig) {
|
||||
if (!config["autoSkipOnMusicVideosUpdate"]) {
|
||||
config["autoSkipOnMusicVideosUpdate"] = true;
|
||||
for (const selection of config.categorySelections) {
|
||||
if (selection.name === "music_offtopic"
|
||||
if (selection.name === "music_offtopic"
|
||||
&& selection.option === CategorySkipOption.AutoSkip) {
|
||||
|
||||
|
||||
config.autoSkipOnMusicVideos = true;
|
||||
break;
|
||||
}
|
||||
@@ -398,6 +454,29 @@ function migrateOldFormats(config: SBConfig) {
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof config["skipKeybind"] == "string") {
|
||||
config["skipKeybind"] = {key: config["skipKeybind"]};
|
||||
}
|
||||
|
||||
if (typeof config["startSponsorKeybind"] == "string") {
|
||||
config["startSponsorKeybind"] = {key: config["startSponsorKeybind"]};
|
||||
}
|
||||
|
||||
if (typeof config["submitKeybind"] == "string") {
|
||||
config["submitKeybind"] = {key: config["submitKeybind"]};
|
||||
}
|
||||
|
||||
// Unbind key if it matches a previous one set by the user (should be ordered oldest to newest)
|
||||
const keybinds = ["skipKeybind", "startSponsorKeybind", "submitKeybind"];
|
||||
for (let i = keybinds.length-1; i >= 0; i--) {
|
||||
for (let j = 0; j < keybinds.length; j++) {
|
||||
if (i == j)
|
||||
continue;
|
||||
if (keybindEquals(config[keybinds[i]], config[keybinds[j]]))
|
||||
config[keybinds[i]] = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove some old unused options
|
||||
if (config["sponsorVideoID"] !== undefined) {
|
||||
chrome.storage.sync.remove("sponsorVideoID");
|
||||
@@ -405,37 +484,56 @@ function migrateOldFormats(config: SBConfig) {
|
||||
if (config["previousVideoID"] !== undefined) {
|
||||
chrome.storage.sync.remove("previousVideoID");
|
||||
}
|
||||
|
||||
// populate invidiousInstances with new instances if 3p support is **DISABLED**
|
||||
if (!config["supportInvidious"] && config["invidiousInstances"].length !== invidiousList.length) {
|
||||
config["invidiousInstances"] = invidiousList;
|
||||
}
|
||||
|
||||
if (config["lastIsVipUpdate"]) {
|
||||
chrome.storage.sync.remove("lastIsVipUpdate");
|
||||
}
|
||||
}
|
||||
|
||||
async function setupConfig() {
|
||||
await fetchConfig();
|
||||
addDefaults();
|
||||
convertJSON();
|
||||
const config = configProxy();
|
||||
migrateOldFormats(config);
|
||||
migrateOldSyncFormats(config.sync);
|
||||
|
||||
Config.config = config;
|
||||
}
|
||||
|
||||
function convertJSON(): void {
|
||||
Object.keys(Config.localConfig).forEach(key => {
|
||||
Config.localConfig[key] = decodeStoredItem(key, Config.localConfig[key]);
|
||||
});
|
||||
Config.config = config.sync;
|
||||
Config.local = config.local;
|
||||
}
|
||||
|
||||
// Add defaults
|
||||
function addDefaults() {
|
||||
for (const key in Config.defaults) {
|
||||
if(!Object.prototype.hasOwnProperty.call(Config.localConfig, key)) {
|
||||
Config.localConfig[key] = Config.defaults[key];
|
||||
for (const key in Config.syncDefaults) {
|
||||
if(!Object.prototype.hasOwnProperty.call(Config.cachedSyncConfig, key)) {
|
||||
Config.cachedSyncConfig[key] = Config.syncDefaults[key];
|
||||
} else if (key === "barTypes") {
|
||||
for (const key2 in Config.defaults[key]) {
|
||||
if(!Object.prototype.hasOwnProperty.call(Config.localConfig[key], key2)) {
|
||||
Config.localConfig[key][key2] = Config.defaults[key][key2];
|
||||
for (const key2 in Config.syncDefaults[key]) {
|
||||
if(!Object.prototype.hasOwnProperty.call(Config.cachedSyncConfig[key], key2)) {
|
||||
Config.cachedSyncConfig[key][key2] = Config.syncDefaults[key][key2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const key in Config.localDefaults) {
|
||||
if(!Object.prototype.hasOwnProperty.call(Config.cachedLocalStorage, key)) {
|
||||
Config.cachedLocalStorage[key] = Config.localDefaults[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function resetToDefault() {
|
||||
chrome.storage.sync.set({
|
||||
...Config.syncDefaults,
|
||||
userID: Config.config.userID,
|
||||
minutesSaved: Config.config.minutesSaved,
|
||||
skipCount: Config.config.skipCount,
|
||||
sponsorTimesContributed: Config.config.sponsorTimesContributed
|
||||
});
|
||||
}
|
||||
|
||||
// Sync config
|
||||
|
||||
1044
src/content.ts
@@ -11,6 +11,10 @@ async function init() {
|
||||
|
||||
await utils.wait(() => Config.config !== null);
|
||||
|
||||
if (!Config.config.darkMode) {
|
||||
document.documentElement.setAttribute("data-theme", "light");
|
||||
}
|
||||
|
||||
if (!showDonationLink()) {
|
||||
document.getElementById("sbDonate").style.display = "none";
|
||||
}
|
||||
|
||||
@@ -31,14 +31,16 @@ export function openChat(config: ChatConfig): void {
|
||||
}
|
||||
|
||||
export async function openWarningChat(warningMessage: string): Promise<void> {
|
||||
const warningReasonMatch = warningMessage.match(/Warning reason: '(.+)'/);
|
||||
alert(chrome.i18n.getMessage("warningChatInfo") + `\n\n${warningReasonMatch ? ` Warning reason: ${warningReasonMatch[1]}` : ``}`);
|
||||
|
||||
const userNameData = await utils.asyncRequestToServer("GET", "/api/getUsername?userID=" + Config.config.userID);
|
||||
const userName = userNameData.ok ? JSON.parse(userNameData.responseText).userName : "";
|
||||
const publicUserID = await utils.getHash(Config.config.userID);
|
||||
const warningReasonMatch = warningMessage.match(/Warning reason: '(.+)'/);
|
||||
|
||||
openChat({
|
||||
displayName: `${userName ? userName : ``}${userName !== publicUserID ? ` | ${publicUserID}` : ``}`,
|
||||
composerInitialValue: `I got a warning and want to know what I need to do to improve.` +
|
||||
composerInitialValue: `I got a warning and confirm I [REMOVE THIS CAPITAL TEXT TO CONFIRM] reread the guidelines.` +
|
||||
warningReasonMatch ? ` Warning reason: ${warningReasonMatch[1]}` : ``,
|
||||
customDescription: chrome.i18n.getMessage("warningChatInfo")
|
||||
});
|
||||
|
||||
@@ -6,6 +6,7 @@ https://github.com/videosegments/videosegments/commits/f1e111bdfe231947800c6efdd
|
||||
'use strict';
|
||||
|
||||
import Config from "../config";
|
||||
import { ActionType } from "../types";
|
||||
import Utils from "../utils";
|
||||
const utils = new Utils();
|
||||
|
||||
@@ -15,6 +16,7 @@ export interface PreviewBarSegment {
|
||||
segment: [number, number];
|
||||
category: string;
|
||||
unsubmitted: boolean;
|
||||
actionType: ActionType;
|
||||
showLarger: boolean;
|
||||
}
|
||||
|
||||
@@ -142,8 +144,10 @@ class PreviewBar {
|
||||
this.parent = parent;
|
||||
|
||||
if (this.onMobileYouTube) {
|
||||
parent.style.backgroundColor = "rgba(255, 255, 255, 0.3)";
|
||||
parent.style.opacity = "1";
|
||||
if (parent.classList.contains("progress-bar-background")) {
|
||||
parent.style.backgroundColor = "rgba(255, 255, 255, 0.3)";
|
||||
parent.style.opacity = "1";
|
||||
}
|
||||
|
||||
this.container.style.transform = "none";
|
||||
} else if (!this.onInvidious) {
|
||||
@@ -197,8 +201,11 @@ class PreviewBar {
|
||||
if (!this.onMobileYouTube) bar.style.opacity = Config.config.barTypes[fullCategoryName]?.opacity;
|
||||
|
||||
bar.style.position = "absolute";
|
||||
if (segment[1] - segment[0] > 0) bar.style.width = this.timeToPercentage(segment[1] - segment[0]);
|
||||
bar.style.left = this.timeToPercentage(segment[0]);
|
||||
const duration = Math.min(segment[1], this.videoDuration) - segment[0];
|
||||
if (duration > 0) bar.style.width = this.timeToPercentage(duration);
|
||||
|
||||
const time = segment[1] ? Math.min(this.videoDuration, segment[0]) : segment[0];
|
||||
bar.style.left = this.timeToPercentage(time);
|
||||
|
||||
return bar;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import Config from "../config";
|
||||
import { SponsorTime } from "../types";
|
||||
import { getSkippingText } from "../utils/categoryUtils";
|
||||
|
||||
import { keybindToString } from "../utils/configUtils";
|
||||
import { AnimationUtils } from "../utils/animationUtils";
|
||||
|
||||
export interface SkipButtonControlBarProps {
|
||||
skip: (segment: SponsorTime) => void;
|
||||
onMobileYouTube: boolean;
|
||||
}
|
||||
|
||||
export class SkipButtonControlBar {
|
||||
@@ -16,18 +18,31 @@ export class SkipButtonControlBar {
|
||||
segment: SponsorTime;
|
||||
|
||||
showKeybindHint = true;
|
||||
onMobileYouTube: boolean;
|
||||
|
||||
enabled = false;
|
||||
|
||||
timeout: NodeJS.Timeout;
|
||||
duration = 0;
|
||||
|
||||
skip: (segment: SponsorTime) => void;
|
||||
|
||||
// Used if on mobile page
|
||||
hideButton: () => void;
|
||||
showButton: () => void;
|
||||
|
||||
// Used by mobile only for swiping away
|
||||
left = 0;
|
||||
swipeStart = 0;
|
||||
|
||||
constructor(props: SkipButtonControlBarProps) {
|
||||
this.skip = props.skip;
|
||||
this.onMobileYouTube = props.onMobileYouTube;
|
||||
|
||||
this.container = document.createElement("div");
|
||||
this.container.classList.add("skipButtonControlBarContainer");
|
||||
this.container.classList.add("hidden");
|
||||
if (this.onMobileYouTube) this.container.classList.add("mobile");
|
||||
|
||||
this.skipIcon = document.createElement("img");
|
||||
this.skipIcon.src = chrome.runtime.getURL("icons/skipIcon.svg");
|
||||
@@ -35,12 +50,17 @@ export class SkipButtonControlBar {
|
||||
this.skipIcon.id = "sbSkipIconControlBarImage";
|
||||
|
||||
this.textContainer = document.createElement("div");
|
||||
|
||||
|
||||
this.container.appendChild(this.skipIcon);
|
||||
this.container.appendChild(this.textContainer);
|
||||
this.container.addEventListener("click", () => this.toggleSkip());
|
||||
this.container.addEventListener("mouseenter", () => this.stopTimer());
|
||||
this.container.addEventListener("mouseleave", () => this.startTimer());
|
||||
if (this.onMobileYouTube) {
|
||||
this.container.addEventListener("touchstart", (e) => this.handleTouchStart(e));
|
||||
this.container.addEventListener("touchmove", (e) => this.handleTouchMove(e));
|
||||
this.container.addEventListener("touchend", () => this.handleTouchEnd());
|
||||
}
|
||||
}
|
||||
|
||||
getElement(): HTMLElement {
|
||||
@@ -48,18 +68,42 @@ export class SkipButtonControlBar {
|
||||
}
|
||||
|
||||
attachToPage(): void {
|
||||
const leftControlsContainer = document.querySelector(".ytp-left-controls");
|
||||
const mountingContainer = this.getMountingContainer();
|
||||
this.chapterText = document.querySelector(".ytp-chapter-container");
|
||||
|
||||
if (leftControlsContainer && !leftControlsContainer.contains(this.container)) {
|
||||
leftControlsContainer.insertBefore(this.container, this.chapterText);
|
||||
|
||||
if (mountingContainer && !mountingContainer.contains(this.container)) {
|
||||
if (this.onMobileYouTube) {
|
||||
mountingContainer.appendChild(this.container);
|
||||
} else {
|
||||
mountingContainer.insertBefore(this.container, this.chapterText);
|
||||
}
|
||||
|
||||
if (!this.onMobileYouTube) {
|
||||
AnimationUtils.setupAutoHideAnimation(this.skipIcon, mountingContainer, false, false);
|
||||
} else {
|
||||
const { hide, show } = AnimationUtils.setupCustomHideAnimation(this.skipIcon, mountingContainer, false, false);
|
||||
this.hideButton = hide;
|
||||
this.showButton = show;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getMountingContainer(): HTMLElement {
|
||||
if (!this.onMobileYouTube) {
|
||||
return document.querySelector(".ytp-left-controls");
|
||||
} else {
|
||||
return document.getElementById("player-container-id");
|
||||
}
|
||||
}
|
||||
|
||||
enable(segment: SponsorTime, duration?: number): void {
|
||||
if (duration) this.duration = duration;
|
||||
this.segment = segment;
|
||||
this.enabled = true;
|
||||
|
||||
this.refreshText();
|
||||
this.textContainer?.classList?.remove("hidden");
|
||||
AnimationUtils.disableAutoHideAnimation(this.skipIcon);
|
||||
|
||||
this.startTimer();
|
||||
}
|
||||
@@ -68,7 +112,8 @@ export class SkipButtonControlBar {
|
||||
if (this.segment) {
|
||||
this.chapterText?.classList?.add("hidden");
|
||||
this.container.classList.remove("hidden");
|
||||
this.textContainer.innerText = getSkippingText([this.segment], false) + (this.showKeybindHint ? " (" + Config.config.skipKeybind + ")" : "");
|
||||
this.textContainer.innerText = this.getTitle();
|
||||
this.skipIcon.setAttribute("title", this.getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,17 +129,91 @@ export class SkipButtonControlBar {
|
||||
|
||||
startTimer(): void {
|
||||
this.stopTimer();
|
||||
this.timeout = setTimeout(() => this.disable(), Math.max(Config.config.skipNoticeDuration, this.duration) * 1000);
|
||||
this.timeout = setTimeout(() => this.disableText(), Math.max(Config.config.skipNoticeDuration, this.duration) * 1000);
|
||||
}
|
||||
|
||||
disable(): void {
|
||||
this.container.classList.add("hidden");
|
||||
this.textContainer?.classList?.remove("hidden");
|
||||
|
||||
this.chapterText?.classList?.remove("hidden");
|
||||
this.getChapterPrefix()?.classList?.remove("hidden");
|
||||
|
||||
this.enabled = false;
|
||||
}
|
||||
|
||||
toggleSkip(): void {
|
||||
this.skip(this.segment);
|
||||
this.disable();
|
||||
this.disableText();
|
||||
}
|
||||
|
||||
disableText(): void {
|
||||
if (Config.config.hideSkipButtonPlayerControls) {
|
||||
this.disable();
|
||||
return;
|
||||
}
|
||||
|
||||
this.container.classList.add("textDisabled");
|
||||
this.textContainer?.classList?.add("hidden");
|
||||
this.chapterText?.classList?.remove("hidden");
|
||||
|
||||
this.getChapterPrefix()?.classList?.add("hidden");
|
||||
|
||||
AnimationUtils.enableAutoHideAnimation(this.skipIcon);
|
||||
if (this.onMobileYouTube) {
|
||||
this.hideButton();
|
||||
}
|
||||
}
|
||||
|
||||
updateMobileControls(): void {
|
||||
const overlay = document.getElementById("player-control-overlay");
|
||||
|
||||
if (overlay && this.enabled) {
|
||||
if (overlay?.classList?.contains("fadein")) {
|
||||
this.showButton();
|
||||
} else {
|
||||
this.hideButton();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getTitle(): string {
|
||||
return getSkippingText([this.segment], false) + (this.showKeybindHint ? " (" + keybindToString(Config.config.skipKeybind) + ")" : "");
|
||||
}
|
||||
|
||||
private getChapterPrefix(): HTMLElement {
|
||||
return document.querySelector(".ytp-chapter-title-prefix");
|
||||
}
|
||||
|
||||
// Swiping away on mobile
|
||||
private handleTouchStart(event: TouchEvent): void {
|
||||
this.swipeStart = event.touches[0].clientX;
|
||||
}
|
||||
|
||||
// Swiping away on mobile
|
||||
private handleTouchMove(event: TouchEvent): void {
|
||||
const distanceMoved = this.swipeStart - event.touches[0].clientX;
|
||||
this.left = Math.min(-distanceMoved, 0);
|
||||
|
||||
this.updateLeftStyle();
|
||||
}
|
||||
|
||||
// Swiping away on mobile
|
||||
private handleTouchEnd(): void {
|
||||
if (this.left < -this.container.offsetWidth / 2) {
|
||||
this.disableText();
|
||||
|
||||
// Don't let animation play
|
||||
this.skipIcon.style.display = "none";
|
||||
setTimeout(() => this.skipIcon.style.removeProperty("display"), 200);
|
||||
}
|
||||
|
||||
this.left = 0;
|
||||
this.updateLeftStyle();
|
||||
}
|
||||
|
||||
// Swiping away on mobile
|
||||
private updateLeftStyle() {
|
||||
this.container.style.left = this.left + "px";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// Message and Response Types
|
||||
//
|
||||
|
||||
import { SponsorTime } from "./types";
|
||||
import { SegmentUUID, SponsorHideType, SponsorTime } from "./types";
|
||||
|
||||
interface BaseMessage {
|
||||
from?: string;
|
||||
@@ -29,11 +29,24 @@ interface IsInfoFoundMessage {
|
||||
updating: boolean;
|
||||
}
|
||||
|
||||
export type Message = BaseMessage & (DefaultMessage | BoolValueMessage | IsInfoFoundMessage);
|
||||
interface SubmitVoteMessage {
|
||||
message: "submitVote";
|
||||
type: number;
|
||||
UUID: SegmentUUID;
|
||||
}
|
||||
|
||||
interface IsInfoFoundMessageResponse {
|
||||
interface HideSegmentMessage {
|
||||
message: "hideSegment";
|
||||
type: SponsorHideType;
|
||||
UUID: SegmentUUID;
|
||||
}
|
||||
|
||||
export type Message = BaseMessage & (DefaultMessage | BoolValueMessage | IsInfoFoundMessage | SubmitVoteMessage | HideSegmentMessage);
|
||||
|
||||
export interface IsInfoFoundMessageResponse {
|
||||
found: boolean;
|
||||
sponsorTimes: SponsorTime[];
|
||||
onMobileYouTube: boolean;
|
||||
}
|
||||
|
||||
interface GetVideoIdResponse {
|
||||
@@ -58,5 +71,11 @@ export type MessageResponse =
|
||||
| GetChannelIDResponse
|
||||
| SponsorStartResponse
|
||||
| IsChannelWhitelistedResponse
|
||||
| Record<string, never>;
|
||||
| Record<string, never>
|
||||
| VoteResponse;
|
||||
|
||||
export interface VoteResponse {
|
||||
successType: number;
|
||||
statusCode: number;
|
||||
responseText: string;
|
||||
}
|
||||